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

📄 id_chang.asm

📁 VCP201_CODE is a FPGA source code.
💻 ASM
字号:
;-----------------------------------------
; update_id:
; update the pad id according to D_A_mode;
; D_A_mode may be changed by 44 or switch.
; have to check mode_ch by switch first.
;-----------------------------------------
update_id:
	btfss	f_44_chmode	; change by 44?
	goto	end_update_id

;	goto	id_not_44_ch
;
;	movlw	digital_id	; 41			
;	btfsc	D_A_mode
;	movlw	analog_id	; 73
;
;	xorwf	pad_id,W
;	andlw	0x0f	
;	btfsc	STATUS,Z
;	goto	end_update_id

	movlw	digital_id	; 41		
	btfsc	D_A_mode
	movlw	analog_id	; 73
			
	movwf	pad_id

	
id_init_parameter:	
        bcf   	PCLATH,3
       	call  	init_all_vars
        bsf   	PCLATH,3  
        
	call	set_pb
        btfsc   f_mapbad
        call    def_pb	
	call	set_auto_mask
	
end_update_id:
	bcf	STATUS,RP0
	bcf	f_44_chmode	; clr 44 set flag

	
	return
	

;-------------------------------------------	
; mode_change:
; mode change by push button
; if using slide sw, don't call this routine
;-------------------------------------------
mode_change:
	bcf	STATUS,RP0
	bcf	s_motor		;Stop Small Motor
        clrf	pwmduty      	;Stop Lager Motor

        movlw   d'4'	;TIME52MS	;SET 0.5MSEC KEY RELEASE DEBOUNCE
        movwf    dur_dbc
        movwf    tmr_dbc         ;RESET DEBOUNCE TIMER
        bcf     f_keystb        ;CLEAR KEY STABLE FLAG
mode_dbc:
	nop
	call	readport
        nop
	call    p_timer         ;DEBOUCE MODE KEY FOR 0.5 SECOND
        btfss   f_keystb        ;IF MODE RELEASES WITHIN THE DEBOUNCE TIME
        goto    mode_dbc         ;THE ROUTINE WILL EXIT WITHOUT DOING
        btfsc   mode_bit         ;ANYTHING
        goto	end_mode_change

	bcf	STATUS,RP0
	btfsc	f_44_lock		; locked by 44 ?
	goto	end_mode_change		; Yes
	
	btfsc	D_A_mode
	goto	mode_ch_to_41
        bsf	D_A_mode
	movlw	analog_id		; change to 73 
	goto	mode_ch_set
	
mode_ch_to_41:
	bcf	D_A_mode
	movlw	digital_id		; change to 41	

mode_ch_set:
	movwf	pad_id
	btfsc	f_nmode			; which protocol is operating	
	bsf	mode_ch			; set mode change flag for 2.0

mode_release:
        bcf   	PCLATH,3
       	call  	init_all_vars
        bsf   	PCLATH,3  
        
	call	set_pb
        btfsc   f_mapbad
        call    def_pb	
	nop	
	call	set_auto_mask

	bcf	STATUS,RP0
	bcf	f_44_chmode	; clr 44 set flag

mode_lp2:
        movlw   0x00            ;WAIT FOR MODE KEY OFF BEFORE EXIT
        call    waitkey

        btfss   mode_bit
        goto    mode_lp2

        movlw   DBC100MS        ;SET DEBOUNCE TIME BACK TO 0.1 SECOND
        movwf    dur_dbc
        movwf    tmr_dbc         ;RESET DEBOUNCE TIMER

end_mode_change:	
	bcf	STATUS,RP0
        bsf	pwmctrl,7	;Enable PWM
	return

⌨️ 快捷键说明

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