可按键加减调整时间;K1:开启/停止时间走时;K2:当前时间值加1;K3:当前时间值减1;K4:调整到下一位数,时-分-秒POUTEQUP2KPINEQUP1PDIGEQUP3NOEQU6MTHEQUHIGH(65536-MTM)MTLEQULOW(65536-MTM)MTMEQU1000MSYSBIT2FH.0TADATA30HTBDATA31HSECDATA32HMINDATA33HHOUDATA34HSECLDATA35HSECHDATA36HMINLDATA37HMINHDATA38HHOULDATA39HHOUHDATA3AHDIDDATA3BHDIGDATA3CHVALDATA3DHKIDDATA3EHKTMPDATA3FHTIDDATA40HTFLBIT20H.0;**************************;主调度程序;每1MS中断一次,所有程序都在期间执行;主程序调度标志位:MSYS;**************************ORG0000HSJMPMAINORG0BHSJMPMTM0ORG30HMAIN:ACALLMINITMLP:JNBMSYS,$CLRMSYSACALLTIMEACALLKEYSACALLDISPSJMPMLPMINIT:;用户变量初始化MOVR1,#30HMOVR2,#17CLRAMIL:MOV@R1,AINCR1DJNZR2,MIL;MOVDIG,#0FEHCLRMSYSSETBTFL;系统变量初始化,并开启定时器0MOVSP,#60HMOVIE,#82HMOVTMOD,#01HMOVTH0,#MTHMOVTL0,#MTLSETBTR0RET;定时器0中断程序,置系统标志为1MTM0:MOVTH0,#MTHMOVTL0,#MTLSETBMSYSRETI;*************************;按键扫描程序;;模块应用变量;硬件连接端口:KPIN;返回按键值:VAL;按键处理应用功能程序:KEYPFUN;;***********************;内部使用变量定义:KID=0,KTMP=0;**********************KEYS:MOVDPTR,#KJMPMOVA,KIDRLAJMP@A+DPTRKJMP:AJMPKEYENAJMPKEYDELAJMPKEYSCANAJMPKEYUPAJMPKEYFUNMOVKID,#0RETKS:MOVKPIN,#0FHNOPNOPMOVA,KPINANLA,#0FHXRLA,#0FHRETKEYEN:ACALLKSJZKENEXT;MOVKTMP,#0INCKIDKENEXT:RETKEYDEL:INCKTMPMOVA,KTMPCJNEA,#30,KDEXTMOVKTMP,#0INCKIDKDEXT:RETKEYUP:ACALLKSJNZKUPEXTINCKIDKUPEXT:RETKEYSCAN:ACALLKSJZKSEXTMOVR4,#4CLRCKSLP:RRCAJCKVALDJNZR4,KSLPKSEXT:MOVKID,#0RETKVAL:MOVVAL,R4INCKIDRET;***********************KEYFUN:MOVKID,#0MOVDPTR,#KFUNMOVA,VALRLAJMP@A+DPTRKFUN:AJMPKFUNLAJMPK1FUNAJMPK2FUNAJMPK3FUNAJMPK4FUNMOVVAL,#0RETKFUNL:NOPRETK1FUN:CPLTFLRETK2FUN:MOVA,#SECADDA,TIDMOVR1,AMOVA,@R1INCAMOVR4,AMOVA,TIDCJNEA,#2,K2NEX1MOVA,R4CJNEA,#24,K2NEXSJMPK2NEX2K2NEX1:MOVA,R4CJNEA,#60,K2NEXK2NEX2:CLRAMOVR4,AK2NEX:MOVA,R4MOV@R1,AACALLHTODRETK3FUN:MOVA,#SECADDA,TIDMOVR1,AMOVA,@R1JZK3NEXDECAMOV@R1,AACALLHTODRETK3NEX:MOVA,TIDCJNEA,#2,K3NEX1MOVA,#23MOV@R1,AACALLHTODRETK3NEX1:MOVA,#59MOV@R1,AACALLHTODRETK4FUN:INCTIDMOVA,TIDCJNEA,#3,K4NEXMOVTID,#0K4NEX:RET;******************************DISP:MOVPDIG,#0FFHMOVA,#SECLADDA,DIDMOVR0,AMOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRCPLAMOVPOUT,AMOVA,DIGMOVPDIG,ARRAMOVDIG,AINCDIDMOVA,DIDCJNEA,#NO,DSEXTMOVDID,#0MOVDIG,#0DFHDSEXT:RET;**********************;秒表时间加1;TIME:JNBTFL,TMEXTINCTAMOVA,TACJNEA,#100,TMEXTMOVTA,#0INCTBMOVA,TBCJNEA,#10,TMEXTMOVTB,#0INCSECMOVA,SECCJNEA,#60,TEXTMOVSEC,#0INCMINMOVA,MINCJNEA,#60,TEXTMOVMIN,#0INCHOUMOVA,HOUCJNEA,#24,TEXTMOVHOU,#0TEXT:ACALLHTODTMEXT:RETHTOD:MOVA,SECMOVB,#10DIVABMOVSECH,AMOVSECL,BMOVA,MINMOVB,#10DIVABMOVMINH,AMOVMINL,BMOVA,HOUMOVB,#10DIVABMOVHOUH,AMOVHOUL,BRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFHEND