資源描述:
《基于液晶顯示的數(shù)字時鐘設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于液晶顯示的數(shù)字時鐘設(shè)計ORG0000H;程序執(zhí)行開始地址LJMPSTART;跳到標(biāo)號START執(zhí)行ORG0003H;外中斷0中斷程序入口RETI;外中斷0中斷返回ORG000BH;定時器T0中斷程序入口LJMPINTT0;跳至INTTO執(zhí)行ORG0013H;外中斷1中斷程序入口RETI;外中斷1中斷返回ORG001BH;定時器T1中斷程序入口LJMPINTT1;跳至INTT1執(zhí)行ORG0023H;串行中斷程序入口地址RETI;串行中斷程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序;;;
2、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START:MOVR0,#70H;清70H-7AH共11個內(nèi)存單元MOVR7,#0BH;CLEARDISP:MOV@R0,#00H;INCR0;DJNZR7,CLEARDISP;MOV20H,#00H;清20H(標(biāo)志用)MOV7AH,#0AH;放入"熄滅符"數(shù)據(jù)MOVTMOD,#11H;設(shè)T0、T1為16位定時器MOVTL0,#0B0H;50MS定時初值(T0計時用)MOVTH0,#3CH;50MS定時初值MOVTL1,#0B0H;50MS定時初值(T1閃爍定時用
3、)MOVTH1,#3CH;50MS定時初值SETBEA;總中斷開放SETBET0;允許T0中斷SETBTR0;開啟T0定時器MOVR4,#14H;1秒定時用初值(50MS×20)START1:LCALLDISPLAY;調(diào)用顯示子程序JNBP3.7,SETMM1;P3.7口為0時轉(zhuǎn)時間調(diào)整程序SJMPSTART1;P3.7口為1時跳回START1SETMM1:LJMPSETMM;轉(zhuǎn)到時間調(diào)整程序SETMM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1秒計時程序;;;;;;;;;;;;;;;;;;;;;
4、;;;;;;;;;;;;;;;;;;;;;;;T0中斷服務(wù)程序INTT0:PUSHACC;累加器入棧保護(hù)PUSHPSW;狀態(tài)字入棧保護(hù)CLRET0;關(guān)T0中斷允許CLRTR0;關(guān)閉定時器T0MOVA,#0B7H;中斷響應(yīng)時間同步修正ADDA,TL0;低8位初值修正MOVTL0,A;重裝初值(低8位修正值)MOVA,#3CH;高8位初值修正ADDCA,TH0;MOVTH0,A;重裝初值(高8位修正值)SETBTR0;開啟定時器T0DJNZR4,OUTT0;20次中斷未到中斷退出ADDSS:MOVR4,#14H;20次中斷到(1秒)重賦初值MOV
5、R0,#71H;指向秒計時單元(71H-72H)ACALLADD1;調(diào)用加1程序(加1秒操作)MOVA,R3;秒數(shù)據(jù)放入A(R3為2位十進(jìn)制數(shù)組合)CLRC;清進(jìn)位標(biāo)志CJNEA,#60H,ADDMM;ADDMM:JCOUTT0;小于60秒時中斷退出ACALLCLR0;大于或等于60秒時對秒計時單元清0MOVR0,#77H;指向分計時單元(76H-77H)ACALLADD1;分計時單元加1分鐘MOVA,R3;分?jǐn)?shù)據(jù)放入ACLRC;清進(jìn)位標(biāo)志CJNEA,#60H,ADDHH;ADDHH:JCOUTT0;小于60分時中斷退出ACALLCLR0;大
6、于或等于60分時分計時單元清0MOVR0,#79H;指向小時計時單元(78H-79H)ACALLADD1;小時計時單元加1小時MOVA,R3;時數(shù)據(jù)放入ACLRC;清進(jìn)位標(biāo)志CJNEA,#24H,HOUR;HOUR:JCOUTT0;小于24小時中斷退出ACALLCLR0;大于或等于24小時小時計時單元清0OUTT0:MOV72H,76H;中斷退出時將分、時計時單元數(shù)據(jù)移MOV73H,77H;入對應(yīng)顯示單元MOV74H,78H;MOV75H,79H;POPPSW;恢復(fù)狀態(tài)字(出棧)POPACC;恢復(fù)累加器SETBET0;開放T0中斷RETI;中
7、斷返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;閃動調(diào)時程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中斷服務(wù)程序,用作時間調(diào)整時調(diào)整單元閃爍指示INTT1:PUSHACC;中斷現(xiàn)場保護(hù)PUSHPSW;MOVTL1,#0B0H;裝定時器T1定時初值MOVTH1,#3CH;DJNZR2,INTT1OUT;0.3秒未到退出中斷(50MS中斷6次)MOVR2,#06H;重裝0.3秒定時用初值CPL02H;0.3秒定時到對閃爍標(biāo)志取反JB02H,FLASH
8、1;02H位為1時顯示單元"熄滅"MOV72H,76H;02H位為0時正常顯示MOV73H,77H;MOV74H,78H;MOV75H,79H;INTT1OUT:P