《本科毕业设计-单片机--单片机的秒表系统设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计-单片机--单片机的秒表系统设计.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机的秒表系统设计提供全套毕业论文,各专业都有单片机课程设计单片机的秒表系统设计姓 名:专 业:通信工程2011级学 号:辅导老师:西南石油大学电气信息学院通信工程14目录1 设计要求及目的22.硬件设计22.1 AT89C51单片机简介22.2设计思路32.3硬件电路设计33.2源程序:64系统调试与仿真104.1仿真软件简介104.2仿真调试115 总结131 设计要求及目的1.1课题要求本课题是基于单片机的秒表系统设计,它的具体要求有以下几点:(1) 用单片机AT89C51实现;(2) 以0.1秒为最小单位进行显示;(3) 有清零、开始、停止功能、每到一秒有声音提示;2.硬件设计2.1
2、 AT89C51单片机简介 AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与89C51引脚和指令系统完全兼容。引脚分别如图2.1所示。图2.1 单片机引脚分布图图2.1所示的单片机是引脚双列直插封装方式,电源引脚40脚与接地脚20。P0口作输入口使用时,应先向口锁存器写入1。P1口是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓存可驱动4个TTL输入。P2口是一个带有内部上拉电阻的8
3、位双向I/O端口。P3口也是一个带有内部上拉电阻的8位双向I/O端口,P3端口还用于一些复用功能。2.2设计思路这次的试验要求进行计时并且在数码管上显示时间,先要基本了解硬件内在结构,确定用p2并行端口进行数码管控制输入,使用P1.6,P1.5,P1.4进行选择0.1秒位,秒位,十位秒位,以P3.0为开始控制,P3.1为停止控制,P3.2为清零控制。 本次实验设计的基本思路是要求借助AT89C51单片机做出一个0-59.9s的秒表从十位秒到0.1位秒数这些计时的位数是存在一个内嵌的结构,就是0.1秒位满足条件然后进行跳位使秒位加一的过程,当0.1s到0.9s时该位自动清零并且秒位加一,秒位达到
4、9时也自动清零并向十秒位加一。当计数超过范围是所有数码管全部清零重新计数。其次开始控制,停止控制,清零控制等功能,我们采用蜂鸣器进行提示,该信号由P1.0输出由7406非门与外加电源驱动,通过一个延时子程序加以控制。最后就是根据硬件的条件进行编程,要求软硬件相互兼容。这也是设计的关键之处。因此需查阅相关书籍。2.3硬件电路设计(1)时钟电路与复位电路 利用12分频的晶振的一个机器周期为一微妙,通过循环延时产生0.1秒的延时,晶振电路原理及单片机复位电路图如图2.2所示。 图2.2 时钟与复位电路图单片机的时钟信号用来提供单片机内各种微操作的时间基准,89C51片内设有一个由反向放大器所构成的振
5、荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。对于复位操作,我们采用手动复位,通过按钮开关使单片机进入复位状态,这是单片机能否正常工作的关键。 (2)硬件电路设计 使用proteus软件设计的硬件电路包含了三个功能控制键和一个单片机复位按钮及蜂鸣器控制开关。具体如图2.3所示。图2.3 硬件电路连接图时钟电路与复位电路已在前边介绍,在此主要介绍端口电路,对于外显电路的设计我们采用四位数码管,事实上根据要求只用到三位,我们
6、利用p1.4、p1.5、p1.6对数码管进行位选。对于按钮开关电路,我们利用p3.0、p3.1、p3.2分别作为开始、停止及清零功能的电路接口。对于声音提示我们采用蜂鸣器装置,信号由p1.0口接入经过非门和驱动电源构成。 3软件设计 3.1程序设计 根据课题内容,可做出主程序流程图如图3.1所示。开 始有进位吗?初始化有暂停指令吗?Y有清零指令吗?0.1秒位加一NNNY有进位吗?NY秒位加一十秒位加一Y有进位吗?NY声音提示图3.1 主程序流程图 流程图体现着设计程序的思路程序,开始后首先进行数据初始化然后是条件判断满足条件或不满足则进行对应的处理,如首先依次判断是否暂停是否清零,然后十分之一
7、妙位计数,再判断是否进位,若是秒位就加一,秒位加一后进行声音提示,接着再判断是否有进位,若有则十秒位加一,若十秒位产生进位则重新计时。3.2源程序:HAOMIAO EQU 34HMIAO EQU 35HSHIMIAO EQU 36HORG 0000HAJMP STARTORG 0030HSTART: CLR C SETB P1.6 SETB P1.5 SETB P1.4 MOV HAOMIAO,#0 MOV MIAO,#0 MOV SHIMIAO,#0 MOV DPTR,#TABLE MOV A,#00H MOVC A,A+DPTR CLR P1.6 MOV P2,A MOV A,#00H M
8、OVC A,A+DPTR CLR P1.4 MOV P2,A MOV DPTR,#TABLE1 MOV A,#00H MOVC A,A+DPTR CLR P1.5 MOV P2,A LCALL KAISHI LCALL MAIN SHIWEI : SETB P1.5 MOV DPTR,#TABLE ;十秒位显示 MOV MIAO,#0 ;使秒位从零位重新循环 INC SHIMIAO MOV A,SHIMIAO CLR C SUBB A,#6 JZ START AJMP MAIN RET TINGZHI: MOV A,#00H ;判断是否有清零指 MOV A,P3 ANL A,#04H JZ S
9、TART MOV A,#00H ;判断是否有停止指令 MOV A,P3 CLR C ANL A,#02H LCALL YANSHI JZ MAIN LJMP TINGZHI START1 : LJMP START SHIWEI1: LJMP SHIWEI MAIN : SETB P1.5 SETB P1.4 SETB P1.6 MOV A,#00H ; 判断是否有清零指令 MOV A,P3 ANL A,#04H JZ START1 MOV A,#00H ; 判断是否有停止指令 MOV A,P3 CLR C ANL A,#02H JZ TINGZHI MOV DPTR,#TABLE ; 0.1位
10、秒显示 I NC HAOMIAO ;加一,可查下一位数据 MOV A, HAOMIAO ; 判断是否进位 CLR C SUBB A,#10 JZ MIAOZHEN LCALL YANSHI ;延时0.1秒 AJMP MAIN RET ;继续计时MIAOZHEN: SETB P1.4 MOV DPTR,#TABLE1 ;秒位显示 MOV HAOMIAO,#0 ;使0.1秒从零重新循环 INC MIAO ;加一,可查下一位数据 MOV A,MIAO ;判断是否进位 CLR C SUBB A,#10 JZ SHIWEI1 LCALL SND AJMP MAIN ;返回0.1秒计YANSHI: MOV
11、 R6,#30 DL2: MOV A,#00H ;判断是否有清零指令 MOV A,P3 ANL A,#04H JZ START1 MOV DPTR,#TABLE MOV A,SHIMIAO MOVC A,A+DPTR CLR P1.6 MOV P2,A ACALL YIHAOMIAO SETB P1.6 MOV A,HAOMIAO MOVC A,A+DPTR CLR P1.4 MOV P2,A ACALL YIHAOMIAO SETB P1.4 MOV DPTR,#TABLE1 MOV A,MIAO MOVC A,A+DPTR CLR P1.5 MOV P2,A ACALL YIHAOMIAO
12、 SETB P1.5 DJNZ R6,DL2 RET YIHAOMIAO: MOV R7,#250 CV:NOP NOP DJNZ R7,CV RET KAISHI: MOV A,#0 MOV A,P3 ANL A,#01H JNZ KAISHI RETSND: SETB P1.0 MOV R1,#1EHDL: MOV R0,#0F9HDL1: DJNZ R0,DL1 DJNZ R1,DL CLR P1.0 RET TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FH;0,1,2,3,4,5,6,7,8,9TABLE1:DB0BFH,086H,0DB
13、H,0CFH,0E6H,0EDH,0FDH, 087H,0FFH,0EFH END 4系统调试与仿真4.1仿真软件简介 (1)Proteus是英国Labcenter electronics公司出版的仿真软件。它不仅具有其它仿真软件的仿真功能,还能仿真单片机及外围器件,它是目前最好的仿真单片机及外围器件的工具。受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。 (2)在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程。Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运
14、行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能。 4.2仿真调试(1) 经过对程序的运行,并用wave软件编译后,用proteus仿真软件进行仿真,按下“开始”按钮之前,可以看到数码管上数字子显示为零如图4.1所示。图4.1 开始状态图由图4.1可以清楚的看到,秒表的初始状态,三位数码管都显示为零。进行位选的端口也都处于低电位,蜂鸣器也未工作。单片机复位端为低电平。(2) 当按下“开始”时秒表开始计时,秒表开始计时,其状态如图4.2所示。图4.2
15、开始计时图由图4.2可以看到,开始计时后,数码管数字在变化,图中为十分之一秒位的数码管显示情况。(3) 当按下“停止”时秒表停止计时,数码管显示的数字不再变化,如图4.3所示。图4.3 停止状态图由图4.3可以看到按下“停止”按钮后各个数码管的数字不再变化蜂鸣器也停止工作。(4) 当按下“清零”时秒表无论是在计时还是在停止状态都一律清零各数码管全为零,回到初始状态。5 总结做了这个设计才发现,所谓的“创新”有多难!虽然只是一个单片机的简单应用,但是还是查阅了非常多的资料,也觉得任何东西都真的是博大精深、学无止境。通过对各种资料的查阅、收集和整理,对原来所学的知识又有了一点巩固,也发现了更多的学科之间的联系。也更加体会到基础学科的重要性,虽然只是一个简单应用,但我还是觉得这是一个大工程,对于以后的毕业设计也有了一定的心理准备。学了一学期的单片机技术及原理,粗略了解了各方面的知识,自己这次动手做了实现单片机制作电子秒表的一小部分功能,自己设计和制作、仿真。真的觉得自己学到的东西太少了,还需要更多的知识去充实自己,让自己能在未来胜任自己的工作。
限制150内