键盘扫描显示单片机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、实验要求:
在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。
实验程序可分成三个模块:
1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
2、显示模块:将显示单元的内容在显示器上动态显示。
3、主程序:调用键输入模块和显示模块
四、实验电路:
这里只是键盘草图,详细原理参见“8155键显模块”
六、实验框图:
列码
(0e101H)
行码
(0e103H)
显示缓冲区初始化
LED 显示
读取键值 键值转换为显示数据 有键输入? 否
是
主程序框图
读键输入子程序框图
七、实验程序如下:
GETKEY: MOV A,#0FFH ;;;;;扫描8X8键盘子程序 MOV P1,A ;;;;;占用资源ACC,35H,36H CLR P2.7 CLR P2.6 MOV P3,#00H MOV A,P1
JNB ACC.0,P10M JNB ACC.1,P11M JNB ACC.2,P12M JNB ACC.3,P13M JNB ACC.4,P14M JNB ACC.5,P15M JNB ACC.6,P16M JNB ACC.7,P17M
否
是
否 开始
输出列扫描信号
列扫描信号移位
该列有键输入?
读入行信号 6列扫描完?
初始化地址参数
按照行列计算键值
查表得键码
等待键盘释放
待按键释放
返回
RET
P10M: LCALL D5MS
MOV A,P1
JB ACC.0,OUT0 LJMP K10
P11M: LCALL D5MS
MOV A,P1
JB ACC.1,OUT0 LJMP K11
P12M: LCALL D5MS
MOV A,P1
JB ACC.2,OUT0 LJMP K12
P13M: LCALL D5MS
MOV A,P1
JB ACC.3,OUT0 LJMP K13
P14M: LCALL D5MS
MOV A,P1
JB ACC.4,OUT0 LJMP K14
P15M: LCALL D5MS
MOV A,P1
JB ACC.5,OUT0 LJMP K15
P16M: LCALL D5MS
MOV A,P1
JB ACC.6,OUT0 LJMP K16
P17M: LCALL D5MS
MOV A,P1
JB ACC.7,OUT0 LJMP K17
OUT0: RET
K10: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.0
MOV 36H,#00H LCALL SCAN
RET
K11: SETB P2.7
SETB P2.6
MOV P3,#0FFH
MOV 36H,#08H LCALL SCAN RET
K12: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.2
MOV 36H,#10H LCALL SCAN RET
K13: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.3
MOV 36H,#18H LCALL SCAN RET
K14: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.4
MOV 36H,#20H LCALL SCAN RET
K15: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.5
MOV 36H,#28H LCALL SCAN RET
K16: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.6
MOV 36H,#30H LCALL SCAN RET
K17: SETB P2.7
SETB P2.6
MOV P3,#0FFH CLR P1.7
MOV 36H,#38H
RET
SCAN: JNB P2.6,P26M JNB P2.7,P27M JNB P3.2,P32M JNB P3.3,P33M JNB P3.4,P34M JNB P3.5,P35M JNB P3.6,P36M JNB P3.7,P37M OUT1: RET
P26M: LCALL D5MS
JB P2.6,OUT1 MOV A,36H
ADD A,#07H
MOV 35H,A
RET
P27M: LCALL D5MS
JB P2.7,OUT1
MOV A,36H
ADD A,#06H
MOV 35H,A
RET
P32M: LCALL D5MS
JB P3.2,OUT1
MOV A,36H
ADD A,#00H
MOV 35H,A
RET
P33M: LCALL D5MS
JB P3.3,OUT1
MOV A,36H
ADD A,#01H
MOV 35H,A
RET
P34M: LCALL D5MS
JB P3.4,OUT1
MOV A,36H
ADD A,#02H
MOV 35H,A