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

📄 9222asm.asm

📁 用78F9222做的电热水器程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        MOV     key_code,#run_night_code
        CALL    !Key_pressed_deal
        BR      Key_remote_deal0
No_key_press_judge:
        CMP     A,#250
        BNC     $No_key_pressed
More_key_pressed:
        SET1    more_key_pressed_f
        BR      Key_remote_deal_r
No_key_pressed:
        BF      set_by_remote_f,$No_key_pressed0 
        CLR1    set_by_remote_f
        BR      Code_deal   
No_key_pressed0: 
        CLR1    PMK0                   
        CLR1    first_pressed_f 
        CLR1    more_key_pressed_f
        MOV     key_pressed_c,#0
        MOV     key_code,#0     
        MOV     A,set_flag
        CMP     A,#10000000B
        BNZ     $No_key_pressed1
        BR      Key_remote_deal_r
No_key_pressed1:
        MOVW    AX,no_key_pressed_c
        CMPW    AX,#500 
        BNC     $Setting_confirm
        INCW    AX 
        MOVW    no_key_pressed_c,AX
        BR      Key_remote_deal_r
Setting_confirm: 
        MOVW    AX,#0
        MOVW    no_key_pressed_c,AX
        SET1    ring_3times_f            
        CALL    !Set_confirm
        BR      Key_remote_deal_r
Key_remote_deal0:
        BF      set_by_remote_f,$Key_remote_deal1
        CLR1    set_by_remote_f 
Key_remote_deal1:        
        BF      more_key_pressed_f,$Code_deal
        BR      Key_remote_deal_r
Code_deal:
        MOV     A,key_code
        CMP     A,#onoff_code
        BNZ     $Code_deal0
        BR      Onoff_deal
Code_deal0:
        CMP     A,#add_code 
        BNZ     $Code_deal1
        BR      Add_deal  
Code_deal1:
        CMP     A,#sub_code
        BNZ     $Code_deal2
        BR      Sub_deal  
Code_deal2:
        CMP     A,#set_code
        BNZ     $Code_deal3
        BR      Set_deal   
Code_deal3:
        CMP     A,#run_night_code
        BZ      $Run_in_night
        BR      Key_remote_deal_r
Onoff_deal:
        BF      first_pressed_f,$Onoff_deal0
        BR      Key_remote_deal_r           
Onoff_deal0:
        SET1    first_pressed_f  
        SET1    ring_f
        CALL    !Set_confirm
        MOVW    AX,#0  
        MOVW    no_key_pressed_c,AX
        XOR     run_mode,#1
        BR      Key_remote_deal_r 
Set_deal:
        BF      first_pressed_f,$Set_deal0
        MOV     A,key_pressed_c
        CMP     A,#100
        BNC     $Set_deal1
        INC     key_pressed_c
        BR      Key_remote_deal_r
Set_deal0:
        SET1    first_pressed_f 
        SET1    ring_f        
        MOV     flash_c,#0
        MOVW    AX,#0
        MOVW    no_key_pressed_c,AX
        CALL    !Buffer_select       
        BR      Set_deal2
Set_deal1:
        MOV     key_pressed_c,#0
Set_deal2: 
        MOV     A,set_flag
        ROL     A,1
        CMP     A,#10000000B
        BNZ     $Set_deal3
        MOV     A,#00000001B     
Set_deal3:
        MOV     set_flag,A
        CALL    !Buffer_select_two
        BR      Key_remote_deal_r
Run_in_night:
        BF      first_pressed_f,$Run_in_night0
        BR      Key_remote_deal_r
Run_in_night0:
        SET1    first_pressed_f 
        SET1    ring_f      
        CALL    !Set_confirm
        MOVW    AX,#0 
        MOVW    no_key_pressed_c,AX
        BF      run_in_night_f,$Run_in_night1
        CLR1    run_in_night_f                
        MOV     A,time_h
        CMP     A,#6
        BC      $Run_in_night00
        BR      Key_remote_deal_r
Run_in_night00:
        CLR1    on_off_f
        BR      Key_remote_deal_r     
Run_in_night1:              
        SET1    run_in_night_f
        MOV     A,time_h
        CMP     A,#6
        BC      $Run_in_night2
        BR      Key_remote_deal_r
Run_in_night2:
        SET1    on_off_f
        BR      Key_remote_deal_r
Add_deal: 
        BF      first_pressed_f,$Add_deal0 
        MOV     A,set_flag
        CMP     A,#10000000B
        BNZ     $Add_deal_continue0
        BR      Key_remote_deal_r
Add_deal_continue0:
        MOV     A,key_pressed_c
        CMP     A,#100
        BNC     $Add_speedup
        INC     key_pressed_c
        BR      Key_remote_deal_r
Add_speedup:
        MOV     A,speedup_c
        CMP     A,#20
        BNC     $Add_speedup0
        INC     speedup_c
        BR      Key_remote_deal_r
Add_speedup0:
        MOV     speedup_c,#0
        BR      Add_deal1         
Add_deal0:
        SET1    first_pressed_f 
        MOV     A,set_flag
        CMP     A,#10000000B
        BNZ     $Add_deal_continue
        BT      set_turnon_f,$Add_deal8
        BR      Key_remote_deal_r
Add_deal8:
        CLR1    set_turnon_f
        SET1    ring_f
        MOVW    AX,#0 
        MOVW    no_key_pressed_c,AX 
        BR      Key_remote_deal_r    
Add_deal_continue:
        SET1    ring_f
        MOVW    AX,#0 
        MOVW    no_key_pressed_c,AX         
Add_deal1:
        SET1    value_change_f
        BF      tem_set_f,$Add_deal2
Add_tem:
        MOV     A,set_buffer
        CMP     A,#75
        BNC     $Add_tem0
        MOV     A,set_buffer
        ADD     A,#5
        MOV     set_buffer,A
        BR      Key_remote_deal_r
Add_tem0:
        MOV     set_buffer,#35
        BR      Key_remote_deal_r
Add_deal2:
        BF      time_h_set_f,$Add_deal3
Add_time_h:
        MOV     A,set_buffer
        CMP     A,#23
        BNC     $Add_time_h0 
        INC     set_buffer
        BR      Key_remote_deal_r
Add_time_h0:
        MOV     set_buffer,#0
        BR      Key_remote_deal_r
Add_deal3:
        BF      time_m_set_f,$Add_deal4
Add_time_m:
        MOV     A,set_buffer
        CMP     A,#59
        BNC     $Add_time_m0
        INC     set_buffer
        BR      Key_remote_deal_r
Add_time_m0:
        MOV     set_buffer,#0
        BR      Key_remote_deal_r
Add_deal4:
        BF      turnon_h_set_f,$Add_deal5
        BR      Add_time_h
Add_deal5:       
        BF      turnon_m_set_f,$Add_deal6
        BR      Add_time_m
Add_deal6:
        BF      turnoff_h_set_f,$Add_deal7
        BR      Add_time_h
Add_deal7:
        BT      turnoff_m_set_f,$Add_time_m
        BR      Key_remote_deal_r         
Sub_deal: 
        BF      first_pressed_f,$Sub_deal0
        MOV     A,set_flag
        CMP     A,#10000000B
        BNZ     $Sub_deal_continue0
        BR      Key_remote_deal_r
Sub_deal_continue0:
        MOV     A,key_pressed_c
        CMP     A,#100
        BNC     $Sub_speedup
        INC     key_pressed_c
        BR      Key_remote_deal_r
Sub_speedup:
        MOV     A,speedup_c
        CMP     A,#20
        BNC     $Sub_speedup0
        INC     speedup_c
        BR      Key_remote_deal_r
Sub_speedup0:
        MOV     speedup_c,#0
        BR      Sub_deal1         
Sub_deal0:
        SET1    first_pressed_f   
        MOV     A,set_flag
        CMP     A,#10000000B
        BNZ     $Sub_deal_continue
        BT      set_turnoff_f,$Sub_deal8
        BR      Key_remote_deal_r       
Sub_deal8:
        CLR1    set_turnoff_f
        SET1    ring_f    
        MOVW    AX,#0
        MOVW    no_key_pressed_c,AX
        BR      Key_remote_deal_r
Sub_deal_continue:
        SET1    ring_f    
        MOVW    AX,#0
        MOVW    no_key_pressed_c,AX
Sub_deal1:
        SET1    value_change_f
        BF      tem_set_f,$Sub_deal2
Sub_tem:
        MOV     A,set_buffer
        CMP     A,#35
        BZ      $Sub_tem0
        MOV     A,set_buffer
        SUB     A,#5
        MOV     set_buffer,A
        BR      Key_remote_deal_r
Sub_tem0:
        MOV     set_buffer,#75
        BR      Key_remote_deal_r
Sub_deal2:
        BF      time_h_set_f,$Sub_deal3
Sub_time_h:
        MOV     A,set_buffer
        CMP     A,#0
        BZ      $Sub_time_h0
        DEC     set_buffer
        BR      Key_remote_deal_r
Sub_time_h0:
        MOV     set_buffer,#23
        BR      Key_remote_deal_r
Sub_deal3:
        BF      time_m_set_f,$Sub_deal4
Sub_time_m:
        MOV     A,set_buffer
        CMP     A,#0
        BZ      $Sub_time_m0
        DEC     set_buffer
        BR      Key_remote_deal_r
Sub_time_m0:
        MOV     set_buffer,#59
        BR      Key_remote_deal_r
Sub_deal4:
        BF      turnon_h_set_f,$Sub_deal5
        BR      Sub_time_h
Sub_deal5:       
        BF      turnon_m_set_f,$Sub_deal6
        BR      Sub_time_m
Sub_deal6:
        BF      turnoff_h_set_f,$Sub_deal7
        BR      Sub_time_h
Sub_deal7:
        BT      turnoff_m_set_f,$Sub_time_m
Key_remote_deal_r:
        RET  
;--------------------------------
Key_pressed_deal:
        CLR1    set_by_remote_f
        SET1    PMK0
        MOV     flash_c,#0    
Key_pressed_deal_r:
        RET
;--------------------------------
Buffer_select:  
        MOV     A,set_buffer
        BT      tem_set_f,$Tem_buffer_select
        BT      time_h_set_f,$Time_set_h_select 
        BT      time_m_set_f,$Time_set_m_select
        BT      turnon_h_set_f,$Set_turnon_h_select
        BT      turnon_m_set_f,$Set_turnon_m_select
        BT      turnoff_h_set_f,$Set_turnoff_h_select
        BT      turnoff_m_set_f,$Set_turnoff_m_select
        BR      Buffer_select_r
Tem_buffer_select:            
        MOV     set_temp,A  
        CLR1    value_change_f      
        BR      Buffer_select_r
Time_set_h_select:
        XCH     A,X
        BT      run_in_night_f,$Time_set_h_select0
        BR      Time_set_h_select1
Time_set_h_select0:
        MOV     A,time_h
        CMP     A,#6
        BNC     $Turnon_judge
        MOV     A,set_buffer
        CMP     A,#6
        BNC     $Turnoff_judge
        BR      Time_set_h_select1
Turnon_judge:
        MOV     A,set_buffer
        CMP     A,#6
        BC      $Turnon_judge0
        BR      Time_set_h_select1
Turnon_judge0:
        SET1    turnon_f
        BR      Time_set_h_select1
Turnoff_judge:
        SET1    turnoff_f
Time_set_h_select1:
        XCH     A,X
        MOV     time_h,A  
        CLR1    value_change_f
        BR      Buffer_select_r
Time_set_m_select:
        MOV     time_m,A       
        CLR1    value_change_f 
        BT      turnon_f,$Time_set_m_select0
        BT      turnoff_f,$Time_set_m_select1
        BR      Buffer_select_r              
Time_set_m_select0:
        CLR1    turnon_f
        SET1    on_off_f
        BR      Buffer_select_r
Time_set_m_select1:
        CLR1    turnoff_f
        CLR1    on_off_f
        BR      Buffer_select_r
Set_turnon_h_select:
        MOV     settime_on_h,A
        BR      Buffer_select_r
Set_turnon_m_select:
        MOV     settime_on_m,A 
        CALL    !Set_turnon_judge 
        BR      Buffer_select_r
Set_turnoff_h_select:
        MOV     settime_off_h,A
        BR      Buffer_select_r
Set_turnoff_m_select:
        MOV     settime_off_m,A
        CALL    !Set_turnoff_judge                   
Buffer_select_r:          
        RET           
;--------------------------------
Buffer_select_two:
        BT      tem_set_f,$Tem_buffer_select_two
        BT      time_h_set_f,$Time_set_h_select_two
        BT      time_m_set_f,$Time_set_m_select_two
        BT      turnon_h_set_f,$Set_turnon_h_select_two
        BT      turnon_m_set_f,$Set_turnon_m_select_two
        BT      turnoff_h_set_f,$Set_turnoff_h_select_two
        BT      turnoff_m_set_f,$Set_turnoff_m_select_two
        BR      Buffer_select_two_r
Tem_buffer_select_two:            
        MOV     A,set_temp    
        BR      Buffer_select_two0
Time_set_h_select_two:
        MOV     A,time_h
        BR      Buffer_select_two0
Time_set_m_select_two:
        MOV     A,time_m
        BR      Buffer_select_two0
Set_turnon_h_select_two:
        MOV     A,settime_on_h
        BR      Buffer_select_two0
Set_turnon_m_select_two:
        MOV     A,settime_on_m   
        BR      Buffer_select_two0
Set_turnoff_h_select_two:
        MOV     A,settime_off_h
        BR      Buffer_select_two0
Set_turnoff_m_select_two:
        MOV     A,settime_off_m
Buffer_select_two0:
        MOV     set_buffer,A                    
Buffer_select_two_r:          
        RET              
;--------------------------------
Set_confirm:            ;expect confirmation by setting key 
        MOV     flash_c,#0 
        MOV     A,set_buffer
        BT      tem_set_f,$Tem_set_confirm
        BT      time_h_set_f,$Time_set_h_confirm
        BT      time_m_set_f,$Time_set_m_confirm
        BT      turnon_h_set_f,$Set_turnon_h_confirm
        BT      turnon_m_set_f,$Set_turnon_m_confirm
        BT      turnoff_h_set_f,$Set_turnoff_h_confirm
        BT      turnoff_m_set_f,$Set_turnoff_m_confirm
        BR      Set_confirm_r
Tem_set_confirm:
        MOV     set_temp,A
        BR      Set_confirm0
Time_set_h_confirm:
        XCH     A,X
        BF      run_in_night_f,$Time_set_h_confirm0
        MOV     A,time_h
        CMP     A,#6
        BNC     $Turnon_judge_two
        MOV     A,set_buffer
        CMP     A,#6
        BNC     $Turnoff_judge_two
        BR      Time_set_h_confirm0
Turnon_judge_two:
        MOV     A,set_buffer
        CMP     A,#6
        BC      $Turnon_judge_two0
        BR      Time_set_h_confirm0
Turnon_judge_two0:
        SET1    on_off_f
        BR      Time_set_h_confirm0
Turnoff_judge_two:
        CLR1    on_off_f
Time_set_h_confirm0:
        XCH     A,X
        MOV     time_h,A
        BR      Set_confirm0        
Time_set_m_confirm:
        MOV     time_m,A 
        BF      run_in_night_f,$Set_confirm0
        MOV     A,time_h
        CMP     A,#6
        BNC     $Time_set_m_confirm0
        SET1    on_off_f
        BR      Set_confirm0
Time_set_m_confirm0:
        CLR1    on_off_f
        BR      Set_confirm0
Set_turnon_h_confirm:
        MOV     settime_on_h,A
        CALL    !Set_turnon_judge
        BR      Set_confirm0
Set_turnon_m_confirm:
        MOV     settime_on_m,A
        CALL    !Set_turnon_judge
        BR      Set_confirm0
Set_turnoff_h_confirm:
        MOV     settime_off_h,A
        CALL    !Set_turnoff_judge
        BR      Set_confirm0
Set_turnoff_m_confirm:
        MOV     settime_off_m,A    
        CALL    !Set_turnoff_judge                
Set_confirm0:
        MOV     set_flag,#10000000B
        CLR1    value_change_f                  
Set_confirm_r:
        RET                     
;--------------------------------
Set_turnon_judge:            
        BF      value_change_f,$Set_turnon_judge_r
        CLR1    value_change_f
;        BF      run_in_night_f,$Set_turnon_judge0
;        MOV     A,settime_on_h
;        CMP     A,#6
;        BNZ     $Set_turnon_judge0
;        MOV     A,settime_on_m
;        CMP     A,#0
;        BNZ     $Set_turnon_judge0
;        CLR1    run_in_night_f
;Set_turnon_judge0:
        BF      set_turnoff_f,$Set_turnon_judge1
        MOV     A,settime_off_h
        CMP     A,settime_on_h
        BNZ     $Set_turnon_judge1
        MOV     A,settime_off_m
        CMP     A,settime_on_m
        BNZ     $Set_turnon_judge1
        CLR1    set_turnoff_f
Set_turnon_judge1:
        SET1    set_turnon_f 
        CLR1    on_off_f
Set_turnon_judge_r:
        RET
;--------------------------------
Set_turnoff_judge:         

⌨️ 快捷键说明

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