当前位置:文档之家› 单片机,电子秒表计时器

单片机,电子秒表计时器

课程设计说明书课程名称:《单片机技术》设计题目:电子秒表计时器院(部):电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2013年5月17日课程设计任务书电子秒表计时器摘要:本次设计主要完成具备基本功能的电子秒表的理论和实践设计,此计时器系统使用AT89C51单片机为中心器件,由电源电路、时钟电路、复位电路、显示电路组成。

其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,硬件系统利用PROTEUS软件进行仿真,使得系统能够实现三个8位LED数码管显示,显示时间为0.0~99.9秒,能正确的进行计时,能同时进行五次计时,并能对所记录的时间进行查询,此系统易于仿真、制作简单且使用方便。

关键词:AT89C51、电子秒表、数码管显示、仿真目录1.设计背景 (1)1.1单片机简介 (1)1.2设计目的 (1)2.设计方案 (1)2.1方案一 (1)2.2方案二 (1)2.3综合比较 (2)3.方案实施 (2)3.1整体工作原理 (2)3.2硬件系统设计 (3)3.3软件程序设计 (5)3.4系统仿真 (5)3.5系统的制作过程 (6)4.结果与结论 (7)4.1结果 (7)4.2结论 (7)5.收获与致谢 (7)6.参考文献 (7)7.附件 (8)1. 设计背景1.1单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。

89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.2设计目的电子秒表是重要的记时工具,广泛运用于各行各业中。

作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点。

不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。

因此电子秒表常常用于体育竞赛及各种其他要求有较精确时间的各领域中。

其中开启、停止按键的使用方法与传统的机械计时器相同,即按一下开启按键,启动计时器开始计时,按一下停止按键计时终止。

而复位按键可以在任何情况下使用,即使在计时过程中,只要按一下复位按键,计时应立即终止,并对计时器清零。

2.设计方案2.1方案一静态显示,静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。

因而此设计中使用的显示位数使用了三个8位并行I/0口。

这种方法的优点是占用CPU时间少,显示便于检测和控制。

缺点是硬件电路比较复杂,成本较高。

2.2方案二动态显示,这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,将所有位数码管的段选线并连在一起,由段选线控制哪一位数码管有效。

选用数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮度比静态显示要差一些。

2.3综合比较本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。

其模块电路如图2-1所示。

时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。

按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。

显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O 使用时都是需要上拉电阻才能驱动数码管。

因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。

为了使电路简单化,本设计选用共阳数码管。

根据显示方式的不同,由以上两种方案的对比,选用静态显示方式。

图2.13. 方案实施3.1整体工作原理本系统采用89C51系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计数器,将软、硬件有机的结合起来。

其中软件系统采用汇编语言编写程序,包括显示程序,加1技术程序,演示程序,按键消抖程序等,硬件系统利用PROTEUS强大功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。

3.2硬件系统设计1.电源电路模块电源电路模块原理图如图3.2所示。

图3.1 电源电路图电源电路由桥堆、1个22uF电解电容、7805、1个100pF瓷片电容、一个电源指示灯和一个300欧姆电阻组成,通过电源电路实现整流、滤波和稳压的作用,能够输出5V 的稳定直流电压使单片机工作在稳定的5V直流激励下。

2.晶体振荡电路模块电路图如3.3所示。

AT89C51单片机内部的振荡电路是一个高增益反相器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

这里,我们选用52单片机12MHz的内部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF 之间取,这里取30P,接线时要晶体振荡器X1极可能接近单片机。

图3.2 晶体振荡电路3.复位电路模块复位模块电路图如图3.3所示。

采用上电+按键复位电路,上电后由于电容充电,使RST持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。

这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。

图3.3 复位电路4.硬件原理图设计的硬件原理图如图3.5所示。

由电源模块、复位模块、数码管模块以及时钟模块等组成。

图3.4 硬件原理图3.3软件程序设计1.软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。

把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。

应用系统的程序由包含多个模块的主程序和各种子程序组成。

各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数延时,计数和显示等,在具体需要时调用相应的模块即可。

功能描述:根据设计要求,显示时间为0.0-99.9秒,每0.1秒自动加1,另外设计一个“开始”键、一个“复位”键和一个“停止”键。

秒表可单独分别计时,且最多可计5次。

3.2主程序流程图单片机的程序可用汇编语言也可用C语言,为了提高使用汇编语言的能力,本设计特用了汇编语言编写程序,设计流程图如图3.5所示,具体程序见附件。

图3.5 主程序流程图3.4系统仿真此系统采用Proteus软件进行仿真,按下START键开始仿真,连续按五次STOP键停止计时,连续按下FANYE键可以显示出五次计时记录的时间,按下FUWEI键,可以使数码管复位,显示00.0,仿真图如3.6所示。

图3.6 仿真图3.5系统的制作过程在完成了软件设计与硬件仿真之后,便开始了系统的制作,此次制作用到的是万能板。

使用万能版需要注意:1.初步确定电源、底线的布局。

利用此板布置有贯穿整个板子的铜箔,应将其用作电源线和地线。

2.善于利用元器件的引脚。

万能版的焊接需要大量的跨接、跳线等,不要急于剪断元器件多余的引脚,有时候直接跨接到周围待连接的元器件引脚上会事半功倍。

在焊接时需要注意:先给焊盘预热,然后加锡,再撤走锡丝,最后拿走烙铁,整个过程应少于五秒,焊接完后要检查有无虚焊,连焊等现象,确保焊接质量。

另外在剪掉元件引脚时,应避免留有尖头,否则会产生自激现象,影响产品性能。

系统焊接结束之后,需要把程序烧到单片机上。

4. 结果与结论4.1结果按照理论上电路的连接方法,先仿真,仿真成功后做实物,可能是数码管的连线太多太乱,最终调试不成功,电源灯和数码管都不亮,在电路焊接的过程中应该有错误,因此又把器件从板子上拔下来重新焊接,这次电源灯亮了,但数码管仍然不亮,可能是由于电路连接不当致使数码管烧坏,为了使此次设计成功,老师又重新给了零件,我们又对板子进行了重新焊接,这次电源灯和数码管都能亮,但是数码管不受开始、复位等键的控制,由此判断是单片机烧坏,更换单片机,板子终于可以正常工作。

4.2结论经过这一次的课程设计,从搜索资料到硬件、软件的调试成功,每一步、每一个细节自己都经过思考,共同讨论各方案的比较选择和画图、做板和硬、软件的调试。

本次设计内容较多,关系到电路的设计与制作,以及程序的设计和两者的匹配组合,每一部分都要注意,每一部分都要严格要求,否则,就会出现错误,影响最后的结果。

本次设计还是存在着许多缺陷。

这块电路板不能随意查看记录的数据,而是必须在计完五次数据后才能依次的翻页查看,复位后所计数据便会丢失,不能翻看历史,所计数据组数不能满足现实需要。

还有很大的改进空间。

5. 收获与致谢通过这次设计我们学习了Keil、Proteus Isis等电子软件。

同时复习了单片机课程的知识,使我们对单片机更加深刻,更加热爱。

虽然短短的两周不能使我们的知识有特别独到的见解,但做出这个设计是我认识到学习的乐趣和合作的重要性。

感谢老师这两个星期对我们的敦敦教导。

没有老师的呕心沥血,我们也不会学到单片机这么实用的课程,这次课程设计让我懂得在以后的学习中一定要扎实刻苦,多听取别人的意见,多参考资料。

最后,衷心感谢老师对我的指导和帮助。

谢谢老师。

6. 参考文献[1] 张毅刚.单片机原理及应用.北京:高等教育出版社,2009.11[2] 杜树春.单片机C语言和汇编语言混合编程实例详解.北京:北京航空航天大学出版社,2006.6[3] 谢嘉奎.电子线路(第四版).北京:高等教育出版社,2004.[4] 臧春华.电子线路设计与应用.北京:高等教育出版社,2005.7. 附件附程序如下:D EQU 60HE EQU 61HF EQU 62HG EQU 63HH EQU 64HI EQU 65HORG 0000HLJMP MAINORG 000BH ;定时器T0的入口地址LJMP DINGSHIORG 0013H ;外部中断1的入口地址LJMP STOP1ORG 0030H ;主程序入口地址MAIN: MOV P0,#0C0H ;置初值MOV P2,#0C0HMOV P1,#0C0HMOV DPTR,#TABLE ;数据指针指向表头地址SETB EA ;开中断SETB EX0SETB EX1SETB ET0SETB PX0 ;设中断优先级SETB PX1MOV TMOD,#01H ;工作方式为方式1;******************************************** ;开始及计数程序;******************************************** START: MOV R0,#40HMOV R1,#50HMOV R2,#00HCLR P1.0MOV TH0,#0D8H ;置计数初始值MOV TL0,#0F0HMOV R3,#00HMOV R4,#00HMOV R7,#00HMOV B,#10MOV SP,#30HMOV D,#60HMOV E,#61HMOV F,#62HMOV G,#63HMOV I,#65HMOV R5,#05XUNHUAN: JB P1.7,START1 ;p1.7=0是开始LCALL DELAY10 ;按键消抖JB P1.7,XUNHUANJNB P1.7,$LJMP GN1LJMP XUNHUANSTART1: JB P3.0,XUNHUANLCALL DELAY10JB P3.0,XUNHUANJNB P3.0,$LCALL FANYELJMP XUNHUAN;******************************************** ;翻页模块;******************************************** FANYE: MOV A,@R0MOV R3,AMOV A,@R1MOV R4,ADEC R5CJNE R5,#04,LOP1MOV A,DMOV R7,ALJMP L1LOP1: CJNE R5,#03,LOP2MOV A,EMOV R7,ALJMP L1LOP2: CJNE R5,#02,LOP3MOV A,FMOV R7,ALJMP L1LOP3: CJNE R5,#01,LOP4MOV A,GMOV R7,ALJMP L1LOP4: CJNE R5,#00,FANYEMOV A,IMOV R7,ALJMP L1L1: INC R0INC R1INC R2CJNE R2,#5,LOOP2MOV R0,#40HMOV R2,#00HLOOP2:LCALL XIANSHIRET;******************************************** ;数码管记录程序;********************************************GN1: SETB TR0LOOP: CJNE R2,#05H,LOOPMOV R0,#40HMOV R1,#50HMOV R2,#00HCLR EAAJMP XUNHUAN;******************************************** ;1毫秒延时子程序;******************************************** DELAY1: MOV R6,#2DL1: MOV H,#248DJNZ H,$DJNZ R6,DL1RET;******************************************** ;10毫秒延时子程序;******************************************** DELAY10: MOV R6,#20DL2: MOV H,#248DJNZ R6,DL2RET;********************************************;外部中断1中断程序,停止模块;******************************************** STOP1 : PUSH ACCPUSH PSWLCALL DELAY10 ;延时10毫秒消抖JB P3.3, FAN1JNB P3.3,$MOV A, R3MOV @R0 , AMOV A, R4MOV @R1, ADEC R5CJNE R5, #04, LOP5MOV A, R7MOV D, ALJMP L4LOP5: CJNE R5, #03, LOP6MOV A, R7MOV E, ALJMP L4LOP6: CJNE R5, #02, LOP7MOV A, R7MOV F, ALJMP L4LOP7: CJNE R5, #01, LOP8MOV A, R7MOV G, ALJMP L4LOP8: CJNE R5, #00, STOP1MOV I,ALJMP L4L4: INC R0INC R1INC R2FAN1: POP PSWPOP ACCRETI;******************************************** ;显示子程序;******************************************** XIANSHI:MOV A ,R3 ;扫描十分位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P2 ,AMOV A ,R4 ;扫描个位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P0 ,AMOV A ,R7 ;扫描十位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P1 ,ARET;******************************************** ;定时器T0中断程序;******************************************** DINGSHI:PUSH ACCPUSH PSWMOV B,#10AJMP COUNTCOUNT: INC R3CJNE R3,#0AH,DH2MOV R3,#00HINC R4CJNE R4,#0AH,DH2MOV R4,#00HINC R7CJNE R7,#0AH,DH2MOV R7,#00HDH1: MOV TH0,#0D8HMOV TL0,#0F0HSETB TR0DH2: POP PSWPOP ACCLCALL XIANSHIRETITABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END附实物图如下:附元器件清单如下:。

相关主题