




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用系统设计 AT89C51目录3.3..4.588.9随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。万年历是采用数字电路实现对 .时,分,秒.数字显示的计时装置 ,广泛用于个人家庭 ,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LED显示电路、键盘电路,使人机交互简便易行。二.系统总体方案设计1.系统设计硬件框图振荡电路按键调节 AT89C51DS1302
LED显示频2.实现的基本原理在本实验中,我引用了 DS1302的时,分,秒功能,当时计数字 24时通过74LS164给模块年月日进位,当日模块对应其相应月份进行向月进位时,就给月进位,当月满 12时,给年进位。三.硬件系统设计1.元器件介绍名称 图形 功能DS130274LS164
U18VCC1X11VCC25RST7SCLK6I/O X2DS1302U4SRG8R8C1/->1&321D4561011121374LS164
23
可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能74LS164是一个串行输入并行输出的移位寄存器 ,并带有清除端。其中。Q0—Q7并行输出端 。A,B串行输入端。 MR清除端, 为 0时,输出清零。 CP时钟输入端。AT89C512.硬件原理图
19U239at89c51单片机是美国ATMEL公司XTAL1P0.0/AD0生产的低电压,高性能CMOS8位单38P0.2/AD2374Kbytes1836片机,片内含的可反复擦XTAL2P0.3/AD3P0.4/AD434写的Flash只读程序存储器和P0.6/AD6P0.5/AD59RSTP0.7/AD732128bytes的随机数据存储器P2.0/A8212(RAM),器件采用ATMEL公司的高222P2.1/A929P2.2/A10242密度,非易失性存储技术生产,兼ALEP2.4/A12PSENP2.3/A11231EAP2.5/A13262容标准MCS-51指令系统。功能强大272P2.7/A15282的at89c51单片机可为您提供许多1P1.0P3.0/RXD10211高性价比的应用场合,可灵活应用P1.1P3.1/TXD4P1.2P3.2/INT013P1.4P3.4/T0于各种控制领域。P1.3P3.3/INT16P1.5P3.5/T115716P1.6P3.6/WR817P1.7P3.7/RDAT89C51年月日星期月日小时分秒四.系统软件设计仿真过程1、打开PROTEUS软件,并出画单片机电子万年历具体运行电路图。3、检查所画电路运行图,确保没有错误以后,加载源程序。4、加载完成后,单击电路图框下的开始按钮,进行仿真,观察 LED数码管现实情况,此时 LED数码管开始显示数字。调节开关进行时间的调节。当秒的显示间隔快与或慢与实际间隔时,调节石英晶体震荡器的频率参数,从而使秒的间隔达到标准。然后检查电路其它问题,并对其的各参数进行调整,使之正确。仿真结果通过对源程序的编译,改正了其中的很多错误,然后运行,保证源程序的正确性。然后按原理图选择正确合理的电器元件,画出正确的电路图,加载源程序运行,顺利实现了单片机数字电子钟的“小时”、“分钟”、“秒”的显示。主程序流程图设计开始设置串行口工作方式设置计数器工作方式给计数器 1,0赋初值调用1302写操作启动定时计数器 0Y定时时间到?N
调用定时中断读年月日时分秒把要显示的数据送到缓冲区调用显示子程序结束显示模块流程图基本显示模块设计的重点是由显示代码取得相应的段码、显示段码数据的串行发送,程序流程如图1-11所示。其中时个位的段码必须加上小数点,即带小数点显示时个位,目的是以小数点符代替时间分割符“ -”。软件秒脉冲发生器其实质是利用了定时器 0的定时溢出中断,将它设定为 100ms 溢出中断,则 10次中断的时间正好为 1s。将时间参数设计为 100ms的原因有两个:1)根据系统时钟主频为 6M的特点,16位定时器最大定时时间为 65536×2M(M为机器周期,这里是 2μS),即 131ms,取整数 100便于计次数;2)如取的太短,如 10ms,则定时器频繁中断,干扰系统正常运行效果。有了秒脉冲发生器, 10次中断为 1s,秒指示灯闪亮 1次,秒变量单元加 1,60后分变量单元加 1,如果为 60分则时变量单元加 1。任何一个变量的变化,则显示刷新一次(更新)。上述思想的实现均集成在定时器 0的中断子程序中。该设计显示模块流程图如图将16进制时分数据转化为BCD显示代码关显示以免显示抖动通过串口将时十位段码送入对应的LS164将时个位段码送入对应的LS164将分十位和个位段码送入各自对应LS164打开显示运行结果年月日星期月日小时分秒 五.设计总结通过这一周的课程设计,我学到了不少的知识。把以前没有学好的模拟电路的知识进行了补充和加强。这使我受益很大。加深了我对于单片机和数字电路的认识,相信在以后的学习和工作中碰到这些基础的元器件我会更加得心应手。通过查阅大量的资料,我获得了以前在课堂上学不到的东西,我想这对于以后的毕业设计,或者工作也好,都是很有帮助的。我很认真地对待这个过程中的每一个细节,希望自己能做得更好。希望今后还有这样的机会,能够让我学到更多的知识。在此次的数字钟设计过程中 ,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。在连接六进制,十进制,六十进制的进位及十二进制的接法中 ,要求熟悉逻辑电路及其芯片各引脚的功能 ,那么在电路出错时便能准确地找出错误所在并及时纠正了。学无止境,我们现在所做的一切都还只是一个开始。主要参考资料:[1] 林志琦.基于 Proteus 的单片机可视化软硬件仿真 [M].北京:北京航空航天大学出版社,2006.9周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006.5张靖武,周灵彬.单片机系统的PROTEUS设计与仿真[M].北京:电子工业出版社,2007.4周润景,张丽娜.PROTEUS入门实用教程[M].北京:机械工业出版社,2007.9戴俊峰.嵌入式系统大屏幕LED点阵显示器[J].现代电子技术,2004,27(19):68-89,72.冯寿鹏.基于嵌入式系统的LED信息显示技术研究[J].现代电子技术,2005(1):15-47.楼然苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.3楼然苗,李光飞.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.7[9]贾东耀,汪仁煌 . 数字温度传感器在仓库温度检测系统的应用 [J]. 传感器世界,2001.DALLASDS18B20数据手册[Z].http://付旭,方康玲.利用VB6.0实现PC机与单片口通讯[J].微计算机信息,2002,18(10):30-31[12] 李江全,张丽,岑红蕾.VisualBasic 串口通信与测控应用技术实战详解 [M].北京:人民邮电出版社 ,2007.法国Humirel公司.HS1101使用说明手册.长沙太阳人电子有限公司.SMC1602ALCM使用说明手册.附录:*****************************。* 万年历程序 ******************************67H(高两位年)66H(低两位年)65H(月)64H(星期)63H(日)62H(小时)61H(分)60H(秒)57H(农历月)56H(农历日)。显示缓冲单元 CH~7BH(4CH~4BH)年低位,AH~79H(4AH~49H)月,78H(48H)星期,H~76H(47H~46H)日,H~74H(45H~44H)时,73H72H(43H~42H)分,H~70H(41H~40H)秒,EH~5DH(55H~54H)农历年5CH~5BH(53H~52H)农历月,AH~59H(51H~50H)农历日。闰年标志为F0,定时器T1为调整时候闪烁用LCALLGETWEEKMOV78H,WEEkSCLKBITP3.2IOBITP3.3RSTBITP3.4TIME_YEARDATA66HTIME_MONTHDATA65HWEEKDATA64HTIME_DAYDATA63HHOURDATA62HMINTUEDATA61HSECONDDATA60HDS1302_ADDRDATA32HDS1302_DATADATA31Hstart_yearEQU 01 。定义查询表起始年份 ,01--199 表示1901-2099年week_byte1DATA3AHWEEK_BYTE2DATA3BHWEEK_BYTE3DATA3CHWEEK_BYTE4DATA3DHWEEK_BYTE5DATA3EHCONvert_yearDATA6dhCONvert_monthDATA6eh 。BIT7为1表示闰月CONvert_dateDATA6fhtemp_Byte1DATA68htemp_Byte2DATA69htemp_Byte3DATA6Ahtemp_Byte4DATA6Bhtemp_Byte5DATA6ChRSEQUP3.0RWEQUP3.1EEQUP3.5ORG0000HAJMPSTARTORG0003HRETIORG000BHLJMPINTT2ORG001BHLJMPINTT1ORG30H************************************。* 主程序 *************************************start:movR1,#254h
。清RAM128单元movr0,#2mova,#0clear:mov@r0,aincr0djnzr1,clearmovr0,AMOVR1,AMOVR7,#10SETBEA
。计数器初始计数值。打开总中断。MOV T2CON,#0。MOV T2MOD,#0。MOV TH2,#0。MOV TL2,#0。SETBTR2MOVSCON,#00HMOVTMOD,#11HMOVTL1,#00H
。串行输出,方式。计数器,方式。计数器 ,方式。计数器初值65.5MS中断一次MOVTH1,#00HMOVTH0,#3CH
。计数器
50MS中断一次MOVTL0,#0B0HCLRP0.6MOVDS1302_ADDR,#8EHMOVDS1302_DATA,#00H
。允许协LCALLWRITEMOVDS1302_ADDR,#90HMOVDS1302_DATA,#0A6H
。1302充电,充电电流.1mAlcallwriteSETBET0SETBTR0main1: MOVDS1302_ADDR,#8DHLCALLREAD
。打开秒闪定时器。READOUTYEARMOVTIME_YEAR,DS1302_DATAMOVDS1302_ADDR,#8BH
。READOUTWEEKLCALLREADMOVWEEK,DS1302_DATAMOVDS1302_ADDR,#89H
。READOUTMONTHLCALLREADMOVTIME_MONTH,DS1302_DATAMOVDS1302_ADDR,#87H
。READOUTDAYLCALLREADMOVTIME_DAY,DS1302_DATAMOVDS1302_ADDR,#85H
。READOUTHOURLCALLREADMOVHOUR,DS1302_DATAMOVDS1302_ADDR,#83H
。READOUTMINTUELCALLREADMOVMINTUE,DS1302_DATAMOVDS1302_ADDR,#81H
。READOUTSECONDLCALLREADMOVSECOND,DS1302_DATAMOVR0,TIME_YEAR
。年分离,送显示缓存LCALLDIVIDEMOV7BH,R1MOV4BH,R1MOV7CH,R2MOV4CH,R2MOV78H,WEEKMOV48H,WEEKMOVR0,TIME_MONTH
。月分离,送显示缓存LCALLDIVIDEMOV79H,R1MOV49H,R1MOV7AH,R2MOV4AH,R2MOVR0,TIME_DAY
。日分离,送显示缓存LCALLDIVIDEMOV76H,R1MOV46H,R1MOV77H,R2MOV47H,R2MOVR0,HOUR 。小时分离,送显示缓存LCALLDIVIDEMOV74H,R1MOV44H,R1MOV75H,R2MOV45H,R2MOVR0,MINTUE
。分分离,送显示缓存LCALLDIVIDEMOV72H,R1MOV42H,R1MOV73H,R2MOV43H,R2MOVR0,SECOND
。秒分离,送显示缓存LCALLDIVIDEMOV70H,R1MOV40H,R1MOV71H,R2MOV41H,R2LCALLGENGXINMOVR0,CONVERT_MONTH
。更新农历程序。农历月分离,送显示缓存LCALLDIVIDEMOV5BH,R1MOV52H,R1MOV5CH,R2MOV53H,R2MOVR0,CONVERT_DATELCALLDIVIDEMOV59H,R1MOV50H,R1MOV5AH,R2MOV51H,R2LCALLGETWEEKMOV78H,WEEKLCALLDISPLAYGOON:JNBP1.1,SETGG
。JNBP1.4,QIDONG
。调整日历。启动秒钟指示灯。LCALLQIDONGAAA: JNBF0,SSSCLRP1.0
。闰月,则
p1.0清,指示灯亮LJMPMAIN1SSS: SETBP1.0
。非闰月,则
p1.0置位,指示灯灭LJMPMAIN1SETGG: LJMPSETGQIDONG: LCALLDISPLAY
。秒钟指示灯开启
/关闭JNBP1.4,QIDONGLCALLQIDONGCPL30HJB 30H,ONCLRTR0CLRET0AJMPQDOUTON:SETBTR0SETBET0QDOUT: AJMPAAA
。30。*****************************。*
秒灯闪烁程序
******************************INTT2:PUSHACC。累加器入栈保护PUSHPSW。状态字入栈保护CLRET0。关T0中断允许CLRTR0。关闭定时器T0MOVA,#0B7H。中断响应时间同步修正ADDA,TL0。低位初值修正MOVTL0,A。重装初值(低位修正值)MOVA,#3CH。高位初值修正ADDCA,TH0。MOVTH0,A。重装初值(高位修正值)SETBTR0。开启定时器T0CLRPSW.4DJNZR7,INTT2OUTMOVR7,#10CPL20HJB20H,S1SETBP0.7。秒指示灯闪烁AJMPINTT2OUTS1:CLRP0.7INTT2OUT:POPPSW。出栈POPACCSETBET0RETI。*********************************。*写程序**********************************WRITE:CLRSCLKNOPSETBRSTNOPMOVA,DS1302_ADDRMOVR4,#8WRITE1:RRCA
。送地址给NOPNOPCLRSCLKNOPNOPNOPMOVIO,CSETBSCLK
。送入地址在时钟上升沿有效NOPNOPNOPNOPDJNZR4,WRITE1CLRSCLKNOPMOVA,DS1302_DATAMOVR4,#8WRITE2:RRCANOP
。送数据给
,时钟上升沿,数据输入CLRSCLKNOPNOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPDJNZR4,WRITE2CLRRSTRET。*******************************。* 读程序 ********************************READ:CLRSCLKNOPNOPSETBRSTNOPMOVA,DS1302_ADDRMOVR4,#8READ1:RRCANOPMOVIO,CNOPNOPNOPSETBSCLK 。送入地址在时钟上升沿有效NOPNOPNOPCLRSCLKCLRSCLKNOPNOPDJNZR4,READ1MOVR4,#8READ2:CLRSCLKNOPNOPNOPMOVC,IONOPNOPNOPNOPNOP 。从ds1302中读取数据,时钟下降沿有效RRCANOPNOPNOPNOPSETBSCLKNOPDJNZR4,READ2MOVDS1302_DATA,ACLRRSTRET*******************************。* 公历设置程序 ********************************SETG:CLRTR0CLRET0SETBTR1SETBET1CLR08HCLR09HCLR0AHCLR0BHCLR0CHCLR0DHCLR0EHCLR0FHMOVDS1302_ADDR,#8EHMOVDS1302_DATA,#00H
。允许写LCALLWRITEMOVDS1302_ADDR,#80HMOVDS1302_DATA,#80H
。1302停止振荡LCALLWRITEGWAIT: LCALLDISPLAYJNBP1.1,GWAITSETG1: LCALLDISPLAYJNBP1.1,SETGMONJNBP1.3,GADDYEARJNBP1.4,GDECYEARJNBF0,SSSYEARCLRP1.0
。闰月,则
p1.1清,指示灯亮LJMPSETG1SSSYEAR: SETBP1.0AJMPSETG1SETGMON:AJMPSETG2GADDYEAR: MOVR7,66H
。年加LCALLADD1MOV66H,AGADDYEAR1: LCALLGETWEEKLCALLYMDMOVDS1302_ADDR,#8CH
。年加同时换算出星期。转换农历月日。年值送MOVDS1302_DATA,66HLCALLWRITEMOVDS1302_ADDR,#8AH
。星期值送MOVDS1302_DATA,64HLCALLWRITEMOVR0,66HLCALLDIVIDE
。年分离送显示缓冲MOV4BH,R1MOV7BH,R1MOV4CH,R2MOV7CH,R2MOVR0,64HLCALLDIVIDE。星期分离送显示缓冲MOV48H,weekMOV78H,weekWAIT1:LCALLDISPLAYJNBP1.3,WAIT1AJMPSETG1GDECYEAR:MOVR7,66H。年减LCALLDEC1MOV66H,ALCALLGETWEEK。年减同时换算出星期LCALLYMD。转换农历月日MOVDS1302_ADDR,#8CH。年值送MOVDS1302_DATA,66HLCALLWRITEMOVDS1302_ADDR,#8AH。星期值送MOVDS1302_DATA,64HLCALLWRITEMOVR0,66HLCALLDIVIDE。年分离送显示缓冲MOV4BH,R1MOV7BH,R1MOV4CH,R2MOV7CH,R2MOVR0,64HLCALLDIVIDE。星期分离送显示缓冲MOV48H,weekMOV78H,weekWAIT2:LCALLDISPLAYJNBP1.4,WAIT2AJMPSETG1SETG2:SETB0AH。调月时闪标志GWAIT3:LCALLDISPLAYJNBP1.1,GWAIT3SETG3:LCALLDISPLAYJNBP1.1,SETGDAYJNBP1.3,GADDMONTHJNBP1.4,GDECMONTHJNBP1.2,JUMPYEARJNBF0,SSSMONTHCLRP1.0。闰月,则p1.1清,指示灯亮LJMPSETG3SSSMONTH:SETBP1.0AJMPSETG3JUMPYEAR:LCALLDISPLAYCLR0AHJNBP1.2,JUMPYEARAJMPSETG1SETGDAY: AJMPSETG4GADDMONTH: MOVR7,65H
。月加LCALLADD1MOV65H,ACJNEA,#13H,GADDMONTH1MOV65H,#01HGADDMONTH1:LCALLGETWEEKLCALLYMDMOVDS1302_ADDR,#88H
。月加同时换算出星期。转换农历月日。月值送MOVDS1302_DATA,65HLCALLWRITEMOVDS1302_ADDR,#8AH
。星期值送MOVDS1302_DATA,64HLCALLWRITEMOVR0,65HLCALLDIVIDE
。月分离送显示缓冲MOV79H,R1MOV49H,R1MOV7AH,R2MOV4AH,R2MOVR0,64HLCALLDIVIDE
。星期分离送显示缓冲MOV48H,weekMOV78H,weekWAIT4: LCALLDISPLAYJNBP1.3,WAIT4AJMPSETG3GDECMONTH:MOVR7,65H
。月减LCALLDEC1MOV65H,ACJNEA,#00H,GDECMONTH1MOV65H,#12HGDECMONTH1:LCALLGETWEEKLCALLYMDMOVDS1302_ADDR,#88H
。月减同时换算出星期。转换农历月日。月值送MOVDS1302_DATA,65HLCALLWRITEMOVDS1302_ADDR,#8AH
。星期值送MOVDS1302_DATA,64HLCALLWRITEMOVR0,65HLCALLDIVIDE。月分离送显示缓冲MOV79H,R1MOV49H,R1MOV7AH,R2MOV4AH,R2MOVR0,64HLCALLDIVIDE。星期分离送显示缓冲MOV48H,weekMOV78H,weekWAIT5:LCALLDISPLAYJNBP1.4,WAIT5AJMPSETG3SETG4:SETB0BH。调日时闪标志GWAIT6:LCALLDISPLAYJNBP1.1,GWAIT6SETG5:LCALLDISPLAYJNBP1.1,SETGHOURJNBP1.3,GADDDAYJNBP1.4,SETGDDAYJNBP1.2,JUMPMONTHJNBF0,SSSDATECLRP1.0。闰月,则p1.1清,指示灯亮LJMPSETG5SSSDATE:SETBP1.0AJMPSETG5JUMPMONTH:LCALLDISPLAYCLR0BHJNBP1.2,JUMPMONTHAJMPSETG3SETGHOUR:AJMPSETG6SETGDDAY:AJMPGDECDAYGADDDAY:MOVA,65HCJNEA,#01H,FEBLCALLMMONTH。一月日加AJMPGADDDAY1FEB:CJNEA,#02H,MARCHMOVR3,66H。二月日加LCALLZH。BCD码转换成HEXMOVA,R3JZRFEBMOVR7,63H。平年二月有天LCALLADD1MOV63H,ACJNEA,#29H,FEB1MOV63H,#01FEB1:AJMPGADDDAY1RFEB:MOVR7,63H。闰年二月有天LCALLADD1MOV63H,ACJNEA,#30H,FEB2MOV63H,#01FEB2:AJMPGADDDAY1MARCH:CJNEA,#03H,APRILLCALLMMONTH。三月加AJMPGADDDAY1APRIL:CJNEA,#04H,MAYLCALLLMONTH。四月加AJMPGADDDAY1MAY:CJNEA,#05H,JUNELCALLMMONTH。五月加AJMPGADDDAY1JUNE:CJNEA,#06H,JULYLCALLLMONTH。六月加AJMPGADDDAY1JULY:CJNEA,#07H,AUGUSTLCALLMMONTH。七月加AJMPGADDDAY1AUGUST:CJNEA,#08H,SEPTEMBERLCALLMMONTH。八月加AJMPGADDDAY1SEPTEMBER:CJNEA,#09H,OCTOBERLCALLLMONTH。九月加AJMPGADDDAY1OCTOBER:CJNEA,#10H,NOVEMBERLCALLMMONTH。十月加AJMPGADDDAY1NOVEMBER:CJNEA,#11H,DECEMBERLCALLLMONTH。十一月加AJMPGADDDAY1DECEMBER:CJNEA,#12H,ERRORLCALLMMONTH。十二月加AJMPGADDDAY1ERROR:AJMPWAIT7GADDDAY1:LCALLGETWEEKLCALLYMD。转换农历月日MOVDS1302_ADDR,#86H。日值送MOVDS1302_DATA,63HLCALLWRITEMOVDS1302_ADDR,#8AH
。星期值送MOVDS1302_DATA,64HLCALLWRITEMOVR0,63HLCALLDIVIDE
。日分离送显示缓冲MOV76H,R1MOV46H,R1MOV77H,R2MOV47H,R2MOVR0,64HLCALLDIVIDE
。星期分离送显示缓冲MOV48H,weekMOV78H,weekWAIT7: LCALLDISPLAYJNBP1.3,WAIT7AJMPSETG5。*****************************************************************************************GDECDAY:mov A,65HCJNEA,#01H,DFEBLCALLDMMONTH
。一月日减AJMPGDECDAY1DFEB: CJNEA,#02H,DMARCHMOV R3,66HLCALLZH
。二月日减。BCD码转换成
HEXMOV A,R3JZ DRFEBMOV R7,63H
。平年二月有天LCALLDEC1MOV 63H,ACJNEA,#00H,DFEB1MOV 63H,#28HDFEB1:AJMPGDECDAY1DRFEB:MOV R7,63H
。闰年二月有天LCALLDEC1MOV 63H,ACJNEA,#00H,DFEB2MOV 63H,#29HDFEB2:AJMPGDECDAY1DMARCH:CJNEA,#03H,DAPRILLCALLDMMONTH
。三月减AJMPGDECDAY1DAPRIL:CJNEA,#04H,DMAYLCALLDLMONTH。四月减AJMPGDECDAY1DMAY:CJNEA,#05H,DJUNELCALLDMMONTH。五月减AJMPGDECDAY1DJUNE:CJNEA,#06H,DJULYLCALLDLMONTH。六月减AJMPGDECDAY1DJULY:CJNEA,#07H,DAUGUSTLCALLDMMONTH。七月减AJMPGDECDAY1DAUGUST:CJNEA,#08H,DSEPTEMBERLCALLDMMONTH。八月减AJMPGDECDAY1DSEPTEMBER:CJNEA,#09H,DOCTOBERLCALLDLMONTH。九月减AJMPGDECDAY1DOCTOBER:CJNEA,#10H,DNOVEMBERLCALLDMMONTH。十月减AJMPGDECDAY1DNOVEMBER:CJNEA,#11H,DDECEMBERLCALLDLMONTH。十一减加AJMPGDECDAY1DDECEMBER:CJNEA,#12H,DERRORLCALLDMMONTH。十二月减AJMPGDECDAY1DERROR:AJMPWAIT8GDECDAY1:LCALLGETWEEKLCALLYMD。转换农历月日MOVDS1302_ADDR,#86H。日值送MOVDS1302_DATA,63HLCALLWRITEMOVDS1302_ADDR,#8AH。星期值送MOVDS1302_DATA,64HLCALLWRITEMOVR0,63HLCALLDIVIDE。日分离送显示缓冲MOV76H,R1MOV46H,R1MOV77H,R2MOV47H,R2MOVR0,64HLCALLDIVIDE。星期分离送显示缓冲MOV48H,weekMOV78H,weekWAIT8:LCALLDISPLAYJNBP1.4,WAIT8AJMPSETG5SETG6:SETB0CH。调小时时闪标志GWAIT9:LCALLDISPLAYJNBP1.1,GWAIT9SETG9:LCALLDISPLAYJNBP1.1,SETG10JNBP1.3,GADDHOURJNBP1.4,GDECHOURJNBP1.2,JUMPDATEAJMPSETG9JUMPDATE:LCALLDISPLAYCLR0CHJNBP1.2,JUMPDATEAJMPSETG5GADDHOUR:MOVR7,62H。小时加LCALLADD1MOV62H,ACJNEA,#24H,GADDHOUR1MOV62H,#00HGADDHOUR1:MOVDS1302_ADDR,#84H。小时值送MOVDS1302_DATA,62HLCALLWRITEMOVR0,62HLCALLDIVIDE。小时分离送显示缓冲MOV74H,R1MOV44H,R1MOV75H,R2MOV45H,R2WAIT10:LCALLDISPLAYJNBP1.3,WAIT10AJMPSETG9GDECHOUR:MOVR7,62H。小时减LCALLDEC1MOV62H,ACJNEA,#99H,GDECHOUR1MOV62H,#23HGDECHOUR1:MOVDS1302_ADDR,#84H。小时值送MOVDS1302_DATA,62HLCALLWRITEMOVR0,62HLCALLDIVIDE。小时分离送显示缓冲MOV74H,R1MOV44H,R1MOV75H,R2MOV45H,R2WAIT11: LCALLDISPLAYJNBP1.4,WAIT11AJMPSETG9SETG10: SETB0DH
。调分时闪标志GWAIT12: LCALLDISPLAYJNBP1.1,GWAIT12SETG11: LCALLDISPLAYJNBP1.1,SETGOUTJNBP1.3,GADDMINTUEJNBP1.4,GDECMINTUEJNBP1.2,JUMPHOURAJMPSETG11JUMPHOUR:LCALLDISPLAYCLR0DHJNBP1.2,JUMPHOURAJMPSETG9GADDMINTUE: MOVR7,61H
。分加LCALLADD1MOV61H,ACJNEA,#60H,GADDMINTUE1MOV61H,#00HGADDMINTUE1:MOVDS1302_ADDR,#82H
。分值送MOVDS1302_DATA,61HLCALLWRITEMOVR0,61HLCALLDIVIDE
。分分离送显示缓冲MOV72H,R1MOV42H,R1MOV73H,R2MOV43H,R2WAIT13: LCALLDISPLAYJNBP1.3,WAIT13AJMPSETG11GDECMINTUE: MOVR7,61H
。分减LCALLDEC1MOV61H,ACJNEA,#99H,GDECMINTUE1MOV61H,#59HGDECMINTUE1:MOVDS1302_ADDR,#82H
。分值送MOVDS1302_DATA,61HLCALLWRITEMOVR0,61HLCALLDIVIDE
。分分离送显示缓冲MOV72H,R1MOV42H,R1MOV73H,R2MOV43H,R2WAIT14: LCALLDISPLAYJNBP1.4,WAIT14AJMPSETG11SETGOUT:LCALLDISPLAYJNBP1.1,SETGOUTLCALLGENGXINMOVDS1302_ADDR,#80HMOVDS1302_DATA,#00H
。1302晶振开始振荡LCALLWRITEMOVDS1302_ADDR,#8EHMOVDS1302_DATA,#80H
。禁止写入LCALLWRITECLR08HCLR09HCLR0AHCLR0BHCLR0CHCLR0DHCLRET1CLRTR1
。关闭定时器SETBET0SETBTR0LJMPMAIN1。***********************************。*
闪动调时程序
************************************INTT1:PUSHACCPUSHPSWGFLASH:CPL0FHJB0FH,GFLASH1MOV7CH,4CH 。全部显示MOV7BH,4BHMOVA,4AHCJNEA,#0,TMONTHMOV4AH,#0BHTMONTH:MOV7AH,4AHMOV79H,49HMOV78H,WEEKMOVA,47HCJNEA,#0,TDATEMOV47H,#0BHTDATE:MOV77H,47HMOV76H,46HMOVA,45HCJNEA,#0,THOURMOV45H,#0AHTHOUR:MOV75H,45HMOV74H,44HMOV73H,43HMOV72H,42HMOV71H,41HMOV70H,40H。 MOV50H,59H 。农历月日MOVA,5AHCJNEA,#0,TNDATEMOV5AH,#0BHTNDATE:MOV51H,5AHMOV52H,5BHMOVA,5CHCJNEA,#0,TNMONTHMOV5CH,#0BHTNMONTH:MOV53H,5CHGFLASHOUT:POPPSWPOPACCRETIGFLASH1:JB0AH,GFLASH2MOV7CH,#0AHMOV7BH,#0AH
。调年闪闪
。MOV78H,#0AH。MOV50H,#0AH
。调年时星期。农历月日闪烁MOV51H,#0AHMOV52H,#0AHMOV53H,#0AHAJMPGFLASHOUTGFLASH2:JB0BH,GFLASH3。调月闪MOV7AH,#0AHMOV79H,#0AH闪
。MOV78H,#0AH。MOV50H,#0AH
。调月时星期。农历月日闪烁MOV51H,#0AHMOV52H,#0AHMOV53H,#0AHLJMPGFLASHOUTGFLASH3:JB0CH,GFLASH4MOV77H,#0AHMOV76H,#0AH
。调日闪闪
。MOV78H,#0AH。MOV50H,#0AH
。调日时星期。农历月日闪烁。MOV51H,#0AH。MOV52H,#0AH。MOV53H,#0AHLJMPGFLASHOUTGFLASH4:JB0DH,GFLASH5
。调小时闪MOV75H,#0AHMOV74H,#0AHLJMPGFLASHOUTGFLASH5:
。调分钟闪MOV73H,#0AHMOV72H,#0AHLJMPGFLASHOUT。*********************************。*
加程序
**********************************ADD1:MOVA,R7ADDA,#01HDAARET**
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国益生元纤维行业产业运行态势及投资规划深度研究报告
- 2025至2030中国白酒原料行业产业运行态势及投资规划深度研究报告
- 2025至2030中国电子书阅读器行业深度研究及发展前景投资评估分析
- 2025至2030中国特殊标志信标浮标行业市场占有率及投资前景评估规划报告
- 支付宝的交易流程
- 施工管理培训计划
- 医疗领域中心理干预对患者康复的影响
- 教育行业大数据未来的增长机会与挑战
- 教育信息化进程中的智能教学平台探讨
- 教育技术领域的新成果探讨
- 安全教育培训:实现安全文明施工
- 2025至2030分布式能源行业市场深度调研及发展规划及有效策略与实施路径评估报告
- 反邪教宣讲课件
- 2025年全国统一高考英语Ⅰ卷(含答案)
- 1 感受生活中的法律 课件-道德与法治六年级上册统编版
- 中医集市活动方案
- 2025年江苏省南京市中考历史试卷(含解析)
- 肿瘤随访登记培训
- 劳动仲裁内部培训
- 肿瘤登记培训课件
- 2025年重庆市高考物理试卷(含答案解析)
评论
0/150
提交评论