key.s43
来自「魏小龙《MSP430系列单片机接口技术及系统设计实例》书中全部程序代码」· S43 代码 · 共 54 行
S43
54 行
;此示例介绍行列式扫描键盘的程序编写方法,结果在R9
#include "msp430x13x.h"
RSEG CSTACK ; System stack
; DS 0
RSEG CODE ; Program code 的开始
Reset MOV #300H,SP
SetupWDT mov #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
MAIN CALL #KEYCODE
CALL #KEYJUDGE
JMP MAIN
KEYCODE MOV.B #0,&P5DIR
MOV.B #0FH,&P1DIR ;低4位作为扫描线行输出,高3位作为列线读入
MOV #0,R9
MOV #1,R8
KEYCODELOOP MOV.B R8,&P1OUT ;R8为扫描信号的输出
BIT.B #10H,&P1IN
JC KEYCODE1 ;测试P1.4
BIT.B #20H,&P1IN
JC KEYCODE2 ;测试P1.5
BIT.B #40H,&P1IN
JC KEYCODE3 ;测试P1.6
RLA.B R8
ADD.B #3,R9
CMP.B #12,R9 ;4根行线扫描完了吗
JNZ KEYCODELOOP
KEYCODE1 ADD #0,R9
RET
KEYCODE2 ADD #1,R9
RET
KEYCODE3 ADD #2,R9
RET
KEYJUDGE MOV.B #0FFH,&P1DIR
MOV.B #0,&P1OUT
MOV.B #0FH,&P1DIR
MOV.B #0FH,&P1OUT
BIT.B #070H,&P1IN ; 测试3根列线是否为1,是否有按健
RET ; 若有,C=1
COMMON INTVEC ; Interrupt vectors
ORG RESET_VECTOR
DW Reset
;---------------------------------------------------------------------------
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?