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

📄 dva keyboard

📁 51单片机C语言应用程序设计实例精讲.rar
💻
📖 第 1 页 / 共 2 页
字号:
;;        movwf   L_wordL
;;        call    hextodec16
;;        call    BCD2DISPLAY
;;        movlw   sel_num1           ;addr 0L
;;        movwf   r1
;;        movlw   display_buf
;;        movwf   r0
;;        call    ram_to_ram
;;        goto    entr_end
;;pa_6:
;;        goto    entr_end
;;pa_5:
;;        goto    entr_end        
pa_3:
        bsf     psnum_flag
        bsf     pswordc_flag
        movf    ddot_number,W
        bsf     STATUS,RP0
        movwf   bak_ram1
        bcf     STATUS,RP0
        movlw   .1
        movwf   coursor
        
;;        movlw   .0
        clrf    ddot_number
        bsf     STATUS,RP0
        movlw   0ah
        movwf   sel_num1
        clrf    sel_num2
        clrf    sel_num3
        clrf    sel_num4
        clrf    sel_num5
        bcf     STATUS,RP0
        ;
        movlw   sel_num1           ;addr 0L
        movwf   r1
        movlw   display_buf
        movwf   r0
        call    ram_to_ram
        clrf    display_buf     ;num_1 not show
        ;
        
        movlw   .2
        movwf   coursor
        
        goto    entr_end
;;pa_10:
;;        goto    entr_end
***************************************************************
;*    PREV KEY Program                                         *
;***************************************************************
PREV_EVEN:
        bsf     STATUS,RP0
        clrf    ktxxh
        bcf     STATUS,RP0
        btfsc   model_flag
        goto    prev_model_type
        btfsc   rng_flag
        goto    prev_rng_type
        btfsc   psword_flag
        goto    prev_pswd_type
        btfsc   pswordc_flag
        goto    prev_pswdc_type
        btfsc   keynum_flag
        goto    prev_knum_type
        
        btfsc   calib_flag
        goto    prev_calib_type
        ;
;;      movf    level,W
;;      xorlw   .1
;;      btfsc   STATUS,Z
;;      goto    exit_keyboard_mode
        ;
        btfsc   set_mode
        goto    exit_keyboard_mode

;;        bcf     model_flag
prev_end:
        bcf     PREV_F
        return
prev_model_type
        bcf     model_flag
        bsf     chg_ratio
        goto    show_prev_mode

prev_rng_type:
;;      btfsc   keynum_flag
;;        goto    prev_knum_type
;;        btfsc   prescale_flag
;;        goto    prev_prescale_type
        bcf     rng_flag
        bcf     keynum_flag
        bsf     chg_ratio
        bcf     have_ratio
        movf    rng_number,W
        bcf     have_ratio    
        movf    rng_number,W
        xorlw   .0
        btfsc   STATUS,Z
        bsf     have_ratio           ;model     
        xorlw   .6
        btfsc   STATUS,Z
        bsf     have_ratio          ;model   
        goto    show_prev_mode
;;prev_prescale_type:
;;      bcf     prescale_flag
;;      goto    show_rng_exit        
prev_knum_type
        movlw   0ffh
        movwf   coursor
        ;
        bsf     STATUS,RP0
        movf    sel_num1,W
        bcf     STATUS,RP0
        movwf   r2      ;                       movwf   r2
        bsf     STATUS,RP0
        swapf   sel_num2,W
        iorwf   sel_num3,W
        bcf     STATUS,RP0
        movwf   r1
        bsf     STATUS,RP0
        swapf   sel_num4,W
        iorwf   sel_num5,W
        bcf     STATUS,RP0
        movwf   r0
        bsf     PCLATH,3
        call    dectohex16
        bcf     PCLATH,3
        movf    L_wordH,W
        movwf   pt_ratio_h
        movf    L_wordL,W
        movwf   pt_ratio_l
        ;
        bsf     chg_ratio
        bsf     STATUS,RP0
        movf    bak_ram1,W
        bcf     STATUS,RP0
        movwf   ddot_number
        bcf     keynum_flag
        goto    exit_keyboard_mode
               
;;        goto  show_rng_exit
show_rng_exit:
        movf    rng_number,W
        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3

        call    MUL08_08
        bcf     PCLATH,3

        movf    AARGB1,W
        
        movwf   ptrtmp
        
        clrf    msg_type
        bsf     msg_type3
        call    sram_to_ram     
        goto    prev_end                    

prev_pswd_type:
        
        movlw   0ffh
        movwf   coursor
        bsf     STATUS,RP0
        movf    bak_ram1,W
        bcf     STATUS,RP0
        movwf   ddot_number
        bcf     psword_flag
        bcf     psnum_flag
        goto    exit_keyboard_mode       
prev_pswdc_type:
        
        movlw   0ffh
        movwf   coursor
        bsf     STATUS,RP0
        movf    bak_ram1,W
        bcf     STATUS,RP0
        movwf   ddot_number
        bcf     pswordc_flag
        bcf     psnum_flag
        goto    show_prev_mode               
        
prev_calib_type:
        btfsc   calkeynum_flag
        goto    prev_fr_type
        bcf     calib_flag
        goto    show_prev_mode   
prev_fr_type:
        
        decfsz  coursor
        goto    prev_end
        goto    pft_1           ;return up
        ;
        bsf     STATUS,RP0
        movf    sel_num1,W
        bcf     STATUS,RP0
        movwf   r2
        bsf     STATUS,RP0
        swapf   sel_num2,W
        iorwf   sel_num3,W
        bcf     STATUS,RP0
        movwf   r1
        bsf     STATUS,RP0
        swapf   sel_num4,W
        iorwf   sel_num5,W
        bcf     STATUS,RP0
        movwf   r0
        bsf     PCLATH,3
        call    dectohex16
        bcf     PCLATH,3
        movf    L_wordH,W
        movwf   full_sh
        movf    L_wordL,W  
        movwf   full_sl
pft_1:        ;
        bsf     chg_ratio
        bsf     STATUS,RP0
        movf    bak_ram1,W
        bcf     STATUS,RP0
        movwf   ddot_number
        ;
        bcf     calkeynum_flag
        movf    calib_type,W
        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3
        call    MUL08_08
        bcf     PCLATH,3
        movf    AARGB1,W
        
        movwf   ptrtmp
        
        clrf    msg_type
        bsf     msg_type4
        call    sram_to_ram     
        bcf     keynum_flag
        goto    prev_end                             
show_prev_mode:
        movf    parameter,W
        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3
        call    MUL08_08
        bcf     PCLATH,3
        movf    AARGB1,W
        
        movwf   ptrtmp
        
        ;
        clrf    msg_type
        bsf     msg_type1
        call    sram_to_ram     
        goto    prev_end
exit_keyboard_mode:
        movlw   0ffh
        movwf   coursor 
        bsf     STATUS,RP0    
        movf    bak_ram2,W
        bcf     STATUS,RP0
        movwf   ddot_number
        clrf    level
        bcf     key_lock
        bcf     set_mode
        bcf     sps_mode
        goto    prev_end        
;***************************************************************
;*    SELECT KEY Program                                       *
;***************************************************************
SELS_EVEN:
        bsf     STATUS,RP0
        clrf    ktxxh
        bcf     STATUS,RP0
        btfsc   sps_mode
        goto    sels_end                        
        btfsc   psnum_flag
        goto    sel_psnumber      
        btfsc   keynum_flag
        goto    sel_keynumber          
        btfsc   model_flag
        goto    set_model_type
        btfsc   rng_flag
        goto    set_rng_type
        btfsc   calib_flag
        goto    sel_calib_type
                ;
set_parameter_type:
        incf    parameter
        movlw   .3                      ;4_select
        subwf   parameter,W
        btfsc   STATUS,C
        clrf    parameter
        movf    parameter,W
        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3
        call    MUL08_08
        bcf     PCLATH,3
        movf    AARGB1,W
        
        movwf   ptrtmp
        
        clrf    msg_type
        bsf     msg_type1
        call    sram_to_ram     
        goto    sels_end
set_model_type:
        btfss   key_lock                
        goto    sels_end

        incf    model_type
        movlw   .4
        subwf   model_type,W
        btfsc   STATUS,C
        clrf    model_type
                
        movf    model_type,W

        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3
        call    MUL08_08
        bcf     PCLATH,3
        movf    AARGB1,W
        
        movwf   ptrtmp
        
        clrf    msg_type
        bsf     msg_type2
        call    sram_to_ram     
        goto    sels_end
set_rng_type:
        btfss   key_lock                
        goto    sels_end
;;      btfsc   keynum_flag
;;      goto    sel_keynumber
;;      btfsc   prescale_flag
;;      goto    sel_prescale_num     

        incf    rng_number
        movlw   .6
        subwf   rng_number,W
        btfsc   STATUS,C
        clrf    rng_number
                
        movf    rng_number,W

        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3
        call    MUL08_08
        bcf     PCLATH,3
        movf    AARGB1,W
        
        movwf   ptrtmp
        clrf    msg_type
        bsf     msg_type3
        call    sram_to_ram     
        goto    sels_end
;;sel_prescale_num:        
;;      incf    prescale_num
;;        movlw   .3
;;        subwf   prescale_num,W
;;        btfsc   STATUS,C
;;        clrf    prescale_num
                
;;        movf    prescale_num,W

;;        movwf   AARGB0
;;        movlw   .5
;;        movwf   BARGB0
;;        bsf     PCLATH,3
;;        call    MUL08_08
;;        bcf     PCLATH,3
;;        movf    AARGB1,W
        
;;        movwf   ptrtmp
;;        clrf    msg_type
;;        bsf     msg_type8
;;        call    sram_to_ram     
;;        goto    sels_end        
sel_keynumber:
        bsf     STATUS,RP0
        movlw   sel_num1
        bcf     STATUS,RP0
        movwf   r0
        
        movf    coursor,W
        movwf   acc
        decf    acc,W      
        btfsc   _Z
        goto    sel_km02
        addwf   r0,W
;        decf    r0,W                    ;select address
        
        movwf   FSR
        incf    INDF
        movf    INDF,W
        sublw   .9
        btfss   STATUS,C
        clrf    INDF
        goto    sel_km01
sel_km02:        
        addwf   r0,W
        movwf   FSR
        incf    INDF
        movf    INDF,W
        sublw   .1
        btfss   STATUS,C
        clrf    INDF

sel_km01:        
        bcf     STATUS,RP0    
        movlw   sel_num1           ;addr 0L
        movwf   r1
        movlw   display_buf
        movwf   r0
        call    ram_to_ram
        bcf     STATUS,RP0        
        movf    display_buf,W
        xorlw   .06
        btfsc   STATUS,Z
        goto    sel_km03
        movlw   40h
        movwf   display_buf     
sel_km03:                    
        goto    sels_end
sel_psnumber:
        bsf     STATUS,RP0
        movlw   sel_num1
        bcf     STATUS,RP0
        movwf   r0
        
        movf    coursor,W
        
        addwf   r0
        decf    r0,W                    ;select address
        movwf   FSR
        incf    INDF
        movf    INDF,W
        sublw   .9
        btfss   STATUS,C
        clrf    INDF
        movlw   sel_num1           ;addr 0L
        movwf   r1
        movlw   display_buf
        movwf   r0
        call    ram_to_ram
        bcf     STATUS,RP0        
        goto    sels_end        
sel_calib_type:
        btfsc   calkeynum_flag
        goto    sel_calkeynum
        incf    calib_type
        movlw   .2
        subwf   calib_type,W
        btfsc   STATUS,C
        clrf    calib_type
        movf    calib_type,W
        movwf   AARGB0
        movlw   .5
        movwf   BARGB0
        bsf     PCLATH,3
        call    MUL08_08
        bcf     PCLATH,3
        movf    AARGB1,W
        
        movwf   ptrtmp
        
        clrf    msg_type
        bsf     msg_type4
        call    sram_to_ram    
        goto    sels_end       
sel_calkeynum:
        bsf     STATUS,RP0
        movlw   sel_num1
        bcf     STATUS,RP0
        movwf   r0
        
        movf    coursor,W 
        movwf   acc
        decf    acc,W      
        btfsc   _Z
        goto    sel_cm02
        addwf   r0,W
        
        movwf   FSR
        incf    INDF
        movf    INDF,W
        sublw   .9
        btfss   STATUS,C
        clrf    INDF
        goto    sel_cm01
sel_cm02:        
        addwf   r0,W
        movwf   FSR
        incf    INDF
        movf    INDF,W
        sublw   .1
        btfss   STATUS,C
        clrf    INDF
        
sel_cm01:         ;
        bcf     STATUS,RP0    
        movlw   sel_num1           ;addr 0L
        movwf   r1
        movlw   display_buf
        movwf   r0
        call    ram_to_ram
        bcf     STATUS,RP0        
        movf    display_buf,W
        xorlw   .06
        btfsc   STATUS,Z
        goto    sel_cm03
        movlw   40h
        movwf   display_buf                
        goto    sels_end        
sel_cm03: 
sels_end:
        bcf     SELS_F
     
        return
        ;
delay:
        movwf   r7                   ;store in temp
        movlw   .20
Next1:  movwf   r6
Next:   decfsz  r6,F
        goto    Next
        movlw   .20
        decfsz  r7, F
        goto    Next1
        return

⌨️ 快捷键说明

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