ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:61.73KB ,
资源ID:9527515      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9527515.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易数字钟单片机课程方案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易数字钟单片机课程方案.docx

1、简易数字钟单片机课程方案1 系统设计1.1 框图设计基于AT89S51单片机数字钟由电源电路、单片机主控电路、按键控制电路和蜂鸣器等几部分组成,系统框图如下:1.2 知识点本工程需要通过学习和查阅资料,了解和掌握以下知识。1. +5V电源原理及设计。2. 单片机复位电路工作原理及设计。3. 单片机晶振电路工作原理及设计。4. 按键电路的设计。5. 驱动电路74LS04的特性及使用。6. 蜂鸣器及其驱动电路的设计。7. 数码管的特性及其使用。8. AT89S51单片机引脚。9. 单片机汇编语言及程序设计。2硬件设计2.1电路原理基于AT89S51单片机数字钟电路原理图如附录所示。按下P1.0口按

2、键,若按下时间小于1S,则进入省电状态数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。当再按下P1.0口按键时,若按键时间小于0.5S,则时间加1min;若按下时间大于0.5S,则进入小时调整状态。按下P1.1按键时,可进行减1调整。在小时调整状态下,当按键按下的时间大于0.5S时,退出时间调整状态,时钟从0S开始计时。在正常时钟状态下,若按下P1.1口按键,则进行时钟/秒表功能的转换,秒表中断计时程序启动,显示地址改为60H,LED将显示秒表计时单元60H-65H中的数据。按下P1.2口的按键开关,可实现秒表清零、秒表启动、秒表暂停功能;当再按下P1.1口按键时,关闭

3、T1秒表中断计时,显示首址又改为70H,恢复正常时间的显示功能。2.2元件清单元件名称型号数量用途元件名称型号数量用途单片机AT89S511控制核心电阻10k4按键电路晶振12MHz1晶振电路按键4电容30pF2数码管8段6位1显示电路电解电容10uF/10V1复位电路电阻5008电阻10k1电阻4.7k1蜂鸣器及其驱动电路按键1蜂鸣器DC5V1电源+5V/0.5A1提供+5V电源三极管90151基于AT89S51单片机数字钟的元件清单如下表。3软件设计3.1程序流程图1. 主程序流程图如图1-1所示。2. 秒计时程序。秒计时由定时器T0完成,流程图如图1-2所示。3. 秒表、调时指示程序。秒

4、表、调时由定时器T1完成,其流程图如图1-3所示。3.2程序清单DISBEG EQU 30HCALB EQU P1.7TIMCON EQU 2FHORG 0000HLJMP MAINORG 0003HRETIORG 000BHLJMP INTT0ORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHI_TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDLY1M: MOV R6,#14HDL_LOOP: MOV R7,#1

5、9HDL_LOOP1:DJNZ R7,DL_LOOP1 DJNZ R6,DL_LOOP RETDLY20M:CLR CALB LCALL D_II_PLAY LCALL D_II_PLAY LCALL D_II_PLAY SETB CALB RETDL_LOOPS:LCALL DL05S LCALL DL05S RETDL05S: MOV R3,#20HDL05S1: LCALL D_II_PLAY DJNZ R3,DL05S1 RETCTIME: MOV A,#10H /整点报时MOV B,79HMUL ABADD A,78HMOV TIMCON,ACLOOP: LCALL DLY20M L

6、CALL DL_LOOPS LCALL DL_LOOPS LCALL DL_LOOPS DJNZ TIMCON,CLOOP CLR 08HMAIN: MOV R0,#00H /主程序 MOV R7,#80HMLOOP: MOV R0,#00H INC R0 DJNZ R7,MLOOP MOV 20H,#00H MOV 7AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB TR0 MOV R4,#14H MOV DISBEG,#70HMLOOP1:LCA

7、LL D_II_PLAY JNB P1.0,T_SETSC JNB P1.1,DLY5 JNB P1.2,FUNBT JNB P1.3,TSET JB 08H,CTIME AJMP MLOOP1FUNBT: LJMP DLY6TSET: LCALL DLY20M /闹铃时间设定程序,按P1.3进入设定 JB P1.3,MLOOP1TS_LOOP:JNB P1.3,TS_LOOP JB 05H,CLRBELL MOV DISBEG,#50H MOV 50H,#0CH MOV 51H,#0AHMINCHG:SETB EA LCALL D_II_PLAY JNB P1.2,DLY1 JNB P1.0

8、,DLY3 JNB P1.3,DLY AJMP MINCHGCLRBELL:CLR 05H CLR CALB AJMP MLOOP1DLY:LCALL DLY20M JB P1.3,MINCHG LJMP DLY8T_SETSC:LJMP R_SETTIMDLY1:LCALL DLY20M JB P1.2,MINCHGDLY2: LCALL D_II_PLAY JNB P1.2,DLY2 CLR EA MOV R0,#53H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,ADD_MADD_M:JC MINCHG ACALL CLR_H AJMP MINCHGDL

9、Y3:LCALL DLY20M JB P1.0,MINCHGDLY4:LCALL D_II_PLAY JNB P1.0,DLY4 CLR EA MOV R0,#53H LCALL SUB_M LJMP MINCHGDLY5:LCALL DLY20M /秒表功能/时钟转换程序,按P1.1进行功能转换 JB P1.1,T_MLOOP1 JNB P1.1,$ CPL 03H JNB 03H,DIS_SET MOV DISBEG,#60H MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H MOV

10、TL1,#0F0H MOV TH1,#0D8H SETB TR1 SETB ET1T_MLOOP1:LJMP MLOOP1DIS_SET:MOV DISBEG,#70H CLR ET1 CLR TR1T_MLOOP11:LJMP MLOOP1DLY6:LCALL DLY20M /秒表暂停/清零功能程序,按P1.2暂停或清零,JB P1.2,T_MLOOP11 P1.1退出秒表,回到时钟计时T_EST11:JNB P1.2,T_EST11 CLR ET1 CLR TR1T_EST22:JNB P1.1,DLY5 JB P1.2,T_EST21 LCALL DLY20M JB P1.2,T_EST

11、22T_EST55:JNB P1.2,T_EST51 MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00HT_EST33:JNB P1.1,DLY5 JB P1.2,T_EST31 LCALL DLY20M JB P1.2,T_EST33T_EST44:JNB P1.2,T_EST41 SETB ET1 SETB TR1 AJMP MLOOP1T_EST411:LCALL D_II_PLAY /以下为键等待释放时显示不会熄灭用 AJMP T_EST11T_EST21:LCALL D_II_PL

12、AY AJMP T_EST22T_EST31:LCALL D_II_PLAY AJMP T_EST33T_EST41:LCALL D_II_PLAY AJMP T_EST44T_EST51:LCALL D_II_PLAY AJMP T_EST55INTT0:PUSH ACC /1S计时程序。T0中断服务程序 PUSH PSW CLR ET0 CLR TR0 MOV A,#0B7H ADD A,TL0 MOV TL0,A MOV A,#3CH ADDC A,TH0 MOV TH0,A SETB TR0 DJNZ R4,I_INT0A_DDS:MOV R4,#14H CPL 07H MOV R0,

13、#71H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,A_DDMA_DDM:JC I_INT0 ACALL CLR_H MOV R0,#77H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,A_DDHA_DDH:JC I_INT0 ACALL CLR_H LCALL DLY20M SETB 08H MOV R0,#79H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#24H,RSTARTRSTART:JC I_INT0 ACALL CLR_HI_INT0:MOV 72H,76H MOV 73H,77H M

14、OV 74H,78H MOV 75H,79H LCALL BELL POP PSW POP ACC SETB ET0 RETIINTT1:PUSH ACC /闪动调试程序/秒表从能程序;T1中断服务程序 PUSH PSW JB 03H,R_ADDS MOV TL1,#0B0H MOV TH1,#3CH DJNZ R2,I_INT1 MOV R2,#06H CPL 02H JB 02H,FLASH0 MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79HI_INT1:POP PSW POP ACC RETIFLASH0:JB 01H,FLASH1 MOV

15、72H,7AH MOV 73H,7AH MOV 74H,78H MOV 75H,79H AJMP I_INT1FLASH1:MOV 72H,76H MOV 73H,77H MOV 74H,7AH MOV 75H,7AH AJMP I_INT1R_ADDS:CLR TR1 MOV A,#0F7H ADD A,TL1 MOV TL1,A MOV A,#0D8H ADDC A,TH1 MOV TH1,A SETB TR1 MOV R0,#61H ACALL ADD_1 CLR C MOV A,R3 JZ R_ADDM AJMP I_INT01R_ADDM:ACALL CLR_H MOV R0,#63

16、H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,R_ADDHR_ADDH:JC I_INT01 LCALL CLR_H MOV R0,#65H ACALL ADD_1I_INT01:POP PSW POP ACC RETIADD_1:MOV A,R0 /加1子程序 DEC R0 SWAP A ORL A,R0 ADD A,#01H DA A MOV R3,A ANL A,#0FH MOV R0,A MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RETSUB_M:MOV A,R0 /分减1子程序 DEC R0 SWAP A

17、 ORL A,R0 JZ SUB_M1 DEC ASUB_M11:MOV R3,A ANL A,#0FH CLR C SUBB A,#0AHSUB_M111:JC SUB_M110 MOV R0,#09HSUB_M10:MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RETSUB_M1:MOV A,#59H AJMP SUB_M11SUB_M110:MOV A,R3SUB_H:MOV A,R0 /时减1子程序 DEC R0 SWAP A ORL A,R0 JZ SUB_H1 DEC ASUB_H11:MOV R3,A ANL A,#0FH CLR C SU

18、BB A,#0AHSUB_H111:JC SUB_H110 MOV R0,#09HSUB_H10:MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RETSUB_H1:MOV A,#23H AJMP SUB_H11SUB_H110:MOV A,R3CLR_H:CLR A /清零程序;对即使单元复零用 MOV R0,A DEC R0 MOV R0,A RETR_SETTIM:CLR ET0 /时钟时间调整程序 CLR TR0 LCALL DL_LOOPS LCALL DLY20M JB P1.0,SLEEP MOV R2,#06H MOV 70H,#00H M

19、OV 71H,#00H SETB ET1 SETB TR1SET_2:JNB P1.0,SET_1 SETB 00HSET_4:JB P1.0,SET_3 LCALL DL05S LCALL DLY20M JNB P1.0,R_SETHH MOV R0,#77H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,SET_LOOPSET_LOOP:JC SET_4 LCALL CLR_H CLR C AJMP SET_4SLEEP:SETB ET0 SETB TR0SET_LOOP1:JB P1.0,SET_LOOP1 LCALL DLY20M JB P1.0,SET

20、_LOOP1SET_LOOP2:JNB P1.0,SET_LOOP2 LJMP MLOOP1R_SETHH:CLR 00H SETB 01HSET_LOOP3:JNB P1.0,SET_5SET_6:JB P1.0,SET_7 LCALL DL05S LCALL DLY20M JNB P1.0,STOP MOV R0,#79H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#24H,C_YHHC_YHH:JC SET_6 LCALL CLR_H AJMP SET_6STOP:JNB P1.0,STOP1 LCALL DLY20M JNB P1.0,STOP CLR 01H

21、 CLR 00H CLR 02H CLR TR1 CLR ET1 SETB TR0 SETB ET0 LJMP MLOOP1SET_1:LCALL D_II_PLAY AJMP SET_2SET_3:LCALL D_II_PLAY JNB P1.1,DLY7 AJMP SET_4SET_5:LCALL D_II_PLAY AJMP SET_LOOP3SET_7:LCALL D_II_PLAY JNB P1.1,DLY7B AJMP SET_6STOP1:LCALL D_II_PLAY AJMP STOPDLY7:LCALL DLY20M /分减1程序 JB P1.1,SET_41DLY7_M:JNB P1.1,DLY7_M

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1