文本描述
非编码键盘接口
键盘与显示系统
第七章 显示器与键盘接口技术
LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
解:相应程序如下:
CNT_H EQU 61H ;计数待显示十位数据
CNT_L EQU 60H ;计数待显示个位数据
ORG 0000H
LJMP MAIN
ORG 0066H
MAIN: MOV SP, #70H
MOV CNT_H, #00H ;清除RAM 61H、60H单元内容
MOV CNT_L, #00H
LCALL DISPLAY ;调用显示子程序
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
LOOP:LCALLDELAY1S
INCCNT_L
MOVA, CNT_L
XRLA, #10
JNZDSP
MOVCNT_L, #00H
INCCNT_H
MOVA, CNT_H
XRLA, #10
JNZDSP
MOVCNT_H, #00H
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
DSP:LCALLDISPLAY ;调用显示子程序
LJMPLOOP
;*********************************************
DISPLAY:MOVDPTR, #TABLE ;显示子程序
MOVA, CNT_H
MOVCA, @A+DPTR
MOVP3, A
MOVDPTR, #TABLE
MOVA, CNT_L
MOVCA, @A+DPTR
MOVP1, A
RET
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
;*********************************************
DELAY1S: MOVR3, #04H;延时1秒子程序
LOOP3: MOVR2, #0FAH
LOOP2: MOVR1, #0F9H
NOP
LOOP1: NOP
NOP
DJNZR1, LOOP1
DJNZR2, LOOP2
DJNZR3, LOOP3
RET
TABLE: DB C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
解:相应程序如下:
H_C EQU P1.0 ;P1.0控制十位数码管阳极
L_C EQU P1.1 ;P1.1控制个位数码管阳极
PORT_G EQU P3 ;数码管数据端
DSP_C EQU 20H.0 ;显示控制位:1-显示个位,0-显示十位
CNT_H EQU 61H ;计数待显示十位数据
CNT_L EQU 60H ;计数待显示个位数据
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
ORG0066H
MAIN:MOVSP, #70H
MOVCNT_H, #00H;清除RAM 61H、60H单元内容
MOVCNT_L, #00H
MOVTMOD, #01H
MOVTH0, #0F0H;T0装初值,延时4ms
MOVTL0, #5FH
SETBET0
SETBEA
SETBTR0
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
LOOP:LCALLDELAY1S;调用延时1秒子程序
INCCNT_L
MOVA, CNT_L
XRLA,#10
JNZLOOP
MOVCNT_L,#00H
INCCNT_H
MOVA, CNT_H
XRLA,#10
JNZLOOP
MOVCNT_H,#00H
LJMPLOOP
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
;*********************************************
INT_T0:PUSHACC;T0中断,实现动态显示
PUSHPSW
CPLDSP_C;显示子程序
JBDSP_C, DSPL
CLRL_C
SETBH_C
MOVDPTR, #TABLE
MOVA, CNT_H
MOVCA, @A+DPTR
LJMPDPS_END
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
DSPL: CLRH_C
SETBL_C
MOVDPTR, #TABLE
MOVA, CNT_L
MOVCA, @A+DPTR
DPS_END: MOVPORT_G, A
MOVTH0, #0F0H;T0重装初值
MOVTL0, #5FH
POPPSW
POPACC
RETI
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
;*********************************************
DELAY1S:MOVR3, #04H;延时1秒子程序
LOOP3:MOVR2, #0FAH
LOOP2:MOVR1, #0F9H
NOP
LOOP1:NOP
NOP
DJNZR1, LOOP1
DJNZR2, LOOP2
DJNZR3, LOOP3
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H
END
第七章 显示器与键盘接口技术
第二节 非编码键盘接口
◆触点去抖动:分软件去抖动(软件延时10ms)
和硬件去抖动;
◆键盘可以分为独立连接式和行列(矩阵)式
两类,每一类又可根据对键盘的译码方法分为
编码键盘和非编码键盘两种类型。
第七章 显示器与键盘接口技术
第二节 非编码键盘接口
◆编码键盘是通过一个编码电路来识别闭合键的键码,
具有去抖动功能,但硬件较复杂,PC机所用的标准键盘
就属于这种;
◆非编码键盘是通过软件来识别键码,需占用CPU一定
的时间,但硬件简单,可以方便地增减键的数量,单片
机应用系统中得到广泛的应用;
◆本节仅介绍非编码键盘的原理和接口电路。
第七章 显示器与键盘接口技术
第二节 非编码键盘接口
第二节 非编码键盘接口
第七章 显示器与键盘接口技术
实例7-3:根据如图7-7所示的AT89C51单片机与独立式键盘的接口
电路,请用查询的方式写出其键盘扫描程序。
第二节 非编码键盘接口
第七章 显示器与键盘接口技术
解:相应程序如下:
ORG 0100H
KEYSCAN: MOV P1, #0FFH ;置P1口为输入态
MOV A, P1 ;读入键值
CJNE A, #0FFH NEXT
SJMP GORET
NEXT: LCALL DELAY10ms ;延时10ms,去抖动
MOV A, P1 ;再读键值
CJNE A, #0FFH, NEXT2 ;两次键值不一致,直接返回
SJMP GORET
NEXT2: JNB ACC.0, KEY0 ;0号键按下,转0号键功能程序
JNB ACC.1, KEY1 ;1号键按下,转1号键功能程序
JNB ACC.2, KEY2 ;2号键按下,转2号键功能程序
JNB ACC.3, KEY3 ;3号键按下,转3号键功能程序
JNB ACC.4, KEY4 ;4号键按下,转4号键功能程序
JNB ACC.5, KEY5 ;5号键按下,转5号键功能程序
JNB ACC.6, KEY6 ;6号键按下,转6号键功能程序
JNB ACC.7, KEY7 ;7号键按下,转7号键功能程序
GORET: RET ;从键盘服务子程序返回
第一节 LED数码管显示接口
第七章 显示器与键盘接口技术
KEY0:LCALLFUNC0;执行0号键功能服务程序
RET;从键盘服务子程序返回
KEY1:LCALLFUNC1;执行1号键功能服务程序
RET;从键盘服务子程序返回
KEY2:LCALLFUNC2;执行2号键功能服务程序
RET;从键盘服务子程序返回
KEY3:LCALLFUNC3;执行3号键功能服务程序
RET;从键盘服务子程序返回
KEY4:LCALLFUNC4;执行4号键功能服务程序
RET;从键盘服务子程序返回
KEY5:LCALLFUNC5;执行5号键功能服务程序
RET;从键盘服务子程序返回
KEY6:LCALLFUNC6;执行6号键功能服务程序
RET;从键盘服务子程序返回
KEY7:LCALLFUNC7;执行7号键功能服务程序
RET;从键盘服务子程序返回