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

📄 20comkey.asm

📁 串口键盘的程序
💻 ASM
字号:
cl0       bit      p1.3
cl1       bit      p1.4
cl2       bit      p3.2
cl3       bit      p3.3
cl4       bit      p3.4
cl5       bit      p3.5

ch4       bit      p1.7
ch5       bit      p1.6
ch6       bit      p1.5
ch7       bit      p3.7         
 
         org    00h
start:   mov    sp,#50h
         mov    scon,#30h
         mov    tmod,#40h
         mov    th1,#0fdh
         mov    tl1,#0fdh
         setb   tr1
   ;-----------------------------------------------------------------
scan:     clr      p1.2
          setb     cl0
          setb     cl1
          setb     cl2
          setb     cl3
          setb     cl4
          setb     cl5
          setb     ch4
          setb     ch5
          setb     ch6
          setb     ch7
          mov      r1,#00h
         ;--------------------------------
          clr      cl0         
          jnb      ch4,cll11   
          inc      r1 
          ajmp     ch51 
cll11:    acall    dely1      
          jb       ch4,ch51
          acall    keyin       
ru1:      jnb      ch4,$
          acall    dely1       
          jnb      ch4,ru1
          inc      r1  
         ;--------------------------------    
ch51:     jnb      ch5,cll12  
          inc      r1
          ajmp     ch61
cll12:    acall    dely1
          jb       ch5,ch61
          acall    keyin      
ru2:      jnb      ch5,$
          acall    dely1      
	  jnb      ch5,ru2
          inc      r1
         ;--------------------------------
ch61:     jnb      ch6,cll13  
          inc      r1
          ajmp     ch71
cll13:    acall    dely1
          jb       ch6,ch71
          acall    keyin      
ru3:      jnb      ch6,$
          acall    dely1       
	  jnb      ch6,ru3
          inc      r1
          ;-------------------------------      
ch71:     jnb      ch7,cll14   
          inc      r1
          ajmp     cl20  
cll14:    acall    dely1
          jb       ch7,cl20
          acall    keyin       
ru4:      jnb      ch7,$
          acall    dely1       
          jnb      ch7,ru4
          inc      r1
          ;-------------------------------       
cl20:     setb     cl0         
          clr      cl1          
          jnb      ch4,cll21   
          inc      r1  
          ajmp     ch52      
cll21:    acall    dely1
          jb       ch4,ch52
          acall    keyin       
ru5:      jnb      ch4,$
          acall    dely1       ;
          jnb      ch4,ru5
          inc      r1       
          ;-------------------------------     
ch52:     jnb      ch5,cll22   
          inc      r1
          ajmp     ch62
cll22:    acall    dely1
          jb       ch5,ch62
	  acall    keyin      
ru6:      jnb      ch5,$
          acall    dely1      
          jnb      ch5,ru6
          inc      r1
          ;-------------------------------     
ch62:     jnb      ch6,cll23  
          inc      r1
          ajmp     ch72
cll23:    acall    dely1
          jb       ch6,ch72
          acall    keyin      
ru7:      jnb      ch6,$
          acall    dely1      
          jnb      ch6,ru7
          inc      r1
          ;-------------------------------      
ch72:     jnb      ch7,cll24  
          inc      r1
          ajmp     cl30
cll24:    acall    dely1
          jb       ch7,cl30
          acall    keyin      
ru8:      jnb      ch7,$
          acall    dely1      
          jnb      ch7,ru8
          inc      r1
          ;-------------------------------
cl30:     setb     cl1         
          clr      cl2        
          jnb      ch4,cll31   
          inc      r1    
          ajmp     ch53      
cll31:    acall    dely1
          jb       ch4,ch53
          acall    keyin      
ru9:      jnb      ch4,$
          acall    dely1      
          jnb      ch4,ru9
          inc      r1      
          ;------------------------------       
ch53:     jnb      ch5,cll32   
          inc      r1
          ajmp     ch63
cll32:    acall    dely1
          jb       ch5,ch63
          acall    keyin      
ru10:     jnb      ch5,$
          acall    dely1       
          jnb      ch5,ru10
          inc      r1
          ;-------------------------------     
ch63:     jnb      ch6,cll33  
          inc      r1
          ajmp     ch73
cll33:    acall    dely1
          jb       ch6,ch73
          acall    keyin     
ru11:     jnb      ch6,$
          acall    dely1       
          jnb      ch6,ru11
          inc      r1
          ;-------------------------------       
ch73:     jnb      ch7,cll34 
          inc      r1
          ajmp     cl40         
cll34:    acall    dely1
          jb       ch7,cl40
          acall    keyin      
ru12:     jnb      ch7,$
          acall    dely1      
          jnb      ch7,ru12
          inc      r1
          ;-------------------------------
cl40:     setb     cl2
          clr      cl3         
          jnb      ch4,cll41  
          inc      r1    
          ajmp     ch54        
cll41:    acall    dely1
          jb       ch4,ch54
          acall    keyin      
ru13:     jnb      ch4,$
          acall    dely1      
          jnb      ch4,ru13
          inc      r1        
          ;-------------------------------
ch54:     jnb      ch5,cll42  
          inc      r1
          ajmp     ch64
cll42:    acall    dely1
          jb       ch5,ch64
          acall    keyin     
ru14:     jnb      ch5,$
          acall    dely1      
          jnb      ch5,ru14
          inc      r1
          ;-------------------------------      
ch64:     jnb      ch6,cll43  
          inc      r1
          ajmp     ch74
cll43:    acall    dely1
          jb       ch6,ch74
          acall    keyin      
ru15:     jnb      ch6,$
          acall    dely1     
          jnb      ch6,ru15
          inc      r1
          ;-------------------------------     
ch74:     jnb      ch7,cll44  
          inc      r1
          ajmp     cl50       
cll44:    acall    dely1
          jb       ch7,cl50
          acall    keyin      
ru16:     jnb      ch7,$
          acall    dely1       
          jnb      ch7,ru16
          inc      r1
          ;-------------------------------
cl50:     setb     cl3
          clr      cl4         
          jnb      ch4,cll51  
          inc      r1
          ajmp     ch55
cll51:    acall    dely1
          jb       ch4,ch55
          acall    keyin       
ru17:     jnb      ch4,$
          acall    dely1       
          jnb      ch4,ru17
          inc      r1        
          ;-------------------------------  
ch55:     jnb      ch5,cll52   
          inc      r1
          ajmp     ch65
cll52:    acall    dely1
          jb       ch5,ch65
          acall    keyin      
ru18:     jnb      ch5,$
          acall    dely1       
          jnb      ch5,ru18
          inc      r1
          ;-------------------------------      
ch65:     jnb      ch6,cll53  
          inc      r1
          ajmp     ch75
cll53:    acall    dely1
          jb       ch6,ch75
          acall    keyin      
ru19:     jnb      ch6,$
          acall    dely1       
          jnb      ch6,ru19
          inc      r1
          ;-------------------------------        
ch75:     jnb      ch7,cll54 
          inc      r1
          ajmp     cl60          
cll54:    acall    dely1
          jb       ch7,cl60
          acall    keyin       
ru20:     jnb      ch7,$
          acall    dely1      
          jnb      ch7,ru20
          inc      r1
          ;-------------------------------
cl60:     setb     cl4
          clr      cl5        
          jnb      ch4,cll61  
          inc      r1    
          ajmp     ch56 
cll61:    acall    dely1
          jb       ch4,ch56
          acall    keyin      
ru21:     jnb      ch4,$ 
          acall    dely1      
          jnb      ch4,ru21
          inc      r1       
          ;-------------------------------      
ch56:     jnb      ch5,cll62  
          inc      r1
          ajmp     ch66
cll62:    acall    dely1
          jb       ch5,ch66
          acall    keyin      
ru22:     jnb      ch5,$
          acall    dely1      
          jnb      ch5,ru22
          inc      r1
          ;-------------------------------      
ch66:     jnb      ch6,cll63   
          inc      r1
          ajmp     ch76
cll63:    acall    dely1
          jb       ch6,ch76
          acall    keyin     
ru23:     jnb      ch6,$
          acall    dely1      
          jnb      ch6,ru23
          inc      r1
          ;-------------------------------       
ch76:     jnb      ch7,cll64  
          ajmp     scan        
cll64:    acall    dely1
          jb       ch7,ch86
          acall    keyin     
ru24:     jnb      ch7,$
          acall    dely1       
          jnb      ch7,ru24
ch86:     ajmp     scan
          ;-------------------------------

keyin:   mov    r7,#30;
d2:      mov    r6,#248
         djnz   r6,$
         djnz   r7,d2
         mov    a,r1
         mov    dptr,#table
         movc   a,@a+dptr
         inc    r1
         ret

dely1:   mov    r2,#30
bdfd:    mov    r3,#248
         djnz   r3,$
         djnz   r2,bdfd
         ret   

table:   db  61h,62h,63h,64h;
         db  37h,38h,39h,65h;
         db  34h,35h,36h,66h;
         db  31h,32h,33h,67h;
         db  6ah,30h,69h,68h;
         db  6bh,6ch,6dh,6eh;

         end



⌨️ 快捷键说明

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