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

📄 keyboard.dt

📁 台湾义统MCU例程
💻 DT
字号:
INCLUDE"ET44M210_REG.H"
INCLUDE"GENERAL_REG.H"

ORG	0x0000
		JMP		INITIAL

ORG 0x0100

INITIAL:
		
		MOV		A,#0x00
		MOV		IOCA,A
		MOV		PORTA,A					//OUPUT:PORTA
		MOV     A,#0xF0
		MOV     IOCB,A
		MOV     A,#0xff
		MOV     IOCC,A
		MOV     A,#0x0F
		MOV     PUCC,A
		

//*****************************************************
//键盘输入扫描程序
KEY_IN:       
         CALL KS
         JBS  K_FLAG,7,KEY_P1
         CALL DELAY
         JMP  KEY_IN
KEY_P1:  CALL DELAY
         CALL KS
         JBS  K_FLAG,7,KEY_P2
         JMP  KEY_IN
KEY_P2:  MOV  A,#4
		 MOV  NUM,A
         BC   STATUS,C
         MOV  A,#0xFE
         MOV  LINE,A
         MOV  A,#0X00
         MOV  COL,A
KEY_P3:  MOV  A,LINE
         MOV  PORTB,A
         NOP
COL_0:   MOV  A,PORTC
         MOV  K_VAL,A
         JBS  K_VAL,0,COL_1
         MOV  A,#1
         JMP  COL_PROC         
COL_1:   JBS  K_VAL,1,COL_2
         MOV  A,#5
         JMP  COL_PROC
COL_2:   JBS  K_VAL,2,COL_3
         MOV  A,#9
         JMP  COL_PROC
COL_3:   JBS  K_VAL,3,NEXT
         MOV  A,#13
         JMP  COL_PROC
NEXT:    DJZ  NUM,END_KEY
         INC  COL
         RLC  LINE,#1                                              
         JMP  KEY_P3
END_KEY: JMP  KEY_IN  



;按键处理         
COL_PROC:ADD  A,COL
         MOV  K_TEMP,A
COL_PR1: CALL KS
         JBC  K_FLAG,7,KEY_VAL
         JMP  COL_PR1

;判键盘释放否?
KEY_VAL: MOV  A,K_TEMP
         CALL TABLE
;显示按键值
         MOV  PORTA,A
         JMP  KEY_IN                       
              
//*****************************************
//判有键按下否?
KS:      BC   K_FLAG,7
         MOV  A,#0x00
         MOV  PORTB,A
         NOP
         MOV  A,PORTC
         MOV  TEMP,A
         JBC  TEMP,3,KS_PRE
         JBC  TEMP,2,KS_PRE
         JBC  TEMP,1,KS_PRE
         JBC  TEMP,0,KS_PRE
         JMP  KS_END
KS_PRE:  BS   K_FLAG,7         
KS_END:  RET  
       
//***************************************        
DELAY:   MOV  A,#1
         MOV  DLY3,A              ;1
         MOV  A,#20               ;1*(DLY3)
         MOV  DLY2,A              ;1*(DLY3)
         MOV  A,#20               ;1*(DLY3)*(DLY2)
         MOV  DLY1,A              ;1*(DLY3)*(DLY2)
D0:      DJZ  DLY1,D1             ;1*(DLY3)*(DLY2)*(DLY1)
         JMP  D0                  ;1*(DLY3)*(DLY2)*(DLY1)
D1:      DJZ  DLY2,D2             ;1*(DLY3)*(DLY2)
         JMP  D0                  ;1*(DLY3)*(DLY2)
D2:      DJZ  DLY3,D3             ;1*(DLY3)
         JMP  D0                  ;1*(DLY3)
D3:      RET       
//***************************************
TABLE:
        TBL
		RETL	#0x01
		RETL	#0x02
		RETL	#0x03
		RETL	#0x04
		RETL	#0x05
		RETL	#0x06
		RETL	#0x07
		RETL	#0x08
		RETL	#0x09
		RETL	#0x0a
		RETL	#0x0b
		RETL	#0x0c
		RETL	#0x0d
		RETL	#0x0e
        RETL    #0x0f
        RETL    #0x10		

⌨️ 快捷键说明

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