基于51单片机转速表系统设计

上传人:第*** 文档编号:61115473 上传时间:2018-11-24 格式:DOC 页数:24 大小:327KB
返回 下载 相关 举报
基于51单片机转速表系统设计_第1页
第1页 / 共24页
基于51单片机转速表系统设计_第2页
第2页 / 共24页
基于51单片机转速表系统设计_第3页
第3页 / 共24页
基于51单片机转速表系统设计_第4页
第4页 / 共24页
基于51单片机转速表系统设计_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于51单片机转速表系统设计》由会员分享,可在线阅读,更多相关《基于51单片机转速表系统设计(24页珍藏版)》请在金锄头文库上搜索。

1、目录1.前言12 智能转速表的系统设计12.1 系统硬件设计12.1.1方案选择12.1.2仪器各部分组成22.2 系统软件设计33 设计原理53.1转速计算及误差分析53.2转速测量63.2.1门控方式计数63.2.2中断方式计数73.3串行显示接口74 软件程序的设计84.1 1s定时84.2 T1计数程序84.3 频率数据采集94.4 进制转换104.5 数码显示135 软件设计总体程序156 总程序调试217 心得体会21 参考文献221.前言单片微型计算机简称单片机,又称为微控制器(MCU)是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高

2、、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机在我国大规模的应用已有十余年历史,单片机技术的研究和推广正方兴未艾。MSC-51系列单片机是国内目前应用最广泛的一种8位单片机之一。经过20多年的推广与发展,51系列单片机形成了一个规模庞大、功能齐全、资源丰富的产品群。随着嵌入式系统、片上系统等概念的提出和普遍应用,MCS-51系列单片机的发展又进入了一个新的阶段。我们使用的89C51单片机是目前各大高校及市场上应用最广泛的单片机型.其内部包含: 一个8位的CPU;4K的程序存储空间ROM;128字节

3、的RAM数据存储器;两个16位的定时/计数器;可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路;32条可编程的I/O线;具有两个优先级嵌套的中断结构的5个中断源。本次课程设计便是设计一个基于89C51单片机转速表系统。要求进行电路硬件设计和系统软件编程,硬件电路要求动手制作并能够完成系统硬件和软件调试。2 智能转速表的系统设计2.1 系统硬件设计2.1.1方案选择 由于单片机所具有的特性,它特别适用于各种智能仪器仪表,家电等领域中,可以减少硬件以减轻仪表的重量,便于携带和使用,同时也可能低存本,提高性能价格之比。 该转速表选用MCS-51系列单片机的8031芯片,外部扩展4K

4、B EPROM和8155作为显示器的接口。该系统的整体结构框图见下图2.1所示:图2.1智能转速表总结构流程图2.1.2仪器各部分组成(1)传感器 传感器为红外光电式传感器。其中一个发光二极管发出红外波长的光,可不受室内自然光的影响,此光照到旋转物体上反射回后,被光敏三极管接收。光敏三极管接受到此信号后,经放大,整形转换为矩形脉冲信号送入MCS-51单片机的外部中断输入端INTO和INT1上。(2)键盘键盘由功能键,数字键,存入键,取出键,单双键路选择键,启动停止键等组成。为了减少键的数目,以减少故障率,采用了一键多用的复用键方案,但软件相对复杂一些。键盘于8031的P1口直接相连,以加快对键

5、盘的扫描速度。也可以用8155等芯片作为键盘的输入接口,但扫描速度比前者慢一些。(3)显示器 8个LED数码管作显示器,它通过可编程并行I/O接口芯片8155与8031相连。8155的A口通过反相驱动(75452或7406)作为显示器位选口;B口通过同相驱动器(7407)作显示器段选口。在进行不同测量时,除在LED显示器上以英文字母提示外,在运行过程中还以不同的发光二极管指示测量的内容。发光二极管由8155的C口驱动。(4)程序存储器系统的监控程序和运算处理程序存放在外接4K字节的EPROM2732中。(5)数据存储器 数据存储器由8031片内的低128字节和8155内部256字节的RAM组成

6、.8031的内部RAM主要用于堆栈,工作寄存器,显示缓冲器,各测量参数的计算缓冲器和标致位等。而8155内部的RAM除上部4个单元外,全部用于存放转速和线速度值,其存储空间划分如图2-2所示,共分为三组,每组84个单元,可存入42个16位二进制数据,即42个4位16进制数据。如下图2.1为外部RAM存储器空间划分图。图2.1 外部RAM存储器空间划分2.2 系统软件设计系统监控程序的主程序流程框图见图2.2系统软件采用模块式结构,由主程序及多个功能模块子程序组成,可使程序清楚,易编易读,便于调试和修改。图2.2监控主程序流程图主程序的任务是对8031单片机初始化,如设置堆栈,预置各定时器的控制

7、字,初始化显示缓冲区,8155的初始化,设置标致位,清内存等;然后显示开机初始化状态,扫描键盘,根据按下键的功能各自的功能操作。3 设计原理3.1转速计算及误差分析根据转速,周期,频率之间的关系可知: (3-1) (3-2) (3-3)式中, n被测转速,r/min; T转速信号周期,s; f转速信号频率,Hz; 计算计数脉冲的周期,又称时基,.将式(3-3)代入式(6-1),可得: (3-4)用十六进制数表示,为: 式中N已存入75H,74H,73H单元。利用除法子程序,即可求出转速。下面计算系统得相对误差。分别对式(3-1)和(3-3)求微分 (3-5) (3-6)将式(3-6代入(3-5

8、),可得: (3-7)式中,为量化误差,个计数脉冲,又已知时基,故 (3-8)由式(3-8)可知,相对误差与频率成正比,即相对误差随转速得升高而升高。因此,为了提高测量精度,高转速时需要连续测量数个周期。本系统中为4个周期,即测得的N为4个周期内的总和,所以 (3-9) (3-10)用十六进制数表示,为,对式(3-9)进行微分得:.因此,可求出高速测量时的相对误差为。同样,代入,个计数脉冲,则: (3-11)将式(3-11)与式(3-8)比较可知,采用多周期测量相对精度大大提高。若设置系统的临界转速为3662r/min,其对应的每周期计数脉冲个数为。开机时,首先按低转速测量,然后判断转速n是高

9、于还是低于3662r/min。若低与此临界值,则仍然低转速测量,若高于它,便主动转入高转速测量,即连续测量4个周期.这样,就可以实现量程自动切换。3.2转速测量由式(3-4)和(3-10)可知,只要能够求出脉冲个数N,即可求出转速。为了得到计数脉冲,可以采用门控方式的硬件计数方法,也可以采用中断方式的软件计数方法。3.2.1门控方式计数由8031定时器/计数器T0工作原理可知,当其工作在计数方式,只要T0引脚上有负跳变,计数器就加1。CPU在每个机器周期的状态时,采样T0,所以需要2个机器周期才能识别一个T0的负跳变,即T0的周期至少应该等于2倍机器周期。若晶振频率为6MHz,6分频后得到AL

10、E信号,故ALE信号周期为,机器周期为。由此可知,最低计数脉冲周期为,可由ALE信号经74LS74中的两个D触发器4分频后取得。为了保证精度,要求8031内部计数器0与的上跳沿同步,此时开始计数,在的下跳沿停止计数。图3.1 门控脉冲与计数脉冲为了实现此功能,可以利用51单片机特有的定时器门控工作方式,通过指令MOV THOD,#1DH来设置定时器/计数器的工作方式。这里使定时器/计数器0工作于16位技术方式,并由门脉冲进行控制。只有当为高电平时,且运行控制位时,计数器0才开始工作。一旦转为低电平,计数器0即刻停止计数。3.2.2中断方式计数高转速时,为了连续测量4个输入脉冲周期,可以采用中断

11、方式计数。在初始化或前一次测量结果时,单片机禁止”外部中断0”和”定时器0”溢出中断。设置”外部中断0”为负跳沿触发方式,设定”计数器0”为非门控计数方式,然后等待中断。外部中断负脉冲一到,立刻启动”计数器0”对T0的计数脉冲进行计数。计到4个测量周期时,停止”计数器0” 工作,禁止外”中断”,恢复测量周期常数3,并将计得的脉冲数存入相应的单元。门控方式和中断方式计数,有效的解决了精度测量输入脉冲周期和高低量程自动切换问题,测得计数脉冲个数后,即可转入计算转速n子程序,计算结果得BCD吗存入相应的4个存储单元,以备显示。3.3串行显示接口 51单片机的I/O口串行口为全双工接口,串行工作在方式

12、0时,外接移位寄存器,可将串口转换成8位并口。其显示的速率为,即,可以满足显示器稳定显示。串行数据的接受/发送均通过RXD,而由TXD输出移位脉冲。在串口上外接4片移位寄存器74LS64作为8位显示器的静态显示口。变串行输入为并行输出,经缓冲器接至数码管。4 软件程序的设计4.1 1s定时本次设计选用定时器T0完成定时功能,选用方式1时最多也只能定时,显然不能满足定时1的要求,可以用下面这种方法解决:采用T0定时10,连续循环定时100次即可完成1定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1定时到时。定时器T0初始化程序如下:MOV IE,#8A

13、H ;开放T0、T1中断MOV TMOD,#51H ;T0定时,T1计数,都工作于方式一MOV 20H,#100 ;100*10ms=1sSETB TR01s定时程序如下:T0INT:DJNZ 20H,NEXTNEXT:MOV TH0,#0DCH ;1s还未到则置初值继续定时MOV TL0,#00HEXIT:RETI4.2 T1计数程序设计中T1采用计数功能,需要注意的一个问题是,输入的待测时钟信号的频率最高可以达到460800Hz,但计数器最多只能计数65536次,显然需要对计数单元进行扩展,扩展的思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。计数器T1初始化程序如下: MOV IE,#8AH ;开放T0、T1中断MOV TMOD,#51H ;T0定时,T1计数,都工作于方式一MOV TH1,#00HMOV TL1,#00H ;计数初值为零 SETB TR1根据流程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号