数字转速表设计(AT89C51)_第1页
数字转速表设计(AT89C51)_第2页
数字转速表设计(AT89C51)_第3页
数字转速表设计(AT89C51)_第4页
数字转速表设计(AT89C51)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录第一章 概述.2 1.1 单片机的在生产生活的的应用.21.2 课题简介.2第2章 总体方案确实定.3 2.1 设计思路.3 2.2 硬件设计方案.3 2.3 软件设计方案.4第3章 硬件电路的设计.5 3.1 时钟电路设计.5 3.2 按键电路设计.5 3.3 显示电路设计.6 3.4 脉冲电路设计.6 3.5 整体电路的细节修改与调整.7第4章 软件的设计.8 4.1 显示子程序设计.84.2 按键扫描设计.9 4.3 中断程序设计.10第5章 系统调试.11 5.1 系统调试与仿真.11 5.2 调试与仿真中产生的问题.11 5.3 仿真截图.11第6章 总结与体会.14参考文献.

2、15附录A 总硬件设计图.16附录B 程序清单.17电气与信息工程系课程设计评分表.24第一章 概述 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的平安保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。 因此,单片机的学习、开发与应用就显得越发的重要了。1.2课题简介 本课题要求以MCS-51系列单片机为核心,设计一个数字转速表对脉

3、冲转速信号进行检测,能将所测量的转速在LED显示器上显示十进制,并具有方便的键盘操作启动、停止、复位功能。第2章 总体方案确实定2.1 设计思路 1、 设计1S定时:T0作定时器,定时20ms。这样计20个循环即是1S。 2、T1作计数器,接收外部的脉冲个数。3、在1S内的脉冲个数乘以60即得每分钟的脉冲个数,而电动机是转一圈产生一个脉冲,所以每分钟的脉冲个数即是电动机每分钟的转速。于是把每分钟的脉冲个数的数值转换成十进制,再送到LED显示器,即可显出电动机每分钟的转速。4、1S内允许中断,中断后再测1S的脉冲个数,再关闭中断。2.2 硬件设计方案 对单片机的要求:片内有地Flash ROM,

4、应用程序直接存储在片内。据此我们可以选择AT89C51。 系统由7个局部组成:MCS-51系列单片机,时钟电路,按键电路,段驱动器,位驱动器,LED显示器,脉冲。其中,段驱动器,位驱动器,LED显示器组成显示电路。由此,我们可画出系统框图如下。 时 钟电路AT89C51段驱动LED显示位驱动按键电路 脉冲2.3 软件设计方案 在初始化程序后,数码管显示初始化状态,然后对按键进行循环的进行扫描,检测是否有按键按下,当有按键按下时,判断是哪个键,再向CPU提出中断申请,进而执行相应按键的控制功能,执行完程序后返回对按键的查询;当没有按键按下时,继续对按键扫描,如此循环。图2-3是总程序的流程图 。

5、开始初始化调显示子程序N有键?YY启动中断处理程序起动键?N暂停键?Y启动中断处理程序NN复位键?Y图2-3第3章 硬件电路的设计3.1 时钟电路设计两个电容均取30pF,晶振为12MHz,如图3-1所示。 图3-13.2 按键电路设计 根据要求,需要设3个键起动键,暂停键,复位键。在此,我们采用简单的独立键盘的接线方式。起动键,暂停键,复位键分别接在单片机的P1.0,P1.1,P1.2端口。如图3-2,当有键按下时,单片机的三个端口由高电平跳变为低电平,从而起到对显示的控制作用。 图3-23.3 显示电路设计在显示电路中,选4个共阳极的LED作为显示器,A-G连单片机的P0口此时需要连上拉电

6、阴,共阳极1-4连P2口的低四位。P0口作为段控制,P2口作为位控制, 以段选控制数字以及小数点的显示,通过位选和段选来控制整个动态扫描电路的显示过程。为了增强电流,点亮数码管,还要加上两个驱动,即段驱动和位驱动。显示电路设计图,如3-3所示。 图3-33.4 脉冲电路设计用脉冲来代替电动机转速,修改脉冲频率即可得不同的转速值显示。脉冲电路设计图,如图3-4。 图3-43.5 整体电路的细节修改与调整 接好9和31号端口,观察全图作细节修改,如图3-5.图3-5第4章 软件的设计4.1 显示子程序设计开始采用动态扫描显示的方法,即任意时刻只有一个数码管被点亮, 但由于人的视觉暂留效应,当扫描速

7、度适宜的时候我们看到的将是4个LED同时显示。实现方法:TAB 存放着“0-9,“A-F,“-,共17个的码字,我们让R0指向7A内存区,DPTR指向TAB的首址,通过MOVC A,A+DPTR完成查字形编码表的工作。然后对R0循环扫描四次,送到显示器就完成了7AH-7DH中内容的显示。位选使用R6,先赋值为#0FEH,然后逐个左移,左移四次就完成了四个数码管的轮流点亮,流程如图4-1所示。复位状态字型码送缓冲区取第一位待显数取一位显示数据查表得段码送入P0口NY4位显示完了?输出位码到P2口延时1ms显示缓冲区指针加1 图4-1 4.2 按键扫描设计 程序开始后,进行按键扫描,检测是否有按键

8、按下。当有按键被按下,为了消除抖动现象,对按键按下进行两个显示的延时操作,直到按键闭合了,对相应的按键取值,送给单片机端口进行控制;当没有按键按下,给按键取值后,跳转回按键的扫描程序。为了更形象的说明设计思路,下面是按键扫描的流程图,如图4-2所示。开始初始化查键调显示子程序N有键闭合?取键值Y去抖动N有键闭合?YY启动键?YN暂停键?图4-2NYN复位键?4.3 中断程序设计 当中断发生时候,TF0自动置1,开始进入中断效劳程序,当变量R4的值加到20的时候就表示定时1S到,此时将调入进制转换程序来对数值进行转换,并将TR1中的内容清零,以免下次计数发生重叠。流程图如图4-3所示。中断效劳开

9、始N1S定时到?Y中断返回调进制转换子程序储存脉冲个数值T1和R4清0图4-3第5章 系统调试5.1 系统调试与仿真在软件keil uvision中调试,编绎程序。每次新建文件都要改晶振频率为12MHz,把Create HEX File打勾。所建工程弹出的对话框中选择AT89C51处理器。调试程序要按顺一步一步来。第一步,首先把显示子程序生成HEX类型的文件,添加到Proteus中的AT89C51单片机仿真,仿真没到达要求,就在keil uvision中修改编绎程序,再仿真,直到仿真成功。第二步,显示子程序修改正确后,在其根底上修改成按键扫描程序,再生HEX类型文件,把其添加到Proteus中

10、的AT89C51单片机进仿真,仿真没到达要求,就在keil uvision中修改编绎程序,再仿真,直到仿真成功。第三步,按键扫描子程序修改正确后,就中断程序参加其中,然后同第一,二步一样仿真,直至成功。5.2 调试与仿真中产生的问题 我们遇到的第一个问题是:显示器显示的是乱码。我们分析,应该是LED显示器的段代码错了。于是LED显示器的段代码改成了共阴极的,结果,显示还是不正确。于是我们上网查资料才知道要在MOVC A,A+DPTR加一个指令ORL P2,#0FH。这条指令在写段码前把使用位选信号都关闭,这样不会有余辉。不加这条指令在实际电路中会不该亮的笔段也有点亮,在仿真时就会显示不正常。所

11、以,再别了这条指令后仿真成功了。5.3 仿真截图1、通电后和复位后的截图一样,如图5-3.1所示。 2、起动后的截图脉冲频率是43Hz,如图5-3.2所示。3、 不动频率代表电动机不同的转速,如下面两个截图脉冲频率分别为21Hz和17Hz。第6章 总结与体会通过这次课程设计,我学到了很多。在课程设计的软件设计中,编程是个难题。一开始,什么头绪都没有。经过老师的指导我们才学会了编一个大程序的步骤。就像我们这个课题,就要先编显示子程序,然后编按键扫描程,最后才把中断程序加进去构成总的程序。而且在这其中,每编完一个程序就要把它加到Proteus中仿真。当仿真正确了,就说明这个程序编对了,才可以进行下

12、一步。所以,我觉得在单片机的开发与应用中,仿真起到了不可替代的作用。当然,在这次课程设计中我遇到的麻烦还是挺多的,但在百度上很多都能找到答案。像在Proteus中找元件不知其代号,CA是共阴还是共阳等等,都可以在百度上搜索一下。因此,我们要学会充分的利用网上资源。从一开始接到这个课题,我不得不认真在书上和网上找资料。这使得我对汇编语言愈的熟悉,也加深了我对以前所学单片机知识的和理解。在编绎与仿真时要用到Proteus和keil uvision,而我对这两个软件都不太熟悉。但在次课设计后,我已经可以熟练的操作这两个软件了。最后在写报告时,画流程图又难住我了。不过,我又是通过网上查找,找到了用Wo

13、rd画流程图的方法。总之,通过这次课程设计,我加深了对所学知识的理解,学会了编大程序的方法和步骤,熟练了对Proteus和keil uvision操等等。参考文献1 王迎旭.单片机原理与应用.2版.北京:机械工业出版社,20212 孙胜麟,郭照南.电子技术根底实验与仿真.长沙:中南大学出版 社,20213 阎石.数字电子技术根底.北京:高等教育出版社,20064 郭照南.电子技术与EDA技术课程设计.长沙:中南大学出版社, 20215 许立梓,何小敏,陈玮,高明琴.微型计算机原理及应用.北京:机 械工业出版社,2003 附录A 总硬件设计图附录B 程序清单 ORG 0000H AJMP MIA

14、N ;转主程序入口MAIN ORG 000BH ;T0的中断入口 LJMP DVT0 ;定时器T0中断 ORG 0030H ; 设置中断向量MIAN: MOV SP,#60H ;设置堆栈区 MOV 30H,#0 ;计数单元清零 MOV 31H,#0 MOV 7AH,#11H MOV 7BH,#11H MOV 7CH,#11H MOV 7DH,#11H ;复位状态字型码送缓冲区 MOV R4,#20 MOV TMOD,#51H ;设置T0、T1工作方式字 MOV TH0,#3CH MOV TL0,#0B0H ;给T0设置初值15536 MOV TH1,#0 MOV TL1,#0 ;T1置初值LO

15、OP1: LCALL DIS ;动态扫描显示 LCALL KEY1 ;查键 JNZ KEY2 ;A不等于0,说明有键按下,那么转到 AJMP LOOP1 ;A等于0,说明无键按下,那么转到 KEY2: LCALL DIS LCALL DIS LCALL KEY1 JNZ KEY3 LJMP LOOP1KEY3: JNB P1.0,LP0Q JNB P1.1,LP1T JNB P1.2,LP2F LJMP LOOP1LP2F: CLR ET1 ;禁止T1中断 CLR TR1 ;T1停止工作 CLR EA ;关中断 CLR TR0 ;停止定时器T0 CLR ET1 CLR TF0 LJMP MIA

16、N LP1T:CLR TR1 ;计数器T1停止工作 CLR TR0 ;停止定时器T0 CLR ET0 ;禁止T0中断 CLR ET1 ;禁止T1中断 CLR EA ;关中断 CLR TF0 ; LJMP LOOP1 LP0Q: MOV 7AH,#00H MOV 7BH,#00H MOV 7CH,#00H MOV 7DH,#00H SETB TR0 ;启动定时器T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开放中断,并设置中断方式 SETB TR1 ;计数器T1开始工作 LJMP LOOP1KEY1: MOV P1,#0FFH ;扫描显示初始化 MOV A,P1 CPL A A

17、NL A,#07HRET ;-驱动LED显示器的程序-DIS: MOV DPTR,#TAB DIS1: MOV R0,#7AH MOV R1,#01H MOV R2,#04HDIS2: MOV P2,#0 MOV A,R0 ;四位轮流扫描显示 MOVC A,A+DPTR ORL P2,#0FH CPL A MOV P0,A MOV A,R1 MOV P2,A LCALL DAY INC R0 RL A MOV R1,A DJNZ R2,DIS2RETTAB: DB 03FH,06H,05BH,4FH,66H,6DH,7DH,07H ; DB 7FH,6FH,77H,7CH,39H,5EH,79

18、H,71H,00H,40H ;共阴极代码DAY: MOV R6,#1D1: MOV R7,#248D2: NOP NOP DJNZ R7,D2 DJNZ R6,D1RET;-定时器T0中断效劳程序-DVT0: PUSH PSW ;T0中断程序 PUSH ACC ;相关内容入栈保护 MOV TH0,#3CH MOV TL0,#0B0H ;T0重装初值 DJNZ R4,RTNO ;判断是否完成1S定时 MOV R4,#20 CLR ET0 ;禁止T0中断 CLR TR1 ;1秒定时到,关闭计数器 CLR EA CLR TR0 ;T0停止工作 MOV 31H,TH1 MOV 30H,TL1 LCAL

19、L HEX2BCD MOV TH1,#0 MOV TL1,#0 ;计数器T1清零,准备下一轮计数 SETB ET0 SETB TR1 ;启动定时器1 SETB EA SETB TR0 ;启动定时器0RTNO:POP ACC POP PSWRETI ;-数码转化子程序-HEX2BCD:PUSH PSW SETB RS0 SETB RS1 ;选存放器组3 MOV A,30H MOV B,#60 MUL AB MOV 31H,B MOV 30H,A ;存数 LCALL CHANGE ;二进制到BCD码的转化 MOV A, 33H ;以下是将转化后的BCD码存入相应缓冲区 ANL A,#0FH MOV 7BH,A MOV A,33H SWAP A ANL A,#0FH MOV 7AH,A MOV A,32H ANL A,#0FH MOV 7DH,A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论