📄 8279_1.asm
字号:
;第五部分:可编程键盘/显示接口(8279)实验
;实验一、键盘扫描显示法-查询式
;文件名称: 8279_1.ASM
;-----------------------------------------------
NAME T8279_1
$NOLIST
$INCLUDE(LJD_2008.INC)
$LIST
; 查询法:
;-----------------------------------------------
KEY_VALUE DATA 3EH ;键盘值存放的单元
KEY_FLAG BIT 00H ;有键的标志位
;-----------------------------------------------
ORG 0000H
JMP START
START: MOV SP,#60H ;设定堆叠区
CALL INITIAL_8279 ;8279 初始化
AGAIN: CLR KEY_FLAG ;清除旗标
KEY$: CALL KEYIN
JNB KEY_FLAG,KEY$ ;判断是否有按键
MOV A,KEY_VALUE
;CALL WRITE_LED
JMP AGAIN
;====================================================================
KEYIN: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#R_B_8279
MOVX A,@DPTR ;读取 8279 的状态
ANL A,#00000111B
JZ NEXT_K ;检查 FIFO 中是否有字元
MOV DPTR,#W_C_8279
MOV A,#40H ;下 "读取 FIFO" 的命令
MOVX @DPTR,A
MOV DPTR,#R_D_8279
MOVX A,@DPTR ;读取 FIFO 的资料(读按键码值)
MOV KEY_VALUE,A ;将新键码值存入 KEY_VALUE
SETB KEY_FLAG ;设定 KEY_FLAG
NEXT_K: POP ACC
POP DPL
POP DPH
RET
;===============================================
;82C79初始化的设计
;-----------------------------------------------
INITIAL_8279: PUSH DPL
PUSH DPH
PUSH ACC
MOV DPTR,#W_C_8279 ;8279的命令口
MOV A,#00h ;双键锁定
MOVX @DPTR,A ;左边进入显示,编码方式.
MOV A,#34H ;时钟分频
MOVX @DPTR,A
MOV A,#0D3H ;清除显示存储器
MOVX @DPTR,A
INIT1: MOVX A,@DPTR ;等待清除结束
JB ACC.7,INIT1
POP ACC
POP DPH
POP DPL
RET
;====================================================================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -