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

📄 main.src

📁 一个家庭自动控制器
💻 SRC
📖 第 1 页 / 共 5 页
字号:
                LD LCD_BUFFER+7,#01101000B
                LD LCD_BUFFER+5,#11001110B
                LD LCD_BUFFER+6,#01100000B
                CALL PRO_STAR 
                RET

;-----------------------------------------------------------------
;------------自动模式-----------  
;-----------------------------------------------------------------     
ATUO_SET:       CALL QINGPING
                LD X_SHIFT,#00H
                LD LCD_BUFFER+7,#01011000B
                LD KEY_FLAG,#01111111B
                CALL delay_100ms
CICALL_TEST:    LD LCD_BUFFER+5,#11001110B
                LD LEED_FLAG,#00H                
                CALL DISP_TIME                
                CALL DISPLY_DAYS     ;初始化当前设置的内容 (星期、天、日) 
                CP KEY_FLAG,#01111111B
                JP NE,GOJIBA
                CALL SHAOMIAO
GOJIBA:         CP KEY_FLAG,#ON_OFF
                JP NE,NO_KEY
                COM X_SHIFT
                CALL delay_100ms
NO_KEY:         CALL JUDY
                CP X_SHIFT,#0FFH
                JP EQ,CECT
                CALL COMPER_TIME_P   ;--------定时检测                 
                LD LCD_BUFFER+7,#00011000B
                JP TEIJIBA
CECT:           LD LCD_BUFFER+7,#00010100B
TEIJIBA:        CALL SHAOMIAO
                JP CICALL_TEST 
                RET
;-----------------------------------------------------------------

;     --------倒计数功能与显示部分--------
;----------------------------------------------------------------- 
COUNT_SET:      LD AUTO_RAND,#00H              ;----倒计数功能的标记 
                CP COUNT_TIME,#00H
                JP EQ,FENJIANCA
                
                CP COUNT_TIME,#17H
                JP NE,ZHUMAPI
                LD COUNT_TIME,#18H
                LD COUNT_MIMITE,#00H
                JP COUNT_FEN_SET
                
ZHUMAPI:        CP COUNT_TIME,#18H
                JP UGE,RETURN10MIN
                INC COUNT_TIME
                JP COUNT_FEN_SET
RETURN10MIN:    LD COUNT_TIME,#00H
                LD COUNT_MIMITE,#0AH
                JP COUNT_FEN_SET
FENJIANCA:      CP COUNT_MIMITE,#0AH
                JP ULT,RETURN10MIN                ;第一次按倒计时键   CALL delay_100ms
                CP COUNT_MIMITE,#14H
                JP ULT,MIN20
                CP COUNT_MIMITE,#1EH
                JP ULT,MIN30
                JP MIN60
MIN20:          LD COUNT_TIME,#00H
                LD COUNT_MIMITE,#14H
                JP COUNT_FEN_SET
MIN30:          LD COUNT_TIME,#00H
                LD COUNT_MIMITE,#1EH
                JP COUNT_FEN_SET
MIN60:          LD COUNT_TIME,#01H
                LD COUNT_MIMITE,#00H                
      ;---------分循环起点                          
COUNT_FEN_SET:  CALL delay_100ms
                LD LCD_BUFFER+7,#01001000B
COUNT_FEN_SET99:
                LD KEY_FLAG,#01111111B 
                LD P3,#01111111B
                CALL delay_100ms
                LD WEEK_FLAG,WEEK
                   ;(星期)                
                LD R6,COUNT_TIME
                LD R7,COUNT_MIMITE
                CP R6,#09H
                JP UGT,COUNT_YES
                LD TIME_FLAG1,R6
                LD TIME_FLAG,#00H
                JP COUNT_FEN
COUNT_YES:      CLR TIME_FLAG
COUNT_X:        SUB R6,#0AH
                INC TIME_FLAG
                CP R6,#09H
                JP UGT,COUNT_X
                LD TIME_FLAG1,R6
                   ;(小时) 
COUNT_FEN:      CP R7,#09H          
                JP UGT,COUNT_MIAO
                LD MINITE_FLAG1,R7
                LD MINITE_FLAG,#00H
                JP QINGCHU_AM
COUNT_MIAO:     CLR MINITE_FLAG
COUNT_Y:        SUB R7,#0AH
                INC MINITE_FLAG
                CP R7,#09H
                JP UGT,COUNT_Y
                LD MINITE_FLAG1,R7
                   ;(分钟) 

QINGCHU_AM:     LD AMPM_FLAG,#11111110B   ;(星期、天、日) 中关上下午 
                                          ;-----------------倒计时的显示 
                CALL uvwxyz
                CP ROLL_LIGHT,#04H
                JP ULT,MAOZHEDONG
                AND LCD_BUFFER+7,#10111111B
MAOZHEDONG:     CALL DISPLY_DAYS     ;(星期、天、日)                  
                LD KEY_FLAG,P3
                CP KEY_FLAG,#UP
                JP EQ,COUNT_UPUP                
                CP KEY_FLAG,#DOWN
                JP EQ,COUNT_DOWNDOWN
                CALL JUDY
                
XIAJIANREN:     CALL COMPER_TIME_Z      ;-------------------------------------定时检侧
                JP COUNT_FEN_SET99
                RET 
                               
COUNT_UPUP:     CP COUNT_MIMITE,#3BH
                JP NE,GUNKAI
                CP COUNT_TIME,#17H
                JP ULT,GUNKAIDIAN
                LD COUNT_TIME,#00H
                JP GUNKAI
GUNKAIDIAN:     INC COUNT_TIME
GUNKAI:         CALL MINITE_UP
                CALL SAVE_COUNTF
                CALL delay_100ms
                JP XIAJIANREN

COUNT_DOWNDOWN: CP COUNT_MIMITE,#00H
                JP NE,GUNKAI7
                CP COUNT_TIME,#00H
                JP UGT,GUNKAIDIAN7
                JP GUNKAI7
GUNKAIDIAN7:    DEC COUNT_TIME
GUNKAI7:        CALL MINITE_DOWN
                CALL SAVE_COUNTF
                CALL delay_100ms
                JP XIAJIANREN

    ;------------------------分钟存储--------------------------- 
SAVE_COUNTF:    CP MINITE_FLAG,#00H
                JP UGT,DAYUSHI_M
                LD COUNT_MIMITE,MINITE_FLAG1
                RET
DAYUSHI_M:      LD R0,MINITE_FLAG1
                LD R1,MINITE_FLAG
HAIDAYUDE:      ADD R0,#0AH
                DEC R1
                CP R1,#00H
                JP UGT,HAIDAYUDE
                LD COUNT_MIMITE,R0
                RET
;-----------------------------------------------------------------

;     --------随机模式功能与显示部分--------
;----------------------------------------------------------------- 
RAND_SET:       CALL QINGPING
                LD MODLE,#03H
                TCM TIP,#00000100B
                JP Z,YOU_RANDOM99
                LD LCD_BUFFER+2,#10011110B
                LD LCD_BUFFER+3,#00001010B
                LD LCD_BUFFER+4,#00001010B
                CALL SHAOMIAO
                CALL JUDY
                JP RAND_SET
YOU_RANDOM99:   LD KEY_FLAG,#01111111B
YOU_RANDOM:     LD LCD_BUFFER+7,#01001000B
                LD LCD_BUFFER+5,#00001010B
                LD LEED_FLAG,#00H                
                CALL DISP_TIME                
                CALL DISPLY_DAYS     ;初始化当前(星期、天、日) 
                CP KEY_FLAG,#01111111B
                JP NE,SECSED
                CALL SHAOMIAO 
SECSED:         CALL JUDY
                AND LCD_BUFFER+7,#10111111B   ;相应位关(程序内容) ,闪烁
                CALL COMPER_TIME_R              ;-------------------------------------定时检测 
                CALL SHAOMIAO
                JP YOU_RANDOM 
                RET                              
;-----------------------------------------------------------------

;     --------延时子函数---------

;-----------------------------------------------------------------

delay_500ms:    LD R6,#3Eh           ;延时500ms
d500s:          CALL delay_2ms
                DEC R6
		CP R6,#00H
                JP UGT,d500s
                ret

delay_100ms:    LD R4,#1Eh           ;延时100ms
d1s:            CALL delay_2ms
                DEC R4
		CP R4,#00H
                JP UGT,d1s
                ret
                
delay_2ms:      LD R2,#0d7H     ;延时1.996ms 
d40:            LD R13,#02H
d40ZI:          NOP
                NOP
                DEC R13
                CP R13,#00H
                JP UGT,d40ZI
                DEC R2
		CP R2,#00H
                JP UGT,d40
                ret	

;-----------------------------------------------------------------

;     --------数字显示函数---------

;-----------------------------------------------------------------    	
DISPLAY_DIGE:  CP R14,#00H
               JP EQ,LING
               CP R14,#01H
               JP EQ,YI
               CP R14,#02H
               JP EQ,ER
               CP R14,#03H
               JP EQ,SAN
               CP R14,#04H
               JP EQ,SI
               CP R14,#05H
               JP EQ,WU
               CP R14,#06H
               JP EQ,LIU
               CP R14,#07H
               JP EQ,QI
               CP R14,#08H
               JP EQ,BA
               CP R14,#09H
               JP EQ,JIU  
LING:          LD R15,#0FCH
               RET
YI:            LD R15,#60H
               RET
ER:            LD R15,#0DAH
               RET
SAN:           LD R15,#0F2H
               RET
SI:            LD R15,#66H
               RET
WU:            LD R15,#0B6H
               RET
LIU:           LD R15,#0BEH
               RET
QI:            LD R15,#0E0H
               RET
BA:            LD R15,#0FEH
               RET
JIU:           LD R15,#0F6H
               RET  
               
;-----------------------------------------------------------------

;     --------功能键返回时数据保存函数---------

;-----------------------------------------------------------------                                                              
MASSGE_KEEP:    LD R5,WEEK_FLAG       ;---------------保存数据  
                   ;存储(星期) 
                CP TIME_FLAG,#00H          
                JP UGT,CUNCHU
                LD R6,TIME_FLAG1
                JP CUNCHU_FEN
CUNCHU:         LD R0,TIME_FLAG1
                LD R1,TIME_FLAG
ABCDEFGH:       ADD R0,#0AH
                DEC R1
                CP R1,#00H
                JP UGT,ABCDEFGH
                LD R6,R0
                   ;存储(小时) 
CUNCHU_FEN:     CP MINITE_FLAG,#00H         
                JP UGT,CUNCHU_M
                LD R7,MINITE_FLAG1
                JP XIXIHAHA
CUNCHU_M:       LD R0,MINITE_FLAG1
                LD R1,MINITE_FLAG
HGFEDCBA:       ADD R0,#0AH
                DEC R1
                CP R1,#00H
                JP UGT,HGFEDCBA
                LD R7,R0
                   ;存储(分钟) 
XIXIHAHA:       LD R8,AMPM_FLAG
                   ;存储(上/下午) 
                CP LEED_FLAG,#00H
                JP UGT,PRO_STATE        
                LD WEEK,R5              ;保存时间设置 
                LD TIME,R6
                LD MINITE,R7
                LD AMPM,R8
                RET
PRO_STATE:      LD R9,#0BH
                LD R10,LEED_FLAG
PRO_12345:      ADD R9,#04H
                DEC R10
                CP R10,#00H
                JP UGT,PRO_12345
                LD @R9,R5              ;保存程序设置 (地址:0F~4F,即:5~79)
                INC R9
                LD @R9,R6
                INC R9
                LD @R9,R7
                INC R9
                LD @R9,R8
                RET  
                
;-----------------------------------------------------------------

;     --------显示寻址及相关操作函数---------

;-----------------------------------------------------------------                         
MASSGE_DISP:    CP LEED_FLAG,#00H
                JP UGT,PRO_STATES        
                LD R5,WEEK              ;导出时间设置 
                LD R6,TIME
                LD R7,MINITE
                LD R8,AMPM
                JP DAOCHUSHUJU
PRO_STATES:     LD R9,#0BH
                LD R10,LEED_FLAG
XIAOBI:         ADD R9,#04H
                DEC R10
                CP R10,#00H
                JP UGT,XIAOBI
                LD R5,@R9              ;导出程序设置 (地址:0F~4F,即:15~79)
                INC R9
                LD R6,@R9
                INC R9
                LD R7,@R9
                INC R9
                LD R8,@R9                
DAOCHUSHUJU:    LD WEEK_FLAG,R5       ;---------------数据导出  

⌨️ 快捷键说明

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