课程设计课程名称单片机原理与应用课程设计课题名称数字转速表设计专业测控技术班级1301学号201301200120姓名郭鹏指导老师李晓秀、汪超、林国汉等2016年2月29日电气信息学院课程设计任务书课题名称数字转速表设计姓名郭鹏专业测控技术班级1301 学号20指导老师李晓秀课程设计时间2016年2月29日-2016年3月11日一、任务及要求设计任务:本课题要求以MCS-51系列单片机为核心,设计一个对脉冲转速信号进行检测(测速范围0~3000转/分)的数字转速表。
(1)具有方便的键盘操作(启动、暂停、复位)功能;(2)用四位LED数码管显示测量转速(十进制);设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4)应用系统的硬件和软件的调试。
二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。
周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。
周五进行答辩和设计结果检查。
三、参考资料1、王迎旭等.单片机原理及及应用[M]. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,2010目录1 总体设计方案 (1)1.1 课程设计任务与要求 (1)1.2 设计总体思路 (1)1.3 硬件电路基本框图 (1)2 硬件电路设计 (2)2.1 时钟电路的设计 (2)2.2 复位电路的设计 (2)2.3 键盘电路的设计 (3)2.4 显示电路的设计 (3)3 软件的设计方案 (4)3.1 主程序模块 (4)3.2 键盘程序模块 (5)3.3定时计数中断程序模块 (6)4 仿真和实验调试 (7)4.1 调试过程 (7)4.2 调试结果 (7)5 总结与体会 (9)参考资料 (10)附录A 硬件电路图 (11)附录B 程序清单 (11)1 总体设计方案1.1 课程设计任务与要求设计任务:本课题要求以MCS-51系列单片机为核心,设计一个对脉冲转速信号进行检测(测速范围0~3000转/分)的数字转速表。
(1)具有方便的键盘操作(启动、暂停、复位)功能;(2)用四位LED数码管显示测量转速(十进制);设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4)应用系统的硬件和软件的调试。
1.2 设计总体思路本课题要求以MCS-51系列单片机为核心,设计一个数字转速表对脉冲转速信号进行检测,能将所测量的转速在LED显示器以十进制数上显示,并具有方便的键盘操作(启动、停止、清零)功能。
单片机通过内部定时器T0和计数器T1对脉冲信号进行测速测速,范围0~3000转/分,转速表至少有启动、清零和停止三个操作按键,转速显示要求至少4位。
MCS-51单片机内有两个定时器、计数器T0和T1,利用其内部定时器T0设置为定时方式,且定时时间为1s。
计数器T1设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为m,则转速为60m(转/分)。
1.3 硬件电路基本框图硬件电路的结构框图如图1所示,包含时钟电路、复位电路、键盘电路和显示电路等。
图1 硬件电路的结构框图2 硬件电路设计2.1 时钟电路的设计MCS-51单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入和输出端,外接两个电容和一个晶振组成时钟电路。
本课题设计采用的电容C1和C2均为30pf,晶振的振荡频率为12MHz。
其电路图如图2所示。
图2 时钟电路图2.2 复位电路的设计本课题设计采用按键复位。
单片机的RST管脚接到一个电容和一个电阻上,电容接高电平电阻接低电平。
其中电容大小为30pf电阻大小为1K欧姆。
复位电路如图3所示。
图3 复位电路图2.3 键盘电路的设计因为按键较为简单,只有启动、复位和暂停三个按键,故本课题设计采用独立键盘的连接方式。
MCS-51单片机的P1.0~P1.2接口分别接上启动、暂停和复位键,键盘的另一端接高电平,再加一个上拉电阻。
键盘电路图如图4所示,上拉电阻的阻值均为1K欧姆。
图4 键盘电路图2.4 显示电路的设计根据课题设计的要求采用4位并联共阳极LED数码显示管作为显示器,其硬件电路连接是单片机P0.0~P0.7接到数码管的A~G这8个管脚,并且接入上拉电阻,其阻值全部为1K欧姆,P2.0~P2.3接74HC573的D0~D3端,74HC573的Q0~Q3端接数码管的控制端。
其电路图如图5所示。
图5 显示电路图3 软件的设计方案根据设计要求和设计思路,进行模块设计。
本课题共分为主程序模块、定时计数程序模块、数制转换模块,显示模块、转速测量模块。
3.1 主程序模块在主程序中对按键程序、显示程序、中断程序进行了初始化,然后调用显示程序以及进行查键处理,并判断是否有键按下,若无键按下返回主程序,若有键按下进行按键处理。
其流程图如图6所示。
图6 总程序流程图3.2 键盘程序模块在本次课程设计中,因为只设计了启动、停止和清零三个按键,故采用的是独立按键的连接方式。
按键程序的流程图如图6所示。
图6 键盘程序流程图3.3定时计数中断程序模块定时计数模块是在单片机的T1口采集到脉冲信号的个数后进行工作的,由定时器来完成1s定时,由计数器来完成对脉冲的计数,然后将所测脉冲个数乘以60即为转速。
定时计数流程图如图7所示。
图7 定时计数模块流程图4 仿真和实验调试4.1 调试过程本课题设计用的是keil软件和protues软件程序的编译和电路的仿真,keil软件既可以用C语言进行编译也可以用汇编语言进行编译,本课题设计采用了汇编语言。
Protues 提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
通过软件的仿真得到动态结果,从而分析设计上存在问题,进一步的进行设计的调试。
我们在按照课题设计要求连接好整个仿真电路后便开始编写程序,为了便于检查错误,我们分模块进行程序的编写和仿真。
首先在老师的帮助下我们编写了显示部分的程序,经过编译后没有错误,因为有老师的帮助,显示部分在仿真时进行的很顺利。
然后我们编写按键部分的程序,在编好后我们在自己的电脑上进行编译,但是因为我们keil软件安装方法错误无法进行编译,我们只能等第二天去实验室编译,在初步调试的时候,出现好多的问题,原来是没有在主程序进行初始化,在修改好程序重新编译后,我们的按键部分仿真也没有问题了,启动、暂停和复位键都能正常工作。
接下来我们就是编写中断部分的程序,同样也是在寝室编写好后去实验室编译的,软件提示编译没有错误,但是仿真的时候出现了大问题,我们的仿真完全没有用,我们又将程序反反复复检查了几遍,还是没有发现问题所在。
在和同学商量之后我们决定外接一个发光二极管来检查中断程序是否正,在将程序和仿真图都做了相应的修改后我们的仿真结果还是不行,这意味着中断程序出现问题,然而我们却无法检查出来,我们不得不求助于老师。
老师再仔细检查了程序后发现了问题,原来是因为我们太粗心将RETI错写成了RET导致中断无法运行,在解决了这个问题后以后,我们的仿真结果终于对了。
最后我们加入了进制转换的程序,最后我们的仿真结果完全符合课程设计的要求。
4.2 调试结果在实验过程中,一步一步嵌套来完成,先完成显示部分的调试与仿真,其仿真结果如图8所示。
接着将按键部分的程序加进去,完成按键与显示的调试与仿真,按下相应的键显示出对应的值,按下启动键显示“4444”,按下暂停键显示“————”,按下复位键显示“0000”。
最后编好中断与进制转换部分的程序,完成整个设计的任务与要求,检测出脉冲的转速并将其进行显示,脉冲给定为60HZ,其仿真结果图9所示。
图8显示部分仿真结果图9 给定60Hz脉冲计数结果5 总结与体会虽然只有短短两个星期的课程设计,但是在这两周时间里我却学到了许许多多的知识,这些知识包括对书本上知识的回顾和巩固,同时也锻炼了自己的动手能力。
从开始对这个课题的无处下手,到最后的做出了方案和实现了课题要求,这个过程里有太多的艰辛和汗水。
当时刚拿到这个课题的时候就觉得头大,一点思路都没有,看见大家都在开始动手做了以后,自己就变得更加焦急了,就感觉什么都不会,没有一点点的思路。
看书,查资料,也只是看到了一些关于这方面的消息,后来就去问同学,还好同学里有的已经做了出来,就稍给我进行了讲解,然后就感觉豁然开朗,一些明白了许多,就开始着手去设计总体的思路和方案。
在这个时候,不断的温故知新,不断的去摸索新的知识,所以说这个课程设计的过程是一个学习的过程,也是一个复习的过程,能让自己更加熟悉的掌握以前学过的知识,并且把这些知识变为运用,自己动手去做出成果。
单片机是我们学电气必须要掌握的,所以我就更加珍惜这次的单片机课程设计,不仅可以让自己的书本知识得到巩固,也可以给自己增加好多的知识。
学好单片机,对以后的学习和工作,都会有很重要的作用。
看到最后自己的设计成果,心里还是很有成就感的,虽然说真的很不容易,但是这个过程,却也很让人享受。
增加了知识,还得到了锻炼动手能力的机会。
很感谢这次课程设计时老师和同学给我的帮助,让我明白了许多,也学到了很多知识,而且这些知识对我以后的工作都很重要,时间过的真快,两周课程设计就要结束了,但是我可以对我自己说我并没有虚度这些时光,我也在不断的学习和努力。
这两周大家都辛苦啦,也很感谢老师的指导。
参考资料1、王迎旭等.单片机原理及及应用[M]. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,2010附录A 硬件电路图图12 硬件电路图附录B 程序清单ORG 0000HAJMP MAINORG 000BHLJMP DVT0ORG 0030HMAIN: MOV SP, #50HMOV 30H,#0MOV 31H,#0MOV 7AH,#11HMOV 7BH,#11HMOV 7CH,#11HMOV 7DH,#11HMOV R4,#20MOV TMOD,#51hMOV TH0,#3CHMOV TL0,#0B0HMOV TH1,#0MOV TL1,#0SETB ET0SETB TR0SETB EACLR P3.7 LOOP: LCALL DISMOV P1,#0FFHMOV A,P1CPL AANL A,#07HJZ LOOPKEY1: LCALL DISLCALL DISMOV P1,#0FFHMOV A,P1CPL AANL A,#07HJZ LOOPKEY2: JNB P1.0,LOOP0JNB P1.1,LOOP1JNB P1.2,LOOP2SJMP LOOP LOOP0: MOV 7AH,#4HMOV 7BH,#4HMOV 7CH,#4HMOV 7DH,#4HSETB TR0SETB TR1LJMP LOOP LOOP1: MOV 7AH,#10HMOV 7BH,#10HMOV 7CH,#10HMOV 7DH,#10HCLR TR1CLR TR0CLR ET0CLR ET1CLR EACLR TF0LJMP LOOP LOOP2: MOV 7AH,#0HMOV 7BH,#0HMOV 7CH,#0HMOV 7DH,#0HCLR ET1CLR TR1CLR EACLR ET1CLR TF0LJMP LOOPDIS: MOV DPTR, #TABMOV R0,#7AHMOV R2,#01HMOV R3,#4DIS1: MOV A,R2MOV P2,ARL AMOV R2,AMOV A,@R0MOVC A,@A+DPTRMOV P0,AACALL DELAYINC R0DJNZ R3,DIS1RETTAB: DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0F8H DB 80H,98H,0BFHDELAY: MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETDVT0: MOV TH0,#3CHMOV TL0,#0B0HDJNZ R4,RTNOMOV R4,#20CPL P3.7CLR TR1CLR EACLR TR0MOV 31H,TH1MOV 30H,TL1LCALL HEX2BCDMOV TH1,#0MOV TL1,#0SETB TR1SETB EASETB TR0RTNO: RETIHEX2BCD: PUSH PSWSETB RS0SETB RS1MOV B,#60MUL ABMOV 31H,BMOV 30H,ALCALL CHANGEMOV A,33HANL A,#0FHMOV 7BH,AMOV A,33HSW AP AANL A,#0FHMOV 7AH,AMOV A,32HANL A,#0FHMOV 7DH,AMOV A,32HSW AP AANL A,#0FHMOV 7CH,ACLR RS0CLR RS1POP PSWRET CHANGE:CLR AMOV 40H,AMOV 41H,AMOV R7,#16L0P4: MOV R0,#30HMOV R6,#02CLR CL0P2: MOV A,@R0RLC AMOV @R0,AINC R0DJNZ R6,L0P2MOV R1,#41HMOV R5,#02HL0P3: MOV A,@R1ADDC A,@R1DA AMOV @R1,ADEC R1DJNZ R5,L0P3DJNZ R7,L0P4MOV 33H,40HRET END电气信息学院课程设计评分标准。