用AT89C51设计常用单位一个2位的LED数码显示作为"秒表":显示时间为00—99秒,每秒自动加1

;按长按退出调整状态.&&(2)按下P1.1进入秒表状态:按P1.2暂停,再按P1.2秒表清零,再按 ;P1.2秒表又启动,按P1.1退出秒表回到时钟状态.&(3)按P1.3进入设定闹时状态:&00:00:&-,可进 ;行分设定,按P1.2分加1,再按P1.3为时调整,00:00:-&,按P1.2时加1,按P1.1闹铃有效,显示为00:00:-0,再按 ;P1.1闹铃无效(显示00:00:-&,),按P1.3调闹钟结束.在闹铃时可按P1.3停闹,不按闹铃1分钟. ;定时器T0、T1溢出为50MS,T0为秒计数用,&T1为调整时闪烁及秒表定时用, ;P1.0、P1.1、P1.2、P1.3为调整按钮,P0口为字符输出口,P2为扫描口,P1.7为蜂呜器口,采用共阳显示管。 ;50H-55H为闹钟定时单元,60H-65H为秒表计时单元,70H-75H为显示时间单元,76H-79H为分时计时单元。 ;03H标志=0时钟闪烁,=1秒表,&&&&05H=0,不闹铃,=1要闹铃.&&&&07H每秒改变一次,用作间隔呜叫. ;***********************************************************************************************; &&&&&&&&&&&DISPFIRST&&EQU&&30H&&&&&;显示首址存放单元 &&&&&&&&&&&BELL&&&&&&&EQU&&P1.7&&&&;小喇叭 &&&&&&&&&&&CONBS&&&&&&EQU&&2FH&&&&&;存放报时次数 ; ;**************************************** ;;&&&&&&&&&&&中断入口程序&&&&&&&&&&&&&&;; ;**************************************** ; &&&&&&&&&&&&&&ORG&0000H&&&&&&&&;程序执行开始地址 &&&&&&&&&&&&&&LJMP&&&&&&START&&;跳到标号START执行 &&&&&&&&&&&&&&ORG&0003H&&&&&&&&;外中断0中断程序入口 &&&&&&&&&&&&&&RETI&&&&&&&&&&&&&;外中断0中断返回 &&&&&&&&&&&&&&ORG&000BH&&&&&&&&;定时器T0中断程序入口 &&&&&&&&&&LJMP&&&&&&INTT0&&;跳至INTTO执行 &&&&&&&&&&&&&&ORG&0013H&&&&&&&&;外中断1中断程序入口 &&&&&&&&&&RETI&&&&&&&&&&&&&;外中断1中断返回 &&&&&&&&&&ORG&001BH&&&&&&&&;定时器T1中断程序入口 &&&&&&&&&&LJMP&&&&&&INTT1&&;跳至INTT1执行 &&&&&&&&&&ORG&0023H&&&&&&&&;串行中断程序入口地址 &&&&&&&&&&&&&&RETI&&&&&&&&&&&&&;串行中断程序返回 ; ;**************************************** ;;&&&&&&&&&&以下程序开始&&&&&&&&&&&&&&&&&;; ;**************************************** ;整点报时用 QQQQ&&&&&&&&&&&&&:&MOV&&A,#10H &&&&&&&&&&&&&&&&&&&MOV&&B,79H &&&&&&&&&&&&&&&&&&&MUL&&AB &&&&&&&&&&&&&&&&&&&ADD&&A,78H &&&&&&&&&&&&&&&&&&&MOV&&CONBS,A &&&&&&&&&&&BSLOOP:&LCALL&DS20MS &&&&&&&&&&&&&&&&&&&LCALL&DL1S &&&&&&&&&&&&&&&&&&&LCALL&DL1S &&&&&&&&&&&&&&&&&&&LCALL&DL1S &&&&&&&&&&&&&&&&&&&DJNZ&CONBS,BSLOOP &&&&&&&&&&&&&&&&&&&CLR&&&08H&&&&&&&&&&;清整点报时标志 &&&&&&&&&&&&&&&&&&&AJMP&&START1 ; ;**************************************** ;;&&&&&&&&&&主程序开始&&&&&&&&&&&&&&&&&;; ;**************************************** ; &&&&&&&&&&&&START:&LCALL&ST&&&&&&&&&&&&&;上电显示年月日及班级学号 &&&&&&&&&&&&&&&&&&&MOV&&&R0,#00H&&&&&&&&&&;清00H-7FH内存单元 &&&&&&&&&&&&&&&&&&&MOV&&&R7,#80H&&&&&&&&&&; &&&&&&&CLEARDISP:&&MOV&&&@R0,#00H&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&INC&&&R0&&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&DJNZ&&R7,CLEARDISP&&&; &&&&&&&&&&&&&&&&&&&MOV&&&20H,#00H&&&&&&&&&;清20H(标志用) &&&&&&&&&&&&&&&&&&&MOV&&&7AH,#0AH&&&&&&&;放入"熄灭符"数据 &&&&&&&&&&&&&&&&&&&MOV&&&&&&TMOD,#11H&&&&&&;设T0、T1为16位定时器 &&&&&&&&&&&&&&&&&&&MOV&&&TL0,#0B0H&&&&&&&;50MS定时初值(T0计时用) &&&&&&&&&&&&&&&&&&&MOV&&&TH0,#3CH&&&&&&&;50MS定时初值 &&&&&&&&&&&&&&&&&&&MOV&&&TL1,#0B0H&&&&&&&;50MS定时初值(T1闪烁定时用) &&&&&&&&&&&&&&&&&&&MOV&&&TH1,#3CH&&&&&&&&;50MS定时初值 &&&&&&&&&&&&&&&&&&&SETB&&EA&&&&&&&&&&&&&;总中断开放 &&&&&&&&&&&&&&&&&&&SETB&&ET0&&&&&&&&&&&&;允许T0中断 &&&&&&&&&&&&&&&&&&&SETB&&TR0&&&&&&&&&&&&;开启T0定时器 &&&&&&&&&&&&&&&&&&&MOV&&&R4,#14H&&&&&&&&;1秒定时用计数值(50MS×20) &&&&&&&&&&&&&&&&&&&MOV&&&DISPFIRST,#70H&;显示单元为70-75H ;以下主程序循环 &&&&&&&&&&&START1:&LCALL&DISPLAY&&&&&&&&;调用显示子程序 &&&&&&&&&&&&&&&&&&&JNB&&&&&&P1.0,SETMM1&&&&;P1.0口为0时转时间调整程序 &&&&&&&&&&&&&&&&&&&JNB&&&P1.1,FUNSS&&&&&;秒表功能,P1.1按键调时时作减1加能 &&&&&&&&&&&&&&&&&&&JNB&&&P1.2,FUNPT&&&&&;秒表STOP,PUSE,CLR &&&&&&&&&&&&&&&&&&&JNB&&&P1.3,TSFUN&&&&&;定时闹铃设定 &&&&&&&&&&&&&&&&&&&JB&&&08H,&&QQQQ &&&&&&&&&&&&&&&&&&&AJMP&&START1&&&&&&&&&;P1.0口为1时跳回START1 ; &&&&&&&&&&FUNPT:&&LJMP&&FUNPTT ;以下闹铃时间设定程序,按P1.3进入设定 &&&&&&&&&&&&TSFUN:&LCALL&DS20MS &&&&&&&&&&&&&&&&&&&JB&&&&P1.3,START1&&&&&; &&&&&&&&&WAIT113:&&JNB&&&P1.3,WAIT113&&&&;等待键释放 &&&&&&&&&&&&&&&&&&&JB&&&05H,CLOSESP&&&&&&;闹铃已开的话,关闹铃 &&&&&&&&&&&&&&&&&&&MOV&&&DISPFIRST,#50H&&;进入闹铃设定程序,显示50-55H闹钟定时单元 &&&&&&&&&&&&&&&&&&&MOV&&&50H,#0CH&&&&&&&&;"-"&&&闹铃设定时显示格式00:00:&- &&&&&&&&&&&&&&&&&&&MOV&&&51H,#0AH&&&&&&&&;"黑" ; &&&&&&&&&DSWAIT:&&&SETB&&&EA &&&&&&&&&&&&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&&JNB&&P1.2,DSFINC&&&&&&&;分加1 &&&&&&&&&&&&&&&&&&&JNB&&P1.0,DSDEC&&&&&&&&;分减1 &&&&&&&&&&&&&&&&&&&JNB&&P1.3,DSSFU&&&&&&&&;进入时调整 &&&&&&&&&&&&&&&&&&&AJMP&DSWAIT ; &&&&&&&&&&CLOSESP:&CLR&&05H&&&&&&&&&&&&&&;关闹铃标志 &&&&&&&&&&&&&&&&&&&CLR&&BELL &&&&&&&&&&&&&&&&&&&AJMP&&START1 &&&&&&&&&&&DSSFU:&&LCALL&DS20MS&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&P1.3,&DSWAIT &&&&&&&&&&&&&&&&&&&LJMP&&DSSFUNN&&&&&&&&&;进入时调整 ; &&&&&&&&&&&SETMM1:&&&&&&LJMP&SETMM&&&&&;转到时间调整程序SETMM ; &&&&&&&&DSFINC&:&&&LCALL&DS20MS&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&P1.2,&DSWAIT &&&&&&&&DSWAIT12:&LCALL&DISPLAY&&&&&&&&&;等键&释放 &&&&&&&&&&&&&&&&&&JNB&&&P1.2,&DSWAIT12 &&&&&&&&&&&&&&&&&&CLR&&&EA &&&&&&&&&&&&&&&&&&MOV&&&R0,#53H&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&LCALL&ADD1&&&&&&&&&&&&&&&;闹铃设定分加1 &&&&&&&&&&&&&&&&&&MOV&&&&&&A,R3&&&&&&&&&&&&&&;分数据放入A &&&&&&&&&&&&&&&&&&CLR&&&C&&&&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&CJNE&&A,#60H,ADDHH22&&&&&&; &&&&&&&&&&&&ADDHH22:&JC&&&&&DSWAIT&&&&&&&&&&&&&;小于60分时返回 &&&&&&&&&&&&&&&&&&&ACALL&CLR0&&&&&&&&&&&&&&;大于或等于60分时分计时单元清0 &&&&&&&&&&&&&&&&&&&AJMP&&DSWAIT &&&&&&&&&DSDEC&:&&&LCALL&DS20MS&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&P1.0,&DSWAIT &&&&&&&&DSWAITEE:&LCALL&DISPLAY&&&&&&&&&;等键&释放 &&&&&&&&&&&&&&&&&&JNB&&&P1.0,&DSWAITEE &&&&&&&&&&&&&&&&&&CLR&&&EA &&&&&&&&&&&&&&&&&&MOV&&&R0,#53H&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&LCALL&sub1&&&&&&&&&&&&&&&;闹铃设定分减1 &&&&&&&&&&&&&&&&&&LJMP&DSWAIT ;以下秒表功能/时钟转换程序 ;按下P1.1&可进行功能转换 &&&&&&&&&&&&FUNSS:&LCALL&DS20MS &&&&&&&&&&&&&&&&&&&JB&&&&P1.1,START11 &&&&&&&&&WAIT11:&&&JNB&&&P1.1,WAIT11 &&&&&&&&&&&&&&&&&&&CPL&&&03H &&&&&&&&&&&&&&&&&&&JNB&&&03H,TIMFUN &&&&&&&&&&&&&&&&&&&MOV&&&DISPFIRST,#60H&&;显示秒表数据单元 &&&&&&&&&&&&&&&&&&&MOV&&&60H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&61H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&62H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&63H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&64H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&65H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&TL1,#0F0H&&&&&&&;10MS定时初值() &&&&&&&&&&&&&&&&&&&MOV&&&TH1,#0D8H&&&&&&&&;10MS定时初值 &&&&&&&&&&&&&&&&&&&SETB&&TR1 &&&&&&&&&&&&&&&&&&&SETB&&ET1 &&&&&&&&&START11:&&LJMP&&START1 &&&&&&&&&&&&TIMFUN:MOV&&&DISPFIRST,#70H&&;显示时钟数据单元 &&&&&&&&&&&&&&&&&&&CLR&&&ET1 &&&&&&&&&&&&&&&&&&&CLR&&&TR1 &&&&&&&START12:&&&&LJMP&&START1 ;以下秒表暂停\清零功能程序 ;按下P1.2暂停或清0,按下P1.1退出秒表回到时钟计时 &&&&&&&&&&&&FUNPTT:&LCALL&DS20MS &&&&&&&&&&&&&&&&&&&JB&&&&P1.2,START12 &&&&&&&&&WAIT22:&&&JNB&&&P1.2,WAIT21 &&&&&&&&&&&&&&&&&&&CLR&&&ET1 &&&&&&&&&&&&&&&&&&&CLR&&&TR1 &&&&&&&&&WAIT33:&&&JNB&&P1.1,FUNSS &&&&&&&&&&&&&&&&&&&JB&&&P1.2,WAIT31 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS &&&&&&&&&&&&&&&&&&&JB&&&&P1.2,WAIT33 &&&&&&&&WAIT66:&&&&JNB&&&P1.2,WAIT61 &&&&&&&&&&&&&&&&&&&MOV&&&60H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&61H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&62H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&63H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&64H,#00H &&&&&&&&&&&&&&&&&&&MOV&&&65H,#00H &&&&&&&WAIT44:&&&&&JNB&&P1.1,FUNSS &&&&&&&&&&&&&&&&&&&JB&&&P1.2,WAIT41 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS &&&&&&&&&&&&&&&&&&&JB&&&&P1.2,WAIT44 &&&&&&&WAIT55:&&&&&JNB&&&P1.2,WAIT51 &&&&&&&&&&&&&&&&&&&SETB&&ET1 &&&&&&&&&&&&&&&&&&&SETB&&TR1 &&&&&&&&&&&&&&&&&&&AJMP&&START1 ;以下键等待释放时显示不会熄灭用 &&&&WAIT21:&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&&AJMP&&WAIT22 &&&&WAIT31:&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&&AJMP&&WAIT33 &&&&WAIT41:&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&&AJMP&&WAIT44 &&&&WAIT51:&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&&AJMP&&WAIT55 &&&&WAIT61:&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&&AJMP&&WAIT66 ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;&&&&&&&&&&&1秒计时程序&&&&&&&&&&&&&&;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序 &&&&&&&&&&&&INTT0:&PUSH&&A&&&&&&&&&&&;累加器入栈保护 &&&&&&&&&&&&&&&&&&&PUSH&&PSW&&&&&&&&&&&;状态字入栈保护 &&&&&&&&&&&&&&&&&&&CLR&&&ET0&&&&&&&&&&&;关T0中断允许 &&&&&&&&&&&&&&&&&&&CLR&&&TR0&&&&&&&&&&&;关闭定时器T0 &&&&&&&&&&&&&&&&&&&MOV&&&A,#0B7H&&&&&&&;中断同步修正 &&&&&&&&&&&&&&&&&&&ADD&&&A,TL0&&&&&&&&&;低8位初值修正 &&&&&&&&&&&&&&&&&&&MOV&&&TL0,A&&&&&&&&&;重装初值(低8位修正值) &&&&&&&&&&&&&&&&&&&MOV&&&A,#3CH&&&&&&&&;高8位初值修正 &&&&&&&&&&&&&&&&&&&ADDC&&A,TH0&&&&&&&&&; &&&&&&&&&&&&&&&&&&&MOV&&&TH0,A&&&&&&&&&;重装初值(高8位修正值) &&&&&&&&&&&&&&&&&&&SETB&&TR0&&&&&&&&&&&;开启定时器T0 &&&&&&&&&&&&&&&&&&&DJNZ&&R4,&OUTT0&&&&&&&&&;20次中断未到中断退出 &&&&&&&&&&&ADDSS:&&MOV&&&&&R4,#14H&&&&&&&&&&&;20次中断到(1秒)重赋初值 &&&&&&&&&&&&&&&&&&&CPL&&&07H&&&&&&&&&&&&&&&;闹铃时间隔呜叫用 &&&&&&&&&&&&&&&&&&&MOV&&&&&&R0,#71H&&&&&&&&&&&;指向秒计时单元(71H-72H) &&&&&&&&&&&&&&&&&&&ACALL&ADD1&&&&&&&&&&&&&&;调用加1程序(加1秒操作) &&&&&&&&&&&&&&&&&&&MOV&&&A,R3&&&&&&&&&&&&&&;秒数据放入A(R3为2位十进制数组合) &&&&&&&&&&&&&&&&&&&CLR&&&&&C&&&&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&CJNE&&A,#60H,ADDMM&&&&&&; &&&&&&&&&&&ADDMM:&&JC&&&&&&&OUTT0&&&&&&&&&&&&&;小于60秒时中断退出 &&&&&&&&&&&&&&&&&&&ACALL&CLR0&&&&&&&&&&&&&&;大于或等于60秒时对秒计时单元清0 &&&&&&&&&&&&&&&&&&&MOV&&&&&R0,#77H&&&&&&&&&&&;指向分计时单元(76H-77H) &&&&&&&&&&&&&&&&&&&ACALL&ADD1&&&&&&&&&&&&&&;分计时单元加1分钟 &&&&&&&&&&&&&&&&&&&MOV&&&&&&A,R3&&&&&&&&&&&&&&;分数据放入A &&&&&&&&&&&&&&&&&&&CLR&&&C&&&&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&CJNE&&A,#60H,ADDHH&&&&&&; &&&&&&&&&&&&ADDHH:&JC&&&&&OUTT0&&&&&&&&&&&&&;小于60分时中断退出 &&&&&&&&&&&&&&&&&&&ACALL&CLR0&&&&&&&&&&&&&&;大于或等于60分时分计时单元清0 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS&&&&&&&&&&&&&;正点报时 &&&&&&&&&&&&&&&&&&&SETB&&08H &&&&&&&&&&&&&&&&&&&MOV&&&&&R0,#79H&&&&&&&&&&&;指向小时计时单元(78H-79H) &&&&&&&&&&&&&&&&&&&ACALL&ADD1&&&&&&&&&&&&&&;小时计时单元加1小时 &&&&&&&&&&&&&&&&&&&MOV&&&A,R3&&&&&&&&&&&&&&;时数据放入A &&&&&&&&&&&&&&&&&&&CLR&&&C&&&&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&CJNE&&A,#24H,HOUR&&&&&&&; &&&&&&&&&&&&&HOUR:&JC&&&&OUTT0&&&&&&&&&&&&&;小于24小时中断退出 &&&&&&&&&&&&&&&&&&&ACALL&CLR0&&&&&&&&&&&&&&;大于或等于24小时小时计时单元清0 &&&&&&&&&&&&OUTT0:&MOV&&&72H,76H&&&&&&&&&&&;中断退出时将分、时计时单元数据移 &&&&&&&&&&&&&&&&&&&MOV&&&73H,77H&&&&&&&&&&&;入对应显示单元 &&&&&&&&&&&&&&&&&&&MOV&&&74H,78H&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&MOV&&&75H,79H&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&LCALL&&BAOJ &&&&&&&&&&&&&&&&&&&POP&&&&&&PSW&&&&&&&&&&&&&&&;恢复状态字(出栈) &&&&&&&&&&&&&&&&&&&POP&&&ACC&&&&&&&&&&&&&&&;恢复累加器 &&&&&&&&&&&&&&&&&&&SETB&&ET0&&&&&&&&&&&&&&&;开放T0中断 &&&&&&&&&&&&&&&&&&&RETI&&&&&&&&&&&&&&&&&&&&;中断返回 ; ;**************************************** ;;&&&&闪动调时程序\秒表功能程序&&&&&&&&;; ;**************************************** ;T1中断服务程序,用作时间调整时调整单元闪烁指示或秒表计时 INTT1:&&&&&&&&&&PUSH&&&&ACC&&&&&&&&&&&&&&&&;中断现场保护 &&&&&&&&&&&&&&&&PUSH&&&&PSW&&&&&&&&&&&&&&&&; &&&&&&&&&&&&&&&&JB&&&&&&03H,&MMFUN&&&&&&&&&;=1时秒表 &&&&&&&&&&&&&&&&MOV&&&&&TL1,&&&#0B0H&&&&&&&;装定时器T1定时初值 &&&&&&&&&&&&&&&&MOV&&&&&TH1,&&&#3CH&&&&&&&&&&&; &&&&&&&&&&&&&&&&DJNZ&&&&R2,INTT1OUT&&&&&&&&&&&;0.3秒未到退出中断(50MS中断6次) &&&&&&&&&&&&&&&&MOV&&&&&R2,#06H&&&&&&&&&&&&&&&;重装0.3秒定时用初值 &&&&&&&&&&&&&&&&CPL&&&&&02H&&&&&&&&&&&&&&&&&&&;0.3秒定时到对闪烁标志取反 &&&&&&&&&&&&&&&&JB&&&&&&02H,FLASH1&&&&&&&&&&&&;02H位为1时显示单元"熄灭" &&&&&&&&&&&&&&&&MOV&&&&&72H,76H&&&&&&&;02H位为0时正常显示 &&&&&&&&&&&&&&&&MOV&&&&&73H,77H&&&&&&&; &&&&&&&&&&&&&&&&MOV&&&&&74H,78H&&&&&&&; &&&&&&&&&&&&&&&&MOV&&&&&75H,79H&&&&&&&; INTT1OUT:&&&&&&&POP&&&&&PSW&&&&&&&&&&&&&;恢复现场 &&&&&&&&&&&&&&&&POP&&&&&ACC&&&&&&&&&&&; &&&&&&&&&&&&&&&&RETI&&&&&&&&&&&&&&&&&&;中断退出 FLASH1:&&&&&&&&&JB&&&&&&01H,FLASH2&&&&;01H位为1时,转小时熄灭控制 &&&&&&&&&&&&&&&&MOV&&&&&72H,7AH&&&&&&&;01H位为0时,"熄灭符"数据放入分 &&&&&&&&&&&&&&&&MOV&&&&&73H,7AH&&&&&&&;显示单元(72H-73H),将不显示分数据 &&&&&&&&&&&&&&&&MOV&&&&&74H,78H&&&&&&&; &&&&&&&&&&&&&&&&MOV&&&&&75H,79H&&&&&&&; &&&&&&&&&&&&&&&&AJMP&&&&INTT1OUT&&&&&&;转中断退出 FLASH2:&&&&&&&&&MOV&&&&&72H,76H&&&&&&&;01H位为1时,"熄灭符"数据放入小时 &&&&&&&&&&&&&&&&MOV&&&&&73H,77H&&&&&&&;显示单元(74H-75H),小时数据将不显示 &&&&&&&&&&&&&&&&MOV&&&&&74H,7AH&&&&&&&; &&&&&&&&&&&&&&&&MOV&&&&&75H,7AH&&&&&&&; &&&&&&&&&&&&&&&&AJMP&&&&INTT1OUT&&&&&&;转中断退出 ; MMFUN&:&&&&&&&&&&&&CLR&&TR1 &&&&&&&&&&&&&&&&&&&MOV&&&A,#0F7H&&&&&&&;中断响应时间同步修正,重装初值(10ms) &&&&&&&&&&&&&&&&&&&ADD&&&A,TL1&&&&&&&&&;低8位初值修正 &&&&&&&&&&&&&&&&&&&MOV&&&TL1,A&&&&&&&&&;重装初值(低8位修正值) &&&&&&&&&&&&&&&&&&&MOV&&&A,#0D8H&&&&&&&&;高8位初值修正 &&&&&&&&&&&&&&&&&&&ADDC&&A,TH1&&&&&&&&&; &&&&&&&&&&&&&&&&&&&MOV&&&TH1,A&&&&&&&&&;重装初值(高8位修正值) &&&&&&&&&&&&&&&&&&&SETB&&TR1&&&&&&&&&&&;开启定时器T0 &&&&&&&&&&&&&&&&&&&MOV&&&&&&R0,#61H&&&&&&&&&&&;指向秒计时单元(71H-72H) &&&&&&&&&&&&&&&&&&&ACALL&ADD1&&&&&&&&&&&&&&;调用加1程序(加1秒操作) &&&&&&&&&&&&&&&&&&&CLR&&&C&&&&&&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&MOV&&&A,R3&&&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&JZ&&&&FSS1&&&&&&&&&&&&&&;加1后为00,C=0 &&&&&&&&&&&&&&&&&&&AJMP&&OUTT01&&&&&&&&&&&&;加1后不为00,C=1 &&FSS1:&&&&&&&&&&&&ACALL&CLR0&&&&&&&&&&&&&&;大于或等于60秒时对秒计时单元清0 &&&&&&&&&&&&&&&&&&&MOV&&&&&R0,#63H&&&&&&&&&&&;指向分计时单元(76H-77H) &&&&&&&&&&&&&&&&&&&ACALL&ADD1&&&&&&&&&&&&&&;分计时单元加1分钟 &&&&&&&&&&&&&&&&&&&MOV&&&&&&A,R3&&&&&&&&&&&&&&;分数据放入A &&&&&&&&&&&&&&&&&&&CLR&&&C&&&&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&CJNE&&A,#60H,ADDHH1&&&&&&; &&&&&&&&&&&&ADDHH1:&JC&&&&&OUTT01&&&&&&&&&&&&&;小于60分时中断退出 &&&&&&&&&&&&&&&&&&&LCALL&CLR0&&&&&&&&&&&&&&;大于或等于60分时分计时单元清0 &&&&&&&&&&&&&&&&&&&MOV&&&&&R0,#65H&&&&&&&&&&&;指向小时计时单元(78H-79H) &&&&&&&&&&&&&&&&&&&ACALL&ADD1&&&&&&&&&&&&&&;小时计时单元加1小时 &&&&&&&&&&&&OUTT01: &&&&&&&&&&&&&&&&&&&POP&&&&&&PSW&&&&&&&&&&&&&&&;恢复状态字(出栈) &&&&&&&&&&&&&&&&&&&POP&&&ACC&&&&&&&&&&&&&&&;恢复累加器 &&&&&&&&&&&&&&&&&&&RETI&&&&&&&&&&&&&&&&&&&&;中断返回&&&&&&&&&&&&; ;**************************************** ;;&&&&&&&&&&&加1子&程&序&&&&&&&&&&&&&&;; ;**************************************** ; ; &&&&&&&&&&&&&ADD1:&MOV&&&&&A,@R0&&&&&&&;取当前计时单元数据到A &&&&&&&&&&&&&&&&&&&DEC&&&&&R0&&&&&&&&&&;指向前一地址 &&&&&&&&&&&&&&&&&&&SWAP&&A&&&&&&&&&&&;A中数据高四位与低四位交换 &&&&&&&&&&&&&&&&&&&ORL&&&&&&A,@R0&&&&&&&;前一地址中数据放入A中低四位 &&&&&&&&&&&&&&&&&&&ADD&&&&&A,#01H&&&&&&;A加1操作 &&&&&&&&&&&&&&&&&&&DA&&&&&&A&&&&&&&&&&&;十进制调整 &&&&&&&&&&&&&&&&&&&MOV&&&R3,A&&&&&&&&;移入R3寄存器 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&MOV&&&&&&@R0,A&&&&&&&;放回前一地址单元 &&&&&&&&&&&&&&&&&&&MOV&&&&&A,R3&&&&&&&&;取回R3中暂存数据 &&&&&&&&&&&&&&&&&&&INC&&&&&R0&&&&&&&&&&;指向当前地址单元 &&&&&&&&&&&&&&&&&&&SWAP&&&&&A&&&&&&&&&&&;A中数据高四位与低四位交换 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&MOV&&&&&@R0,A&&&&&&&;数据放入当削地址单元中 &&&&&&&&&&&&&&&&&&&RET&&&&&&&&&&&&&&&&&&;子程序返回 ; ;**************************************** ;;&&&&&&&&&&&分减1子&程&序&&&&&&&&&&&&&&;; ;**************************************** ; &&&&&&&&&&&&&SUB1:&MOV&&&&&A,@R0&&&&&&&;取当前计时单元数据到A &&&&&&&&&&&&&&&&&&&DEC&&&&&R0&&&&&&&&&&;指向前一地址 &&&&&&&&&&&&&&&&&&&SWAP&&A&&&&&&&&&&&;A中数据高四位与低四位交换 &&&&&&&&&&&&&&&&&&&ORL&&&&&&A,@R0&&&&&&&;前一地址中数据放入A中低四位 &&&&&&&&&&&&&&&&&&&JZ&&&&SUB11 &&&&&&&&&&&&&&&&&&&DEC&&&&&A&&&&&&&&&&&;A减1操作 &&&&&&&&&&&SUB111:&MOV&&&R3,A&&&&&&&&;移入R3寄存器 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&CLR&&&&&C&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&SUBB&&A,#0AH &&&&&&&&&&SUB1111:&JC&&&&&&&SUB1110 &&&&&&&&&&&&&&&&&&&MOV&&&&&&@R0,#09H&&&&;大于等于0AH,为9 &&&&&&&&&&SUB110:&&MOV&&&&&A,R3&&&&&&&&;取回R3中暂存数据 &&&&&&&&&&&&&&&&&&&INC&&&&&R0&&&&&&&&&&;指向当前地址单元 &&&&&&&&&&&&&&&&&&&SWAP&&&&&A&&&&&&&&&&&;A中数据高四位与低四位交换 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&MOV&&&&&@R0,A&&&&&&&;数据放入当削地址单元中 &&&&&&&&&&&&&&&&&&&RET&&&&&&&&&&&&&&&;子程序返回 &&&; &&&&&&&&&&&&SUB11:&MOV&&&A,#59H &&&&&&&&&&&&&&&&&&&AJMP&&SUB111 &&&&&&&&&&&SUB1110:MOV&&&A,R3&&&&&&&&;移入R3寄存器 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&MOV&&&@R0,A &&&&&&&&&&&&&&&&&&&AJMP&&SUB110 ;**************************************** ;;&&&&&&&&&&&时减1子&程&序&&&&&&&&&&&&&;; ;**************************************** ; &&&&&&&&&&&&&SUBB1:MOV&&&&&A,@R0&&&&&&&;取当前计时单元数据到A &&&&&&&&&&&&&&&&&&&DEC&&&&&R0&&&&&&&&&&;指向前一地址 &&&&&&&&&&&&&&&&&&&SWAP&&A&&&&&&&&&&&;A中数据高四位与低四位交换 &&&&&&&&&&&&&&&&&&&ORL&&&&&&A,@R0&&&&&&&;前一地址中数据放入A中低四位 &&&&&&&&&&&&&&&&&&&JZ&&&&SUBB11&&&&&&;00减1为23(小时) &&&&&&&&&&&&&&&&&&&DEC&&&&&A&&&&&&&&&&&;A减1操作 &&&&&&&&&&&SUBB111:MOV&&&R3,A&&&&&&&&;移入R3寄存器 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&CLR&&&&&C&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&SUBB&&A,#0AH&&&&&&;时个位大于9为9 &&&&&&&&&SUBB1111:&JC&&&&&&&SUBB1110&&&&; &&&&&&&&&&&&&&&&&&&MOV&&&&&&@R0,#09H&&&&;大于等于0AH,为9 &&&&&&&&&&SUBB110:&MOV&&&&&A,R3&&&&&&&&;取回R3中暂存数据 &&&&&&&&&&&&&&&&&&&INC&&&&&R0&&&&&&&&&&;指向当前地址单元 &&&&&&&&&&&&&&&&&&&SWAP&&&&&A&&&&&&&&&&&;A中数据高四位与低四位交换 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&MOV&&&&&@R0,A&&&&&&&;时十位数数据放入 &&&&&&&&&&&&&&&&&&&RET&&&&&&&&&&&&&&&;子程序返回 &&&; &&&&&&&&&&&SUBB11:&MOV&&&A,#23H &&&&&&&&&&&&&&&&&&&AJMP&&SUBB111 &&&&&&&&&&SUBB1110:MOV&&&A,R3&&&&&&&&;时个位小于0A不处理 &&&&&&&&&&&&&&&&&&&ANL&&&&&&A,#0FH&&&&&&;高四位变0 &&&&&&&&&&&&&&&&&&&MOV&&&@R0,A&&&&&&&;个位移入 &&&&&&&&&&&&&&&&&&&AJMP&&SUBB110 ;**************************************** ;;&&&&&&&&&&&清零程序&&&&&&&&&&&&&&&&&&;; ;**************************************** ;对计时单元复零用 &&&&&&&&&&&&&CLR0:&CLR&&&&&&&&&A&&&&&&&&&&&;清累加器 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&@R0,A&&&&&&&;清当前地址单元 &&&&&&&&&&&&&&&&&&&DEC&&&&&&&&&R0&&&&&&&&&&;指向前一地址 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&@R0,A&&&&&&&;前一地址单元清0 &&&&&&&&&&&&&&&&&&&RET&&&&&&&&&&&&&&&&&&&&&&;子程序返回 ; ;**************************************** ;;&&&&&&&&&&&时钟时间调整程序&&&&&&&&&&;; ;**************************************** ;当调时按键按下时进入此程序 &&&&&&&&&&&SETMM:&&cLR&&&&&&ET0&&&&&&&&&&&&;关定时器T0中断 &&&&&&&&&&&&&&&&&&&CLR&&&&&&TR0&&&&&&&&&&&&;关闭定时器T0 &&&&&&&&&&&&&&&&&&&LCALL&&&&&&DL1S&&&&&&&&&&&;调用1秒延时程序 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS&&&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&&&&&&&&&P1.0,CLOSEDIS&&;键按下时间小于1秒,关闭显示(省电) &&&&&&&&&&&&&&&&&&&MOV&&&&&&R2,#06H&&&&&&&&;进入调时状态,赋闪烁定时初值 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&&70H,#00H&&&&&&&;调时时秒单元为00&秒 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&&71H,#00H &&&&&&&&&&&&&&&&&&&SETB&&&&&ET1&&&&&&&&&&&&;允许T1中断 &&&&&&&&&&&&&&&&&&&SETB&&&&&TR1&&&&&&&&&&&&;开启定时器T1 &&&&&&&&&&&&SET2:&&JNB&&&&&&&&&P1.0,SET1&&&&&&;P1.0口为0(键未释放),等待 &&&&&&&&&&&&&&&&&&&SETB&&&&&&00H&&&&&&&&&&&&;键释放,分调整闪烁标志置1 &&&&&&&&&&&&SET4:&&JB&&&&&&&&&&P1.0,SET3&&&&&&;等待键按下 &&&&&&&&&&&&&&&&&&&LCALL&&&&&&&DL05S&&&&&&&&&&;有键按下,延时0.5秒 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS&&&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JNB&&&&&&&&P1.0,SETHH&&&&&;按下时间大于0.5秒转调小时状态 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R0,#77H&&&&&&&&;按下时间小于0.5秒加1分钟操作 &&&&&&&&&&&&&&&&&&&LCALL&&&&&ADD1&&&&&&&&&&&;调用加1子程序 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&A,R3&&&&&&&&&&&;取调整单元数据 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&&&C&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&CJNE&&&&&A,#60H,HHH&&&&&;调整单元数据与60比较 &&&&&&&&&&&&&&HHH:&JC&&&&&&&&&SET4&&&&&&&&&&&;调整单元数据小于60转SET4循环 &&&&&&&&&&&&&&&&&&&LCALL&&&&&CLR0&&&&&&&&&&&;调整单元数据大于或等于60时清0 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&&&C&&&&&&&&&&&&&&;清进位标志 &&&&&&&&&&&&&&&&&&&AJMP&&&&&&SET4&&&&&&&&&&&;跳转到SET4循环 &&&&&&&&CLOSEDIS:&&SETB&&&&&&ET0&&&&&&&&&&&;省电(不显示)状态。开T0中断 &&&&&&&&&&&&&&&&&&&SETB&&&&&&TR0&&&&&&&&&&&;开启T0定时器(开时钟) &&&&&&&&CLOSE:&&&&&JB&&&&&&&&P1.0,CLOSE&&&&;无按键按下,等待。 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS&&&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&&&&&&&P1.0,CLOSE&&&&&;是干扰返回CLOSE等待 &&&&&&&&WAITH:&&&&&JNB&&&&&&&P1.0,WAITH&&&&&;等待键释放 &&&&&&&&&&&&&&&&&&&LJMP&&&&&&START1&&&&&&&&&;返回主程序(LED数据显示亮) &&&&&&&&&&&SETHH:&&CLR&&&&&&&00H&&&&&&&&&&&;分闪烁标志清除(进入调小时状态) &&&&&&&&&&&&&&&&&&&SETB&&&&&&&&&01H&&&&&&&&&&&&;小时调整标志置1 &&&&&&&&&&SETHH1:&&JNB&&&&&&&&&P1.0,SET5&&&&&&;等待键释放 &&&&&&&&&&&&SET6:&&JB&&&&&&&&&&P1.0,SET7&&&&&&;等待按键按下 &&&&&&&&&&&&&&&&&&&LCALL&&&&&&&DL05S&&&&&&&&&&;有键按下延时0.5秒 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS&&&&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JNB&&&&&&&&P1.0,SETOUT&&&&;按下时间大于0.5秒退出时间调整 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R0,#79H&&&&&&&;按下时间小于0.5秒加1小时操作 &&&&&&&&&&&&&&&&&&&LCALL&&&&&&ADD1&&&&&&&&&&&&;调加1子程序 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&A,R3&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&CLR&&&&&&&&&C&&&&&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&CJNE&&&&&A,#24H,HOUU&&&&&&;计时单元数据与24比较 &&&&&&&&&&&&HOUU:&&JC&&&&&&&&&SET6&&&&&&&&&&&&&;小于24转SET6循环 &&&&&&&&&&&&&&&&&&&LCALL&&&&&CLR0&&&&&&&&&&&&&;大于或等于24时清0操作 &&&&&&&&&&&&&&&&&&&AJMP&&&&&&SET6&&&&&&&&&&&&&;跳转到SET6循环 &&&&&&&&&&&SETOUT:&JNB&&&&&&&P1.0,SETOUT1&&&&&;调时退出程序。等待键释放 &&&&&&&&&&&&&&&&&&&LCALL&DS20MS&&&&&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JNB&&&&&&&P1.0,SETOUT&&&&&&;是抖动,返回SETOUT再等待 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&01H&&&&&&&&&&&&&&;清调小时标志 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&00H&&&&&&&&&&&&&&;清调分标志 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&02H&&&&&&&&&&&&&&;清闪烁标志 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&TR1&&&&&&&&&&&&&&;关闭定时器T1 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&ET1&&&&&&&&&&&&&&;关定时器T1中断 &&&&&&&&&&&&&&&&&&&SETB&&&&&&TR0&&&&&&&&&&&&&&;开启定时器T0 &&&&&&&&&&&&&&&&&&&SETB&&&&&&ET0&&&&&&&&&&&&&&;开定时器T0中断(计时开始) &&&&&&&&&&&&&&&&&&&LJMP&&&&&START1&&&&&&&&&&&;跳回主程序 &&&&&&&&&&&&SET1:&&LCALL&&&&DISPLAY&&&&&&&&&&;键释放等待时调用显示程序(调分) &&&&&&&&&&&&&&&&&&&AJMP&&&&&SET2&&&&&&&&&&&&&;防止键按下时无时钟显示 &&&&&&&&&&&&SET3:&&LCALL&&&&DISPLAY&&&&&&&&&&;等待调分按键时时钟显示用 &&&&&&&&&&&&&&&&&&&JNB&&&&&&P1.1,&FUNSUB&&&&&;减1分操作 &&&&&&&&&&&&&&&&&&&AJMP&&&&&SET4&&&&&&&&&&&&&;调分等待 &&&&&&&&&&&&SET5:&&LCALL&&&&DISPLAY&&&&&&&&&&;键释放等待时调用显示程序(调小时) &&&&&&&&&&&&&&&&&&&AJMP&&&&&SETHH1&&&&&&&&&&&;防止键按下时无时钟显示 &&&&&&&&&&&&SET7:&&LCALL&&&&DISPLAY&&&&&&&&&&;等待调小时按键时时钟显示用 &&&&&&&&&&&&&&&&&&&JNB&&&&&&P1.1,&FUNSUBB&&&&&;小时减1操作 &&&&&&&&&&&&&&&&&&&AJMP&&&&&SET6&&&&&&&&&&&&&&;调时等待 &&&&&&&&&SETOUT1:&&LCALL&&&&DISPLAY&&&&&&&&&&;退出时钟调整时键释放等待 &&&&&&&&&&&&&&&&&&&AJMP&&&&SETOUT&&&&&&&&&&&&;防止键按下时无时钟显示 ;FUNSUB,分减1程序?&&&&&&&&&&FUNSUB:&&LCALL&DS20MS&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&&&&&&P1.1,SET41&&&&&&&;干扰,返回调分等待 &&&&&&&&&&FUNSUB1:&JNB&&&&&&P1.1,FUNSUB1&&&&&;等待键放开 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R0,#77H&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&LCALL&&&&SUB1&&&&&&&&&&&&&;分减1程序 &&&&&&&&&&&&&&&&&&&LJMP&&&&&SET4&&&&&&&&&&&&&;返回调分等待 ; &&&&&&&&&&&&SET41:&LJMP&&&&&SET4&&&&&&&&&&&&&; ;FUNSUBB,时减1程序&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&; &&&&&&&&&FUNSUBB:&&LCALL&DS20MS&&&&&&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&&JB&&&&&&&P1.1,SET61&&&&&&&;&干扰,返回调时等待 &&&&&&&&&FUNSUBB1:&JNB&&&&&&P1.1,FUNSUBB1&&&&;&等待键放开 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R0,#79H&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&LCALL&&&&SUBB1&&&&&&&&&&&&;&时减1程序 &&&&&&&&&&&&&&&&&&&LJMP&&&&&SET6&&&&&&&&&&&&&;&返回调时等待 ; &&&&&&&&&&&&SET61:&LJMP&&SET6 ;*************************************** ;;&&&&&&&&&&&显示程序&&&&&&&&&&&&&&&&&&;; ;*************************************** ;&显示数据在70H-75H单元内,用六位LED共阳显示,P0口输出段码数据,P2口作 ;&扫描控制,每个LED数码管亮1MS时间再逐位循环。 &&&&&&&&&&DISPLAY:&MOV&&&&&&&&&R1,DISPFIRST&&&&&&&;指向显示数据首址 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R5,#0FEH&&&&&&;扫描控制字初值 &&&&&&&&&&&&&PLAY:&MOV&&&&&&&&&A,R5&&&&&&&&&&;扫描字放入A &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P2,A&&&&&&&&&&;从P2口输出 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&A,@R1&&&&&&&&&;取显示数据到A &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&DPTR,#TAB&&&&&;取段码表地址 &&&&&&&&&&&&&&&&&&&MOVC&&&&&&&&A,@A+DPTR&&&&&;查显示数据对应段码 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P0,A&&&&&&&&&&;段码放入P1口 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&&A,R5&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&JB&&&&&&&&&&&ACC.2,LOOP5&&&;小数点处理 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&&&&P0.7&&&&&&&&&&; &&&&&&&LOOP5:&&&&&&JB&&&&&&&&&&&ACC.4,LOOP6&&&;小数点处理 &&&&&&&&&&&&&&&&&&&CLR&&&&&&&&&&P0.7&&&&&&&&&&; &&&&&&&LOOP6:&&&&&&LCALL&&&&&DL1MS&&&&&&&&&;显示1MS &&&&&&&&&&&&&&&&&&&INC&&&&&&&&&R1&&&&&&&&&&&&;指向下一地址 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&A,R5&&&&&&&&&&&&;扫描控制字放入A &&&&&&&&&&&&&&&&&&&JNB&&&&&&&&&ACC.5,ENDOUT&&&&;ACC.5=0时一次显示结束 &&&&&&&&&&&&&&&&&&&RL&&&&&&&&&A&&&&&&&&&&&&&&&;A中数据循环左移 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R5,A&&&&&&&&&&&&;放回R5内 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P0,#0FFH &&&&&&&&&&&&&&&&&&&AJMP&&&&&PLAY&&&&&&&&&&&&;跳回PLAY循环 &&&&&&&&&&&ENDOUT:&MOV&&&&&&&&&&P2,#0FFH&&&&&&&&&&&&;一次显示结束,P2口复位 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P0,#0FFH&&&&&&&;P0口复位 &&&&&&&&&&&&&&&&&&&RET&&&&&&&&&&&&&&&&&&&&&&;子程序返回 &&&&&&&&&&&&&TAB:&DB&0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH ;共阳段码表&&&&&&&&&&"0""1""2"&"3""4""5""6""7"&"8""9""不亮"“A”“-” ; ;**************************** ;&SPLAY&,上电显示子程序 ;**************************** ;不带小数点显示,有“A”“-”显示功能 &&&&&&&&&SDISPLAY:&MOV&&&&&&&&&&R1,DISPFIRST &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R5,#0FEH&&&&&&;扫描控制字初值 &&&&&&&&&&&&SPLAY:&MOV&&&&&&&&&A,R5&&&&&&&&&&;扫描字放入A &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P2,A&&&&&&&&&&;从P2口输出 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&A,@R1&&&&&&&&&;取显示数据到A &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&DPTR,#TABS&&&&&;取段码表地址 &&&&&&&&&&&&&&&&&&&MOVC&&&&&&&&A,@A+DPTR&&&&&;查显示数据对应段码 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P0,A&&&&&&&&&&;段码放入P1口 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&&A,R5&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&LCALL&&&&&DL1MS&&&&&&&&&;显示1MS &&&&&&&&&&&&&&&&&&&INC&&&&&&&&&R1&&&&&&&&&&&&;指向下一地址 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&A,R5&&&&&&&&&&&&;扫描控制字放入A &&&&&&&&&&&&&&&&&&&JNB&&&&&&&&&ACC.5,ENDOUTS&&&&;ACC.5=0时一次显示结束 &&&&&&&&&&&&&&&&&&&RL&&&&&&&&&A&&&&&&&&&&&&&&&;A中数据循环左移 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&R5,A&&&&&&&&&&&&;放回R5内 &&&&&&&&&&&&&&&&&&&AJMP&&&&&SPLAY&&&&&&&&&&&&;跳回PLAY循环 &&&&&&&&&&ENDOUTS:&MOV&&&&&&&&&&P2,#0FFH&&&&&&&&&&&&;一次显示结束,P2口复位 &&&&&&&&&&&&&&&&&&&MOV&&&&&&&&&P0,#0FFH&&&&&&&;P0口复位 &&&&&&&&&&&&&&&&&&&RET&&&&&&&&&&&&&&&&&&&&&&;子程序返回 &&&&&&&&&&&&&TABS:&DB&0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H &&&&&&&&&&&&&;&显示数&&"0&&&&1&&&&2&&&&3&&&&4&&&5&&&6&&&7&&&8&&&&9&&不亮&&C&&&-&&&&A&&" &&&&&&&&&&&&&;&内存数&&"0&&&&1&&&&2&&&&3&&&&4&&&5&&&6&&&7&&&8&&&&9&&0AH&&&0BH&0CH&&0DH&" ;STAB表,启动时显示日、C04-2-28(学号)用 &&&&&&&&&&STAB:&DB&0AH,0AH,0AH,0AH,0AH,0AH,08H,02H,0CH,02H,0CH,04H,00H,0BH,0AH,0AH &&&&&&&&&&&&&&&&DB&03H,02H,0CH,02H,01H,0CH,06H,00H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH ;&&&&&&&&&&注:0A不亮,0B显示“A”,0C显示“-” ; ;*********************************************************** ;ST,上电时显示年月班级用,采用移动显示,先右移,接着左移. ;*********************************************************** &&&&&&&&&&&ST:&&&&&&MOV&&&&&&&&R0,#40H&&&&&&;将显示内容移入40H-5FH单元 &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&R2,#20H&&&&&&; &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&R3,#00H&&&&&&; &&&&&&&&&&&&&&&&&&&&CLR&&&&&&&&A&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&DPTR,#STAB&&&; &&&&&&&&&&&SLOOP:&&&MOVC&&&&&&&A,@A+DPTR&&&&; &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&@R0,A&&&&&&&&; &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&A,R3&&&&&&&&&; &&&&&&&&&&&&&&&&&&&&INC&&&&&&&&A&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&R3,A&&&&&&&&&; &&&&&&&&&&&&&&&&&&&&INC&&&&&&&&R0&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&&&DJNZ&&&&&&&R2,SLOOP&&&&&;移入完毕 &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&DISPFIRST,#40H&&;以下程序从左往右移 &&&&&&&&&&SSLOOP:&&&MOV&&&&&&&&R2,#50&&&&&&&&&&;控制移动速度 &&&&&&&&&&SSLOOP1:&&LCALL&&&&&&SDISPLAY&&&&&&&&; &&&&&&&&&&&&&&&&&&&&DJNZ&&&&&&&R2,SSLOOP1&&&&&&; &&&&&&&&&&&&&&&&&&&&INC&&&&&&&&DISPFIRST &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&A,DISPFIRST &&&&&&&&&&&&&&&&&&&&CJNE&&&&&&&A,#5AH,&SSLOOP&&; &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&DISPFIRST,#5AH&&;以下程序从右往左移 &&&&&&&&&&&&&&&&&&&&MOV&&&&&&&&R3,#1BH&&&&&&&&&;显示27个单元 &&&&&&&&&&SSLOOP2:&&MOV&&&&&&&&R2,#32H&&&&&&&&;控制移动速度 &&&&&&&&&&SSLOOP12:&LCALL&&&&&&SDISPLAY&&&&&&&; &&&&&&&&&&&&&&&&&&&&DJNZ&&&&&&&R2,SSLOOP12&&&&&; &&&&&&&&&&&&&&&&&&&&DEC&&&&&&&&DISPFIRST &&&&&&&&&&&&&&&&&&&&DJNZ&&&&&&&R3,SSLOOP2&&&&&&; &&&&&&&&&&&&&&&&&&&&RET ;******************************************* ;;&&&&&&&&&&&延时程序&&&&&&&&&&&&&&&&&&&&&;; ;******************************************* ; ;1MS延时程序,LED显示程序用 &&&&&&&&&&&&&DL1MS:&MOV&&&&&R6,#14H &&&&&&&&&&&&&DL1:&&&MOV&&&&&R7,#19H &&&&&&&&&&&&&DL2:&&&DJNZ&&&&&R7,DL2 &&&&&&&&&&&&&&&&&&&&DJNZ&&&&&R6,DL1 &&&&&&&&&&&&&&&&&&&&RET ;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象 &&&&&&&&&&&DS20MS:&CLR&&&&&&&&&&BELL &&&&&&&&&&&&&&&&&&&LCALL&&&&&&DISPLAY &&&&&&&&&&&&&&&&&&&LCALL&&&&&DISPLAY &&&&&&&&&&&&&&&&&&&LCALL&&&&&DISPLAY &&&&&&&&&&&&&&&&&&&SETB&&&&&&&&&&BELL &&&&&&&&&&&&&&&&&&&RET ;延时程序,用作按键时间的长短判断 &&&&&&&&&&&DL1S:&&&LCALL&&&&&&DL05S &&&&&&&&&&&&&&&&&&&LCALL&&&&&&DL05S &&&&&&&&&&&&&&&&&&&RET &&&&&&&&&&DL05S:&&&MOV&&&&&&&&R3,#20H&&&&&&;8毫秒*32=0.196秒 &&&&&&&&&&DL05S1:&&LCALL&&&&&&DISPLAY &&&&&&&&&&&&&&&&&&&DJNZ&&&&&&&R3,DL05S1 &&&&&&&&&&&&&&&&&&&RET ;************************************* ;以下是闹铃时间设定程序中的时调整程序 ;************************************* DSSFUNN:&&&&&&&&&&LCALL&DISPLAY&&&&&&&&&;等待键释放 &&&&&&&&&&&&&&&&&&JNB&&&P1.3,&DSSFUNN &&&&&&&&&&&&&&&&&MOV&&&&50H,#0AH&&&&&&&&;时调整时显示为00:00:-&. &&&&&&&&&&&&&&&&&MOV&&&&51H,#0CH &&&&&&&&WAITSS:&&&&SETB&&EA &&&&&&&&&&&&&&&&&&LCALL&DISPLAY &&&&&&&&&&&&&&&&&&JNB&&&P1.2,FFFF&&&&&&;时加1键 &&&&&&&&&&&&&&&&&&JNB&&&P1.0,DDDD&&&&&&;时减1 &&&&&&&&&&&&&&&&&&JNB&&&P1.3,OOOO&&&&&&;闹铃设定退出键 &&&&&&&&&&&&&&&&&&JNB&&&P1.1,ENA&&&&&&&;闹铃设定有效或无效按键 &&&&&&&&&&&&&&&&&&AJMP&&WAITSS &&&&&&&OOOO:&&&&&&LCALL&DS20MS&&&&&&&&&;消抖 &&&&&&&&&&&&&&&&&&JB&&&P1.3,&WAITSS &&&&&DSSFUNNM:&&&&LCALL&DISPLAY&&&&&&&&&;键释放等待 &&&&&&&&&&&&&&&&&&JNB&&&P1.3,&DSSFUNNM &&&&&&&&&&&&&&&&&&MOV&&DISPFIRST,#70H &&&&&&&&&&&&&&&&&&LJMP&START1 &&&&&&&ENA:&&&&&&&LCALL&DS20MS&&&&&&&&&;消抖&&&&&&&&; &&&&&&&&&&&&&&&&&&JB&&&P1.1,&WAITSS &&&&&DSSFUNMMO:&&&LCALL&DISPLAY&&&&&&&&&;键释放等待 &&&&&&&&&&&&&&&&&&JNB&&&P1.1,&DSSFUNMMO &&&&&&&&&&&&&&&&&&CPL&&05H &&&&&&&&&&&&&&&&&&JNB&&05H,WAITSS11 &&&&&&&&&&&&&&&&&&MOV&&50H,#00H&&&&&&&&;05H=1,闹铃开,显示为&00:00:&0。 &&&&&&&&&&&&&&&&&&AJMP&&WAITSS &&&&&&&&&&WAITSS11:&MOV&&50H,#0aH&&&&&&&&;闹铃不开,显示为00:00:-&. &&&&&&&&&&&&&&&&&&AJMP&&WAITSS &&&&&&&FFFF:&&&&&&LCALL&DS20MS&&&&&&&&&&&&;消抖&&&&&&&&; &&&&&&&&&&&&&&&&&&JB&&&P1.2,&WAITSS &&&&&DSSFUNMM:&&&&LCALL&DISPLAY&&&&&&&&&;键释放等待 &&&&&&&&&&&&&&&&&&JNB&&&P1.2,&DSSFUNMM &&&&&&&&&&&&&&&&&&CLR&&&EA &&&&&&&&&&&&&&&&&&MOV&&&R0,#55H &&&&&&&&&&&&&&&&&&LCALL&ADD1 &&&&&&&&&&&&&&&&&&MOV&&&&&&A,R3&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&CLR&&&C&&&&&&&&&&&&&&&&&; &&&&&&&&&&&&&&&&&&CJNE&&A,#24H,ADDHH33N&&&; &&&&&&&&ADDHH33N:&JC&&&&&WAITSS&&&&;小于24点返回 &&&&&&&&&&&&&&&&&&ACALL&CLR0&&&&&&&&&&&&&&;大于等于24点清零 &&&&&&&&&&&&&&&&&&AJMP&&WAITSS &&&&&DDDD&&:&&&&&&LCALL&DS20MS&&&&&&&&&&&&;消抖&&&&&&&&; &&&&&&&&&&&&&&&&&&JB&&&P1.0,&WAITSS &&&&&DSSFUNDD:&&&&LCALL&DISPLAY&&&&&&&&&;键释放等待 &&&&&&&&&&&&&&&&&&JNB&&&P1.0,&DSSFUNDD &&&&&&&&&&&&&&&&&&CLR&&&EA &&&&&&&&&&&&&&&&&&MOV&&&R0,#55H &&&&&&&&&&&&&&&&&&LCALL&SUBB1 &&&&&&&&&&&&&&&&&&LJMP&&WAITSS ;********************* ;以下是闹铃判断子程序 ;********************* BAOJ:&&&&&&&&&&&&&&&JNB&&&05H,BBAO&&&&&&&;05H=1,闹钟开,要比较数据 &&&&&&&&&&&&&&&&&&&&MOV&&&&A,79H&&&&&&&&&;从时十位、个位、分十位、分个位顺序比较 &&&&&&&&&&&&&&&&&&&&CJNE&&&A,55H,BBAO &&&&&&&&&&&&&&&&&&&&MOV&&&&A,78H &&&&&&&&&&&&&&&&&&&&CLR&&&&C BB3:&&&&&&&&&&&&&&&&CJNE&&&A,54H,BBAO &&&&&&&&&&&&&&&&&&&&MOV&&&&A,77H &&&&&&&&&&&&&&&&&&&&CLR&&&C &&&&&&&&&&&&&&&&&&&&CJNE&&&A,53H,BBAO &&&&&&&&&&&&&&&&&&&&MOV&&&&A,76H &&&&&&&&&&&&&&&&&&&&CLR&&&&C BB2:&&&&&&&&&&&&&&&&CJNE&&&A,52H,BBAO &&&&&&&&&&&&&&&&&&&&JNB&&&07H,BBAO&&&&&&&&;07H在1秒到时会取反 &&&&&&&&&&&&&&&&&&&&CLR&&&&BELL&&&&&&&&&&&;时分相同时呜叫(1秒间隔叫) &&&&&&&&&&&&&&&&&&&&RET ; &&&&&&&&&&&&&&BBAO:&SETB&&BELL&&&&&&&&&&&&;不相同或闹铃不开 &&&&&&&&&&&&&&&&&&&&RET ;******************************************************** &&&&&&&&&&&&&&&&&&&END&&&&&&&&&&&&&&&&&&&&&;程序结束
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670&}

我要回帖

更多关于 四工位专用机床设计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信