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

📄 scankey.asm

📁 Key matrix scan code for HT48R10
💻 ASM
字号:
#include ht48r10a-1.inc
;------------------------------------------------------------------------------------------------------data
data  	.section  'data'           	
temp  	 	db  	?               
disp 		db  	?               
count1 		db  	?               
mask  		db  	?               
matrix  	db  	?               
temp1  		db 	?
temp2  		db 	?
;------------------------------------------------------------------code
code     .section   at  0 'code'     	
	org 	00h                 	
        jmp     start
start:                         		
        clr     pbc             	
        mov    	a, 0f0h   		              
                                        
        mov    	pac, a          	
        clr     pa              	
        set     pb              	
keyloop:                           	
	mov    	a,  0feh     		
	mov   	matrix,   a        	
	mov   	pa,      a        	
	mov   	a,       pa       	
	xor  	a,      0feh      	
	sz    	acc               	
	jmp   	get_key            	
	mov    	a,     0fdh   	
	mov    	matrix,  a      
	mov    	pa,     a       
	mov    	a,     pa       
	xor     a,     0fdh     
	sz      acc ;
	jmp    	get_key         
	mov  	a,      0fbh  	
	mov 	matrix,   a         	  
	mov   	pa,    a         	
	mov   	a,    pa         	
	xor    	a,   0fbh        	
	sz      acc           		
	jmp   	get_key          	
	mov  	a,   0f7h   	
        mov  	matrix,  a      
        mov     pa,  a         	
        mov    	a,    pa        
        xor     a,   0f7h       
        sz     	acc             
        jmp     get_key         
        jmp     keyloop         
get_key:                  	
	call    key_in      	
	
	mov  	pb, a      	
	jmp  	keyloop            	
key_in 	proc              		
	mov     a, pa ;
	mov  	temp, a      	
	mov  	temp1, a
	mov   	temp2, a
	call 	delays          
get_release:                    
	mov   	a,  pa  	
	      	        	
	and   	a, 0f0h		
	xor 	a, 0f0h    	
	sz     	acc    		
	jmp   	get_release     
	mov   	a, 0fh          
	andm   	a, temp        	
	mov    	a, temp
	mov 	a, 0  
	set 	c         	
get_row:                        
	rrc	temp          	
	snz	status.0        
	jmp	get_column1     
	clr	c               
	add	a, 4h         	
	jmp	get_row         
        
get_column1:                            
	mov 	temp, a
	mov 	a, 0f0h
	andm	a, temp2
	swap	temp2
	mov 	a, 0h
get_column: 
	rrc 	temp2
	snz   	status.0
	jmp   	next
	clr 	c
	add   	a,1h
	jmp  	get_column
next:	add  	a,temp
     	xor  	a,0ffh
     	ret
key_in endp
delays 	proc                           	
	mov	a, 0ffh ;
	mov	count1, a          	
d1:        	
	sdz	 count1
	jmp	 d1
	ret
delays 	endp
            
	org 300h ; light up table
	dc 0ffh, 0feh, 0fdh, 0fch
	dc 0fbh, 0fah, 0f9h, 0f8h
	dc 0f7h, 0f6h, 0f5h, 0f4h
        dc 0f3h, 0f2h, 0f1h, 0f0h
        
   	end


⌨️ 快捷键说明

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