📄 dva keyboard.bak
字号:
#define PREV PORTB,5 ;bit b5 --> KEYBOARD 1
#define SELS PORTB,6 ;bit b6 --> KEYBOARD 2
#define ENTR PORTA,5 ;bit a5 --> KEYBOARD 3
***************************************************************
;* ENTER KEY Program *
;***************************************************************
ENTR_EVEN:
bsf STATUS,RP0 ;选择BANK1
clrf ktxxh ;将BANK1中的ktxxh内容清0
bcf STATUS,RP0
movf level,W ;判level的内容,如果level的内容为0,则将Z置1;
btfsc STATUS,Z ;判Z位
goto start_keyboard_mode ;level的内容不为0的时候,执行该条指令
btfsc sps_mode
goto start_keyps
btfsc psword_flag
goto change_pscoursor
btfsc pswordc_flag
goto change_calcoursor
btfsc keynum_flag
goto change_coursor
btfsc calib_flag
goto start_calibration
; btfsc rng_flag
; goto start_ratio
movf parameter,W
xorlw .0
btfsc STATUS,Z
goto pa_1 ;model
movf parameter,W
xorlw .1
btfsc STATUS,Z
goto pa_2 ;full_scale
movf parameter,W
xorlw .2
btfsc STATUS,Z
goto pa_3 ;cal
;; movf parameter,W
;; xorlw .3
;; btfsc STATUS,Z
;; goto pa_4 ;
;; movf parameter,W
;; xorlw .4
;; btfsc STATUS,Z
;; goto pa_5
;; movf parameter,W
;; xorlw .5
;; btfsc STATUS,Z
;; goto pa_6
;; movf parameter,W
;; xorlw .6
;; btfsc STATUS,Z
;; goto pa_7
;; movf parameter,W
;; xorlw .7
;; btfsc STATUS,Z
;; goto pa_8
;; movf parameter,W
;; xorlw .8
;; btfsc STATUS,Z
;; goto pa_9
;; movf parameter,W
;; xorlw .9
;; btfsc STATUS,Z
;; goto pa_10
goto entr_end
;
;; btfsc prescale_flag
;; goto entr_end
;; clrf ddot_number
;
;; 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
;; bsf prescale_flag
goto entr_end
;*****************************************
start_keyboard_mode:
movlw .1
movwf level ;level=1
movf ddot_number,W ;W=ddot_number
bsf STATUS,RP0
movwf bak_ram2 ;取bak_ram2的内容
bcf STATUS,RP0
clrf ddot_number
;
clrf ptrtmp
clrf msg_type ;ddot_number,ptrtmp,msg_type内容清0
bsf msg_type6
call sram_to_ram
bsf sps_mode
goto entr_end ;清ENTR_F标志位,返回
;****************************************
start_calibration:
btfsc start_cal_flag
goto entr_end
;
movf calib_type,W
xorlw .1
btfsc STATUS,Z
goto change_fulls
scs_1:
bsf start_cal_flag
;; bsf blink_all_f
clrf calib_number
;
clrf display_buf
clrf display_buf1
;; movlw 6dh ; "s"
clrf display_buf2 ; "p"
movlw 39h ; "c"
movwf display_buf3
movf calib_type,W
btfsc _Z
goto sc_o
sc_s: movlw 76h ; "h"
goto sc_e
sc_o:
movlw 38h ; "l"
sc_e:
movwf display_buf4
;
call message_display
bcf INTCON,INTE
goto entr_end
change_fulls:
btfsc calkeynum_flag
goto change_cal_coursor
bsf calkeynum_flag
bsf fr_flag
movf ddot_number,W
bsf STATUS,RP0
movwf bak_ram1
bcf STATUS,RP0
movlw .1
movwf coursor
;; movlw .0
clrf ddot_number
movf full_sh,W
movwf L_wordH
movf full_sl,W
movwf L_wordL
bsf PCLATH,3
call hextodec16
call BCD2DISPLAY
bcf PCLATH,3
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 entr_end
movlw 40h
movwf display_buf
goto entr_end
change_cal_coursor:
incf coursor
movlw .6
subwf coursor,W
btfss STATUS,C
goto cc_10
movlw 0ffh
movwf coursor
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
bcf calkeynum_flag
btfsc model_type,1
goto DC_cal_gain
goto AC_cal_gain
AC_cal_gain:
movlw 80h
movwf vgh1_1
goto scs_g
DC_cal_gain:
movlw 80h
movwf vghdc_1
scs_g:
goto scs_1
cc_10:
goto entr_end
start_keyps:
bcf sps_mode
bsf psnum_flag
bsf psword_flag
;
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
;*****************************
change_coursor:
incf coursor
movlw .6
subwf coursor,W
btfss STATUS,C
goto cc_1
movlw .1
movwf coursor
cc_1:
goto entr_end
change_pscoursor:
incf coursor
movlw .6
subwf coursor,W
btfss STATUS,C
goto pscc_1
;
bsf STATUS,RP0
swapf sel_num2,W
iorwf sel_num3,W
xorlw keypw_h
btfss STATUS,Z
goto check_ratiokey
swapf sel_num4,W
iorwf sel_num5,W
xorlw keypw_l
btfss STATUS,Z
goto check_error
bcf STATUS,RP0
movlw .1
movwf level
bsf save_set_flag
clrf ddot_number
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
bsf key_lock
bcf psnum_flag
bcf psword_flag
goto pscc_1
check_ratiokey:
bsf STATUS,RP0
swapf sel_num2,W
iorwf sel_num3,W
xorlw ratiopw_h
btfss STATUS,Z
goto check_error
swapf sel_num4,W
iorwf sel_num5,W
xorlw ratiopw_l
btfss STATUS,Z
goto check_error
; ;set ratio mode
start_ratio:
bcf STATUS,RP0
movf rng_number,W
xorlw .0
btfsc STATUS,Z
goto pa_RATIO ;model
movf rng_number,W
xorlw .6
btfsc STATUS,Z
goto pa_RATIO_6 ;model
check_error:
movlw .2
movwf coursor
pscc_1:
bcf STATUS,RP0
goto entr_end
change_calcoursor:
incf coursor
movlw .6
subwf coursor,W
btfss STATUS,C
goto pscc_1
;
bsf STATUS,RP0
swapf sel_num2,W
iorwf sel_num3,W
xorlw calpassword_h ;password_h
btfss STATUS,Z
goto checkcal_error
swapf sel_num4,W
iorwf sel_num5,W
xorlw calpassword_l ;password_l
btfss STATUS,Z
goto checkcal_error
bcf STATUS,RP0
movlw 0ffh
movwf coursor
bsf save_gain_flag
bsf calib_flag
bcf pswordc_flag
bcf psnum_flag
;
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
;; call message_display
goto pscc_1
checkcal_error:
movlw .2
movwf coursor
pscal_1:
bcf STATUS,RP0
goto entr_end
entr_end:
bcf ENTR_F
return
;*********** SET MODEL ***************
pa_1:
bsf model_flag
movf model_type,W
andlw 03h
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 entr_end
;*********** SET DOT ***************
pa_2:
bsf rng_flag
movf rng_number,W
andlw 07h
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 entr_end
;*********** SET RATIO ***************
pa_RATIO_6:
bsf dec_ratio_f
goto set_ratio_ent
pa_RATIO:
bcf dec_ratio_f
set_ratio_ent:
movlw .1
movwf level
bsf save_set_flag
bsf key_lock
bcf psnum_flag
bcf psword_flag
bsf keynum_flag
;
movf ddot_number,W
bsf STATUS,RP0
movwf bak_ram1
bcf STATUS,RP0
movlw .1
movwf coursor
btfsc dec_ratio_f
goto dec_rat_6
dec_rat_0:
movlw .4
movwf ddot_number
goto dec_rat_e
dec_rat_6:
clrf ddot_number
dec_rat_e:
movf pt_ratio_h,W
movwf L_wordH
movf pt_ratio_l,W
movwf L_wordL
bsf PCLATH,3
call hextodec16
call BCD2DISPLAY
bcf PCLATH,3
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 entr_end
movlw 40h
movwf display_buf
bsf STATUS,RP0
clrf sel_num1
bcf STATUS,RP0
goto entr_end
;*********** SET DOT ***************
;;pa_4:
;; bsf keynum_flag
;; bsf fr_flag
;; movf ddot_number,W
;; bsf STATUS,RP0
;; movwf bak_ram1
;; movlw .1
;; movwf coursor
;; bcf STATUS,RP0
;; movlw .0
;; movwf ddot_number
;; movf full_sh,W
;; movwf L_wordH
;; movf full_sl,W
;; 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_9:
;; bsf keynum_flag
;; movf pt_ratio_h,W
;; movwf L_wordH
;; movf pt_ratio_l,W
;; 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_8:
;; bsf keynum_flag
;; movf pt_ratio_h,W
;; movwf L_wordH
;; movf pt_ratio_l,W
;; 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_7:
;; bsf keynum_flag
;; movf pt_ratio_h,W
;; movwf L_wordH
;; movf pt_ratio_l,W
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -