📄 4x4keyboard.asm
字号:
INCLUDE "ET44M210_REG.H" ;INSERT DEFINE DATA
TEMP == 0X43
ORG 0X0000
JMP START
ORG 0X0100
START:
MOV A,#0XFF ;SET PORTB FOR IN
MOV IOCB,A
MOV PUCB,A ;SET PULL RESITOR FOR PORTB
MOV A,#0X00
MOV IOCA,A ;SET PORTA FOR OUT
CLR PORTA ;INIT PORTA=0
MOV IOCC,A ;SET PORTC FOR OUT
;;==============================================
MAIN:
MOV A,#0XFE ;COLUMN1=0
MOV PORTC,A
CALL DELAY
CHEK1:
JBS PORTB,0,CHEK2 ;ROW0=1
MOV A,#0 ;ROW0=0
MOV PORTA,A ;KEY_NUMBER=0
JMP MAIN
CHEK2:
JBS PORTB,1,CHEK3
MOV A,#1
MOV PORTA,A ;KEY_NEMBER=1
JMP MAIN
CHEK3:
JBS PORTB,2,CHEK4
MOV A,#2
MOV PORTA,A ;KEY_NUMBER=2
JMP MAIN
CHEK4:
JBS PORTB,3,CHEK5
MOV A,#3
MOV PORTA,A ;KEY_NUMBER=3
JMP MAIN
CHEK5:
MOV A,#0XFD ;COLUMN2=0
MOV PORTC,A
CALL DELAY
JBS PORTB,0,CHEK6
MOV A,#4
MOV PORTA,A ;KEY_NUMBER=4
JMP MAIN
CHEK6:
JBS PORTB,1,CHEK7
MOV A,#5
MOV PORTA,A
JMP MAIN
CHEK7:
JBS PORTB,2,CHEK8
MOV A,#6
MOV PORTA,A
JMP MAIN
CHEK8:
JBS PORTB,3,CHEK9
MOV A,#7
MOV PORTA,A
JMP MAIN
CHEK9:
MOV A,#0XFC ;COLUMN3=0
MOV PORTC,A
CALL DELAY
JBS PORTB,0,CHEK10
MOV A,#8
MOV PORTA,A ;KEY_NUMBER=8
JMP MAIN
CHEK10:
JBS PORTB,1,CHEK11
MOV A,#9
MOV PORTA,A
JMP MAIN
CHEK11:
JBS PORTB,2,CHEK12
MOV A,#10
MOV PORTA,A
JMP MAIN
CHEK12:
JBS PORTB,3,CHEK13
MOV A,#11
MOV PORTA,A
JMP MAIN
CHEK13:
MOV A,#0XFB ;COLUMN4=0
MOV PORTC,A
CALL DELAY
JBS PORTB,0,CHEK14
MOV A,#12
MOV PORTA,A ;KEY_NUMBER=4
JMP MAIN
CHEK14:
JBS PORTB,1,CHEK15
MOV A,#13
MOV PORTA,A
JMP MAIN
CHEK15:
JBS PORTB,2,CHEK16
MOV A,#14
MOV PORTA,A
JMP MAIN
CHEK16:
JBS PORTB,3,MAIN
MOV A,#15
MOV PORTA,A
JMP MAIN
;;========DELAY SUBROUTINE=================
DELAY:
MOV A,#100
MOV 0X40,A
DE_LOOP:
DJZ 0X40,$+3
JMP DE_LOOP
RET
;;========CODE OPTION SET============
ORG 0X3FFFH
DW 0X4000
;;========GAME OVER==================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -