秒表时钟计时器课程设计.doc

上传人:laozhun 文档编号:4150295 上传时间:2023-04-07 格式:DOC 页数:31 大小:297.50KB
返回 下载 相关 举报
秒表时钟计时器课程设计.doc_第1页
第1页 / 共31页
秒表时钟计时器课程设计.doc_第2页
第2页 / 共31页
秒表时钟计时器课程设计.doc_第3页
第3页 / 共31页
秒表时钟计时器课程设计.doc_第4页
第4页 / 共31页
秒表时钟计时器课程设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《秒表时钟计时器课程设计.doc》由会员分享,可在线阅读,更多相关《秒表时钟计时器课程设计.doc(31页珍藏版)》请在三一办公上搜索。

1、江西理工大学应用科学学院微机控制系统课程设计报告 题 目: 秒表/时钟计时器 姓 名: 学 号: 专业班级: 指导教师: 李振凯 王忠锋 肖 清 完成时间: 2012年7月7日设计报告综合测试平时总评格式(10分)内容(10分)图表(5分)功能测试(35分)答辩(20分)考勤(20分)指导教师签名:摘 要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于

2、人为因素造成的误差和不公平性。本设计的多功能秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为0099秒,每秒自动加1,能正确地进行加、减(倒)计时,快加,快减,可以同时记录4个相对独立的时间,通过上翻下翻来查看这4个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,

3、在仿真中就可以观察到实际的工作状态。 关键字:单片机;多功能秒表;设计目录1 概述11.1设计任务11.2设计要求12 系统总体方案及硬件设计22.1系统总体方案22.2硬件电路设计22.2.1单片机简介22.2.2电源电路32.2.3复位电路32.2.4显示电路42.2.5键盘电路43 软件设计53.1软件设计概述53.2程序流程图63.2.1主程序63.2.2加1程序73.2.3定时器1程序83.3程序模块设计93.3.1主程序93.3.2停止子程序133.3.3暂停记录子程序143.3.4加1子程序143.3.5显示子程序,采用动态显示153.3.6延时子程序153.3.7按键消抖程序1

4、64 Proteus软件仿真164.1功能简介164.2 keil编译164.3 PROTEUS仿真175 课程设计体会186 参考文献19附录20附录1:元件清单20附件2:原理图21附录3:原始程序221 概述1.1设计任务通过对本题目的设计掌握单片机控制系统的相关方法与技巧。学会单片机定时/计数器的使用。用AT89C51设计一个秒表/时钟计数器,并实现对应的功能。1.2设计要求(1)设置4个按键,当其中一个按下去时以每秒加1从0开始计时,即秒表开始/停止键,当另一个按键按下去是暂停计时,使秒表停留在原先的计时,第三个按键按下去时清零,第四个按键按下时则是以每100ms快速加1计时,即数码

5、显示管在原先的计数上快速加1。(2)将计时时间通过数码管进行显示。(3)写出详细的设计报告,给出全部电路和源程序。2 系统总体方案及硬件设计2.1系统总体方案本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在keil中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 单片机 外围 电路

6、电源 电路 显示电路 键盘电路 图1 系统电路原理2.2硬件电路设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等2.2.1单片机简介本系统设计采用AT89C51单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容(由于在微机原理中学过C-51的具体知识,这里不再详细说明)。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器。2.2.2电源电路电源电路是系统最基本的

7、部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。2.2.3复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。电路图如下:图2 复位电路2.2.4显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的

8、是数码管显示电路。用2个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路图如下所示:图3 显示电路2.2.5键盘电路在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口

9、,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0停止, P1.2快加,P1.3暂停记录,用外中断INT0开始,另外用软件法消除抖动。电路图如下所示:图4 键盘电路3 软件设计3.1软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完

10、成一个明确的任务,实现某个具体的功能,如:加计数、减计数、延时、快加、快减,计数和显示等,在具体需要时调用相应的模块即可。功能描述:用2位LED数码显示秒表,显示时间为0099秒,每秒自动加1;一个开始键,一个复位键,一个暂停键,一个“快加”键;可同时记录四个相对独立的时间;查看四个不同的计时值。3.2程序流程图3.2.1主程序这里采用分支结构,通过对按键的扫描,判断要实现什么功能。如下所示:开始 初始化P1.0=0?P1.1=0?P1.2=0?P1.3=0?停止快加够4个?N暂停记录NNNNP1.0=0?N3.2.2加1程序(20H) A进位清零做加法到100?(20H)清零个位十位分开返回

11、Y3.2.3定时器1程序用定时器0实现定时1秒,定时器1实现定时10毫秒,定时初值都是0D8F0H,这里只写定时1秒的流程图,如下所示:压栈保护赋定时初值到1秒?调用加1程序调用显示程序中断返回Y3.3程序模块设计3.3.1主程序ORG0000HLJMP MAINORG000BHLJMPTIME1ORG 0013HLJMP ZHDUANORG001BHLJMPTIME10ORG0100HMAIN: MOV SP, #50H MOV TMOD, #11H MOVTH1,#0D8H ;定时10msMOVTL1, #0F0H MOVTH0,#0D8H ;定时10msMOVTL0, #0F0HMOV2

12、0H, #00H ; BIN SECOND MOV30H, #00H ; SECOND MOV31H, #00HMOV40H, #100 MOV 71H,#00H ;记录暂存区 MOV 72H, #00H MOV 73H, #00H MOV 74H, #00H MOV 50H, #04H MOV 51H, #04H MOV R1, #71H SETB EA SETB EX1 SETB ET1 SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOVP0, #0FFH CLRTR0 CLRTR1 CLR 7FHML1:ACALLDISPSTART: JB P1

13、.0,L1 ; P1.0=0,停止 ACALL DELAY10 JB P1.0, L1 JNB P1.0, $ LJMP STOPL1: JB P1.1,L2 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIANL2: JB P1.2,L3 ; P1.2=0,快加 ACALL DELAY10 JB P1.2, L3 JNB P1.2, $ LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,暂停记录 ACALL DELAY10 JB P1.3, L4 JNB P1.3, $ LJMP JILUL4: JB P1.4,L5 ACALL D

14、ELAY10 JB P1.4, L5 JNB P1.4, $ LJMP XFANL5: JB P1.5,L ACALL DELAY10 JB P1.5, L JNB P1.5, $ LJMP SHFANL: SJMP HERESTOP: CLR TR0 ;停止程序 CLR TR1 ACALL DISP SJMP HEREJILU : MOV A,20H ;暂停记录程序 MOV R1, A INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOPXFAN: MOV A,R1 MOV 20H, A MOV B,

15、 #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H SJMP HERESHFAN: MOV A,R1 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP DEC R1 DJNZ 50H, HERE MOV R1, #74H MOV 50H, #04H SJMP HEREKJIAN: SETB TR1 CLR TR0 HEE1: JNB TF1, HEE1 CLR TF1 ACALL J

16、IAN1 ACALL DISP JNB P1.0, STOP SJMP HEE1KJIA: SETB TR1 ;快加程序 CLR TR0HEE: JNB TF1, HEE CLR TF1 ACALL JIA1 ACALL DISP JNB P1.0, STOP SJMP HEEHERE: LJMP ML1ZHDUAN: SETB TR0 ;启动定时器0 CLR TR1 RETITIME1:PUSH ACC ;定时1秒 PUSH PSW MOVTH0, #0D8H MOVTL0, #0F0H DJNZ40H, RET0 LCALL JIA1 LCALL DISPMOV40H, #100RET0:

17、 POP PSW POP ACC RETITIME10: PUSH ACC ;定时10毫秒 PUSH PSW MOVTH0, #0D8H MOVTL0, #0F0HRET1: POP PSW POP ACC RETIJIA1: MOVA,20H ;加1CLR CINC ACJNE A, #100, GO1MOV 20H, #00H RETGO1: MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RETJIAN1: MOVA,20H ;减1 CLR CDEC ACJNE A, #00, GO2MOV 20H, #99 RETGO2: MOV

18、 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RETDISP: MOVR0,#30H ;显示 MOVR3, #0FEH MOVA, R3PLAY: MOV P2, A MOV A,R0 MOV DPTR, #DSEG1 MOVC A,A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.2, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1: MOVR7, #05HDL: MOVR6, #0FFHDL6: DJNZR6, $ DJNZR

19、7, DL RETDELAY10:MOV R4,#14H ;延时10毫秒DL00: MOV R5, #0FFHDL11: DJNZ R5, DL11 DJNZ R4, DL00 RETDSEG1: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FHEND3.3.2停止子程序按键后,使秒表停止,即关闭定时器0,1,程序如下:STOP: CLR TR0 CLR TR1;关闭定时器0,1 ACALL DISP;显示3.3.3暂停记录子程序 按键结束后,将此时显示内存中的数送寄存器中保存,并通过条件转移指令判断是否存够4个数,若存够则停止,否则继

20、续。JILU : MOV A,20H MOV R1, A INC R1 DJNZ 50H, HERE;是否够四个数? MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOP;够4个数停止3.3.4加1子程序此程序只为简单的加1,并判断是否到100?到则从0开始,否则继续,另外将显示内存中的数个位十位分开,以便于动态显示。JIA1: MOVA,20H ;CLR CINC ACJNE A, #100, GO1;是否加到100?MOV 20H, #00H RETGO1: MOV 20H, A;将个位十位分开显示 MOV B, #0AH DIV AB MO

21、V 31H, A MOV 30H, B RET3.3.5显示子程序,采用动态显示DISP: MOVR0,#30H MOVR3, #0FEH MOVA, R3PLAY: MOV P2, A MOV A,R0 MOV DPTR, #DSEG1 MOVC A,A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.2, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1: MOVR7, #05HDL: MOVR6, #0FFHDL6: DJNZR6, $ DJNZR7, DL RET3.3.6延时

22、子程序例如延时10ms程序:DELAY10:MOV R4,#14H DL00: MOV R5, #0FFHDL11: DJNZ R5, DL11 DJNZ R4, DL00 RET3.3.7按键消抖程序延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。L1: JB P1.1,L2 ; P1.1=0,快减 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIAN4 Proteus软件仿真4.1功能简介功能描述如下:连通电源后,按开始键,秒表正常运行;按暂停记录键,记录4个数,上翻下翻键可以

23、查看记录的4个数;停止键可使暂停;快加快减键可以实现快加快减功能,至停止键被按下;复位键可使系统复位。4.2 keil编译将所编写的汇编语言程序另存为*.ASM 文件,并在keil中编译生成*.hex文件以备使用。图5keil编译图4.3 PROTEUS仿真用PROTEUS将编译生成的 秒表.HEX 文件下到单片机中,点击运行按相应的操作键即可看到下图的效果:图6部分仿真结果A图7 部分仿真结果B5 课程设计体会经过一个星期的课程设计,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时激情高涨到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。在老师的指导下,我顺利完成了课程

24、设计。心得体会如下:1、将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻。对程序的编译过程了解透彻。2、本次课程设计以自己设计为主,因此培养了学习的积极性,让我能够独立去分析问题、发现问题、解决问题,更增强我与老师同学交流沟通和合作完成任务的能力。3、由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEUS和WAVE等的基本知识。程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。4、由于水平有限,实验程序运行有一定的限制,望见谅。总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力

25、,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,虽然程序可能有一定的浪费资源,且较罗嗦,但这需要在实践中慢慢提高,还希望老师能够多多指导,促进我不断的进步。6 参考文献【1】李振凯。控制系统综合设计指导书。赣州。江西理工大学应用科学学院,2010【2】潘永雄。新编单片机原理与应用。西安。西安科技大学出版社。2007【3】潘新民。王艳芳。微型计算机控制技术。北京。电子工业出版社。2011【4】周立功.单片机实验与实践北京航空航天大学出版社,2004.【5】黄正谨.综合电子设计与实践东南大学大学出版社,2002-3. 【6】百度。百度文库。北京。附录附录1:元件清单元件名称元件代号数量数码

26、管7SEG-MPX2-CC1单片机AT89C511按键BUTTON4电容GENELECT10U16V1电阻RES1排阻RESPACK-81附件2:原理图附录3:原始程序ORG0000HLJMP MAINORG000BHLJMPTIME1ORG 0013HLJMP ZHDUANORG001BHLJMPTIME10ORG0100HMAIN: MOV SP, #50H MOV TMOD, #11H MOVTH1,#0D8H ;定时10msMOVTL1, #0F0H MOVTH0,#0D8H ;定时10msMOVTL0, #0F0HMOV20H, #00H ; BIN SECOND MOV30H, #

27、00H ; SECOND MOV31H, #00HMOV40H, #100 MOV 71H,#00H ;记录暂存区 MOV 72H, #00H MOV 73H, #00H MOV 74H, #00H MOV 50H, #04H MOV 51H, #04H MOV R1, #71H SETB EA SETB EX1 SETB ET1 SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOVP0, #0FFH CLRTR0 CLRTR1 CLR 7FHML1:ACALLDISPSTART: JB P1.0,L1 ; P1.0=0,停止 ACALL DELAY10

28、 JB P1.0, L1 JNB P1.0, $ LJMP STOPL1: JB P1.1,L2 ; P1.1=0,快减 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIANL2: JB P1.2,L3 ; P1.2=0,快加 ACALL DELAY10 JB P1.2, L3 JNB P1.2, $ LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,暂停记录 ACALL DELAY10 JB P1.3, L4 JNB P1.3, $ LJMP JILUL4: JB P1.4,L5 ACALL DELAY10 JB P1.4, L5

29、JNB P1.4, $ LJMP XFANL5: JB P1.5,L ACALL DELAY10 JB P1.5, L JNB P1.5, $ LJMP SHFANL: SJMP HERESTOP: CLR TR0 ;停止程序 CLR TR1 ACALL DISP SJMP HEREJILU : MOV A,20H ;暂停记录程序 MOV R1, A INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOPXFAN: MOV A,R1 MOV 20H, A MOV B, #0AH DIV AB MOV 31

30、H, A MOV 30H, B LCALL DISP INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H SJMP HERESHFAN: MOV A,R1 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP DEC R1 DJNZ 50H, HERE MOV R1, #74H MOV 50H, #04H SJMP HEREKJIAN: SETB TR1 ;快减程序 CLR TR0 HEE1: JNB TF1, HEE1 CLR TF1 ACALL JIAN1 ACALL DI

31、SP JNB P1.0, STOP SJMP HEE1KJIA: SETB TR1 ;快加程序 CLR TR0HEE: JNB TF1, HEE CLR TF1 ACALL JIA1 ACALL DISP JNB P1.0, STOP SJMP HEEHERE: LJMP ML1ZHDUAN: SETB TR0 ;启动定时器0 CLR TR1 RETITIME1:PUSH ACC ;定时1秒 PUSH PSW MOVTH0, #0D8H MOVTL0, #0F0H DJNZ40H, RET0 LCALL JIA1 LCALL DISPMOV40H, #100RET0: POP PSW POP ACC RETITIME10: PUSH ACC ;定时10毫秒 PUSH PSW MOVTH0, #0D8H MOVTL0, #0F0HRET1: POP PSW POP ACC RETIJIA1: MOVA,20H ;加1CLR CINC ACJNE A, #100, GO1MOV 20H, #00H RETGO1: MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RETJIAN1: MOVA,20H CLR CDEC ACJNE A, #00, GO2MOV 20H, #99 RETGO2: MOV

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号