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

📄 time_relay.src

📁 一个时间继电器程序,是用三星单片机+汇编语言写的.
💻 SRC
📖 第 1 页 / 共 3 页
字号:
        JP   NC,TIME_EXIT1
        ADD  DIS_SW,#0AH
        SUB  DIS_BW,#01H
        JP   NC,TIME_EXIT1
TIME_SET_POSITIVE
        CP   KEY_TIME_COMPARE,#01H
        JR   NE,TIME_SET_STOP
        LD   KEY_TIME_COMPARE,#02H
        LD   DIS_DP,KEY_DP_TIME_STOP
        LD   DIS_GW,KEY_GW_TIME_STOP
        LD   DIS_SW,KEY_SW_TIME_STOP
        LD   DIS_BW,KEY_BW_TIME_STOP
        LD   KEY_DP1,KEY_DP_TIME_STOP
        LD   KEY_GW1,KEY_GW_TIME_STOP
        LD   KEY_SW1,KEY_SW_TIME_STOP
        LD   KEY_BW1,KEY_BW_TIME_STOP
        ;ADD  KEY_DP,#0AH
       ; ADD  KEY_GW,#0AH
       ; ADD  KEY_SW,#0AH
       ; ADD  KEY_BW,#0AH   
        AND  P2,#11001111B       ;正转、反转继电器关掉 
        LD   KEY_LED_TEMP,#1AH    ;点亮停止灯 
        JP   T,TIME_EXIT1
TIME_SET_STOP
        CP   KEY_TIME_COMPARE,#02H
        JR   NE,TIME_SET_MINUS_STOP
        LD   KEY_TIME_COMPARE,#03H
        LD   DIS_DP,KEY_DP_TIME_MINUS
        LD   DIS_GW,KEY_GW_TIME_MINUS
        LD   DIS_SW,KEY_SW_TIME_MINUS
        LD   DIS_BW,KEY_BW_TIME_MINUS
        LD   KEY_DP1,KEY_DP_TIME_MINUS
        LD   KEY_GW1,KEY_GW_TIME_MINUS
        LD   KEY_SW1,KEY_SW_TIME_MINUS
        LD   KEY_BW1,KEY_BW_TIME_MINUS 
       ; ADD  KEY_DP,#0AH
       ; ADD  KEY_GW,#0AH
       ; ADD  KEY_SW,#0AH
       ; ADD  KEY_BW,#0AH  
        OR   P2,#00100000B         ;反转继电器吸合 
         LD   KEY_LED_TEMP,#19H    ;点亮反转灯 
        JP   T,TIME_EXIT1
TIME_SET_MINUS_STOP
        CP   KEY_TIME_COMPARE,#03H
        JR   NE,TIME_SET_MINUS
        LD   KEY_TIME_COMPARE,#04H
        LD   DIS_DP,KEY_DP_TIME_STOP
        LD   DIS_GW,KEY_GW_TIME_STOP
        LD   DIS_SW,KEY_SW_TIME_STOP
        LD   DIS_BW,KEY_BW_TIME_STOP
        LD   KEY_DP1,KEY_DP_TIME_STOP
        LD   KEY_GW1,KEY_GW_TIME_STOP
        LD   KEY_SW1,KEY_SW_TIME_STOP
        LD   KEY_BW1,KEY_BW_TIME_STOP
        ;ADD  KEY_DP,#0AH
        ;ADD  KEY_GW,#0AH
        ;ADD  KEY_SW,#0AH
        ;ADD  KEY_BW,#0AH   
        AND  P2,#11001111B       ;正转、反转继电器关掉 
        LD   KEY_LED_TEMP,#1AH    ;点亮停止灯 
        JP   T,TIME_EXIT1
TIME_SET_MINUS
        LD   KEY_TIME_COMPARE,#01H
        LD   DIS_DP,KEY_DP_TIME_POSITIVE
        LD   DIS_GW,KEY_GW_TIME_POSITIVE
        LD   DIS_SW,KEY_SW_TIME_POSITIVE
        LD   DIS_BW,KEY_BW_TIME_POSITIVE
        LD   KEY_DP1,KEY_DP_TIME_POSITIVE
        LD   KEY_GW1,KEY_GW_TIME_POSITIVE
        LD   KEY_SW1,KEY_SW_TIME_POSITIVE
        LD   KEY_BW1,KEY_BW_TIME_POSITIVE
        OR   P2,#00010000B            ;正转继电器吸合 
         LD   KEY_LED_TEMP,#18H    ;点亮停止灯 
TIME_EXIT1
        ;CP   T_1S_FLAG,#55H
        ;JP   NE,TIME_EXIT
       ; LD   T_500MS_FLAG,#0AAH
        LD   T_1S_FLAG,#0AAH
        JP   T,TIME_EXIT
TIME_SUB
        ;LD  FLASH_FLAG,#55H    ;点亮时钟点 
       ; LD   T_500MS_FLAG,#0AAH
        JP   T,TIME_EXIT 
;*******************************显示数据赋值*******************************
TIME_EXIT        
        CP   KEY_ENTER,#01H
        JP   UGE,KEY_DISPLAY
        LD   KEY_LED,KEY_LED_TEMP
        LD   R0,DIS_DP                                       
        LD   R1,DIS_GW               
        LD   R2,DIS_SW
        LD   R3,DIS_BW
        LD   R4,KEY_DP1
        LD   R5,KEY_GW1
        LD   R6,KEY_SW1
        LD   R7,KEY_BW1 
        ADD  R0,#0AH
        ADD  R1,#0AH
        ADD  R2,#0AH
        ADD  R3,#0AH
        ADD  R4,#0AH
        ;ADD  R5,#0AH
        ;ADD  R6,#0AH
        ;ADD  R7,#0AH
        CP   T_500MS_FLAG1,#55H
        JP   NE,TIME_DISPLAY 
        LD   DIS_BUF_DP,DIS_DP                                       
        LD   DIS_BUF_GW,DIS_GW               
        LD   DIS_BUF_SW,DIS_SW
        LD   DIS_BUF_BW,DIS_BW 
        LD   KEY_DIS_DP,KEY_DP1                                       
        LD   KEY_DIS_GW,KEY_GW1               
        LD   KEY_DIS_SW,KEY_SW1
        LD   KEY_DIS_BW,KEY_BW1
        CP   T_1S_FLAG1,#55H
        JP   NE,KEY_SCAN
        LD   T_500MS_FLAG1,#0AAH
        LD    T_1S_FLAG1,#0AAH
        JP  T,KEY_SCAN
TIME_DISPLAY        
        LD  DIS_BUF_DP,R0
        LD  DIS_BUF_GW,R1
        LD  DIS_BUF_SW,R2
        LD  DIS_BUF_BW,R3
        LD   KEY_DIS_DP,R4                                       
        LD   KEY_DIS_GW,R5              
        LD   KEY_DIS_SW,R6
        LD   KEY_DIS_BW,R7
        JP  T,KEY_SCAN
KEY_DISPLAY
       ; LD   R0,DIS_DP_TEMP                                     
       ; LD   R1,DIS_GW_TEMP              
       ; LD   R2,DIS_SW_TEMP
       ; LD   R3,DIS_BW_TEMP 
        LD   R0,KEY_DP
        LD   R1,KEY_GW
        LD   R2,KEY_SW
        LD   R3,KEY_BW
        CP   T_500MS_FLAG1,#55H
        JP   NE,KEY_DISPLAY_EXIT
        CP   KEY_MOV_FLAG,#00H
        JP   NE,KEY_DISPLAY_GW
        LD   R0,#1BH 
        JP   T,KEY_DISPLAY_OFF 
KEY_DISPLAY_GW
        CP   KEY_MOV_FLAG,#01H
        JP   NE,KEY_DISPLAY_SW
        LD   R1,#1BH 
        JP   T,KEY_DISPLAY_OFF 
KEY_DISPLAY_SW
        CP   KEY_MOV_FLAG,#02H
        JP   NE,KEY_DISPLAY_BW
        LD   R2,#1BH 
        JP   T,KEY_DISPLAY_OFF 
KEY_DISPLAY_BW
        LD   R3,#1BH 
KEY_DISPLAY_OFF        
        CP   T_1S_FLAG1,#55H
        JP   NE,KEY_DISPLAY_EXIT
        LD   T_500MS_FLAG1,#0AAH
        LD    T_1S_FLAG1,#0AAH                                           
KEY_DISPLAY_EXIT
        LD   DIS_BUF_DP,DIS_DP_TEMP                                    
        LD   DIS_BUF_GW,DIS_GW_TEMP               
        LD   DIS_BUF_SW,DIS_SW_TEMP 
        LD   DIS_BUF_BW,DIS_BW_TEMP 
        LD   KEY_DIS_DP,R0                                       
        LD   KEY_DIS_GW,R1              
        LD   KEY_DIS_SW,R2
        LD   KEY_DIS_BW,R3 
;*******************************按键扫描*******************************
KEY_SCAN
        LD   P2CONL,#10010101B
        TM   P1,#00000100B
        JR   NZ,KEY2
        LD   KEY_DATA,#01H
        LD   T_3S_TEMP,#15
        JP   T,KEY_TEST1
KEY2
        TM   P2,#00000100B
        ;TM   P2,#00000010B
        JR   NZ,KEY3
        LD   KEY_DATA,#02H
        JP   T,KEY_TEST1
KEY3
        TM   P2,#00000010B
        ;TM   P2,#00000100B
        JR   NZ,KEY4
        LD   KEY_DATA,#03H
        JP   T,KEY_TEST1
KEY4
        TM   P2,#00000001B
        JP   NZ,KEY_EXIT
        LD   KEY_DATA,#04H
        ;JP   T,KEY_TEST1
KEY_TEST1
        CP  KEY_DATA,KEY_OLD
        JP  EQ,KEY_TEST2
        LD  KEY_OLD,KEY_DATA
        LD  T_12MS_TEMP,#06H
        LD  T_2MS_FLAG,#0AAH
KEY_TEST0
        CP  T_2MS_FLAG,#55H
        JR  NE,KEY_TEST0
        DEC T_12MS_TEMP
        JP  Z,TIME
        LD  T_2MS_FLAG,#0AAH
        JP  T,KEY_TEST0
KEY_TEST2
        LD  KEY_OLD,#0AAH
        CP  KEY_DATA,#01H
        JP  EQ,KEY_SET
        CP  KEY_DATA,#02H
        JP  EQ,KEY_ADD
        CP  KEY_DATA,#03H
        JP  EQ,KEY_DEC
        CP  KEY_DATA,#04H
        JP  EQ,KEY_MOV
        JP  T,KEY_EXIT
;****************3s  FLAG****************
KEY_SET
       ; CP   KEY_ENTER,#01H
       ; JP   UGE,KEY_SET_IN
        ;TM   P1,#00000100B
        ;JR   Z,KEY_SET_3S
       ; LD   T_3S_FLAG,#0AAH
       ; JP   T,KEY_SCAN
        NOP
KEY_SET_3S
        TM   P1,#00000100B
        JR   NZ,KEY_SET_IN 
        CP   T_100MS_FLAG,#55H
        JR   NE,KEY_SET_3S
        LD   T_100MS_FLAG,#0AAH
        DEC  T_3S_TEMP
        JR   NZ,KEY_SET
        CP   KEY_ENTER,#01H
        JP   EQ,KEY_SET_POSITIVE_EXIT    ;正转时间退出 
        CP   KEY_ENTER,#02H
        JP   EQ,KEY_SET_MINUS_EXIT     ;反转时间退出 
        CP   KEY_ENTER,#03H
        JP   UGE,KEY_SET_STOP_EXIT      ;停止时间退出  
        ;LD   T_3S_FLAG,#55H    
KEY_SET_IN   
        INC  KEY_ENTER        ;退出要清KEY_ENTER 
        CP   KEY_ENTER,#04H
        JP   ULT,KEY_SET_IN1
        LD   KEY_ENTER,#01H
KEY_SET_IN1
        CP   KEY_ENTER,#01H
        JP   EQ,KEY_SET_POSITIVE     ;正转时间 
        CP   KEY_ENTER,#02H
        JP   EQ,KEY_SET_MINUS     ;反转时间 
        CP   KEY_ENTER,#03H
        JP   EQ,KEY_SET_STOP     ;停止时间 
       ; CP  KEY_ENTER,#55H
        ;JR  EQ,KEY_SET1
KEY_SET_POSITIVE
        CP KEY_TIME,#55H
        JP EQ,KEY_SET_POSITIVE1
        LD KEY_TIME,#55H
       ; LD DIS_DP_TEMP,DIS_DP          
        ;LD DIS_GW_TEMP,DIS_GW            
        ;LD DIS_SW_TEMP,DIS_SW            
       ; LD DIS_BW_TEMP,DIS_BW
        LD KEY_DP_TEMP,KEY_DP           
        LD KEY_GW_TEMP,KEY_GW            
        LD KEY_SW_TEMP,KEY_SW            
        LD KEY_BW_TEMP,KEY_BW
KEY_SET_POSITIVE1
        LD  DIS_DP_TEMP,#01H
        LD  DIS_GW_TEMP,#16H
        LD  DIS_SW_TEMP,#15H
        LD  DIS_BW_TEMP,#14H
        LD   KEY_LED,#18H 
        LD  KEY_DP,KEY_DP_TIME_POSITIVE         ;正转时间进入设定状态 
        LD  KEY_GW,KEY_GW_TIME_POSITIVE
        LD  KEY_SW,KEY_SW_TIME_POSITIVE
        LD  KEY_BW,KEY_BW_TIME_POSITIVE
        JP  T,KEY_SET_EXIT
KEY_SET_MINUS
        LD  DIS_DP_TEMP,#02H
        LD  DIS_GW_TEMP,#16H              
        LD  DIS_SW_TEMP,#15H
        LD  DIS_BW_TEMP,#14H
        LD   KEY_LED,#19H 
        LD  KEY_DP_TIME_POSITIVE,KEY_DP
        LD  KEY_GW_TIME_POSITIVE,KEY_GW
        LD  KEY_SW_TIME_POSITIVE,KEY_SW
        LD  KEY_BW_TIME_POSITIVE,KEY_BW
        LD  KEY_DP,KEY_DP_TIME_MINUS
        LD  KEY_GW,KEY_GW_TIME_MINUS            ;反转时间进入设置状态 
        LD  KEY_SW,KEY_SW_TIME_MINUS
        LD  KEY_BW,KEY_BW_TIME_MINUS
        JP  T,KEY_SET_EXIT
KEY_SET_STOP
        LD  DIS_DP_TEMP,#03H
        LD  DIS_GW_TEMP,#16H
        LD  DIS_SW_TEMP,#15H
        LD  DIS_BW_TEMP,#14H
        LD   KEY_LED,#1AH 
        LD  KEY_DP_TIME_MINUS,KEY_DP
        LD  KEY_GW_TIME_MINUS,KEY_GW
        LD  KEY_SW_TIME_MINUS,KEY_SW
        LD  KEY_BW_TIME_MINUS,KEY_BW
        LD  KEY_DP,KEY_DP_TIME_STOP
        LD  KEY_GW,KEY_GW_TIME_STOP          ;停下时间进入设置状态 
        LD  KEY_SW,KEY_SW_TIME_STOP
        LD  KEY_BW,KEY_BW_TIME_STOP
        ;JP  Z,KEY_SET_EXIT
KEY_SET_EXIT
        TM  P2,#000000001B
        JP  Z,KEY_SET_EXIT
        JP  T,TIME
KEY_SET_POSITIVE_EXIT
        LD  KEY_DP_TIME_POSITIVE,KEY_DP
        LD  KEY_GW_TIME_POSITIVE,KEY_GW             ;确定正转时间退出
        LD  KEY_SW_TIME_POSITIVE,KEY_SW
        LD  KEY_BW_TIME_POSITIVE,KEY_BW
        LD KEY_DP,KEY_DP_TEMP           
        LD KEY_GW,KEY_GW_TEMP           
        LD KEY_SW,KEY_SW_TEMP            
        LD KEY_BW,KEY_BW_TEMP
        LD   DIS_BUF_DP,DIS_DP                                       
        LD   DIS_BUF_GW,DIS_GW               
        LD   DIS_BUF_SW,DIS_SW
        LD   DIS_BUF_BW,DIS_BW 
        LD   KEY_DIS_DP,KEY_DP1                                       
        LD   KEY_DIS_GW,KEY_GW1               
        LD   KEY_DIS_SW,KEY_SW1
        LD   KEY_DIS_BW,KEY_BW1
        LD   KEY_LED,KEY_LED_TEMP
        LD KEY_TIME,#0AAH
        CLR  KEY_ENTER
        JP  T,KEY_SET_TIME_EXIT
KEY_SET_MINUS_EXIT
        LD  KEY_DP_TIME_MINUS,KEY_DP
        LD  KEY_GW_TIME_MINUS,KEY_GW             ;确定反转时间退出
        LD  KEY_SW_TIME_MINUS,KEY_SW
        LD  KEY_BW_TIME_MINUS,KEY_BW
        LD KEY_DP,KEY_DP_TEMP           
        LD KEY_GW,KEY_GW_TEMP           
        LD KEY_SW,KEY_SW_TEMP            
        LD KEY_BW,KEY_BW_TEMP
        LD KEY_TIME,#0AAH
        CLR  KEY_ENTER
         LD   DIS_BUF_DP,DIS_DP                                       
        LD   DIS_BUF_GW,DIS_GW               
        LD   DIS_BUF_SW,DIS_SW
        LD   DIS_BUF_BW,DIS_BW 
        LD   KEY_DIS_DP,KEY_DP1                                       
        LD   KEY_DIS_GW,KEY_GW1               
        LD   KEY_DIS_SW,KEY_SW1
        LD   KEY_DIS_BW,KEY_BW1
        LD   KEY_LED,KEY_LED_TEMP
        JP  T,KEY_SET_TIME_EXIT
KEY_SET_STOP_EXIT
        LD  KEY_DP_TIME_STOP,KEY_DP
        LD  KEY_GW_TIME_STOP,KEY_GW             ;确定停止时间退出
        LD  KEY_SW_TIME_STOP,KEY_SW
        LD  KEY_BW_TIME_STOP,KEY_BW
        LD KEY_DP,KEY_DP_TEMP           
        LD KEY_GW,KEY_GW_TEMP           
        LD KEY_SW,KEY_SW_TEMP            
        LD KEY_BW,KEY_BW_TEMP
        LD KEY_TIME,#0AAH
        CLR  KEY_ENTER
         LD   DIS_BUF_DP,DIS_DP                                       
        LD   DIS_BUF_GW,DIS_GW               
        LD   DIS_BUF_SW,DIS_SW
        LD   DIS_BUF_BW,DIS_BW 
        LD   KEY_DIS_DP,KEY_DP1                                       
        LD   KEY_DIS_GW,KEY_GW1               
        LD   KEY_DIS_SW,KEY_SW1
        LD   KEY_DIS_BW,KEY_BW1
        LD   KEY_LED,KEY_LED_TEMP
KEY_SET_TIME_EXIT
        TM   P1,#00000100B
        JP  Z,KEY_SET_TIME_EXIT
        JP  T,I2COPEN
KEY_ADD
        CP  KEY_ENTER,#01
        JP  ULT,KEY_ADD_DEC       
        CP  KEY_MOV_FLAG,#01H      ;代表个位标志 
        JP  ULT,KEY_ADD0
        JP  EQ,KEY_GW_ADD
        CP  KEY_MOV_FLAG,#02H    ;代表十位标志 
        JP  EQ,KEY_SW_ADD
        CP  KEY_MOV_FLAG,#03H
        JP  EQ,KEY_BW_ADD         ;代表百位标志 
        JP  T,KEY_ADD_EXIT 
KEY_ADD0
        INC KEY_DP
        CP  KEY_DP,#0AH
        JR  EQ,KEY_ADD1
        JP  KEY_ADD_EXIT
KEY_ADD1
        CLR KEY_DP
KEY_GW_ADD        
        INC KEY_GW
        CP  KEY_GW,#06H
        JR  EQ,KEY_ADD2
        JP  KEY_ADD_EXIT
KEY_ADD2        
        CLR KEY_GW
KEY_SW_ADD        
        INC KEY_SW
        CP  KEY_SW,#0AH
        JR  EQ,KEY_ADD3
        JP  KEY_ADD_EXIT
KEY_ADD3
        CLR KEY_SW
KEY_BW_ADD
        INC KEY_BW
        CP  KEY_BW,#0AH
        JR  ULT,KEY_ADD_EXIT
        LD  KEY_BW,#09
        LD  KEY_SW,#09
        LD  KEY_GW,#06
        CLR  KEY_DP
        JR  T,KEY_ADD_EXIT
KEY_ADD_EXIT
        LD  T_300MS_TEMP,#10
        LD  T_3S_TEMP,#10
        CP  T_3S_FLAG,#55H
        JR  NE,KEY_ADD_EXIT_1
;****************300ms FLAG****************
KEY_ADD_EXIT_0
        TM   P2,#00000100B
        JR  Z,KEY_ADD_EXIT_300MS
        LD  T_3S_FLAG,#0AAH
        JP  T,TIME 
KEY_ADD_EXIT_300MS
        CP  T_10MS_FLAG,#55H
        JR  NE,KEY_ADD_EXIT_300MS
        LD  T_10MS_FLAG,#0AAH
        DEC T_300MS_TEMP
        JR  NZ,KEY_ADD_EXIT_0

⌨️ 快捷键说明

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