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

📄 main.src

📁 一个家庭自动控制器
💻 SRC
📖 第 1 页 / 共 5 页
字号:
                   ;导出(星期) 
                CP R6,#09H          
                JP UGT,DAOCHULAI
                LD TIME_FLAG1,R6
                LD TIME_FLAG,#00H
                JP DAOCHULAI_FEN
DAOCHULAI:      CLR TIME_FLAG
DAOCHUX:        SUB R6,#0AH
                INC TIME_FLAG
                CP R6,#09H
                JP UGT,DAOCHUX
                LD TIME_FLAG1,R6
                   ;导出(小时) 
DAOCHULAI_FEN:  CP R7,#09H          
                JP UGT,DAOCHULAI1
                LD MINITE_FLAG1,R7
                LD MINITE_FLAG,#00H
                JP DAOCHULAI_AM
DAOCHULAI1:     CLR MINITE_FLAG
DAOCHUY:        SUB R7,#0AH
                INC MINITE_FLAG
                CP R7,#09H
                JP UGT,DAOCHUY
                LD MINITE_FLAG1,R7
                   ;导出(分钟) 
DAOCHULAI_AM:   LD AMPM_FLAG,R8
                   ;导出(上/下午)                 
                RET 
;-----------------------------------------------------------------

;     -------------星期的显示函数--------------

;----------------------------------------------------------------- 
DISPLY_DAYS:    CP WEEK_FLAG,#07H    ;--------------------------星期的显示
                JP UGT,WEEK_1234
                RCF 
                LD R1,#01H                
                LD R2,WEEK_FLAG
                cp R2,#01H
                JP EQ,COMCOMCOM
XUNHUAN:        RL R1
                DEC R2
                CP R2,#01H
                JP UGT,XUNHUAN
                JP COMCOMCOM
WEEK_1234:      CP WEEK_FLAG,#08H
                JP UGT,WEEK_12345
                LD R1,#00001111B
                JP COMCOMCOM
WEEK_12345:     CP WEEK_FLAG,#09H
                JP UGT,WEEK_123456
                LD R1,#00011111B
                JP COMCOMCOM
WEEK_123456:    CP WEEK_FLAG,#0AH
                JP UGT,WEEK_1234567
                LD R1,#00111111B
                JP COMCOMCOM
WEEK_1234567:   CP WEEK_FLAG,#0BH
                JP UGT,WEEK_567
                LD R1,#01111111B
                JP COMCOMCOM
WEEK_567:       CP WEEK_FLAG,#0CH
                JP UGT,WEEK_67
                LD R1,#01110000B
                JP COMCOMCOM
WEEK_67:        LD R1,#01100000B
COMCOMCOM:      LD R11,TIP
                AND R11,#00001000B
                CP R11,#00001000B
                JP EQ,DONNO
                JP DONYES
DONNO:          LD R12,AMPM_FLAG
                AND R12,#01H
                CP R12,#01H
                JP EQ,FLAG_DESING
DONYES:         LD R0,#00H
                JP BEGAIN_XINGQI
FLAG_DESING:    LD R0,#80H
BEGAIN_XINGQI:  OR R0,R1
                LD LCD_BUFFER,R0         ;开星期显示                                                               
                RET
;-----------------------------------------------------------------

;     -------------程序模式设置函数--------------

;-----------------------------------------------------------------                        
PRO_STAR:       LD KEY_FLAG,#01111111B
                ld sp,#10101111b
                CALL delay_100ms
PRO_STAR555:    CALL DISP_TIME
                CALL DISPLY_DAYS     ;初始化以前设置的内容 (星期、天、日) 
                CALL DISP_TIME

                CALL FANYECHENGXU    ;当前程序显示(闪烁) 
                CP KEY_FLAG,#01111111B
                JP NE,HALIU
                CALL SHAOMIAO                            
HALIU:          CP KEY_FLAG,#OK
                JP EQ,CLOCK_STORET
                         
                CP KEY_FLAG,#UP
                JP EQ,TIME_UP_BB
                
                CP KEY_FLAG,#DOWN
                JP EQ,TIME_DOWN_BB
                
                CALL JUDY
                LD LCD_BUFFER+5,#00H
                LD LCD_BUFFER+6,#00H
                AND LCD_BUFFER+7,#11110011B   ;相应位关(程序内容) ,闪烁
                CALL SHAOMIAO
                JP PRO_STAR555
                RET
                
CLOCK_STORET:   CALL CLOCK_SET
                RET

TIME_UP_BB:     TM LEED_FLAG,#01H
                JP Z,JIBUBIAN
                INC LEED_FLAG
JIBUBIAN:       CALL SHANGFANCHENGXU
                JP PRO_STAR 

TIME_DOWN_BB:   TM LEED_FLAG,#01H
                JP Z,JIBUBIAN1                
                DEC LEED_FLAG
JIBUBIAN1:      CALL XIAFANLE
                JP PRO_STAR
                
                
;-----------------------------------------------------------------

;     -------------上翻程序函数--------------

;-----------------------------------------------------------------                  
SHANGFANCHENGXU:  
                TCM TIP,#04H
                JP Z,WITH_RANDOM
                INC LEED_FLAG
                CP LEED_FLAG,#0CH
                JP UGT,SAMPLE
                RET
SAMPLE:         LD LEED_FLAG,#01H
                RET
WITH_RANDOM:    LD R0,TIP
                AND R0,#01000000B
                CP R0,#01000000B
                JP EQ,SEG_4_2
                INC LEED_FLAG
                CP LEED_FLAG,#10H
                JP UGT,SAMPLETJF
                RET
SAMPLETJF:      LD LEED_FLAG,#01H
                RET
SEG_4_2:        INC LEED_FLAG
                CP LEED_FLAG,#08H
                JP UGT,RANDON2
                RET
RANDON2:        CP LEED_FLAG,#0DH
                JP UGT,HAIPANDUAN
                LD LEED_FLAG,#0DH
                RET
HAIPANDUAN:     CP LEED_FLAG,#10H
                JP UGT,CHULI_LAST
                RET
CHULI_LAST:     LD LEED_FLAG,#01H
                RET

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

;     -------------下翻程序函数--------------

;----------------------------------------------------------------
XIAFANLE:       TCM TIP,#04H
                JP Z,WITH_RANDOMD 
                CP LEED_FLAG,#00H
                JP EQ,SAMPLED
                DEC LEED_FLAG
                RET
SAMPLED:        LD LEED_FLAG,#0BH
                RET
WITH_RANDOMD:   TCM TIP,#01000000B
                JP Z,SEG_4_2D
                
                CP LEED_FLAG,#00H
                JP EQ,SAMPLETJFD
                DEC LEED_FLAG
                RET
SAMPLETJFD:     LD LEED_FLAG,#0FH
                RET
SEG_4_2D:       CP LEED_FLAG,#0DH
                JP ULT,RANDON2D
                DEC LEED_FLAG
                RET
RANDON2D:       CP LEED_FLAG,#08H
                JP ULT,HAIPANDUAND
                LD LEED_FLAG,#07H
                RET
HAIPANDUAND:    CP LEED_FLAG,#00H
                JP EQ,CHULI_LASTD
                DEC LEED_FLAG
                RET
CHULI_LASTD:    LD LEED_FLAG,#0FH
                RET
;-----------------------------------------------------------------

;     -------------翻程序显示内容函数--------------

;-----------------------------------------------------------------    
FANYECHENGXU:   TCM LEED_FLAG,#01H
                JP Z,DISPLY_ON
                AND LCD_BUFFER+7,#11110011B      ;---"OFF"
                OR LCD_BUFFER+7,#00000100B 
                LD R0,LEED_FLAG
DIAOMAO:        RCF
                SRA R0
                CP R0,#07H
                JP ULT,NO_ON_DSP
                LD LCD_BUFFER+5,#00001010B
                CP R0,#07H
                JP UGT,RANDOM_NO2
                LD LCD_BUFFER+6,#01100000B
                RET
RANDOM_NO2:     LD LCD_BUFFER+6,#11011010B
                RET
NO_ON_DSP:      LD LCD_BUFFER+5,#11001110B
                LD R14,R0
                CALL DISPLAY_DIGE
                LD LCD_BUFFER+6,R15
                RET
DISPLY_ON:      AND LCD_BUFFER+7,#11110011B  ;为奇数时"ON" 
                OR LCD_BUFFER+7,#00001000B 
                LD R0,LEED_FLAG
                INC R0 
                JP DIAOMAO
;-----------------------------------------------------------------

;     -------------清屏函数--------------

;-----------------------------------------------------------------    
QINGPING:       LD R1,#0B0H
CLERPING:       CLR @R1
                INC R1
                CP R1,#0B9H
                JP ULT,CLERPING
                RET
;**************************************************************************
;-----------------------------------------------------------------
;     -------------自动模式中加载程序控制函数--------------
;-----------------------------------------------------------------
COMPER_TIME_P:             ;该开的时候严格开,该关的时候严格关 
                  LD R8,#0FH 
                  CALL TJF_TB100
                  LD R8,#17H                     ;继续检查 
                  CALL TJF_TB100
                  LD R8,#1FH
                  CALL TJF_TB100
                  LD R8,#27H
                  CALL TJF_TB100
                  LD R8,#2FH
                  CALL TJF_TB100
                  LD R8,#37H
                  CALL TJF_TB100
                  
                  CALL TIMEOFF
                  RET
     ;---------------检查关灯时间-------------------;
                  
TIMEOFF:          CP WEEK,P_WEEK
                  JP NE,TJF_TT
                  CP AMPM,P_AMPM
                  JP NE,TJF_TT
                  
                  CALL JISHIBEN
                  CP R15,P_TIME
                  JP NE,TJF_TT
                  CP MINITE,P_MINITE
                  JP NE,TJF_TT                  
                  AND P2,#11110110B   ;关
                  LD SHIFTE,#00H
                  LD PRO_SHIFTE,#00H
TJF_TT:           RET
                  
     ;-------检查其中一个程序状态中的情况,判断和相应操作---------;
                  
TJF_TB100:        CALL DAY_COMPER
                  CP R7,#00H
                  JP EQ,GOMAOJIBA
                  CP R7,WEEK
                  JP UGE,GOMAOJIBA
                  ADD R8,#02H
                  JP GUANDENRIZI
                  
GOMAOJIBA:        CP R9,#00H
                  JP EQ,TJF_TB99
  
                  LD R1,R8     ;-----检查是否为"ALL".
                  INC R1
                  LD R14,@R1
                  ADD R1,#02H
                  LD R13,@R1
                  TM TIP,#00001000B
                  JP Z,BEIWEI
                  CP R13,#01H
                  JP NE,MAOJIBADA
                  CP R14,#0CH
                  JP NE,MAOJIBADA
                  LD R14,#18H
BEIWEI:           CP R14,#18H   
                  JP EQ,RELOLD_P

MAOJIBADA:        ADD R8,#03H
                  CP AMPM,@R8
                  JP ULT,TJF_TB99
                  JP UGT,CHENGHONG
                  
                  CALL JISHIBEN        ;上午12时,改为0点 
                  CP R15,R14
                  JP ULT,TJF_TB99
                  JP UGT,CHENGMING
                  
                  INC R8
                  CP MINITE,@R8
                  JP ULT,TJF_TB99                   ;时间检查 
                  JP GUANDENRIZI
                  
CHENGMING:        ADD R8,#02H
CHENGHONG:        DEC R8
GUANDENRIZI:      ADD R8,#02H
                  LD R10,R8
                  LD R11,R8
                  CALL DAY_COMPER
                  CP R7,WEEK
                  JP UGT,TJF_TBB2
                  CP R9,#00H
                  JP EQ,TJF_TB99
                  ADD R8,#03H
                  CP AMPM,@R8
                  JP ULT,TJF_TBB2
                  JP UGT,TJF_TB99

                  CALL JISHIBEN
                  CP R15,R14
                  JP ULT,TJF_TBB2
                  JP UGT,TJF_TB99

                  INC R8
                  CP MINITE,@R8
                  JP UGE,TJF_TB99      ;时间相同时,检查关灯时间与当前时间熟大? 

⌨️ 快捷键说明

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