⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 sdfs就很高很高很高很高很高高交会馆
💻
📖 第 1 页 / 共 3 页
字号:
                SETB P2.0
                MOV A,R0
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.1
                ACALL DL                ;送显时低位
                SETB P2.1
                MOV R1,ON_MINUTE
                MOV A,R1
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.2
                ACALL DL                ;送显分高位       
                SETB P2.2
                MOV A,R1
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.3
                ACALL DL                ;送显分低位
                SETB P2.3
                RET
;*************************************************************************************************
;                                      关机时间显示子程序                                        *
;*************************************************************************************************
DISP3:          MOV R0,OFF_HOUR
                MOV DPTR,#TAB           ;笔划段码表指针    
                MOV A,R0
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.0
                ACALL DL                ;送显时高位 
                SETB P2.0
                MOV A,R0
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.1
                ACALL DL                ;送显时低位   
                SETB P2.1
                MOV R1,OFF_MINUTE
                MOV A,R1
                SWAP A
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.2
                ACALL DL                ;送显分高位
                SETB P2.2
                MOV A,R1
                ANL A,#0FH
                MOVC A,@A+DPTR
                MOV P1,A
                CLR P2.3
                ACALL DL                ;送显分低位 
                SETB P2.3
                RET
;************************************************************************************************************
;                                   延时0.16ms子程序                                                        *
;************************************************************************************************************  
DL:             MOV  31H,#80
DL2:            DJNZ 31H,DL2
                RET
;****************************************************************************************************
;                                     延时10MS子程序,用於消除按键抖动而产生误动作                   *
;****************************************************************************************************
DEL:            MOV  32H,#200
DEL1:           MOV  33H,#250
DEL2:           DJNZ 33H,DEL2
                DJNZ 32H,DEL1
                RET
;*************************************************************************************************************
;                                   按键中断处理子程序                                                        *
;*************************************************************************************************************
INTEX0:         PUSH  ACC                 ;保护现场 
                PUSH  PSW
                CLR   EX0                 ;关外部中断INT0
                JB    K1,$                ;判断K1按下否,未按则等待,K1按下
                                          ;LED1亮, LED2熄灭
DISP1_0:        ACALL DISP1               ;
                JNB   K1,DISP1_0          ;等待K1释放
                ACALL DEL                 ;K1按下开机指示LED1亮,LED2熄灭   
PH4:            CLR   P3.1                ;LED1亮
                SETB  P3.0                ;LED2熄灭   
PH0:            ACALL DISP1               ;调当前时间显示子程
                JB    K2,PH01             ;判K2按下否,未按则转到判K3 
DISP1_1:        ACALL DISP1               ;  
                JNB   K2,DISP1_1          ;等待K2释放
                ACALL DEL
                MOV   R0,C_HOUR
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   C_HOUR,A            ;当前时间时加1
                CJNE  A,#24H,PH0          ;超过24吗(超过清0)
                MOV   C_HOUR,#0
PH01:           JB    K3,PH1              ;判K3按下否,未按则转判K4
DISP1_2:        ACALL DISP1               ;
                JNB   K3,DISP1_2          ;等待K3释放           
                ACALL DEL
                MOV   R0,C_MINUTE
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   C_MINUTE,A          ;当前时间分加1
                CJNE  A,#60H,PH0          ;超过60吗(超过清0)
                MOV   C_MINUTE,#0
PH1:            JB    K4,PH10             ;判K4按下否,未按则转到判K1    
DISP1_3:        ACALL DISP1               ;
                JNB   K4,$                ;等待K4释放
                ACALL DEL
                AJMP  TEND                ;K4按下,转启动
PH10:           JB    K1,PH0              ;判K1按下否,未按则再
DISP1_4:        ACALL DISP1               ;
                JNB   K1,DISP1_4          ;等待K1释放
                ACALL DEL                 ;K1按下开机指示LED1熄灭,LED2亮
                SETB  P3.1                ;LED1熄灭 
                CLR   P3.0                ;LED2亮

PH2:            ACALL DISP2               ;调开机时间显示子程序 
                JB    K2,PH201            ;判K2按下否,未按则转到判K3 
DISP2_1:        ACALL DISP2               ;
                JNB   K2,DISP2_1          ;等待K2释放
                MOV   R0,ON_HOUR
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   ON_HOUR,A           ;开机时间时加1
                CJNE  A,#24H,PH2          ;超过24吗(超过清0)
                MOV   ON_HOUR,#0
PH201:          JB    K3,PH210            ;判K3按下否,未按则转判K4
DISP2_2:        ACALL DISP2               ;
                JNB   K3,DISP2_2          ;等待K3释放              
                ACALL DEL
                MOV   R0,ON_MINUTE
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   ON_MINUTE,A         ;开机时间分加1
                CJNE  A,#60H,PH2          ;超过60吗(超过清0)
                MOV   ON_MINUTE,#0
PH210:          JB    K1,PH2              ;判K1按下否,未按则再
DISP2_3:        ACALL DISP2               ;
                JNB   K1,DISP2_3          ;等待K1释放
                ACALL DEL                 ;K1按下关机指示LED1. LED2亮
                CLR   P3.0                ;LED1亮     
                CLR   P3.1                ;LED2亮

PH3:            ACALL DISP3               ;调关机时间显示子程序 
                JB    K2,PH301            ;判K2按下否,未按则转到判K3
DISP3_1:        ACALL DISP3               ;
                JNB   K2,DISP3_1          ;等待K2释放
                ACALL DEL
                MOV   R0,OFF_HOUR
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   OFF_HOUR,A          ;关机时间时加1 
                CJNE  A,#24H,PH3          ;超过24吗(超过清0)  
                MOV   OFF_HOUR,#0
PH301:          JB    K3,PH310            ;判K3按下否,未按则转判K4
DISP3_2:        ACALL DISP3               ;
                JNB   K3,DISP3_2          ;等待K3释放
                ACALL DEL
                MOV   R0,OFF_MINUTE
                MOV   A,#01H
                ADD   A,R0
                DA    A
                MOV   OFF_MINUTE,A        ;关机时间分加1
                CJNE  A,#60H,PH3          ;超过60吗(超过清0)
                MOV   OFF_MINUTE,#0
PH310:          JB    K1,PH3              ;判K1按下否,未按则再
DISP3_3:        ACALL DISP3               ;
                JNB   K1,DISP3_3          ;等待K1释放
                ACALL DEL
                AJMP  PH4                 ;转当前时间调整 

TEND:           SETB  EX0                 ;开INT0中断
                SETB  TR0                 ;允许T0计数  
                SETB  01H                 ;置00H为1,启动计数  
                SETB  ET0                 ;允许T0中断
                SETB  P3.7                ;置P3.7口为1
                POP   PSW                 ;恢复现场
                POP   ACC
                RETI                      ;中断返回 
;**********************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;     遥控接收程序      ;;;;;;;;;;;;;;;;;;;;;;;
;**********************************************************************
;采用中断接收
INTEX1:         
                CLR      EA             ;
                CLR      TR1            ;
                JNB      SI,$           ;
                NOP
                NOP
                JNB      SI,$
                SETB     TR1            ;
                MOV      R2,TH1         ;取T0计数次数
                MOV      R3,TL1
                MOV      R4,#00H        ;0096H~03B6H为数据窗口0
                MOV      R5,#96H        ;窗口0的下限
                LCALL    SUB0           ;计数值小于00FAH吗?

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -