查询式键盘实验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相关推荐
- pc机串口通讯实验c语言,单片机实验六 单片机与PC机串口通讯
实验报告六 实验名称:单片机与PC机串口通讯 实验目的 : 1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制. 2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议. 3.了解PC机通讯 ...
- p1口输入 输出实验C语言,单片机P1口输入输出实验单片机P1口输入输出实验.ppt
单片机P1口输入输出实验单片机P1口输入输出实验 单片机I/O口输入输出实验 (或单片机数字量输入输出实验);单片机P1口输入输出实验 ;2.实验要求(1).2)为必做,3)为选做) 3) P1口作输 ...
- 单片机io口的控制实验c语言,单片机io口控制实验报告
<单片机io口控制实验报告>由会员分享,可在线阅读,更多相关<单片机io口控制实验报告(5页珍藏版)>请在人人文库网上搜索. 1.单片机io口控制实验报告 精品文档,仅供参考单 ...
- 单片机实验汇编案例---单片机串行口与PC机通讯实验
一.实验要求 利用8031单片机串行口,实现与PC机通讯. 本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上. 二.实验 ...
- c语言上机考试设计题及答案,C语言程序设计基础上机考试一题目及参考答案.doc...
C语言程序设计基础上机考试一题目及参考答案 1.输入一串字符输入字符串中整数的个数输出找出一个大于给定整数m且紧随m的素数统计老年人各年龄段的人数并存到b数组中,n个人员的年龄放在a数组中.输入一串可 ...
- 独立式键盘实验c语言,单片机设计报告—独立式键盘控制的4级流水灯.doc
单片机设计报告-独立式键盘控制的4级流水灯 单片机结题报告 独立式键盘控制的4级流水灯 班 级 姓 名 吴泽宇 学 号 2008405340 一.任务目的: 通过采用单片机制作一个独立式键盘控制的4级 ...
- 单片机音频驱动实验C语言,单片机实验:音乐改编
<单片机实验:音乐改编>由会员分享,可在线阅读,更多相关<单片机实验:音乐改编(7页珍藏版)>请在人人文库网上搜索. 1.实验1将歌曲播放程序两只老虎改变为另一首歌曲(如Hap ...
- 单片机定时器和计数器的实验C语言,(单片机原理与应用)定时器/计数器设计实验...
一.实验内容 采用12MHZ时钟频率的单片机,通过一个开关输入,触发定时计数.按下开关10次,计算按键的平均时间,并通过数码管显示出来. 二.实验目的 了解定时器的各种工作方式 掌握定时器/计数器的使 ...
- 北京电子科技学院c语言实验报告,最新单片机 实训报告电子万年历实训报告.doc...
最新单片机 实训报告电子万年历实训报告 河南工程学院 单片机 实训报告 学 院 电气信息工程学院 专 业 电气工程及其自动化 组员及学号 李 东 盼 201250712138 高 辉 20125071 ...
最新文章
- 随手记——大整数运算模板(进化史)
- [LeetCode] Remove Duplicates from Sorted Array II
- 如何写出一份惊艳BAT的简历?
- 云原生编程挑战赛--Serverless创新应用赛邀您提交方案啦!
- redis关键字删除_微信公众号文章防删除
- Flask 模版(四)- 时间 Flask-Moment
- Java的数据结构和算法
- 桌面程序 取色器 colors.exe
- 无线传感器网络技术及应用(课后习题答案)
- linux下texlive的卸载,Linux 下 texlive 2018 的安装
- 京瓷4501i打印机扫描步骤_「硬件」如何使用打印机扫描文件传送到电脑本地?...
- 投影仪和电视哪个更好?一文科普详细比较
- win10彻底永久关闭自动更新【亲测有效】
- 郭炜-C语言程序设计-程序设计与算法(一)-第一周
- Kafka实践(八):Kafka的控制器controller
- Oracle-基本概念
- vue项目创建之后运行错误
- lungs UFA eat walnuts.
- 免费快递接口查询软件
- 多维升级打工人求职体验,N世界元宇宙构建招聘行业全新营销磁场