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

📄 kb4x4_1.inc

📁 关于PIC16F877A单片机的一些源代码,比较丰富.初学者认真看看应该有收获的.
💻 INC
字号:
;---------------------------------------------------------------;
;								;
;#INCLUDE <KB4X4.INC>						;
;								;
;;	externally defined pins (in main program)		;
;								;
;PORT4X4	EQU PORTD	; 0~3=I/P, 4~7=O/P		;
;TRIS4X4	EQU TRISD	; set direction of port		;
;								;
;===============================================================;
;;								;
;;	result is stored in KYBUF (defined in main program)	;		
;;	KYBUF=0x10 if there is no key pressed			;
;;								;
;...............................................................;
;						
;	4X4 KEYBOARD SCANNER			
;						
;	C1=0/4/8/C=PORT4X4,0			
;	C2=1/5/9/D=PORT4X4,1			
;	C3=2/6/A/E=PORT4X4,2			
;	C4=3/7/B/F=PORT4X4.3			
;	R1=0/1/2/3=PORT4X4,4			
;	R2=4/5/6/7=PORT4X4,5			
;	R3=8/9/A/B=PORT4X4,6			
;	R4=C/D/E/F=PORT4X4,7			
;						
;
	CBLOCK
	  KYBUF
	ENDC
KB4X4:
	MOVLW H'FF'		; 
	MOVWF PORT4X4		; turn off all pins
;
	BANKSEL TRIS4X4		; TRIS4X4 is in bank1
	MOVLW B'00001111'	; b0~3=input, b4~7=output
	MOVWF TRIS4X4		; 
	BANKSEL PORT4X4		; PORT4X4 is in bank0
;
	MOVLW B'11101111'	; select RAW1 (0~3)
	MOVWF PORT4X4
	MOVLW H'10'		; preset KYBUF to be 0X10
	BTFSS PORT4X4,0		; key 0 ?
	MOVLW 0X0F
	BTFSS PORT4X4,1		; key 1 ?
	MOVLW 0X0E
	BTFSS PORT4X4,2		; key 2 ?
	MOVLW 0X0D
	BTFSS PORT4X4,3		; key 3 ?
	MOVLW 0X0C
	MOVWF KYBUF		; store result
	BTFSS KYBUF,4
	GOTO KB4X4_1
;
	BSF PORT4X4,4		; turn off RAW1
	BCF PORT4X4,5		; turn on RAW2(4~7)
	CALL KB4X4_DLY
;
	BTFSS PORT4X4,0		; key 4 ?
	MOVLW 0X0B
	BTFSS PORT4X4,1		; key 5 ?
	MOVLW 0X03
	BTFSS PORT4X4,2		; key 6 ?
	MOVLW 0X06
	BTFSS PORT4X4,3		; key 7 ?
	MOVLW 9
	MOVWF KYBUF		; store result
	BTFSS KYBUF,4
	GOTO KB4X4_1
;
	BSF PORT4X4,5		; turn off RAW2
	BCF PORT4X4,6		; turn on RAW3(8~B)
	CALL KB4X4_DLY
;
	BTFSS PORT4X4,0		; key 8 ?
	MOVLW 0X0A
	BTFSS PORT4X4,1		; key 9 ?
	MOVLW 2
	BTFSS PORT4X4,2		; key A ?
	MOVLW H'5'
	BTFSS PORT4X4,3		; key B ?
	MOVLW H'8'
	MOVWF KYBUF		; store result
	BTFSS KYBUF,4
	GOTO KB4X4_1
;
	BSF PORT4X4,6		; turn off RAW3
	BCF PORT4X4,7		; turn on RAW4(C~F)
	CALL KB4X4_DLY
;
	BTFSS PORT4X4,0		; key C ?
	MOVLW H'0'
	BTFSS PORT4X4,1		; key D ?
	MOVLW H'1'
	BTFSS PORT4X4,2		; key E ?
	MOVLW H'4'
	BTFSS PORT4X4,3		; key F ?
	MOVLW H'7'
	MOVWF KYBUF		; store result
;
KB4X4_1:
	BSF PORT4X4,7
	RETURN
;
KB4X4_DLY:			; used for 16MHz CPU
	NOP
	NOP
	NOP
	RETURN
;
;

⌨️ 快捷键说明

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