资源描述:
《5 ds1302_realtime_clock(ds1302实时时钟设计设计的源程序清单)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、6源程序清单(1)参考汇编程序;*****************************************;;DS1302实时时钟;;12MHz晶振;;***************************************;;从1302中读出的数据放在52H(小时)5IH(分钟)50H(秒);显示缓冲单元:72H~73H(45H~44H)小时,;75H-76H(43H-42H)分钟.;78H-79H(41H-40H)秒;定时器T1为调整时闪烁用;显示式样:15-38-12;***********
2、******定义*********************;;SCLKEQUP1.1;1302时钟口,1302第7脚IOEQUPl.2;数据口,1302第6脚RSTEQUPl.3;使能口,1302第5脚KEYSW0EQUP3.5;调时按键KEYSW1EQUP3.6;加1按键BELLEQUP3.7hourDATA52H;1302读出时minuteDATA5IH;1302读出分secondDATA50H;1302读出秒DS1302_ADDRDATA32H;1302需操作的地址数据存放DS1302_DATADATA3
3、1H;1302读出或需写入的数据存放INTCONDATA30H;闪烁中断计时用CON_DATADATA06H;闪烁时间=65ms×6=0.39sDISPFIRSTEQU33H;显示地址首址DELAYR3EQU38H;延时程序用寄存器DELAYR5EQU39H;DELAYR6EQU3AH;DELAYR7EQU3BH;;;************程序入口**************;;ORG0000HLJMPSTARTORG0003HRETIORG000BHRETIORG0013HRETIORG001BHLJMPI
4、NTTIORG0023HRETIORG002BHRETI;*****************主程序*********************;START:MOVSP,#80H;堆栈在80H上CLRRST;1302禁‘止MOVDISPFIRST,#72HMOV74H,#12;”_”MOV77H,#12;”_”MOVTMOD,#10H;计数器1,方式lMOVTL1,#00HMOVTH1,#00HMOVINTCON,#CON_DATACLR00H;清闪烁标志CLR01H;清闪烁标志SETBEAMOVDS1302_AD
5、DR,#8EHMOVDS1302_DATA,#00H;允许写1302,#80,禁止LCALLWRITEMOVDS1302_ADDR,#90HMOVDS1302_DATA,#0A6H;1302充电电流1.1MA;#A5:2.2MA;#A7:0.6MA;LCALLWRITEMOVDS1302_ADDR,#80HMOVDS1302_DATA,#00H;1302晶振开始晶振,#80H,禁止LCALLWRITE;以下为主程序MAIN1:MOVDS1302ADDR,#85H;读出小时LCALLREADMOVhour,DS1
6、302_DATALCALLDISPLAY;显示刷新MOVDS1302_ADDR,#83H;读出分钟LCALLREADMOVminute,DS1302_DATALCALLDISPLAY;显示刷新MOVDS1302_ADDR,#8IH;读出秒LCALLREADMOVsecond,DS1302_DATALCALLDISPLAY;显示刷新MOVR0,hour;小时分离,送显示缓存LCALLDIVIDEMOV73H,R1;时个位MOV44H,R1MOV72H,R2;时十位MOV45H,R2LCALLDISPLAY;显示刷
7、新MOVR0,minute;分钟分离,送显示缓存LCALLDIVIDEMOV76H,R1;时个位MOV42H,R1MOV75H,R2;时十位MOV43H,R2LCALLDISPLAY;显示刷新MOVR0,second;秒分离,送显示缓存LCALLDIVIDEMOV79H,RI;秒个位MOV40H,R1MOV78H,R2;秒十位MOV4IH,R2LCALLDISPLAY;显示刷新;JNBKEYSW0,SETG;调整时间控制键LJMPMAIN1;;******************公历设置程序**********
8、****:SETG:RLCALLDL20msJBKEYSW0,MAIN1WAITKEY0:LCALLDISPLAY;等待按键释放JNBKEYSW0,WAITKEY0LCALLDISPLAYJNBKEYSW0,WAITKEY0MOV78H,#00H;调时时秒位为0MOV79H,#00H;调时时秒位为0MOV40H,#00H;调时时秒位为0MOV41H,#00H;调时时秒位为0MOVDS1