




已阅读5页,还剩94页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一章 数字万年历系统11 系统功能介绍12系统结构框图13软件流程图14 程序清单第二章 列车多功能显示器21 系统功能介绍22 系统结构框图23 软件流程图24 程序清单第三章 作息时间控制器31 系统功能介绍32 系统电路图33 软件流程图34 程序清单第四章 电子密码锁41 系统功能介绍42 系统结构图43 软件流程图44 程序清单Thanks第一章 数字万年历系统11 系统功能介绍1 采用六位数码管显示小时、分钟、秒,并且可以任意设定时间2 可以查看并且设定日期,日期采用年、月、日的显示方式3可以查看并设定闹钟,闹钟的显示方式采用与时间相同的显示方式4可以查看并设定星期,数码管的最后一位显示星期,用数字8表示星期日5系统设定详细说明: 系统的初始状态为显示时钟状态,此时显示小时、分钟、秒。初始状态下,按S0键进入时间调整程序,按S1键查看闹钟,按S2键查看日期,按S3键查看星期。进入时间调整状态后,首先调整分钟,此时分钟闪烁显示,按S1键加一,按S2键减一。按S0键开始调整小时,此时小时闪烁显示,按S1键加一,按S2键减一,再按S0键后系统返回到显示时间状态。在调整时间状态下按下S3键进入调整闹钟状态,此时显示原先的闹钟时间,并且闹钟分钟闪烁显示,此时按S1键加一,按S2键减一;调整后按S0键转换到闹钟小时调整单元,此时按S1键加一,按S2键减一。闹钟调整完毕后按0键回到调整时间状态,按S3键转到调整日期状态。在调整日期状态下,日单元闪烁显示,此时按S1键加一,按S2键减一;按下S0键进入调整月,此时按S1键加一,按S2键减一;按下S0键进入调整年,此时按S1键加一,按S2键减一。此时按下S0键返回到调整时间状态,按下S3键进入调整星期状态。在调整星期状态下,星期闪烁显示,此时按S1键加一,按S2键减一。按下S0键返回到调整时间状态。此时分钟闪烁显示,按S0键开始调整小时,此时小时闪烁显示,再按S0键后系统返回到显示时间状态。12 系统结构框图系统电路图如图1所示,其中74LS573为段码译码芯片,数码管采用共阴极数码管。数码管的选通经反相器与单片机的P0口相连。 图1系统电路图13 软件流程图系统流程图如图2所示,程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,再判断是否有按键按下,若有按键按下则转到相应的功能程序执行;没有按键按下则调用闹钟程序以判断是否到了闹钟时间,若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和日期、星期的进位。调时闪烁中断服务程序用于被调单元的闪烁显示。调时程序用于调整分钟、小时;整日期的程序用于调整年、月、日;闹钟程序首先判断闹钟时间是否来到,若到了则进入闹钟的循环程序,此时系统等待手动解除闹钟(闹钟在一分钟后自动解除);若没到闹钟时间则退出到主程序循环。计时中断服务程序流程图如图3所示。图2主程序流程图图3计时中断服务程序流程图14 程序清单;数字时钟, SHIA EQU 30HSHIB EQU 31HFENA EQU 32HFENB EQU 33HMIAOA EQU 34HMIAOB EQU 35H ;显示代码存储单元;SHIAN EQU 40HSHIBN EQU 41HFENAN EQU 42HFENBN EQU 43HMIAOAN EQU 44HMIAOBN EQU 45H ;显示数据存储单元;JIAN0 EQU P0.0JIAN1 EQU P0.1JIAN2 EQU P0.2JIAN3 EQU P0.3 ;键盘定义;SHIAL EQU 46HSHIBL EQU 47HFENAL EQU 48HFENBL EQU 49H ;闹钟存储单元;NIANA EQU 4AHNIANB EQU 4BHYUEA EQU 4CHYUEB EQU 4DHRIA EQU 4EHRIB EQU 4FH ;日历存储单元;XINGQI EQU 56H ;星期存储单元; ORG 0000H LJMP MAIN ORG 000BH LJMP TIMER0 ;秒计时中断服务程序 ORG 001BH LJMP TIMER1 ;调时闪烁中断服务程序 ORG 0035H;主程序MAIN: MOV 20H,#00H MOV R0,#40H MOV R1,#32MAIN1: MOV R0,#00H INC R0 DJNZ R1,MAIN1 ;40H-5FH存储单元清零 MOV SHIAL,#2 MOV SHIBL,#3 MOV NIANA,#0 MOV NIANB,#1 MOV YUEA,#0 MOV YUEB,#1 MOV RIA,#0 MOV RIB,#1 MOV XINGQI,#1 MOV TMOD,#11H MOV TL0,#01H MOV TH0,#4CH MOV TL1,#01H MOV TH1,#4CH MOV 36H,#00H SETB EA SETB ET0 SETB TR0 MOV R4,#14HLOOP: LCALL CHANGE LCALL DISPLAY JNB JIAN0,TIAO0 ;按下0键进入调时程序 JNB JIAN1,NAOSEE ;按下1键进入查看闹钟程序 JNB JIAN2,RILISEE ;按下2键进入查看日历程序 JNB JIAN3,WEEKDAY ;按下3键进入查看星期程序 LCALL NAOZHONG LJMP LOOPTIAO0: LJMP TIAOWEEKDAY: JNB JIAN3,WEEKDAY1 LJMP WEEKDAY2WEEKDAY1: LCALL DISPLAY LJMP WEEKDAYRILISEE: JNB JIAN2,RILISEE1 LJMP RILISEE2RILISEE1: LCALL DISPLAY LJMP RILISEENAOSEE: JNB JIAN1,NAOSEE1 LJMP NAOSEE2NAOSEE1: LCALL DISPLAY LJMP NAOSEE;闹钟查看程序NAOSEE2: MOV DPTR,#ZIXINGMA MOV A,SHIAL MOVC A,A+DPTR MOV SHIA,A MOV A,SHIBL MOVC A,A+DPTR MOV SHIB,A MOV A,FENAL MOVC A,A+DPTR MOV FENA,A MOV A,FENBL MOVC A,A+DPTR MOV FENB,A MOV A,#0 MOVC A,A+DPTR MOV MIAOA,A MOV MIAOB,A MOV R5,#200 MOV R1,#4LOOP1: LCALL DISPLAY DJNZ R5,LOOP1 MOV R5,#200 DJNZ R1,LOOP1 LJMP LOOP;闹钟程序,按0键解除闹钟NAOZHONG: MOV A,SHIAL CJNE A,SHIAN,ZHONGOUT MOV A,SHIBL CJNE A,SHIBN,ZHONGOUT MOV A,FENAL CJNE A,FENAN,ZHONGOUT MOV A,FENBL CJNE A,FENBN,ZHONGOUT ZHONG: CLR P2.7 LCALL CHANGE LCALL DISPLAY CJNE A,FENBN,ZHONGOUT JNB JIAN0,ZHONG2 LJMP ZHONGZHONG2: LCALL CHANGE LCALL DISPLAY CJNE A,FENBN,ZHONGOUT LJMP ZHONG2ZHONGOUT: RET;日历查看程序RILISEE2: MOV DPTR,#ZIXINGMA MOV A,NIANA MOVC A,A+DPTR MOV SHIA,A MOV A,NIANB MOVC A,A+DPTR MOV SHIB,A MOV A,YUEA MOVC A,A+DPTR MOV FENA,A MOV A,YUEB MOVC A,A+DPTR MOV FENB,A MOV A,RIA MOVC A,A+DPTR MOV MIAOA,A MOV A,RIB MOVC A,A+DPTR MOV MIAOB,A MOV R5,#200 MOV R1,#4LOOP2: LCALL DISPLAY DJNZ R5,LOOP2 MOV R5,#200 DJNZ R1,LOOP2 LJMP LOOP;星期查看程序WEEKDAY2: MOV DPTR,#ZIXINGMA MOV A,#0 MOVC A,A+DPTR MOV MIAOA,A MOV FENA,A MOV FENB,A MOV SHIA,A MOV SHIB,A MOV A,XINGQI MOVC A,A+DPTR MOV MIAOB,A MOV R1,#4 MOV R5,#200LOOP3: LCALL DISPLAY DJNZ R5,LOOP3 MOV R5,#200 DJNZ R1,LOOP3 LJMP LOOP;秒计时中断服务程序 TIMER0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A,#14 ADD A,TL0 MOV TL0,A MOV A,#4CH ADD A,TH0 MOV TH0,A SETB TR0 DJNZ R4,OUTT0ADDSS: MOV R4,#14H MOV R0,#MIAOAN LCALL ADD1 MOV A,R3 CLR C CJNE A,#60H,ADDMMADDMM: JC OUTT0 LCALL CLR0 MOV R0,#FENAN LCALL ADD1 MOV A,R3 CLR C CJNE A,#60H,ADDHHADDHH: JC OUTT0 LCALL CLR0 MOV R0,#SHIAN LCALL ADD1 MOV A,R3 CLR C CJNE A,#24H,HOURHOUR: JC OUTT0 LCALL CLR0 LCALL DAYOUTT0: POP PSW POP ACC SETB ET0 RETI;DAY: MOV R0,#RIA LCALL ADD1 INC XINGQI MOV A,XINGQI CJNE A,#8,DAY1 MOV XINGQI,#01HDAY1: MOV A,R3 CLR C CJNE A,#32H,DAYOUT MOV RIA,#0 MOV RIB,#1 MOV R0,#YUEA LCALL ADD1 MOV A,R3 CLR C CJNE A,#13H,DAYOUT MOV YUEA,#0 MOV YUEB,#1 MOV R0,#NIANA LCALL ADD1 MOV A,R3 CJNE A,#24H,DAYOUT MOV NIANA,#0 MOV NIANB,#0DAYOUT: RET;调时闪烁中断服务程序TIMER1: PUSH ACC PUSH PSW MOV TL1,#01H MOV TH1,#4CH ;装定时初值 DJNZ R2,TIM1OUT ;0.3秒未到退出中断 MOV R2,#6 ;0.3秒到重装0.3秒定时值 CPL 02H ;对闪烁标志取反 JB 02H,FLASH1 ;02H为1时显示单元熄灭 MOV SHIAN,50H MOV SHIBN,51H MOV FENAN,52H MOV FENBN,53H MOV MIAOAN,54H MOV MIAOBN,55H TIM1OUT: POP PSW ; POP ACC RETIFLASH1: JB 01H,FLASH2 ;小时闪烁标志 JB 03H,FLASH3 ;秒闪烁标志 JB 04H,FLASH4 JNB 00H,TIM1OUT MOV FENAN,#10 ; MOV FENBN,#10 MOV SHIAN,50H MOV SHIBN,51H MOV MIAOAN,54H MOV MIAOBN,55H LJMP TIM1OUTFLASH2: MOV SHIAN,#10 MOV SHIBN,#10 MOV FENAN,52H MOV FENBN,53H MOV MIAOAN,54H MOV MIAOBN,55H LJMP TIM1OUTFLASH3: MOV MIAOAN,#10 ;秒闪烁 MOV MIAOBN,#10 MOV SHIAN,50H MOV SHIBN,51H MOV FENAN,52H MOV FENBN,53H LJMP TIM1OUTFLASH4: MOV MIAOBN,#10 MOV MIAOAN,54H MOV SHIAN,50H MOV SHIBN,51H MOV FENAN,52H MOV FENBN,53H LJMP TIM1OUT;调时程序,TIAO: CLR ET0 CLR TR0 MOV 50H,SHIAN MOV 51H,SHIBN MOV 52H,FENAN MOV 53H,FENBN MOV 54H,MIAOAN MOV 55H,MIAOBN MOV R2,#6 SETB ET1 SETB TR1 TIAO1: JNB JIAN0,TIAO11 ;按下0键开始调整分钟 SETB 00H;TURNFEN: LCALL CHANGE ;调整分钟程序 LCALL DISPLAY JNB JIAN0,TIAOSHI ;按0键则转调整小时程序 JNB JIAN3,ZHUAN ;按3键则转到散转程序 JNB JIAN1,FENJIA0 ;按1键则分钟加一 JNB JIAN2,FENJIAN0 ;按2键则分钟减一 LJMP TURNFEN;TIAO11: LCALL DISPLAY LJMP TIAO1TIAOSHI: JNB JIAN0,TIAOSHI1 CLR 00H SETB 01H LJMP TURNSHITIAOSHI1: LCALL DISPLAY LJMP TIAOSHIFENJIA0: JNB JIAN1,FENJIA1 LCALL FENJIA LJMP TURNFENFENJIA1: LCALL DISPLAY LJMP FENJIA0FENJIAN0: JNB JIAN2,FENJIAN1 LCALL FENJIAN LJMP TURNFENFENJIAN1: LCALL DISPLAY LJMP FENJIAN0;散转程序,根据按键3的次数来跳转到闹钟,日历,星期设置程序。ZHUAN: JNB JIAN3,TIAO12 CLR ET1 CLR TR1 LJMP NAOTIAO12: LCALL DISPLAY LJMP ZHUAN;TURNSHI: LCALL CHANGE ;调整小时程序 LCALL DISPLAY JNB JIAN0,TOUT ;按下0键则退出调时 JNB JIAN1,SHIJIA0 ;按1键小时加一 JNB JIAN2,SHIJIAN0 ;按2键小时减一 JNB JIAN3,ZHUAN ;按3键则跳转 LJMP TURNSHI; TOUT: JNB JIAN0,TOUT1 LJMP TIAOOUTTOUT1: LCALL DISPLAY LJMP TOUTSHIJIA0: JNB JIAN1,SHIJIA1 LCALL SHIJIA LJMP TURNSHISHIJIA1: LCALL DISPLAY LJMP SHIJIA0SHIJIAN0: JNB JIAN2,SHIJIAN1 LCALL SHIJIAN LJMP TURNSHISHIJIAN1: LCALL DISPLAY LJMP SHIJIAN0;时间调整退出程序TIAOOUT: CLR 00H CLR 01H CLR 02H CLR 03H CLR 04H MOV SHIAN,50H MOV SHIBN,51H MOV FENAN,52H MOV FENBN,53H CLR ET1 CLR TR1 SETB ET0 SETB TR0 LJMP LOOP ;调时结束返回到主程序;闹钟调整程序NAO: SETB 00H ;分钟闪烁标志置1 CLR 01H ;小时闪烁标志清零 CLR 03H ;秒闪烁标志清零 MOV 60H,50H MOV 61H,51H MOV 62H,52H MOV 63H,53H MOV 64H,54H MOV 65H,55H MOV 50H,SHIAL MOV 51H,SHIBL MOV 52H,FENAL MOV 53H,FENBL SETB ET1 SETB TR1;闹钟分钟调整程序NAOFEN: LCALL CHANGE LCALL DISPLAY JNB JIAN0,NAOSHI0 JNB JIAN1,NFENJIA0 JNB JIAN2,NFENJIAN0 JNB JIAN3,NZHUAN LJMP NAOFENNAOSHI0: JNB JIAN0,NAOSHI1 CLR 00H SETB 01H CLR 03H LJMP NAOSHINAOSHI1: LCALL DISPLAY LJMP NAOSHI0NFENJIA0: JNB JIAN1,NFENJIA1 LCALL FENJIA LJMP NAOFENNFENJIA1: LCALL DISPLAY LJMP NFENJIA0NFENJIAN0:JNB JIAN2,NFENJIAN1 LCALL FENJIAN LJMP NAOFENNFENJIAN1:LCALL DISPLAY LJMP NFENJIAN0NZHUAN: JNB JIAN3,NZHUAN1 MOV SHIAL,50H MOV SHIBL,51H MOV FENAL,52H MOV FENBL,53H MOV SHIAN,60H MOV SHIBN,61H MOV FENAN,62H MOV FENBN,63H MOV MIAOAN,64H MOV MIAOBN,65H LJMP RIQINZHUAN1: LCALL DISPLAY LJMP NZHUAN;闹钟小时调整程序NAOSHI: LCALL CHANGE LCALL DISPLAY JNB JIAN0,NOUT0 JNB JIAN1,NSHIJIA0 JNB JIAN2,NSHIJIAN0 JNB JIAN3,NZHUAN LJMP NAOSHINOUT0: JNB JIAN0,NOUT1 CLR 00H CLR 01H CLR 03H MOV SHIAL,50H MOV SHIBL,51H MOV FENAL,52H MOV FENBL,53H MOV SHIAN,60H MOV SHIBN,61H MOV FENAN,62H MOV FENBN,63H MOV MIAOAN,64H MOV MIAOBN,65H LJMP TIAONOUT1: LCALL DISPLAY LJMP NOUT0NSHIJIA0: JNB JIAN1,NSHIJIA1 LCALL SHIJIA LJMP NAOSHINSHIJIA1: LCALL DISPLAY LJMP NSHIJIA0NSHIJIAN0:JNB JIAN2,NSHIJIAN1 LCALL SHIJIAN LJMP NAOSHINSHIJIAN1:LCALL DISPLAY LJMP NSHIJIAN0 ;日期调整程序RIQI: SETB 03H CLR 00H CLR 01H MOV 50H,NIANA MOV 51H,NIANB MOV 52H,YUEA MOV 53H,YUEB MOV 54H,RIA MOV 55H,RIB;调整日TURNRI: LCALL CHANGE LCALL DISPLAY JNB JIAN0,TURNYUE0 JNB JIAN1,RIJIA0 JNB JIAN2,RIJIAN0 JNB JIAN3,XZHUAN LJMP TURNRITURNYUE0: JNB JIAN0,TURNYUE01 CLR 03H SETB 00H LJMP TURNYUETURNYUE01:LCALL DISPLAY LJMP TURNYUE0RIJIA0: JNB JIAN1,RIJIA01 LJMP RIJIARIJIA01: LCALL DISPLAY LJMP RIJIA0RIJIAN0: JNB JIAN2,RIJIAN01 LJMP RIJIANRIJIAN01: LCALL DISPLAY LJMP RIJIAN0;跳转到调整星期XZHUAN: JNB JIAN3,XZHUAN1 MOV NIANA,50H MOV NIANB,51H MOV YUEA,52H MOV YUEB,53H MOV RIA,54H MOV RIB,55H LJMP WEEKXZHUAN1: LCALL DISPLAY LJMP XZHUAN;调整月TURNYUE: LCALL CHANGE LCALL DISPLAY JNB JIAN0,TURNN0 JNB JIAN1,YUEJIA0 JNB JIAN2,YUEJIAN JNB JIAN3,XZHUAN LJMP TURNYUETURNN0: JNB JIAN0,TURNN01 CLR 00H SETB 01H LJMP TURNNIANTURNN01: LCALL DISPLAY LJMP TURNN0YUEJIA0: JNB JIAN1,YUEJIA01 LCALL MJIA LJMP TURNYUEYUEJIA01: LCALL DISPLAY LJMP YUEJIA0YUEJIAN: JNB JIAN2,YUEJIAN1 LCALL MJIAN LJMP TURNYUEYUEJIAN1: LCALL DISPLAY LJMP YUEJIAN;调整年TURNNIAN: LCALL CHANGE LCALL DISPLAY JNB JIAN0,RIOUT JNB JIAN1,NIANJIA JNB JIAN2,NIANJIAN JNB JIAN3,XZHUAN LJMP TURNNIANNIANJIA: JNB JIAN1,NIANJIA1 LCALL SHIJIA LJMP TURNNIANNIANJIA1: LCALL DISPLAY LJMP NIANJIANIANJIAN: JNB JIAN2,NIANJIAN1 LCALL SHIJIAN LJMP TURNNIANNIANJIAN1:LCALL DISPLAY LJMP NIANJIANRIOUT: JNB JIAN0,RIOUT1 MOV NIANA,50H MOV NIANB,51H MOV YUEA,52H MOV YUEB,53H MOV RIA,54H MOV RIB,55H MOV SHIAN,60H MOV SHIBN,61H MOV FENAN,62H MOV FENBN,63H MOV MIAOAN,64H MOV MIAOBN,65H CLR 03H CLR 01H LJMP TIAORIOUT1: LCALL DISPLAY LJMP RIOUT;调整星期WEEK: CLR 00H CLR 01H CLR 03H SETB 04H MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV 53H,#0 MOV 54H,#0 MOV 55H,XINGQITUNWEEK: LCALL CHANGE LCALL DISPLAY JNB JIAN0,WEEKOUT JNB JIAN1,WEEKJIA0 JNB JIAN2,WEEKJIAN0 LJMP TUNWEEKWEEKOUT: JNB JIAN0,WEEKOUT1 CLR 04H MOV XINGQI,55H MOV SHIAN,60H MOV SHIBN,61H MOV FENAN,62H MOV FENBN,63H MOV MIAOAN,64H MOV MIAOBN,65H LJMP TIAOWEEKOUT1: LCALL DISPLAY LJMP WEEKOUTWEEKJIA0: JNB JIAN1,WEEKJIA01 INC 55H MOV A,55H CJNE A,#08H,WEEK1 MOV 55H,#1 WEEK1: LJMP TUNWEEKWEEKJIA01:LCALL DISPLAY LJMP WEEKJIA0WEEKJIAN0:JNB JIAN2,WEEKJIAN1 DEC 55H MOV A,55H CJNE A,#00H,WEEK2 MOV 55H,#07WEEK2: LJMP TUNWEEKWEEKJIAN1:LCALL DISPLAY LJMP WEEK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025电动单车充电站用户数据安全保护合同
- 2025年度矿山爆破工程劳务分包合同
- 2025版幼儿托管机构合同范本下载及服务内容
- 2025电子商务法律顾问服务合同(第3章专项)
- 2025版展览馆临时展台租赁合同范本
- 2025版商标许可及市场拓展服务合同范本
- 2025版桶装水品牌形象设计与宣传推广合同
- 2025版汽车租赁优惠活动合同范本
- 2025房地产项目建筑材料研发及采购合同
- 2025年别墅房屋建设与环保建材供应服务合同
- 消防监督员业务培训课件
- 特级建筑集团资金管理副总职责
- 2025教师暑期政治培训心得体会
- (高清版)DB34∕T 486-2025 霍山石斛
- 升降平台车培训
- 碳化硼建设项目可行性研究报告完整立项报告
- 10kV供配电系统电气设备改造 投标方案
- 肠外营养个案护理
- CJ/T 94-2005饮用净水水质标准
- 2025-2030系统级芯片(SoC)测试机产业市场深度调研及前景趋势与投资研究报告
- (2025)发展对象考试题(附答案)
评论
0/150
提交评论