KEYVALEQU30HKEYTMEQU31HKEYSCANEQU32HDATEQU33HSCANLEDEQU39HCLKEQU77HSECEQU78HMINEQU79HHOUREQU7AHPAUSEBIT00HDOTBIT01HORG0000HLJMPMAINORG000BHLJMPT0ISR;50ms定时ORG001BHLJMPT1ISR;扫描显示ORG0030HMAIN:MOVSP,#5FHMOVTMOD,#11HMOVTH0,#03CHMOVTL0,#0B0HMOVTH1,#0ECHMOVTL1,#078HMOVKEYVAL,#0MOVSCANLED,#0MOV33H,#10HMOV34H,#10HMOV35H,#10HMOV36H,#10HMOV37H,#10HMOV38H,#10HMOVSEC,#0MOVMIN,#0MOVHOUR,#0MOVCLK,#0CLRPAUSESETBEASETBET1SETBTR1LOOP:LCALLKEYSELMOVA,KEYVALCJNEA,#0FFH,LOOP1SJMPLOOPLOOP1:CJNEA,#10,LOOP2;“ON”启动SETBTR0SETBET0SETBPAUSESJMPLOOPLOOP2:CJNEA,#11,LOOP3;“=”清零MOVSEC,#0MOVMIN,#0MOVHOUR,#0LCALLDISCHGSJMPLOOPLOOP3:CJNEA,#15,LOOP4;“+”暂停CLRTR0CLRET0CLRPAUSESJMPLOOPLOOP4:CJNEA,#14,LOOP5;“-”清显示暂停MOV33H,#10HMOV34H,#10HMOV35H,#10HMOV36H,#10HMOV37H,#10HMOV38H,#10HCLRTR0CLRET0CLRPAUSESJMPLOOPLOOP5:CJNEA,#10,LOOP6;数字键LOOP6:JCLOOP7LJMPLOOPLOOP7:JNBPAUSE,LOOP8;暂停状态可以输入数字键LJMPLOOPLOOP8:MOV33H,34HMOV34H,35HMOV35H,36HMOV36H,37HMOV37H,38HMOV38H,KEYVALMOVA,33HSWAPAORLA,34HLCALLBCDHMOVHOUR,AMOVA,35HSWAPAORLA,36HLCALLBCDHMOVMIN,AMOVA,37HSWAPAORLA,38HLCALLBCDHMOVSEC,ALJMPLOOP;------------------;BCD转换为十六进制BCDH:MOVB,#10HDIVABMOVR7,BMOVB,#10MULABADDA,R7RET;------------------;十六进制转换为BCDHBCD:MOVB,#10DIVABSWAPAORLA,BRET;------------------KEYSEL:MOVKEYVAL,#0MOVKEYSCAN,#0EFHLCALLGETKEYMOVA,KEYTMJZKEYS1MOVKEYVAL,ASJMPKEYRTNKEYS1:MOVKEYSCAN,#0DFHLCALLGETKEYMOVA,KEYTMJZKEYS2CLRCADDA,#4MOVKEYVAL,ASJMPKEYRTNKEYS2:MOVKEYSCAN,#0BFHLCALLGETKEYMOVA,KEYTMJZKEYS3CLRCADDA,#8MOVKEYVAL,ASJMPKEYRTNKEYS3:MOVKEYSCAN,#7FHLCALLGETKEYMOVA,KEYTMJZKEYRTNCLRCADDA,#12MOVKEYVAL,AKEYRTN:LCALLCHGKEYRET;--------------------GETKEY:MOVKEYTM,#0MOVA,KEYSCANMOVP3,ANOPMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEYMOVR2,#10LCALLDELAYMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEYMOVA,P3ANLA,#0FHMOVR7,ASF:MOVA,P3ANLA,#0FHXRLA,#0FHJNZSFMOVA,R7CJNEA,#0EH,NK1MOVKEYTM,#1SJMPNOKEYNK1:CJNEA,#0DH,NK2MOVKEYTM,#2SJMPNOKEYNK2:CJNEA,#0BH,NK3MOVKEYTM,#3SJMPNOKEYNK3:CJNEA,#07H,NOKEYMOVKEYTM,#4NOKEY:RET;--------------------DELAY:MOVR3,#50DELAY1:MOVR4,#100DJNZR4,$DJNZR3,DELAY1DJNZR2,DELAYRET;--------------------T0ISR:PUSHACCCLRTR0MOVTH0,#3CHMOVTL0,#0B0HSETBTR0INCCLKMOVA,CLKCJNEA,#20,T0ISREMOVCLK,#0INCSECMOVA,SECCJNEA,#60,T0ISREMOVSEC,#0INCMINMOVA,MINCJNEA,#60,T0ISREMOVMIN,#0INCHOURMOVA,HOURCJNEA,#24,T0ISREMOVSEC,#0MOVMIN,#0MOVHOUR,#0T0ISRE:LCALLDISCHGPOPACCRETI;--------------------DISCHG:MOVA,HOURLCALLHBCDPUSHACCANLA,#0FHMOV34H,APOPACCANLA,#0F0HSWAPAMOV33H,AMOVA,MINLCALLHBCDPUSHACCANLA,#0FHMOV36H,APOPACCANLA,#0F0HSWAPAMOV35H,AMOVA,SECLCALLHBCDPUSHACCANLA,#0FHMOV38H,APOPACCANLA,#0F0HSWAPAMOV37H,ARET;--------------------T1ISR:PUSHACCCLRTR1MOVTH1,#0ECHMOVTL1,#78HSETBTR1MOVDPTR,#LEDTABT100:MOVR0,#DATMOVA,SCANLEDADDA,R0MOVR0,AMOVA,SCANLEDJNZT101MOVP2,#01HCLRDOTSJMPT1DIST101:DECAJNZT102MOVP2,#02HSETBDOTSJMPT1DIST102:DECAJNZT103MOVP2,#04HCLRDOTSJMPT1DIST103:DECAJNZT104MOVP2,#08HSETBDOTSJMPT1DIST104:DECAJNZT105MOVP2,#10HCLRDOTSJMPT1DIST105:MOVP2,#20HCLRDOTT1DIS:MOVA,@R0MOVCA,@A+DPTRJNBDOT,T1DIS1ORLA,#01HT1DIS1:CPLAMOVP0,AINCSCANLEDMOVA,SCANLEDCJNEA,#6,T1ENDMOVSCANLED,#0T1END:POPACCRETI;--------------------CHGKEY:MOVA,KEYVALJZKV16DECAJNZKV01MOVKEYVAL,#7RETKV01:DECAJNZKV02MOVKEYVAL,#4RETKV02:DECAJNZKV03MOVKEYVAL,#1RETKV03:DECAJNZKV04MOVKEYVAL,#10RETKV04:DECAJNZKV05MOVKEYVAL,#8RETKV05:DECAJNZKV06MOVKEYVAL,#5RETKV06:DECAJNZKV07MOVKEYVAL,#2RETKV07:DECAJNZKV08MOVKEYVAL,#0RETKV08:DECAJNZKV09MOVKEYVAL,#9RETKV09:DECAJNZKV10MOVKEYVAL,#6RETKV10:DECAJNZKV11MOVKEYVAL,#3RETKV11:DECAJNZKV12MOVKEYVAL,#11RETKV12:DECAJNZKV13MOVKEYVAL,#12RETKV13:DECAJNZKV14MOVKEYVAL,#13RETKV14:DECAJNZKV15MOVKEYVAL,#14RETKV15:DECAJNZKV16MOVKEYVAL,#15RETKV16:MOVKEYVAL,#0FFHRET;--------------------LEDTAB:DB0FCH;"0"00HDB60H;"1"01HDB0DAH;"2"02HDB0F2H;"3"03HDB66H;"4"04HDB0B6H;"5"05HDB0BEH;"6"06HDB0E0H;"7"07HDB0FEH;"8"08HDB0F6H;"9"09HDB0EEH;"A"0AHDB3EH;"B"0BHDB9CH;"C"0CHDB7AH;"D"0DHDB9EH;"E"0EHDB8EH;"F"0FHDB00H;""10H;--------------------END