查询式键盘实验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、流程图

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值