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

📄 main.src

📁 一个家庭自动控制器
💻 SRC
📖 第 1 页 / 共 5 页
字号:
                CALL RADOMER999
                CP R15,#0AAH
                JP EQ,BUYAOSHUO
                LD LCD_BUFFER+3,#00H 
                LD LCD_BUFFER+4,#00H 
                                
BUYAOSHUO:      LD LCD_BUFFER+1,#00H 
                LD LCD_BUFFER+2,#00H       ;相应位关(时针) ,闪烁
                CALL SHAOMIAO
                JP CLOCK_TIME999 
                
TIME_UP_F:      CALL TIME_UP
                JP TMD
TIME_DOWN_F:    CALL TIME_DOWN
                JP TMD

;-------------------------------------------------------                                
TMD1:           LD KEY_FLAG,#01111111B
                CALL delay_100ms
                LD R11,#00H
                CALL RADOMER999
                CP R15,#0AAH
                JP EQ,CLOCK_MINITE
                LD R11,#55H
                JP TANGJINFENG
                                
CLOCK_MINITE:   LD R14,MINITE_FLAG          ;开始分针的设定 
                CALL DISPLAY_DIGE
                LD LCD_BUFFER+3,R15      
                LD R14,MINITE_FLAG1
                CALL DISPLAY_DIGE
                LD LCD_BUFFER+4,R15   ;相应位开(分针) 
                CP KEY_FLAG,#01111111B
                JP NE,JIANBI2
                CALL SHAOMIAO  
;---------时钟(分针)键盘扫描--------              
JIANBI2:        CP KEY_FLAG,#OK
                JP EQ,TANGJINFENG

                CP KEY_FLAG,#UP
                JP EQ,MINITE_UP_T
                CP KEY_FLAG,#DOWN
                JP EQ,MINITE_DOWN_T
                CALL JUDY
                LD LCD_BUFFER+3,#00H 
                LD LCD_BUFFER+4,#00H       ;相应位关(分针) ,闪烁
                CALL SHAOMIAO
                JP CLOCK_MINITE

TANGJINFENG:    LD KEY_FLAG,#01111111B
                CP LEED_FLAG,#00H
                JP EQ,CLOCK_BTEGAN
                CALL MASSGE_KEEP   ;数据保存
                                
                CP R11,#55H
                JP NE,UPFAN
                LD R12,LEED_FLAG
                AND R12,#01H
                CP R12,#01H
                JP NE,UPFAN
                INC LEED_FLAG
                LD R11,#00H                
UPFAN:          CALL SHANGFANCHENGXU        ;调用上翻程序                 
                CALL PRO_STAR

MINITE_UP_T:    CALL MINITE_UP
                JP TMD1   

MINITE_DOWN_T:  CALL MINITE_DOWN
                JP TMD1 

;--------------------分针操作----------------------------------------      
MINITE_UP:      CP MINITE_FLAG,#00H           ;分针上翻 
                JP UGT,UGT_DO
                LD R0,MINITE_FLAG1
                JP ZHIXING
UGT_DO:         LD R0,MINITE_FLAG1
                LD R1,MINITE_FLAG
GO_ON:          ADD R0,#0AH
                DEC R1
                CP R1,#00H
                JP UGT,GO_ON
ZHIXING:        CP R0,#09H
                JP EQ,DOUB_ADD
                CP R0,#13H
                JP EQ,DOUB_ADD
                CP R0,#1DH
                JP EQ,DOUB_ADD
                CP R0,#27H
                JP EQ,DOUB_ADD
                CP R0,#31H
                JP EQ,DOUB_ADD
                CP R0,#3BH      ;59
                JP EQ,DOUB_ADD_Z
                INC MINITE_FLAG1 
                RET
DOUB_ADD:       INC MINITE_FLAG
                LD MINITE_FLAG1,#00H
                RET
DOUB_ADD_Z:     LD MINITE_FLAG1,#00H
                LD MINITE_FLAG,#00H
                RET
                
MINITE_DOWN:    CP MINITE_FLAG,#00H         ;分针下翻 
                JP UGT,UGT_DOJ
                LD R0,MINITE_FLAG1
                JP ZHIXINGJ
UGT_DOJ:        LD R0,MINITE_FLAG1
                LD R1,MINITE_FLAG
GO_ONJ:         ADD R0,#0AH
                DEC R1
                CP R1,#00H
                JP UGT,GO_ONJ
ZHIXINGJ:       CP R0,#00H
                JP EQ,DOUB_SUB_Z
                CP R0,#0AH
                JP EQ,DOUB_SUB
                CP R0,#14H
                JP EQ,DOUB_SUB 
                CP R0,#1EH
                JP EQ,DOUB_SUB 
                CP R0,#28H
                JP EQ,DOUB_SUB 
                CP R0,#32H
                JP EQ,DOUB_SUB 
                DEC MINITE_FLAG1
                RET
DOUB_SUB_Z:     LD MINITE_FLAG1,#09H
                LD MINITE_FLAG,#05H  
                RET
DOUB_SUB:       DEC MINITE_FLAG
                LD MINITE_FLAG1,#09H                  
                RET
;----------------------------------------------------------
ROZHUCEN:       CP TIME_FLAG,#00H
                JP UGT,UGT_DEAL
                LD R0,TIME_FLAG1
                RET
UGT_DEAL:       LD R0,TIME_FLAG1
                LD R1,TIME_FLAG
ADD10:          ADD R0,#0AH
                DEC R1
                CP R1,#00H
                JP UGT,ADD10
                RET

;-------------------------------------小时位上下翻----------------------------------
;------为"1"时是12小时制  ;上键操作 ------------------              
TIME_UP:        CALL ROZHUCEN
                TCM TIP,#00001000B
                JP Z,HRHR12
                LD AMPM_FLAG,#11111110B
                
                CP R0,#17H
                JP UGE,LINGDIAN
                CP R0,#09H               
                JP EQ,XIUGAI  
                CP R0,#13H
                JP EQ,XIUGAI
                INC TIME_FLAG1
                RET
XIUGAI:         INC TIME_FLAG
                LD TIME_FLAG1,#00H
                RET
LINGDIAN:       CP LEED_FLAG,#0DH      ; -----------------------ALL操作 
                JP EQ,CLERZ555
                CP LEED_FLAG,#0FH
                JP NE,CLERZ
CLERZ555:       CP R0,#18H
                JP EQ,CLERZ
                INC TIME_FLAG1
                RET
CLERZ:          LD TIME_FLAG,#00H
                LD TIME_FLAG1,#00H
                RET
;--12小时制,上键操作-------          
HRHR12:         CP R0,#0BH
                JP UGE,LINGDIAN12
                CP R0,#09H
                JP UGE,XIUGAI12
                INC TIME_FLAG1
                RET
XIUGAI12:       CP R0,#09H                
                JP UGT,XIUGAI121
                INC TIME_FLAG
                LD TIME_FLAG1,#00H
                RET
XIUGAI121:      INC TIME_FLAG1
                RET
LINGDIAN12:     LD TIME_FLAG,#00H
                LD TIME_FLAG1,#00H
                CP R0,#0CH
                JP ULT,AOTO
                CP AMPM_FLAG,#01H      ; -----------------------ALL操作 
                JP NE,CLERZ147                
                OR LCD_BUFFER,#80H                
                RET
CLERZ147:       LD TIME_FLAG1,#01H
                RET
AOTO:           COM AMPM_FLAG
                CP AMPM_FLAG,#00000001B
                JP EQ,LAITED
                AND LCD_BUFFER,#01111111B
                LD TIME_FLAG,#01H
                LD TIME_FLAG1,#02H
                RET
LAITED:         OR LCD_BUFFER,#80H
                CP LEED_FLAG,#0DH      ; -----------------------ALL操作 
                JP EQ,CLERZ258
                CP LEED_FLAG,#0FH
                JP EQ,CLERZ258
                RET
CLERZ258:       LD TIME_FLAG,#01H
                LD TIME_FLAG1,#02H
                RET
;--------为"1"时是12小时制;下键操作 -----------------                
TIME_DOWN:      CALL ROZHUCEN
                TCM TIP,#00001000B         
                JP Z,TTT12
                LD AMPM_FLAG,#11111110B
                CP R0,#00H
                JP EQ,LINGTTT
                CP R0,#0AH
                JP EQ,XIUGAILE                                                                               
                CP R0,#14H
                JP EQ,XIUGAILE
                DEC TIME_FLAG1
                RET
XIUGAILE:       DEC TIME_FLAG
                LD TIME_FLAG1,#09H
                RET
LINGTTT:        CP LEED_FLAG,#0DH      ; -----------------------ALL操作 
                JP EQ,CLERZ000
                CP LEED_FLAG,#0FH
                JP NE,CLERZ369
CLERZ000:       LD TIME_FLAG,#02H
                LD TIME_FLAG1,#04H
                RET                                   
CLERZ369:       LD TIME_FLAG,#02H
                LD TIME_FLAG1,#03H                
                RET
;--12小时制,下键操作-------          
TTT12:          CP R0,#00H
                JP EQ,LINGDIAN12T
                CP R0,#01H
                JP NE,GUAPI
                CP AMPM_FLAG,#01H
                JP EQ,GUAPI
                LD TIME_FLAG,#01H
                LD TIME_FLAG1,#02H
                RET
GUAPI:          CP R0,#0AH
                JP UGE,XIUGAI12T
                DEC TIME_FLAG1
                RET
XIUGAI12T:      CP R0,#0AH
                JP UGT,XIUGAI121T
                DEC TIME_FLAG
                LD TIME_FLAG1,#09H
                RET
XIUGAI121T:     DEC TIME_FLAG1
                CP R0,#0CH
                JP EQ,LASTLAST_OK
                RET
                
LASTLAST_OK:    AND LCD_BUFFER,#7FH
                CP AMPM_FLAG,#01H
                JP EQ,NENENE
                OR LCD_BUFFER,#10000000B
NENENE:         COM AMPM_FLAG
                RET
LINGDIAN12T:    CP LEED_FLAG,#0DH      ; -----------------------ALL操作 
                JP EQ,CLERZ8888
                CP LEED_FLAG,#0FH
                JP NE,CLERZ159
CLERZ8888:      LD TIME_FLAG,#01H
                LD TIME_FLAG1,#02H
                RET
CLERZ159:       LD TIME_FLAG,#01H
                LD TIME_FLAG1,#01H               
                AND LCD_BUFFER,#01111111B
                COM AMPM_FLAG
                RET

;-------------------------------------星期上下翻---------------------------------
                            
WEEK_UP:        CP WEEK_FLAG,#06H       
                JP UGT,XINQIYI
                INC WEEK_FLAG
                RET
XINQIYI:        CP LEED_FLAG,#00H
                JP UGT,WEEK_RENAME
                LD WEEK_FLAG,#01H  
                RET
WEEK_RENAME:    CP WEEK_FLAG,#0CH
                JP UGT,WEEK_XINQIYI
                INC WEEK_FLAG
                RET
WEEK_XINQIYI:   LD WEEK_FLAG,#01H  
                RET
WEEK_DOWN:      CP WEEK_FLAG,#01H     ;下键操作       
                JP EQ,XINQIRI
                DEC WEEK_FLAG
                RET
XINQIRI:        CP LEED_FLAG,#00H
                JP UGT,WEEK_REDOWN
                LD WEEK_FLAG,#07H
                RET
WEEK_REDOWN:    LD WEEK_FLAG,#0DH
                RET

;-----------------------------------------------------------------
;------------强制开关模式-----------  
;-----------------------------------------------------------------                     
ON_OFF_SET:     CALL QINGPING
                CALL delay_100ms
                LD LCD_BUFFER+7,#00000001B
ON_OFF_JUDY:    CP SHIFTE,#00H
                JP EQ,OFF_LIGHT
                LD LCD_BUFFER+2,#11111100B      ;------开的状态 
                LD LCD_BUFFER+3,#11101100B
                LD LCD_BUFFER+4,#00000000B
                CALL SHAOMIAO
                CP KEY_FLAG,#ON_OFF
                JP EQ,ON_OFF_DELE
                CALL JUDY
                JP ON_OFF_JUDY  
ON_OFF_DELE:    LD SHIFTE,#00H 
                AND P2,#11110111B              ;    关灯
                CALL delay_100ms
                JP ON_OFF_JUDY

OFF_LIGHT:      LD LCD_BUFFER+2,#11111100B      ;-------关的状态 
                LD LCD_BUFFER+3,#10001110B
                LD LCD_BUFFER+4,#10001110B
                CALL SHAOMIAO
                CP KEY_FLAG,#ON_OFF          
                JP EQ,ON_OFF_DELE2
                CALL JUDY
                JP ON_OFF_JUDY  
ON_OFF_DELE2:   LD SHIFTE,#01H 
                OR P2,#00001000B            ;   开灯 
                CALL delay_100ms
                JP ON_OFF_JUDY

;-----------------------------------------------------------------
;------------程序设置模式-----------  
;-----------------------------------------------------------------     
PROGRAM_SET:    CALL QINGPING

⌨️ 快捷键说明

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