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

📄 9-0 查询式键盘.asm

📁 用keil 3编辑的汇编语言
💻 ASM
字号:

        DBUF      DATA  030H
	BIT_COUNT DATA  040H
        TIMER     DATA  041H
        TIMER1    DATA  042H
	DATA_IN   DATA  020H
        DATA_OUT  DATA  021H
        CLK     BIT   P1.6
        DAT     BIT   P1.7


          ORG     0000H
          LJMP    MAIN      
          ORG     0100H
MAIN:  
       MOV   DBUF,#0FH
Loop:  CALL  DISPLAY    
       CALL  KEY
		 
       MOV   DBUF,A 
       AJMP  Loop

KEY:   MOV P1,#0FFH
       MOV A,P1
       CJNE A, #0FFH, K00
       AJMP KEY
K00:   ACALL SHORT_DELAY
       MOV A,P1
       CJNE A,#0FFH,K01
       AJMP KEY
K01:   MOV R3,#8
       MOV R2,#0
       MOV B,A
       MOV DPTR,#K0TAB
K02:   MOV A,R2
       MOVC A,@A+DPTR
       CJNE A,B,K04
K03:   MOV A,P1
       CJNE A,#0FFH,K03
       ACALL SHORT_DELAY
       MOV A,R2
       RET
K04:   INC R2
       DJNZ R3,K02
       MOV A,#0FFH
       LJMP LOOP

K0TAB: DB 0FEH,0FDH,0FBH,0F7H
       DB 0EFH,0DFH,0BFH,07FH

DISPLAY:  	 
	 ANL   P2,#00H             
	 MOV   DATA_OUT,#10100100B 
	 CALL  SEND
	 MOV   R0,#10000000B       
         MOV   DATA_OUT,R0         
	 CALL  SEND
	 MOV   DATA_OUT,DBUF       
	 CALL  SEND
         RET
       
SEND:     MOV  BIT_COUNT,#8        
          ANL  P2,#00H
          CALL LONG_DELAY
SEND_LOOP:MOV  C,DATA_OUT.7
          MOV  DAT,C
          SETB CLK
          MOV  A,DATA_OUT
          RL   A
          MOV  DATA_OUT,A
          CALL SHORT_DELAY
          CLR  CLK
          CALL SHORT_DELAY
          DJNZ BIT_COUNT,SEND_LOOP
          CLR  DAT
          RET


LONG_DELAY:  MOV TIMER,#250         
DELAY_LOOP:  DJNZ TIMER,DELAY_LOOP
             RET
SHORT_DELAY: MOV TIMER,#100         
SHORT_LP:    DJNZ TIMER,SHORT_LP
             RET

             END                                                                                     

⌨️ 快捷键说明

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