收藏 分销(赏)

数字电子钟设计3546263878.docx

上传人:xrp****65 文档编号:6133351 上传时间:2024-11-28 格式:DOCX 页数:30 大小:507.06KB
下载 相关 举报
数字电子钟设计3546263878.docx_第1页
第1页 / 共30页
数字电子钟设计3546263878.docx_第2页
第2页 / 共30页
数字电子钟设计3546263878.docx_第3页
第3页 / 共30页
数字电子钟设计3546263878.docx_第4页
第4页 / 共30页
数字电子钟设计3546263878.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、 单片机技术课程设计说明书 数 字 电 子 钟 系 、 部: 电气与信息工程系 学生姓名: 指导教师: 王韧 职称 副教授 专 业: 电子信息工程 班 级: 电子0902 完成时间: 2011-12-25 摘 要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间

2、进行蜂鸣报时。该电子钟设有四个按键S1、S2、S3和S4键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。关键词: 电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a sing

3、le chip AT89S52 of ATMELs as its core to control The crystal oscillator clock,using of E-12MHz is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minute

4、s and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons S1, S2, S3 and S4 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, al

5、arm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value.显示对应的拉丁字符的拼音字典 - 查看字典详细内容 Key words electronic clock;AT89S52;hardware design;software design目 录1 设计课题任务、功能要求说明及方案介绍11.1 设计课题任务11.2 功能要求说明

6、11.3 设计课题总体方案介绍及工作原理说明12 设计课题硬件系统的设计22.1 设计课题硬件系统各模块功能简要介绍22.2 设计课题电路原理图、PCB图、元器件布局图22.3 设计课题元器件清单23 设计课题软件系统的设计33.1 设计课题使用单片机资源的情况33.2 设计课题软件系统个模块功能简要介绍33.3 设计课题软件系统程序流程框图33.4 程序清单74 设计结论、仿真结果、误差分析、教学建议184.1 设计课题的设计结论及使用说明184.2 设计课题的仿真结果184.3 设计课题的误差分析194.4 设计体会194.5 教学建议19结束语20参考文献21致 谢22附录A 电路原理图

7、23附录B 元器件布局图24附录C PCB顶层布线图25附录D PCB底层布线图26附录E 元器件清单271 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。具有时间显示、报时等功能。并有时间设定,时间调整功能。1.2 功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.3 设计课题总体方

8、案介绍及工作原理说明本电子钟主要由单片机、4*1独立键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示: 图1 总体设计方案图本电子钟的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍本设计的硬件系统主要采用以下基本模块来实现,单片机最小系

9、统模块,输入模块、输出模块、电源模块。(1)单片机最小系统模块:包括低功耗、高性能CMOS8位微控制器AT89S52;复位电路;晶振电路。本本模块AT89S52系统控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。 (2)输入模块:本模块共用到了5个按键,1个电源开关,1个复位键,单片机运行期间,利用按键完成复位操作。3个按键独立式键盘,S1键控制电子钟的启动调整状态,S2键为加1键,S3键为减1键。且S1、S2、S3任一键都独

10、自连一个I/O(P1.0、P1.1、P1.2)口线,说明它们可以独立实现相应的电子钟功能。(3)输出模块:本次设计显示为8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。数码管用8个PNP三极管驱动。(4)电源模块:现在市面上销售的编程器有很多都是由PC机的USB口直接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的USB供电及下载器。2.2 设计课题电路原理图、PCB图、元器件布局图 电路原理图见附录A,元器件布局图见附录B,PCB顶层布线图见附录C,PCB顶层布线图见附录D。2.3 设计课题元器件清单设计课题元器件清单见附录E。

11、3 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况设计课题使用单片机资源的情况如下:P0口输出数码管段选信号,P3口输出数码管位选信号;晶振12MHz;调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1;按一次使选中位加1;减少键DEC_KEY:P1.2;按一次使选中位减1;P2.1为蜂鸣器发声报时;50H-5FH;16个寄存器单元作为显示单元; 50H 用于控制秒基准时钟源的产生;51H 清零秒寄存器;52H 清零分寄存器;53H 清零时寄存器;5FH 用于秒个位;5EH 用于秒十位;5DH 用于分个位;5CH 用于分十位;5BH

12、 用于时个位;5AH 用于时十位;54H 用于控制调时闪烁;堆栈栈底:70H。3.2 设计课题软件系统个模块功能简要介绍 本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。(1)主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。(2)中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。(3)键盘输入程序模块:主要是用于确定按键并得到特定的键码值。(4)数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。(5)延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种

13、是长延时。3.3 设计课题软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成十六进制程序语言,接着使用Proteous 进行仿真,读出显示数据。主程序流程框图如2所示;加1子程序如3所示;中断服务程序程序如4所示;键盘扫描子程序框图如5所示;显示子程序框图如6所示; 图2 主程序流程框图图3 加1子程序流程框图图4 中断子程序流程框图图5 键盘扫描子程序流程框图3.4 程序清单;-;程序入口;- ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMET0ORG 1000H;-;

14、显P.程序;功能:可以在8个数码闪烁移位进行屏保;-START: MOV R6, #2 ;闪烁次数MOV A, #0FEH ;位选TT: MOV P2, AMOV P0, #0CH ;段码P.LCALL DELAYMOV P2, #0FFHDJNZ R6, TTLCALL DELAYLCALL DELAY1RR AJB P1.0, TT ;键是否按下,没按下则转移LCALL DELAY ;延时去抖JNB P1.0, KAI ;再次判断键是否按下KAI: SETB P1.0CLR A ;状态恢复MOV P0, #0FFHLCALL DELAY1SETB 48H ;用于调时闪烁标志SETB 47H

15、 ;用于产生脉冲用于调时快进的脉冲MOV R1, #0 ;键功能标志:0计时、1调时、2调分、3调秒;-MOV R0, #50H ;初始化MOV R6, #10HCLEARJCQ:MOV R0, #00H ;清寄存器INC R0DJNZ R6, CLEARJCQMOV IP, #02HSETB EASETB ET0MOV TMOD, #01H ;设定定时器0工作方式1MOV TH0, #3CHMOV TL0, #0B0H ;赋定时初值,定时50msSETB TR0 ;启动定时器0MOV SP, #70H ;堆栈;-;主程序 ;- MAIN: LCALL DISPLAYLCALL KEY_SCA

16、NJZ MAINLCALL SET_KEYJB 46H, MAIN ;如果已进行调时快进,则不再执行下面的调整LCALL ADD_KEY ;调用增加键处理子程序,加一LCALL DEC_KEY ;调用减少键处理子程序,减一LJMP MAIN ;重新循环;-; 显示处理程序;-DISPLAY:MOV A, 51HANL A, #0FHMOV 5FH, A ;转换出秒个位,存入5FHMOV A, 51HANL A, #0F0HSWAP AMOV 5EH, A ;转换出秒十位,存入5EHJB 46H, MIN ;如果调时快进,则跳过闪烁处理程序CJNE R1, #3,MIN ;如果R1为3,闪烁秒位

17、待调整JB 48H, MINMOV 5FH, #0AH ;使该位为10,查表得到使该位不显示MOV 5EH, #0AHMIN: MOV A, 52HANL A, #0FHMOV 5DH, A ;转换出分个位,存入5DHMOV A, 52HANL A, #0F0HSWAP AMOV 5CH, A ;转换出分十位,存入5CHJB 46H, HOURCJNE R1, #2,HOUR ;如果R1为2,闪烁分位待调整JB 48H, HOURMOV 5DH, #0AHMOV 5CH, #0AHHOUR: MOV A, 53HANL A, #0FHMOV 5BH, A ;转换出时个位,存入5BHMOV A,

18、 53HANL A, #0F0HSWAP AMOV 5AH, A ;转换出时十位,存入5AHJB 46H, DISPCJNE R1, #1,DISP ;如果R1为1,闪烁时位待调整JB 48H, DISPMOV 5BH, #0AH ;使该位为10,查表得到使该位不显示MOV 5AH, #0AH;-;数码管动态扫描显示;-DISP: MOV DPTR, #TABLEMOV A, 5FHMOVC A, A+DPTRMOV P0, ACLR P2.0LCALL DELAYSETB P2.0 ;显示秒个位MOV A, 5EHMOVC A, A+DPTRMOV P0, ACLR P2.1LCALL DE

19、LAYSETB P2.1 ;显示秒十位MOV A, #0BFHMOV P0, ACLR P2.5LCALL DELAYSETB P2.5 ;显示“-”MOV A, 5DHMOVC A, A+DPTRMOV P0, ACLR P2.3LCALL DELAYSETB P2.3 ;显示分个位MOV A, 5CHMOVC A, A+DPTRMOV P0, ACLR P2.4LCALL DELAYSETB P2.4 ;显示分十位MOV A, #0BFHMOV P0, ACLR P2.2LCALL DELAYSETB P2.2 ;显示“-”MOV A, 5BHMOVC A, A+DPTRMOV P0, A

20、CLR P2.6LCALL DELAYSETB P2.6 ;显示时个位MOV DPTR, #TABLE1 ;该位使用TABLE1以消除时的十位置0MOV A, 5AHMOVC A, A+DPTRMOV P0, ACLR P2.7LCALL DELAYSETB P2.7 ;显示时十位RET;-;定时器中断1s程序;-TIMET0: PUSH ACC ;保护现场PUSH PSWMOV TH0, #3CHMOV TL0, #0B0HCPL 47H ;产生脉冲用于调时快进INC 54HMOV A, 54HCJNE A, #10,ADD_TIME;产生0.5秒,用于调时闪烁CPL 48H ;取反调时闪烁

21、标志位MOV 54H, #00HADD_TIME: INC 50HMOV A, 50HCJNE A, #10,ZDBACD;整点报时时蜂鸣器响延迟时间SETB P3.1 ;关蜂鸣器ZDBACD: CJNE A, #20,RETI1 ;产生1秒时钟MOV 50H, #00H ;一秒钟时间到,清零50HMOV A, 51HADD A, #01HDA A ;十进制调整MOV 51H,ACJNE A, #60H,RETI1MOV 51H, #00H ;一分钟到MOV A, 52HADD A, #01HDA AMOV 52H,ACJNE A,#60H,RETI1CLR P3.1MOV 52H,#00H

22、;一小时到,开蜂鸣器,清分显示MOV A,53HADD A,#01HDA AMOV 53H,ACJNE A,#24H,RETI1MOV 53H,#00H ;到24点,清零小时RETI1: POP PSWPOP ACC ;恢复现场RETI ;中断返回;-;键盘扫描程序;R4设置为00H是为了在进入长按处理前加长延时,以区分长按与短按键;-KEY_SCAN: CLR 46H ;关闭调时快进标志MOV P1,#0FFH ;将P1口设置成输入状态MOV A,P1CPL AANL A, #07H ;1口低3位连接3个按键,只判断该3位JZ EXIT_KEYLCALL DELAY ;延时去抖动MOV A,

23、 P1 ;重新判断CPL AANL A, #07HJZ EXIT_KEYMOV R5, AMOV R4, #00H ;用于控制调时快进速度LOOP: LCALL DISPLAY ;进入长按处理MOV A, P1CPL AANL A, #07HJB 47H, LOOP1INC R4 ;调时快进间隔时间基准加1LOOP1: CJNE R1, #03H,LOOP2 ;如果调秒时长按,则不处理LJMP LOOP3LOOP2: CJNE R4, #99H,LOOP3MOV R4, #70H ;确认长按后,加快调时快进速度SETB 46HLCALL ADD_KEYLCALL DEC_KEYLOOP3: J

24、NZ LOOP ;等待键释放MOV A, R5 ;输出键值RETEXIT_KEY: RET;-;延时子程序;- DELAY: MOV R7, #200 DJNZ R7, $RETDELAY1: MOV R3, #50MOV TMOD, #00HMOV TH1, #63HMOV TL1, #18H SETB TR1LP1:JBC TF1, LP2SJMP LP1LP2: MOV TH1, #63HMOV TL1, #18H DJNZ R3, LP1 RET ;-;选择键处理子程序;-SET_KEY: CJNE R5,#01H,EXIT ;选择键键值INC R1 ;调整选择功能标志加一CJNE R

25、1,#4,EXITMOV R1,#0MOV 54H,#00H ;调时闪烁清零 RET;-;加1子程序;-ADD_KEY: CJNE R5,#02H,EXIT ;加1键值CJNE R1,#01H,NEXT1 ;选择键功能标志为1调时,否则跳出MOV A,53HADD A,#01HDA AMOV 53H,ACJNE A,#24H,EXITMOV 53H,#00HNEXT1: CJNE R1,#02H,NEXT2 ;选择键功能标志为2调分,否则跳出MOV A,52HADD A,#01HDA AMOV 52H,ACJNE A,#60H,EXITMOV 52H,#00HNEXT2: CJNE R1,#0

26、3H,EXIT ;选择键功能标志为3调秒,否则跳出MOV A,51HADD A,#01HDAAMOV 51H,ACJNE A,#60H,EXITMOV 51H,#00H ;如加1键按下直接清零秒RET;-;减1子程序;- DEC_KEY: CJNE R5,#04H,EXIT ;减1键键值CJNE R1,#01H,NEXT3 ;选择键功能标志为1调时,否则跳出 MOV A,53HADD A,#99HDA AMOV 53H,ACJNEA,#99H,EXITMOV 53H,#23HNEXT3: CJNE R1,#02H,NEXT4 ;选择键功能标志为2调分,否则跳出MOV A,52HADD A,#9

27、9HDA AMOV 52H,ACJNE A,#99H,EXITMOV 52H,#59HNEXT4:CJNE R1,#03H, EXIT ;选择键功能标志为3调秒,否则跳出MOV A,51HADD A,#99HDA AMOV 51H,ACJNE A,#99H,EXITMOV 51H,#59HRET;-;返回子程序;- EXIT: RET;-;数码管字形编码表;-TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;0,1,2,3,4,5,6,7,8,9,不显示TABLE1:DB 0FFH,0F9H,0A4H,0B0H,99H,92

28、H,82H,0F8H,80H,90H,0FFH ;小时编码;不显示,1,2,3,4,5,6,7,8,9,不显示END 4 设计结论、仿真结果、误差分析、教学建议4.1 设计课题的设计结论及使用说明本设计为基于单片机的电子钟的设计。刚开始,我们很多地方理不清头绪,无从下手,但通过认真研究设计课题,找书上网查资料买元件,确定基本设计方案,对所用芯片功能进行查找、调试,然后画电路图制PCB板、打孔、溶铜、焊接等,真的经历了许多困难,却积累了很多宝贵的经验,本设计用2个四位一体的共阳数码管做为显示器,它显示时间值;设计中有三个按键,其中S1为启动/选择调整位置,S2为加控制键 S3为减控制键,当整点时

29、间到时,蜂鸣器报警。这样的结果与设计要求完全相符,本设计成功。完成了设计任务。4.2 设计课题的仿真结果在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图7与图8所示。实现功能:可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。 (1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按S2、S3键均无效,按S1键有效,进入运行状态; (2)、运行状态,在此状态下,按S2、S3键均无效,只有按S1键有效,按下S1键后,退出运行状态,进入调整状态; (3)、调整状态,按S1键进入时、分、秒的闪烁,在此状态下,按S2(+1键)、S3(-

30、1键)键均有效;调整结束后必须按S1键,即可退出调整状态,进入运行状态。在调整状态时长按S2、S3时可以连加及连减。时间显示格式为:时-分-秒; 图7 “P.”运行状态仿真图8 时钟运行状态仿真4.3 设计课题的误差分析该电子钟在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来实现。而当电子钟运行时间1秒时,又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的,其次还有硬件系统也有一定的影响。第三,设计用到11.0592MHz的晶振,计算是满20次为一秒钟,但实际会慢很多。4.4 设计体会本次课程设计,让我受益

31、匪浅,认识到了自己的许多缺点和不足,使我深深的感受到了理论联系实际的必要性及其重要性。在我们以往的学习过程中,我们刻意地去加强理论的基础,对于一个程序我们只求它在运行时没有出错,我们便以为我们的计划成功了岂不知它能否在硬件结构中得以实现则是另外一回事,这就要求我们的动手能力,如果无法使软件与硬件实现有机的结合,那么再好的程序也只是一堆废字符。4.5 教学建议经过一个学期王韧老师教导的的单片机学习,我掌握了很多单片机学习的宝贵经验,尤其在编程的思路和PCB实物的制作上面。编程思路是整个程序的灵魂,没有编程思路,程序就不会编出来,就失去了编程的意义。在开始编程之前,想好编程的思路,编程能力才会提高

32、,编程的过程才会顺畅,程序的质量才会提高。在王韧老师的教学过程中,幽默轻松的教学方式常常让课堂气氛很活跃,幽默诙谐,授课内容条理清晰,经常运用各种实例,娓娓道来,给人印象深刻。王老师在课堂上也十分注重和同学们的互动,经常会用一些亲身实践的经验为例,让同学们在基于事实的基础上更好的理解相关理论,充分做到了理论与实际的结合,既形象生动,又丰富有趣。结合自己课堂的学习和单片机学习效果总结几点教学建议希望老师接纳:(1)、每一位学生都要发展,但不必求一样的发展;每一位学生都要提高,但不必是同步的提高;每一位学生都要合格,但不必是相同的规格;(2)、学生不会说的,您鼓励他说;学生说不准的,您引导他说。结

33、束语本设计设计的数字电子钟采用单片机内部定时器进行定时,数码管显示与传统的指针式钟表相比,具有时间准确、其输出时间采用数字显示读数直观方便等优点。系统上电或按键复位后能自动显示系统提示符“P.”,进入工作准备状态。当按下S1键时,电子钟开启,并且该电子钟具有清零时间、调节时间等功能。通过测试和修改,该数字电子钟完成了设计任务,符合设计要求。参考文献1 代启化.基于Proteus的电路设计与仿真J.现代电子技术.2006,第19期.Dai QiHua.Proteus-based circuit design and simulation J. Modern electronic technolo

34、gy.2006,No.19.2 刘文秀.单片机应用系统仿真的研究J.现代电子技术.2005, 第286 期. Liu WenXiu .Microcontroller Application System Simulation J. Modern electronic technology.2005,No.286.3 曹巧媛.单片机原理及应用M,北京:电子工业出版社,1997.7.Cao QiaoYuan.Microcontroller Theory and Applications M, Beijing: Electronic Industry Press, 1997.7.4 张洪润.兰清华,

35、单片机应用技术教程M,北京:清华大学出版社,1997.11.Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial M, Beijing: Tsinghua University Press, 1997.11.5 李广第.单片机基础M,北京航空航天大学出版社,2006.7.Li Guangdi. Microcontroller based on M, Beijing Aerospace University Press, 2006.7.致 谢通过不断努力,终于完成了此次单片机的课程设计。在此,首先感谢王韧老师,正是他在万忙之中还抽出宝贵的时间对我们进行精心的指导,才使我顺利完成了此次单片机课程设计。同时也感谢各位同学和老师对我提供的帮助。使我在此次设计中学到了许多宝贵的知识和经验。在此,衷心地感谢你们!附录A 电路原理图附录B 元器件布局图附录C PCB顶层布线图附录D PCB底层布线图附录E 元器件清单序号名称、大小数量1电阻2001个2电阻47024个3电阻1K3个4电阻4.7K1个5电容22F1个6电容33pF2个718B201个8AT89S521个9单排插

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服