当前位置:文档之家› 数字转速表的设计方案

数字转速表的设计方案

数字转速表的设计方案第1章前言单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电气中得到广泛应用。

虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。

本课程一MCS-51系列以及派生系列单片机芯片为主介绍单片机的原理与应用,与其特点是由浅入深,注重接口技术和应用。

近年来,微型计算机的发展速度足以让世人惊叹,以计算机为主导的信息技术作为一种崭新的生产力,正在向社会的各个领域渗透,也使机电一体化的进程大大加快。

机电一体化是当今制造技术和产品发展的主要倾向,也是我国机电工业发展的必由之路。

可以认为,它是用系统工程学的观点和方法,研究在机电系统和产品中如何将机械、计算机、信息处理和自动控制技术综合应用,以求机电系统和产品达到最佳的组合。

机电一体化产品所需要的是嵌入式微机,而单片机具有体积小、集成度高、功能强等特点,适于嵌入式应用。

智能仪器、家用电器、数控机床、工业控制等机电设备和产品中竟相使用单片机。

就目前而言,单片机的发展势头依然不减,各种型号和功能更强的单片机和超级接口芯片不断出现,进一步向高层次发展的重要标志就是构成多机系统和分布式网络。

世界上单片机芯片的产量以每年27%的速度递增,到本世纪初已达30亿片,而我国的年需求量也超过了亿片的数量,这表明单片机有着广阔的应用前景。

本课程设计主要针对目前我国早期应用比较广泛的“MCS-51”单片机进行系统的讲解和分析。

为使用和开发各类机电一体化设备和仪表建立基础。

第2章基本原理利用AT89C51作为主控器组成一个转速表。

电机转速采用光电脉冲传感器来测量,设置定时器/计数器T0和T1,利用其部定时器T1设置为定时方式,且定时时间为1s。

计数器T0设置为外部脉冲计数工作方式,设在1s测量的脉冲个数为n,又由于脉冲频率为60个脉冲/转,故测到转速n就是脉冲频率。

定时1s,在1s允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s的脉冲数,通过计数一定时间通过定时器的脉冲数通过软硬件结合工作即可测出电机的转速。

第3章总体设计思路3.1 设计方案该系统的功能概括起来就是能测量当前电机的转速,并且进行超速报警。

要完成此功能,关键在于转速的测量,电机转速采用传感器或由信号发生器的方波脉冲信号来模拟,因此只要在给定的时间对脉冲计数,即可测出转速。

例如,可将脉冲信号接到引脚,外部中断1选择边沿触发方式。

MCS-51单片机有两个定时器/计数器T0和T1,利用其部定时器T1设置为定时方式,且定时时间为1s。

计数器T0设置为外部脉冲计数工作方式,设在1s测量的脉冲个数为n,又由于脉冲频率为60个脉冲/转,故测到转速n就是脉冲频率。

定时1s,在1s允许中断,没中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s的脉冲数,设为m ,则转速n=m。

我们采用8031作为基本元件. 在P3.6 口输入脉冲, 按下启动键后开始输入脉冲, 输入脉冲的同时,定时器和计数器开始工作,这期间允许中断,当定时器到时时,定时器和计数器停止工作。

此时计数器已经统计1s的脉冲数即转速。

第4章硬件电路的设计方案根据设计要求和设计思路,硬件电路有三部分组成,即单片机按键电路,LED显示器电路和程序存储器在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。

硬件定时是利用单片机定时器定时,启动以后定时器可与CPU并行工作,不占用CPU 时间,CPU有较高的工作效率。

采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现50ms定时,通过软件延时程序实现1s定时。

定时器的TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。

TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

图4-1硬件电路设计图4.1 LED显示部分的电路设计本课题所采用得是由LED(数码管)作为显示电路,用以显示由单片机所接收的脉冲来转换的BCD码,以及开始测速时的初始状态。

其硬件电路连接是单片机P0.0~P0.7接数码管的由A~G的8各管脚,P2.4~P2.7接数码管的控制端,采用共阴极连接的方法连接图如图4-2所示。

图4-2键盘接法图4.2 按键电路设计对按键电路的设计可以由2种方式:一种方式是直接按键设计,这种设计电路适用于按键较少的控制;另一种方式是矩阵式键盘的设计,它适用于对控制按键较多的电路控制。

本课题总共设计按键有3个启动、停止、复位。

由于课题调试采用的LK-51单片机键盘采用的是矩阵式键盘,为方便电路的调试,因此我所采用矩阵键盘作为控制按键。

接法如图4-3所示。

图4-3按键电路第5章软件设计方案根据设计要求和设计思路,进行模块设计。

8279的初始化程序模块,定时计数程序模块,数制转换模块,显示模块,转速测量模块。

5.1显示当前转速转速的显示我们采用了动态扫描的工作方式,LED数码显示管采用4联工阴极显示器,该器件部已将4个数码显示器的同名字段端并接在一起,从上到下4个数码管的公共阴极分别由一个引脚引出,L1~L4表示。

P1口为字型口,P2口为字位口,每个口都经过集电极开路形式的驱动器74LS47驱动。

启动图5-1显示当前转速程序流程图5.2十进制转换为二进制程序框图图5-2二进制程序框图由于给定的转速上限值是以十进制的形式存在于44H---47H 单元中,而比较程序所需要的是二进制数,故把二进制数转换成十进制数。

转换后十进制数存入在R3R4中。

5.3脉冲个数的求取千位的求取是这样的,该数值先减去1000,这时标志位加1,如果差值还大于1000,则返回继续作差,直到差值小于1000为止,这时往下执行,由于在上述过程中多加了一个1,所以这时标志位还应当再减去一个1.百位及个位的求取按照同样的道理进行,这样所记标志位即我们计数器的读数.图5-35.4键盘电路数字转速表的键盘操作应具有3个功能,即:启动、停止、复位。

确定矩阵式键盘上那个按键被按下通常采用的是行扫描法,其过程如图5-4所示。

图5-4键盘扫描流程图第6章系统调试6.1 软件模拟仿真试验所涉及的2个软件keil和proteus,以下是仿真步骤。

程序调试部分keil:先新建一个工程,并保存在所建工程弹出的对话框中选择AT89C52处理器。

新建一个文档以编辑程序,将所设计的程序输入到新建文档中,并保存文档.asm(汇编源文件)。

将所保存的文档添加到工程中去,再进行工程配置,点击Project菜单下的Options for Target ,在弹出的对话框中设晶振为12MHZ,将Create HEX File打上勾,再编译文件。

仿真部分proteus:运行proteus的ISIS后进入仿真界面将所需元件选择好,根据原理图画出仿真图,待仿真图换好后双击AT89C52写入由keil所产生的程序,按开始进行仿真。

6.2 硬件调试硬件调试的步骤如下:接通电源和数据线,通过软件将在keil中生成的HEX文件下载到单片机板子上,先对板子关电当显示请上电时按下单片机上的电源开关按钮上电下载程序到单片机中,通过按键和LED的显示进行调试。

当程序下载完之后,按下电源开关,LED上显示初始状态,按下启动键显示接收数据的状态,按下停止键后显示当前所记录的数据,按下复位键则显示初始状态。

第7章总结与体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次的课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于迎刃而解。

同事,在老师的身上我学得到很多实用的知识,在此我表示感!同时,对给过我帮助的所有同学和各位指导老师再次表示衷心的感。

第8章参考文献1、国荣.单片微型计算机技术.机械工业,19962 、迎新.单片微型计算机原理、应用及接口技术.国防工业,19933、房小翠.编单片机实用系统设计技术.国防工业,19994、何立民.编单片机应用系统设计.北航,20055、琳琳.编单片机原理及接口技术.国防科技大学,2000附录程序清单ORG 0000HSJMP MAINORG 0003HSJMP FWE0ORG 000BHSJMP FWT0ORG 0013HSJMP FWE1ORG 001BHSJMP FET1ORG 0030H ; 设置中断向量MAIN: MOV TMOD,#52H ;写入工作方式字MOV TH1,#00HMOV TL1,#00H ;写入计数初值MOV TH0,#56MOV TL0,#56MOV R1,#50H ;初始化定时器:T1为计数方式1 ,T0为计数方式0MOV R4,#50 ;R4为辅助T0计时MOV R0,#40H ;R0作为指针SETB ET1SETB ET0SETB EX0SETB EX1SETB IT0SETB IT1SETB EA ;开放中断,并设置中断方式MOV 50H,#08HMOV 51H,#06HMOV 52H,#02HMOV 53H,#01H ;用做显示时的片选SJMP $FWE0:SETB TR0SETB TR1 ;启动定时器0和1SETB P3.6 ;显示正常发光CLR IE0 ;启动完毕,关外部中断RET1FWE1:CLR TR0CLR TR1 ;停止定时器T0和T1CLR P3.6 ;不显示CLR IE1 ;停止后,停止信号无效RET1FWT0:DJNZ R4,RETN0 ;1秒定时未到,继续CLR TR1 ;1秒定时到,关闭计数器MOV R4,#50 ;R4置数50,下次测量时再用ACALL JSH ;计算每分钟的转数,其值为二进制存放到30H 和31H中ACALL BTODACALL XSH ;调用数据处理程序RET1FWT1:MOV TH1,#00HMOV TL1,#00H ;重赋初值ACALL BJ ;调用报警程序RET1BTOD:LOPQ:CLR C ;清进位标志MOV A,30H 16位数低8位放在A中 SUBB A,#0E8H ;A-0E8H放入A中MOV 30H,A ;保留差值MOV A,31H ;高8位SUBB A,#03H ;A-03H放入A中MOV A,31H ;保留差值INC 40H ;千位加1JNC LOPQDEC 40H ;千位减1LOPB:CLR C ;清进位标志MOV A,30H ;16位数低8位放在A中SUBB A,#64H ;A-64H放入A中MOV 30H,A ;保留差值INC 41H ;百位加1JNC LOPBDEC 41H ;求百位LOPS:CLR CMOV A,30HSUBB A,#10MOV 30H,AINC 42HJNC LOPSDEC 42H ;求十位LOPG:ADD A,#10MOV 43H,ACLR CMOV A,#40HSUBB A,#2JNC RETNACALL BJRETN:RET ;求个位DISP: MOV R0,#40H ;赋值MOV R1,#50HXSH:MOVP1,R0 ;P1口为50单元中的容MOV P0,R1 ;P0口为40单元中的容INC R0 ;存单元加1INC R1CJNE R0,#44,NEXT ;判断4位数是否显示完MOV R0,#40HMOV R1,#50H ;重新赋值NEXT:JB P3.6,XSHRETBJ: MOV R1,#50HXS: MOV P1,#0FHMOV P0,R1CJNE R1,#54H,GOONMOV R1,#50H ;使显示器显示FFFF GOON:CPL ,P3.0 ;发声,报警JNB P3.6,XS ;按下停止按扭,解除警报 RET单片机原理与应用课程设计评分表班级:指导教师签名:________________日期: _______________。

相关主题