糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 查询式键盘实验c语言 单片机实验上机--实验十七查询式键盘实验.doc

查询式键盘实验c语言 单片机实验上机--实验十七查询式键盘实验.doc

时间:2023-05-04 13:07:18

相关推荐

查询式键盘实验c语言 单片机实验上机--实验十七查询式键盘实验.doc

实验十七 查询式键盘实验

一、实验目的

1、掌握键盘和显示器的接口方法和编程方法

2、掌握键盘和八段码显示器的工作原理

3、静态显示的原理和相关程序的编写

二、实验说明

本实验提供了8个按钮的小键盘,如果有键按下,则相应输出为低,否则输出为高。通过这样可以判断按下什么键。在有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

三、实验步骤及内容

1、用一根扁平数据线连接查询式键盘实验模块与八位逻辑电平显示模块,无键按下时,键盘输出全为“1”发光二极管全部熄灭,有键按下,对应发光二极管点亮。此种电路的程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。阵列式键盘的编程同样也有这样的问题要注意。

2、一根八位数据线连接查询式键盘实验模块与扫描显示实验模块。无键按下时,LED数码显示八段全部熄灭,有键按下时,则对应LED段点亮。

3、使用静态串行显示模块显示键值。单片机最小应用系统1的 P1口接查询式键盘输出口,RXD接静态数码显示DIN,TXD接CLK。

4、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。

5、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。

6、打开 查询KEY.ASM源程序,编译无误后运行程序,在键盘上按下某个键,观察数显是否与按键值一致,键值从左至右为0~7。

7、可把源程序编译成可执行文件,烧录到89C51芯片中。

四、流程图及源程序

1、流程图

Y

N

初始化地址参数

去抖动

查表读键值

等待键释放

得键码

调整表指针调整键码

开始

比较相同?

返回

键入?

开始

显示缓冲区初始化

LED显示

读取键值

键值转换为显示数据

有键输入?

N

主程序框图

2、源程序

ORG 0000H

DBUF EQU 30H

TEMP EQU 40H

MOV 30H,#16

MAIN: ACALL DISP

ACALL KEY0

AJMP MAIN

KEY: MOV P1,#0FFH ;输入前,锁存器置“1”

MOV A,P1 ;读取键盘状况

CJNE A, #0FFH,K00 ;有键按下

AJMP KEY ;无键按下

K00: ACALL DELAY ;延时去抖动

MOV A,P1

CJNE A,#0FFH,K01 ;确有键按下

AJMP KEY

K01: MOV R3, #8 ;8个键

MOV R2,#0 ;键码

MOV B,A ;暂存键值

MOV DPTR,#K0TAB

K02: MOV A,R2

MOVC A,@A+DPTR ;从键值表中取键值

CJNE A,B,K04 ;键值比较

K03: MOV A,P1 ;相等

CJNE A #0FFH,K03 ;等键释放

ACALL DELAY ;延时去抖动

MOV A,R2 ;得键码

RET

K04: INC R2 ;不相等,到继续访问键值表

DJNZ R3,K02

MOV A,#0FFH ;键值不在键值中,即多键同时按下

AJMP KEY

K0TAB:DB 0FEH,0FDH,0FBH, 0F7H ;键值表

DB 0EFH,0DFH,0BFH, 07FH

DISP: MOV DBUF,A

MOV DBUF+1,#16

MOV DBUF+2,#16

MOV DBUF+3,#16

MOV DBUF+4,#16

MOV R0, #DBUF

MOV R1, #TEMP

MOV R2, #5

DP10: MOV DPTR,#SEGTAB

MOV A, @R0

MOVC A, @A+DPTR

MOV @R1, A

INC R0

INC R1

DJNZ R2, DP10

MOV R0, #TEMP

MOV R1, #5

DP12: MOV R2, #8

MOV A, @R0

DP13: RLC A

MOV 0B0H,C

CLR 0B1H

SETB 0B1H

DJNZ R2, DP13

INC R0

DJNZ R1, DP12

RET

SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH

DB 7DH,07H,7FH,6FH,77H,7CH

DB 58H, 5EH,79H,71H,00H,40H

DELAY: MOV R4, #02H

AA1: MOV R5,#0F8H

AA: DJNZ R5,AA

DJNZ R4,AA1

RET

END

五、思考题

1、程序如何确保每按一次键,只处理一次。

六、原理图

展开阅读全文

如果觉得《查询式键盘实验c语言 单片机实验上机--实验十七查询式键盘实验.doc》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。