




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 系统设计1.1 框图设计基于AT89S51单片机数字钟由电源电路、单片机主控电路、按键控制电路和蜂鸣器等几部分组成,系统框图如下:单片机AT89S51电源复位电路晶振电路声音提示数码管显示按键电路基于AT89S51单片机数字钟系统框图1.2 知识点本项目需要通过学习和查阅资料,了解和掌握以下知识。1. +5V电源原理及设计。2. 单片机复位电路工作原理及设计。3. 单片机晶振电路工作原理及设计。4. 按键电路的设计。5. 驱动电路74LS04的特性及使用。6. 蜂鸣器及其驱动电路的设计。7. 数码管的特性及其使用。8. AT89S51单片机引脚。9. 单片机汇编语言及程序设计。2 硬件设计
2、2.1 电路原理基于AT89S51单片机数字钟电路原理图如附录所示。按下P1.0口按键,若按下时间小于1S,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。当再按下P1.0口按键时,若按键时间小于0.5S,则时间加1min;若按下时间大于0.5S,则进入小时调整状态。按下P1.1按键时,可进行减1调整。在小时调整状态下,当按键按下的时间大于0.5S时,退出时间调整状态,时钟从0S开始计时。在正常时钟状态下,若按下P1.1口按键,则进行时钟/秒表功能的转换,秒表中断计时程序启动,显示地址改为60H,LED将显示秒表计时单元60H-65H中的数据。按下P1.
3、2口的按键开关,可实现秒表清零、秒表启动、秒表暂停功能;当再按下P1.1口按键时,关闭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所示。
4、2. 秒计时程序。秒计时由定时器T0完成,流程图如图1-2所示。3. 秒表、调时指示程序。秒表、调时由定时器T1完成,其流程图如图1-3所示。NY开始初始化显示程序整点到?报时图1-1主程序流程图YNT0中断保护现场改变定时初值1s时间到?加1s恢复现场中断返回图1-2秒计时程序流程图YN中断开始保护现场秒表/闪烁?闪烁恢复现场中断返回叫10ms图1-3秒表、调时指示程序流程图3.2 程序清单DISBEG EQU 30HCALB EQU P1.7TIMCON EQU 2FHORG 0000HLJMP MAINORG 0003HRETIORG 000BHLJMP INTT0ORG 0013HRE
5、TIORG 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,#19HDL_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:L
6、CALL 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 LCALL 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
7、,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:LCALL D_II_PLAY JNB P1.0,T_SETSC JNB P1.1,DLY5 JNB P1.2,FUNBT JNB P1.3,TSET JB 08H,CTIMEAJMP MLOOP1FUNBT: LJMP DLY6TSET: LCALL DLY20M/闹铃时间设
8、定程序,按P1.3进入设定JB P1.3,MLOOP1TS_LOOP:JNB P1.3,TS_LOOPJB 05H,CLRBELLMOV DISBEG,#50HMOV 50H,#0CHMOV 51H,#0AHMINCHG:SETB EALCALL D_II_PLAYJNB P1.2,DLY1JNB P1.0,DLY3JNB P1.3,DLYAJMP MINCHGCLRBELL:CLR 05HCLR CALBAJMP MLOOP1DLY:LCALL DLY20MJB P1.3,MINCHGLJMP DLY8T_SETSC:LJMP R_SETTIMDLY1:LCALL DLY20MJB P1.2
9、,MINCHGDLY2: LCALL D_II_PLAYJNB P1.2,DLY2CLR EAMOV R0,#53HLCALL ADD_1MOV A,R3CLR CCJNE A,#60H,ADD_MADD_M:JC MINCHGACALL CLR_HAJMP MINCHGDLY3:LCALL DLY20MJB P1.0,MINCHGDLY4:LCALL D_II_PLAYJNB P1.0,DLY4CLR EAMOV R0,#53HLCALL SUB_MLJMP MINCHGDLY5:LCALL DLY20M/秒表功能/时钟转换程序,按P1.1进行功能转换JB P1.1,T_MLOOP1JNB
10、P1.1,$CPL 03HJNB 03H,DIS_SETMOV DISBEG,#60HMOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HMOV TL1,#0F0HMOV TH1,#0D8HSETB TR1SETB ET1T_MLOOP1:LJMP MLOOP1DIS_SET:MOV DISBEG,#70HCLR ET1CLR TR1T_MLOOP11:LJMP MLOOP1DLY6:LCALL DLY20M/秒表暂停/清零功能程序,按P1.2暂停或清零,JB P1.2,T_MLOOP11 P1.1退出
11、秒表,回到时钟计时T_EST11:JNB P1.2,T_EST11CLR ET1CLR TR1T_EST22:JNB P1.1,DLY5JB P1.2,T_EST21LCALL DLY20MJB P1.2,T_EST22T_EST55:JNB P1.2,T_EST51MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HT_EST33:JNB P1.1,DLY5JB P1.2,T_EST31LCALL DLY20MJB P1.2,T_EST33T_EST44:JNB P1.2,T_EST41SETB ET
12、1SETB TR1AJMP MLOOP1T_EST411:LCALL D_II_PLAY/以下为键等待释放时显示不会熄灭用 AJMP T_EST11T_EST21:LCALL D_II_PLAY 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 PSWCLR ET0CLR TR0MOV A,#0B7HADD A,TL0MOV TL0,AM
13、OV A,#3CHADDC A,TH0MOV TH0,ASETB TR0DJNZ R4,I_INT0A_DDS:MOV R4,#14HCPL 07HMOV R0,#71HACALL ADD_1MOV A,R3CLR CCJNE A,#60H,A_DDMA_DDM:JC I_INT0ACALL CLR_HMOV R0,#77HACALL ADD_1MOV A,R3CLR CCJNE A,#60H,A_DDHA_DDH:JC I_INT0ACALL CLR_HLCALL DLY20MSETB 08HMOV R0,#79HACALL ADD_1MOV A,R3CLR CCJNE A,#24H,RST
14、ARTRSTART:JC I_INT0ACALL CLR_HI_INT0:MOV 72H,76HMOV 73H,77HMOV 74H,78HMOV 75H,79HLCALL BELLPOP PSWPOP ACCSETB ET0RETIINTT1: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,79
15、HI_INT1:POP PSW POP ACC RETIFLASH0:JB 01H,FLASH1 MOV 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,R
16、3 JZ R_ADDM AJMP I_INT01R_ADDM:ACALL CLR_H MOV R0,#63H 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 R0SWAP AORL A,R0ADD A,#01HDA AMOV R3,AANL A,#0FHMOV R0,AMOV A,R3INC R0SWAP AANL A,#0FHMOV R0,AR
17、ETSUB_M:MOV A,R0/分减1子程序DEC R0SWAP AORL A,R0JZ SUB_M1DEC ASUB_M11:MOV R3,AANL A,#0FHCLR CSUBB A,#0AHSUB_M111:JC SUB_M110MOV R0,#09HSUB_M10:MOV A,R3INC R0SWAP AANL A,#0FHMOV R0,ARETSUB_M1:MOV A,#59HAJMP SUB_M11SUB_M110:MOV A,R3SUB_H:MOV A,R0/时减1子程序DEC R0SWAP AORL A,R0JZ SUB_H1DEC ASUB_H11:MOV R3,AANL
18、A,#0FHCLR CSUBB A,#0AHSUB_H111:JC SUB_H110MOV R0,#09HSUB_H10:MOV A,R3INC R0SWAP AANL A,#0FHMOV R0,ARETSUB_H1:MOV A,#23HAJMP SUB_H11SUB_H110:MOV A,R3CLR_H:CLR A/清零程序;对即使单元复零用MOV R0,ADEC R0MOV R0,ARETR_SETTIM:CLR ET0/时钟时间调整程序CLR TR0LCALL DL_LOOPSLCALL DLY20MJB P1.0,SLEEPMOV R2,#06HMOV 70H,#00HMOV 71H,
19、#00HSETB ET1SETB TR1SET_2:JNB P1.0,SET_1SETB 00HSET_4:JB P1.0,SET_3LCALL DL05SLCALL DLY20MJNB P1.0,R_SETHHMOV R0,#77HLCALL ADD_1MOV A,R3CLR CCJNE A,#60H,SET_LOOPSET_LOOP:JC SET_4LCALL CLR_HCLR CAJMP SET_4SLEEP:SETB ET0SETB TR0SET_LOOP1:JB P1.0,SET_LOOP1LCALL DLY20MJB P1.0,SET_LOOP1SET_LOOP2:JNB P1.0
20、,SET_LOOP2LJMP MLOOP1R_SETHH:CLR 00HSETB 01HSET_LOOP3:JNB P1.0,SET_5SET_6:JB P1.0,SET_7LCALL DL05SLCALL DLY20MJNB P1.0,STOPMOV R0,#79HLCALL ADD_1MOV A,R3CLR CCJNE A,#24H,C_YHHC_YHH:JC SET_6LCALL CLR_HAJMP SET_6STOP:JNB P1.0,STOP1LCALL DLY20MJNB P1.0,STOPCLR 01HCLR 00HCLR 02HCLR TR1CLR ET1SETB TR0SET
21、B ET0LJMP MLOOP1SET_1:LCALL D_II_PLAYAJMP SET_2SET_3:LCALL D_II_PLAYJNB P1.1,DLY7AJMP SET_4SET_5:LCALL D_II_PLAYAJMP SET_LOOP3SET_7:LCALL D_II_PLAYJNB P1.1,DLY7BAJMP SET_6STOP1:LCALL D_II_PLAYAJMP STOPDLY7:LCALL DLY20M/分减1程序JB P1.1,SET_41DLY7_M:JNB P1.1,DLY7_MMOV R0,#77HLCALL SUB_MLJMP SET_4SET_41:L
22、JMP SET_4DLY7B:LCALL DLY20M/时减1程序JB P1.1,SET_61DLY7_H:JNB P1.1,DLY7_HMOV R0,#79HLCALL SUB_HLJMP SET_6SET_61:LJMP SET_6D_II_PLAY:MOV R1,DISBEG/显示程序MOV R5,#0FEHPLAY:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,AMOV A,R5JB ACC.2,D_LOOPCLR P0.7D_LOOP:JB ACC.4,D_LOOP1CLR P0.7D_LOOP1:LCALL DLY
23、1MINC R1MOV A,R5JNB ACC.5,CLOSERL AMOV R5,AMOV P0,#0FFHAJMP PLAYCLOSE:MOV P2,#0FFHMOV P0,#0FFHRETSD_II_PLAY:MOV R1,DISBEG/上电显示子程序MOV R5,#0FEHI_PLAY:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#I_TABMOVC A,A+DPTRMOV P0,AMOV A,R5LCALL DLY1MINC R1MOV A,R5JNB ACC.5,CLOSESRL AMOV R5,AAJMP I_PLAYCLOSES:MOV P2,#0FFHM
24、OV P0,#0FFHRETDLY8:LCALL D_II_PLAY/闹铃时间设定程序中的时调整程序JNB P1.3,DLY8MOV 50H,#0AHMOV 51H,#0CHR_BTIM:SETB EALCALL D_II_PLAYJNB P1.2,DLY12JNB P1.0,DLY14JNB P1.3,DLY9JNB P1.1,DLY10AJMP R_BTIMDLY9:LCALL DLY20MJB P1.3,R_BTIMDLY8M:LCALL D_II_PLAYJNB P1.3,DLY8MMOV DISBEG,#70HLJMP MLOOP1DLY10:LCALL DLY20MJB P1.1,
25、R_BTIMDLY11:LCALL D_II_PLAYJNB P1.1,DLY11CPL 05HJNB 05H,R_BTIM11MOV 50H,#00HAJMP R_BTIMR_BTIM11:MOV 50H,#0AHAJMP R_BTIMDLY12:LCALL DLY20MJB P1.2,R_BTIMDLY13:LCALL D_II_PLAYJNB P1.2,DLY13CLR EAMOV R0,#55HLCALL ADD_1MOV A,R3CLR CCJNE A,#24H,A_DDH33NA_DDH33N:JC R_BTIMACALL CLR_HAJMP R_BTIMDLY14:LCALL D
26、LY20MJB P1.0,R_BTIMDLY15:LCALL D_II_PLAYJNB P1.0,DLY15CLR EAMOV R0,#55HLCALL SUB_HLJMP R_BTIMBELL:JNB 05H,BBELL/闹铃判断子程序MOV A,79HCJNE A,55H,BBELLMOV A,78HCLR CBELL_1:CJNE A,54H,BBELLMOV A,77HCLR CCJNE A,53H,BBELLMOV A,76HCLR CBELL_2:CJNE A,52H,BBELLJNB 07H,BBELLCLR CALBRETBBELL:SETB CALBRETEND小结为期两周的
27、单片机数字钟课程设计结束了,在这两周里我和我的组员们运用单片机的知识完成了简易数字钟电路的设计,这使我对单片机这门课程有了更深一步的了解。当我知道我要做数字钟这个课题时,起初感觉还是很有难度的,很怕自己做不好或者是做不出来。在这两周的时间里,我去图书馆查阅大量资料,每当遇到不懂的问题或者困难时,我都会虚心向田老师请教。就在这种不懈的努力下,我和我的组员终于完成了简易数字钟的单片机课程设计。我们小组采用了单片机汇编语言完成了具有计时功能、秒表功能、整点报时功能以及分时调整功能的单片机简易数字钟课程设计.该设计的可靠性高,成本低,易操作,通用性强,通过键盘可以进行定时、校时。总之,进一步加深了我对单片机这门学科的了解,充分锻炼了我的个人能力,并培养了我的团队配合能力。本次课程设计让我体会到了只有付出才会有收获,只有平日认真的学习,在关键的时刻才不会捉襟见肘,应用时的捉襟见肘让我认识到了自己学习知识基础上的不足,每一门专业基础课都是我们手中不可替代的武器,只有把他们有机联系起来才有可能实现一个完整的系统。致谢在这为期两周的单片机课程设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安阳市殷都区2024年三上数学期末调研试题含解析
- 知识产权英语课件
- 2025届平凉市三年级数学第一学期期末检测试题含解析
- 2025年考试技巧强化试题及答案
- 粮食管理职责清单
- 2025年工程经济模块学习试题及答案
- 数媒艺术毕业设计
- 公共关系在文化传播中的重要性试题及答案
- 电子商务交易安全练习题
- 酒店装修设计作业指导书
- 史明清时期社会经济的发展课件++2024-2025学年统编版七年级历史下册
- 中国特色社会主义+综合练习(三)-2025届中职高考政治一轮复习高教版(2023版)
- 情境+任务驱动作文(兼审“情境”与“任务”)-2024年中考语文重难点复习专练(江苏)学生版
- (二模)临沂市2025年高三高考模拟考试地理试题卷(含答案)
- 2024年新疆巴楚县事业单位公开招聘村务工作者笔试题带答案
- 辽宁省名校联盟2025年高三5月份联合考试语文及答案
- 小学四年级家长会班主任发言稿模版
- 2025年全国保密教育线上培训考试试题库(含答案)
- 广东省大湾区普通高中毕业年级2025届联合模拟考试(二)物理试题(含答案)
- 2025年北京龙双利达知识产权代理有限公司招聘笔试参考题库附带答案详解
- 医学伦理学第九章-生命控制与死亡伦理
评论
0/150
提交评论