版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.PAGE . . . . . . .专业 . .单片机应用系统设计课 题: 基于AT89C51单片机的多功能电子万年历的设计姓 名:班 级:学 号:指导教师:日 期:目录一绪言3二系统总体方案设计.3三硬件系统设计:.4四系统软件设计.5五设计总结8六参考文献8七附录.9一绪论随着电子技术的迅速开展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。本文首先描述系统硬件工作原理,并附以系统构造框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序
2、的各个模块和实现过程。万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的开展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时播送、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为根底的。因此,研究万年历及扩大其应用,有着非常现实的意义。本系统采用了以广泛使用的单片机技术为核心,软硬件结
3、合,使硬件局部大为简化,提高了系统稳定性,并采用LED显示电路、键盘电路,使人机交互简便易行。二系统总体方案设计1. 系统设计硬件框图振荡电路按键调节DS1302AT89C51LED显示频2. 实现的根本原理在本实验中,我引用了DS1302的时,分,秒功能,当时计数字24时通过74LS164给模块年月日进位,当日模块对应其相应月份进展向月进位时,就给月进位,当月满12时,给年进位。三硬件系统设计1.元器件介绍名称图形功能DS1302可以对年、月、日、周日、时、分、秒进展计时,且具有闰年补偿等多种功能74LS16474LS164是一个串行输入并行输出的移位存放器,并带有去除端。其中; Q0Q7
4、并行输出端 。 A,B串行输入端。 MR 去除端, 为0时,输出清零。 CP 时钟输入端。AT89C51at89c51单片机是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片含4K bytes的可反复擦写的Flash只读程序存储器和128bytes的随机数据存储器RAM,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统。功能强大的at89c51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.硬件原理图四系统软件设计仿真过程1、翻开PROTEUS软件,并出画单片机电子万年历具体运行电路图。3、检查所画电路运行图,确保没有错误以
5、后,加载源程序。4、加载完成后,单击电路图框下的开场按钮,进展仿真,观察LED数码管现实情况,此时LED数码管开场显示数字。调节开关进展时间的调节。当秒的显示间隔快与或慢与实际间隔时,调节石英晶体震荡器的频率参数,从而使秒的间隔到达标准。然后检查电路其它问题,并对其的各参数进展调整,使之正确。仿真结果通过对源程序的编译,改正了其中的很多错误,然后运行,保证源程序的正确性。然后按原理图选择正确合理的电器元件,画出正确的电路图,加载源程序运行,顺利实现了单片机数字电子钟的“小时、“分钟、“秒的显示。1主程序流程图设计开场设置串行口工作方式设置计数器工作方式给计数器1,0赋初值调用1302写操作启动
6、定时计数器0定时时间到?读年月日时分秒把要显示的数据送到缓冲区调用显示子程序完毕N调用定时中断Y2显示模块流程图根本显示模块设计的重点是由显示代码取得相应的段码、显示段码数据的串行发送,程序流程如图所示。其中时个位的段码必须加上小数点,即带小数点显示时个位,目的是以小数点符代替时间分割符“-。软件秒脉冲发生器其实质是利用了定时器0的定时溢出中断,将它设定为100ms溢出中断,则10次中断的时间正好为1s。将时间参数设计为100ms的原因有两个:根据系统时钟主频为6M的特点,16位定时器最大定时时间为655362MM为机器周期,这里是2,即131ms,取整数100便于计次数;如取的太短,如10m
7、s,则定时器频繁中断,干扰系统正常运行效果。有了秒脉冲发生器,10次中断为1s,秒指示灯闪亮1次,秒变量单元加1,60后分变量单元加1,如果为60分则时变量单元加1。任何一个变量的变化,则显示刷新一次更新。上述思想的实现均集成在定时器0的中断子程序中。该设计显示模块流程图如图将进制时分数据转化为显示代码关显示以免显示抖动通过串口将时十位段码送入对应的将时个位段码送入对应的将分十位和个位段码送入各自对应翻开显示运行结果五设计总结通过这一周的课程设计,我学到了不少的知识。把以前没有学好的模拟电路的知识进展了补充和加强。这使我受益很大。加深了我对于单片机和数字电路的认识,相信在以后的学习和工作中碰到
8、这些根底的元器件我会更加得心应手。通过查阅大量的资料,我获得了以前在课堂上学不到的东西,我想这对于以后的毕业设计,或者工作也好,都是很有帮助的。我很认真地对待这个过程中的每一个细节,希望自己能做得更好。希望今后还有这样的时机,能够让我学到更多的知识。在此次的数字钟设计过程中,更进一步地熟悉了芯片的构造及掌握了各芯片的工作原理和其具体的使用方法。在连接六进制,十进制,六十进制的进位及十二进制的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,则在电路出错时便能准确地找出错误所在并及时纠正了。学无止境,我们现在所做的一切都还只是一个开场。主要参考资料:1 林志琦.基于Proteus的单片机可视化软硬件
9、仿真M.:航空航天大学,2006.92 周润景,丽娜.基于PROTEUS的电路及单片机系统设计与仿真M.:航空航天大学,2006.53 靖武,周灵彬.单片机系统的PROTEUS设计与仿真M.:电子工业,2007.44 周润景,丽娜.PROTEUS入门实用教程M.:机械工业,2007.95 戴俊峰.嵌入式系统大屏幕LED点阵显示器J.现代电子技术,2004,27(19):68-89,72.6 寿鹏.基于嵌入式系统的LED信息显示技术研究J.现代电子技术,2005(1):15-47.7 楼然苗,光飞.51系列单片机设计实例M.:航空航天大学,2003.38 楼然苗,光飞.单片机课程设计指导M.:航
10、空航天大学,2007.79贾东耀,汪仁煌. 数字温度传感器在仓库温度检测系统的应用J. 传感器世界,2001.10 DALLAS DS18B20数据手册Z.ma*imic.11付旭,方康玲.利用VB6.0实现PC机与单片口通讯J.微计算机信息,2002,18(10):30-3112 江全,丽,岑红蕾.Visual Basic串口通信与测控应用技术实战详解M.:人民邮电,2007.13 法国Humirel公司.HS1101使用说明手册.14 太阳人电子.SMC1602A LCM使用说明手册.附录: ;* ;* 万年历程序 * ;* ;67H(高两位年)66H(低两位年)65H(月)64H(星期)
11、 ;63H(日)62H(小时)61H(分)60H(秒)57H(农历月)56H(农历日) ;显示缓冲单元CH7BH(4CH4BH)年低位,AH79H(4AH49H)月, ;78H(48H)星期,H76H(47H46H)日,H74H(45H44H)时, ;73H72H(43H42H)分,H70H(41H40H)秒,EH5DH(55H54H)农历年 ;5CH5BH(53H52H)农历月,AH59H(51H50H)农历日 ;闰年标志为F0,定时器T1为调整时候闪烁用 ; LCALL GETWEEK ; MOV 78H,WEEk SCLK BIT P3.2 IO BIT P3.3 RST BIT P3.
12、4 TIME_YEAR DATA 66H TIME_MONTH DATA 65H WEEK DATA 64H TIME_DAY DATA 63H HOUR DATA 62H MINTUE DATA 61H SECOND DATA 60H DS1302_ADDR DATA 32H DS1302_DATA DATA 31H start_year EQU 01; 定义查询表起始年份,01-199 表示1901-2099 年 week_byte1 DATA 3AH WEEK_BYTE2 DATA 3BH WEEK_BYTE3 DATA 3CH WEEK_BYTE4 DATA 3DH WEEK_BYTE
13、5 DATA 3EH CONvert_year DATA 6dh CONvert_month DATA 6eh ;BIT7 为1 表示闰月 CONvert_date DATA 6fh temp_Byte1 DATA 68h temp_Byte2 DATA 69h temp_Byte3 DATA 6Ah temp_Byte4 DATA 6Bh temp_Byte5 DATA 6Ch ; RS EQU P3.0 ; RW EQU P3.1 ; E EQU P3.5 ORG 0000H AJMP START ORG 0003H RETI ORG 000BH LJMP INTT2 ORG 001BH
14、LJMP INTT1 ORG 30H ;* ;* 主程序 * ;* start: mov R1,#254h ;清RAM 128单元 mov r0,#2 mov a,#0 clear: mov r0,a inc r0 djnz r1,clear mov r0,A MOV R1,A MOV R7,#10 ;计数器初始计数值 SETB EA ;翻开总中断 ; MOV T2CON,#0 ;MOV T2MOD,#0 ; MOV TH2,#0 ;MOV TL2,#0 ;SETB TR2 MOV SCON,#00H ;串行输出,方式 MOV TMOD,#11H ;计数器,方式;计数器,方式 MOV TL1,
15、#00H ;计数器初值65.5MS中断一次 MOV TH1,#00H MOV TH0,#3CH ;计数器50MS中断一次 MOV TL0,#0B0H CLR P0.6 MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H ;允许协 LCALL WRITE MOV DS1302_ADDR,#90H MOV DS1302_DATA,#0A6H ;1302充电,充电电流.1mA lcall write SETB ET0 ;翻开秒闪定时器 SETB TR0 main1: MOV DS1302_ADDR,#8DH ;READ OUT YEAR LCALL READ MOV
16、TIME_YEAR,DS1302_DATA MOV DS1302_ADDR,#8BH ;READ OUT WEEK LCALL READ MOV WEEK,DS1302_DATA MOV DS1302_ADDR,#89H ;READ OUT MONTH LCALL READ MOV TIME_MONTH,DS1302_DATA MOV DS1302_ADDR,#87H ;READ OUT DAY LCALL READ MOV TIME_DAY,DS1302_DATA MOV DS1302_ADDR,#85H ;READ OUT HOUR LCALL READ MOV HOUR,DS1302_D
17、ATA MOV DS1302_ADDR,#83H ;READ OUT MINTUE LCALL READ MOV MINTUE,DS1302_DATA MOV DS1302_ADDR,#81H ;READ OUT SECOND LCALL READ MOV SECOND,DS1302_DATA MOV R0,TIME_YEAR ;年别离,送显示缓存 LCALL DIVIDE MOV 7BH,R1 MOV 4BH,R1 MOV 7CH,R2 MOV 4CH,R2 MOV 78H,WEEK MOV 48H,WEEK MOV R0,TIME_MONTH ;月别离,送显示缓存 LCALL DIVIDE
18、 MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2 MOV R0,TIME_DAY ;日别离,送显示缓存 LCALL DIVIDE MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 MOV R0,HOUR ;小时别离,送显示缓存 LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 MOV R0,MINTUE ;分别离,送显示缓存 LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 MOV R0,S
19、ECOND ;秒别离,送显示缓存 LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2 MOV 41H,R2 LCALL GENG*IN ;更新农历程序 MOV R0,CONVERT_MONTH ;农历月别离,送显示缓存 LCALL DIVIDE MOV 5BH,R1 MOV 52H,R1 MOV 5CH,R2 MOV 53H,R2 MOV R0,CONVERT_DATE LCALL DIVIDE MOV 59H,R1 MOV 50H,R1 MOV 5AH,R2 MOV 51H,R2 LCALL GETWEEK MOV 78H,WEEK LCALL DIS
20、PLAY GOON:JNB P1.1,SETGG ;调整日历 ;JNB P1.4,QIDONG ;启动秒钟指示灯 ; LCALL QIDONG AAA: JNB F0,SSS CLR P1.0 ;闰月,则p1.0清,指示灯亮 LJMP MAIN1 SSS: SETB P1.0 ;非闰月,则p1.0置位,指示灯灭 LJMP MAIN1 SETGG: LJMP SETG QIDONG: LCALL DISPLAY ;秒钟指示灯开启/关闭 ;JNB P1.4,QIDONG ; LCALL QIDONG CPL 30H ;30 30H,ON CLR TR0 CLR ET0 AJMP QDOUT ON:
21、 SETB TR0 SETB ET0 QDOUT: AJMP AAA ;* ;* 秒灯闪烁程序 * ;* INTT2: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关T0中断允许 CLR TR0 ;关闭定时器T0 MOV A,#0B7H ;中断响应时间同步修正 ADD A,TL0 ;低位初值修正 MOV TL0,A ;重装初值低位修正值 MOV A,#3CH ;高位初值修正 ADDC A,TH0 ; MOV TH0,A ;重装初值高位修正值 SETB TR0 ;开启定时器T0 CLR PSW.4 DJNZ R7,INTT2OUT MOV R7,#1
22、0 CPL 20H 20H,S1 SETB P0.7 ; 秒指示灯闪烁 AJMP INTT2OUT S1: CLR P0.7 INTT2OUT: POP PSW ;出栈 POP ACC SETB ET0 RETI ;* ;* 写程序 * ;* WRITE: CLR SCLK NOP SETB RST NOP MOV A,DS1302_ADDR MOV R4,#8 WRITE1: RRC A ;送地址给 NOP NOP CLR SCLK NOP NOP NOP MOV IO,C SETB SCLK ;送入地址在时钟上升沿有效 NOP NOP NOP NOP DJNZ R4,WRITE1 CLR
23、SCLK NOP MOV A,DS1302_DATA MOV R4,#8 WRITE2: RRC A NOP ;送数据给,时钟上升沿,数据输入 CLR SCLK NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE2 CLR RST RET ;* ;* 读程序 * ;* READ: CLR SCLK NOP NOP SETB RST NOP MOV A,DS1302_ADDR MOV R4,#8 READ1: RRC A NOP MOV IO,C NOP NOP NOP SETB SCLK ;送入地址在时钟上升沿有效 NOP
24、NOP NOP ;CLR SCLK CLR SCLK NOP NOP DJNZ R4,READ1 MOV R4,#8 READ2: CLR SCLK NOP NOP NOP MOV C,IO NOP NOP NOP NOP NOP ;从ds1302中读取数据,时钟下降沿有效 RRC A NOP NOP NOP NOP SETB SCLK NOP DJNZ R4,READ2 MOV DS1302_DATA,A CLR RST RET ;* ;* 公历设置程序 * ;* SETG: CLR TR0 CLR ET0 SETB TR1 SETB ET1 CLR 08H CLR 09H CLR 0AH
25、CLR 0BH CLR 0CH CLR 0DH CLR 0EH CLR 0FH MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H ;允许写 LCALL WRITE MOV DS1302_ADDR,#80H MOV DS1302_DATA,#80H ;1302停顿振荡 LCALL WRITE GWAIT: LCALL DISPLAY JNB P1.1,GWAIT SETG1: LCALL DISPLAY JNB P1.1,SETGMON JNB P1.3,GADDYEAR JNB P1.4,GDECYEAR JNB F0,SSSYEAR CLR P1.0 ;闰月
26、,则p1.1清,指示灯亮 LJMP SETG1 SSSYEAR: SETB P1.0 AJMP SETG1 SETGMON: AJMP SETG2 GADDYEAR: MOV R7,66H ;年加 LCALL ADD1 MOV 66H,A GADDYEAR1: LCALL GETWEEK ;年加同时换算出星期 LCALL YMD ;转换农历月日 MOV DS1302_ADDR,#8CH ;年值送 MOV DS1302_DATA,66H LCALL WRITE MOV DS1302_ADDR,#8AH ;星期值送 MOV DS1302_DATA,64H LCALL WRITE MOV R0,66
27、H LCALL DIVIDE ;年别离送显示缓冲 MOV 4BH,R1 MOV 7BH,R1 MOV 4CH,R2 MOV 7CH,R2 MOV R0,64H LCALL DIVIDE ;星期别离送显示缓冲 MOV 48H,week MOV 78H,week WAIT1: LCALL DISPLAY JNB P1.3,WAIT1 AJMP SETG1 GDECYEAR: MOV R7,66H ;年减 LCALL DEC1 MOV 66H,A LCALL GETWEEK ;年减同时换算出星期 LCALL YMD ;转换农历月日 MOV DS1302_ADDR,#8CH ;年值送 MOV DS13
28、02_DATA,66H LCALL WRITE MOV DS1302_ADDR,#8AH ;星期值送 MOV DS1302_DATA,64H LCALL WRITE MOV R0,66H LCALL DIVIDE ;年别离送显示缓冲 MOV 4BH,R1 MOV 7BH,R1 MOV 4CH,R2 MOV 7CH,R2 MOV R0,64H LCALL DIVIDE ;星期别离送显示缓冲 MOV 48H,week MOV 78H,weekWAIT2: LCALL DISPLAY JNB P1.4,WAIT2 AJMP SETG1 SETG2: SETB 0AH ;调月时闪标志 GWAIT3:
29、LCALL DISPLAY JNB P1.1,GWAIT3 SETG3: LCALL DISPLAY JNB P1.1,SETGDAY JNB P1.3,GADDMONTH JNB P1.4,GDECMONTH JNB P1.2,JUMPYEAR JNB F0,SSSMONTH CLR P1.0 ;闰月,则p1.1清,指示灯亮 LJMP SETG3 SSSMONTH: SETB P1.0 AJMP SETG3 JUMPYEAR: LCALL DISPLAY CLR 0AH JNB P1.2,JUMPYEAR AJMP SETG1 SETGDAY: AJMP SETG4 GADDMONTH: M
30、OV R7,65H ;月加 LCALL ADD1 MOV 65H,A CJNE A,#13H,GADDMONTH1 MOV 65H,#01H GADDMONTH1: LCALL GETWEEK ;月加同时换算出星期 LCALL YMD ;转换农历月日 MOV DS1302_ADDR,#88H ;月值送 MOV DS1302_DATA,65H LCALL WRITE MOV DS1302_ADDR,#8AH ;星期值送 MOV DS1302_DATA,64H LCALL WRITE MOV R0,65H LCALL DIVIDE ;月别离送显示缓冲 MOV 79H,R1 MOV 49H,R1 M
31、OV 7AH,R2 MOV 4AH,R2 MOV R0,64H LCALL DIVIDE ;星期别离送显示缓冲 MOV 48H,week MOV 78H,week WAIT4: LCALL DISPLAY JNB P1.3,WAIT4 AJMP SETG3 GDECMONTH:MOV R7,65H ;月减 LCALL DEC1 MOV 65H,A CJNE A,#00H,GDECMONTH1 MOV 65H,#12H GDECMONTH1: LCALL GETWEEK ;月减同时换算出星期 LCALL YMD ;转换农历月日 MOV DS1302_ADDR,#88H ;月值送 MOV DS13
32、02_DATA,65H LCALL WRITE MOV DS1302_ADDR,#8AH ;星期值送 MOV DS1302_DATA,64H LCALL WRITE MOV R0,65H LCALL DIVIDE ;月别离送显示缓冲 MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2 MOV R0,64H LCALL DIVIDE ;星期别离送显示缓冲 MOV 48H,week MOV 78H,week WAIT5: LCALL DISPLAY JNB P1.4,WAIT5 AJMP SETG3 SETG4: SETB 0BH ;调日时闪标志 GWAIT6:
33、 LCALL DISPLAY JNB P1.1,GWAIT6 SETG5: LCALL DISPLAY JNB P1.1,SETGHOUR JNB P1.3,GADDDAY JNB P1.4,SETGDDAY JNB P1.2,JUMPMONTH JNB F0,SSSDATE CLR P1.0 ;闰月,则p1.1清,指示灯亮 LJMP SETG5 SSSDATE: SETB P1.0 AJMP SETG5 JUMPMONTH: LCALL DISPLAY CLR 0BH JNB P1.2,JUMPMONTH AJMP SETG3 SETGHOUR: AJMP SETG6 SETGDDAY: A
34、JMP GDECDAY GADDDAY: MOV A,65H CJNE A,#01H,FEB LCALL MMONTH ;一月日加 AJMP GADDDAY1 FEB: CJNE A,#02H,MARCH MOV R3,66H ;二月日加 LCALL ZH ;BCD码转换成HE* MOV A,R3 JZ RFEB MOV R7,63H ;平年二月有天 LCALL ADD1 MOV 63H,A CJNE A,#29H,FEB1 MOV 63H,#01 FEB1: AJMP GADDDAY1 RFEB: MOV R7,63H ;闰年二月有天 LCALL ADD1 MOV 63H,A CJNE A,
35、#30H,FEB2 MOV 63H,#01 FEB2: AJMP GADDDAY1 MARCH: CJNE A,#03H,APRIL LCALL MMONTH ;三月加 AJMP GADDDAY1 APRIL: CJNE A,#04H,MAY LCALL LMONTH ;四月加 AJMP GADDDAY1 MAY: CJNE A,#05H,JUNE LCALL MMONTH ;五月加 AJMP GADDDAY1 JUNE: CJNE A,#06H,JULY LCALL LMONTH ;六月加 AJMP GADDDAY1 JULY: CJNE A,#07H,AUGUST LCALL MMONTH
36、 ;七月加 AJMP GADDDAY1 AUGUST: CJNE A,#08H,SEPTEMBER LCALL MMONTH ;八月加 AJMP GADDDAY1 SEPTEMBER:CJNE A,#09H,OCTOBER LCALL LMONTH ;九月加 AJMP GADDDAY1 OCTOBER: CJNE A,#10H,NOVEMBER LCALL MMONTH ;十月加 AJMP GADDDAY1 NOVEMBER: CJNE A,#11H,DECEMBER LCALL LMONTH ;十一月加 AJMP GADDDAY1 DECEMBER: CJNE A,#12H,ERROR LC
37、ALL MMONTH ;十二月加 AJMP GADDDAY1 ERROR: AJMP WAIT7 GADDDAY1: LCALL GETWEEK LCALL YMD ;转换农历月日 MOV DS1302_ADDR,#86H ;日值送 MOV DS1302_DATA,63H LCALL WRITE MOV DS1302_ADDR,#8AH ;星期值送 MOV DS1302_DATA,64H LCALL WRITE MOV R0,63H LCALL DIVIDE ;日别离送显示缓冲 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 MOV R0,64H LCA
38、LL DIVIDE ;星期别离送显示缓冲 MOV 48H,week MOV 78H,week WAIT7: LCALL DISPLAY JNB P1.3,WAIT7 AJMP SETG5 ;* GDECDAY: mov A,65H CJNE A,#01H,DFEB LCALL DMMONTH ;一月日减 AJMP GDECDAY1 DFEB: CJNE A,#02H,DMARCH MOV R3,66H ;二月日减 LCALL ZH ;BCD码转换成HE* MOV A,R3 JZ DRFEB MOV R7,63H ;平年二月有天 LCALL DEC1 MOV 63H,A CJNE A,#00H,
39、DFEB1 MOV 63H,#28H DFEB1: AJMP GDECDAY1 DRFEB: MOV R7,63H ;闰年二月有天 LCALL DEC1 MOV 63H,A CJNE A,#00H,DFEB2 MOV 63H,#29H DFEB2: AJMP GDECDAY1 DMARCH: CJNE A,#03H,DAPRIL LCALL DMMONTH ;三月减 AJMP GDECDAY1 DAPRIL: CJNE A,#04H,DMAY LCALL DLMONTH ;四月减 AJMP GDECDAY1 DMAY: CJNE A,#05H,DJUNE LCALL DMMONTH ;五月减
40、AJMP GDECDAY1 DJUNE: CJNE A,#06H,DJULY LCALL DLMONTH ;六月减 AJMP GDECDAY1 DJULY: CJNE A,#07H,DAUGUST LCALL DMMONTH ;七月减 AJMP GDECDAY1 DAUGUST:CJNE A,#08H,DSEPTEMBER LCALL DMMONTH ;八月减 AJMP GDECDAY1 DSEPTEMBER:CJNE A,#09H,DOCTOBER LCALL DLMONTH ;九月减 AJMP GDECDAY1 DOCTOBER:CJNE A,#10H,DNOVEMBER LCALL DM
41、MONTH ;十月减 AJMP GDECDAY1 DNOVEMBER:CJNE A,#11H,DDECEMBER LCALL DLMONTH ;十一减加 AJMP GDECDAY1 DDECEMBER: CJNE A,#12H,DERROR LCALL DMMONTH ;十二月减 AJMP GDECDAY1 DERROR: AJMP WAIT8 GDECDAY1: LCALL GETWEEK LCALL YMD ;转换农历月日 MOV DS1302_ADDR,#86H ;日值送 MOV DS1302_DATA,63H LCALL WRITE MOV DS1302_ADDR,#8AH ;星期值送
42、 MOV DS1302_DATA,64H LCALL WRITE MOV R0,63H LCALL DIVIDE ;日别离送显示缓冲 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 MOV R0,64H LCALL DIVIDE ;星期别离送显示缓冲 MOV 48H,week MOV 78H,week WAIT8: LCALL DISPLAY JNB P1.4,WAIT8 AJMP SETG5 SETG6: SETB 0CH ;调小时时闪标志 GWAIT9: LCALL DISPLAY JNB P1.1,GWAIT9 SETG9: LCALL DISPL
43、AY JNB P1.1,SETG10 JNB P1.3,GADDHOUR JNB P1.4,GDECHOUR JNB P1.2,JUMPDATE AJMP SETG9 JUMPDATE: LCALL DISPLAY CLR 0CH JNB P1.2,JUMPDATE AJMP SETG5 GADDHOUR: MOV R7,62H ;小时加 LCALL ADD1 MOV 62H,A CJNE A,#24H,GADDHOUR1 MOV 62H,#00H GADDHOUR1: MOV DS1302_ADDR,#84H ;小时值送 MOV DS1302_DATA,62H LCALL WRITE MOV
44、 R0,62H LCALL DIVIDE ;小时别离送显示缓冲 MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 WAIT10: LCALL DISPLAY JNB P1.3,WAIT10 AJMP SETG9 GDECHOUR: MOV R7,62H ;小时减 LCALL DEC1 MOV 62H,A CJNE A,#99H,GDECHOUR1 MOV 62H,#23H GDECHOUR1: MOV DS1302_ADDR,#84H ;小时值送 MOV DS1302_DATA,62H LCALL WRITE MOV R0,62H LCALL DIVIDE
45、 ;小时别离送显示缓冲 MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 WAIT11: LCALL DISPLAY JNB P1.4,WAIT11 AJMP SETG9 SETG10: SETB 0DH ;调分时闪标志 GWAIT12: LCALL DISPLAY JNB P1.1,GWAIT12 SETG11: LCALL DISPLAY JNB P1.1,SETGOUT JNB P1.3,GADDMINTUE JNB P1.4,GDECMINTUE JNB P1.2,JUMPHOUR AJMP SETG11 JUMPHOUR: LCALL DISPL
46、AY CLR 0DH JNB P1.2,JUMPHOUR AJMP SETG9 GADDMINTUE: MOV R7,61H ;分加 LCALL ADD1 MOV 61H,A CJNE A,#60H,GADDMINTUE1 MOV 61H,#00H GADDMINTUE1: MOV DS1302_ADDR,#82H ;分值送 MOV DS1302_DATA,61H LCALL WRITE MOV R0,61H LCALL DIVIDE ;分别离送显示缓冲 MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 WAIT13: LCALL DISPLAY JNB
47、P1.3,WAIT13 AJMP SETG11 GDECMINTUE: MOV R7,61H ;分减 LCALL DEC1 MOV 61H,A CJNE A,#99H,GDECMINTUE1 MOV 61H,#59H GDECMINTUE1: MOV DS1302_ADDR,#82H ;分值送 MOV DS1302_DATA,61H LCALL WRITE MOV R0,61H LCALL DIVIDE ;分别离送显示缓冲 MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 WAIT14: LCALL DISPLAY JNB P1.4,WAIT14 AJMP
48、 SETG11 SETGOUT: LCALL DISPLAY JNB P1.1,SETGOUT LCALL GENG*IN MOV DS1302_ADDR,#80H MOV DS1302_DATA,#00H ;1302晶振开场振荡 LCALL WRITE MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#80H ;制止写入 LCALL WRITE CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH CLR 0DH CLR ET1 CLR TR1 ;关闭定时器 SETB ET0 SETB TR0 LJMP MAIN1 ;* ;* 闪动调时程序
49、 * ;* INTT1: PUSH ACC PUSH PSW GFLASH: CPL 0FH 0FH,GFLASH1 MOV 7CH,4CH ;全部显示 MOV 7BH,4BH ;MOV A,4AH ;CJNE A,#0,TMONTH ;MOV 4AH,#0BH TMONTH:MOV 7AH,4AH MOV 79H,49H MOV 78H,WEEK ;MOV A,47H ;CJNE A,#0,TDATE ;MOV 47H,#0BH TDATE: MOV 77H,47H MOV 76H,46H ;MOV A,45H ;CJNE A,#0,THOUR ;MOV 45H,#0AH THOUR:MOV
50、 75H,45H MOV 74H,44H MOV 73H,43H MOV 72H,42H MOV 71H,41H MOV 70H,40H ; MOV 50H,59H ;农历月日 ; MOV A,5AH ; CJNE A,#0,TNDATE ; MOV 5AH,#0BH ; TNDATE:MOV 51H,5AH ; MOV 52H,5BH ; MOV A,5CH ; CJNE A,#0,TNMONTH ; MOV 5CH,#0BH ; TNMONTH: ; MOV 53H,5CH GFLASHOUT: POP PSW POP ACC RETI GFLASH1: 0AH,GFLASH2 ;调年闪
51、MOV 7CH,#0AH MOV 7BH,#0AH ;MOV 78H,#0AH ;调年时星期闪 ;MOV 50H,#0AH ;农历月日闪烁 ; MOV 51H,#0AH ; MOV 52H,#0AH ; MOV 53H,#0AH AJMP GFLASHOUT GFLASH2: 0BH,GFLASH3 ;调月闪 MOV 7AH,#0AH MOV 79H,#0AH ;MOV 78H,#0AH ;调月时星期闪 ;MOV 50H,#0AH ;农历月日闪烁 ;MOV 51H,#0AH ;MOV 52H,#0AH ; MOV 53H,#0AH LJMP GFLASHOUT GFLASH3: 0CH,GFLASH4 ;调日闪 MOV 77H,#0AH MOV 76H,#0AH ;MOV 78H,#0AH ;调日时星期闪 ;MOV 50H,#0AH ;农历月日闪烁 ;MOV 51H,#0AH ;MOV 52H,#0AH ;MOV 53H,#0AH LJMP GFLASHOUT GFLASH4: 0DH,GFLASH5 ;调小时闪
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年城市轨道交通建设BOT项目合同
- 2024年合作发展借款合同
- 2024年合同相对性原则详解
- 2024年企业间技术咨询合同费用结构
- 2024年可再生能源发电项目开发与合作经营合同
- 2024年厂房照明及能源管理系统承包合同
- 产业扶贫担保合同
- 2024年工厂车间LED显示屏购销合同
- 2024年农民公寓居住权转让协议
- 2024年地标性写字楼租赁协议
- 2021年大唐集团招聘笔试试题及答案
- 中铁十一局宣传片脚本策划方案
- (word完整版)ISO 75-2- 中文版
- DBJ53/T-39-2020 云南省民用建筑节能设计标准
- 吉林省白城市各县区乡镇行政村村庄村名居民村民委员会明细
- 2022版义务教育数学课程标准解读课件PPT模板
- 实验五 PCR扩增课件
- 马拉松运动医疗支援培训课件
- 不良资产处置尽职指引
- 人教部编版七年级历史上册第19课 北魏政治和北方民族大交融课件(23张PPT)
- 小学科学教育科学三年级上册天气《认识气温计》教学设计
评论
0/150
提交评论