查询式键盘与阵列式键盘的实验.docx
- 文档编号:6239231
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:11
- 大小:111.06KB
查询式键盘与阵列式键盘的实验.docx
《查询式键盘与阵列式键盘的实验.docx》由会员分享,可在线阅读,更多相关《查询式键盘与阵列式键盘的实验.docx(11页珍藏版)》请在冰豆网上搜索。
查询式键盘与阵列式键盘的实验
论文提要
在大部分嵌入式系统中,人机交互界面是必不可少的一个重要部分,人机交互界面的设计往往占据很大一部分工作。
人机交互界面的与人交互的输入工具一般由显示屏、音响设备等组成,而人机交互界面的输入部分最常见的就是输入键盘接口。
基本的键盘都是不同按键开关的组合,可以向单片机系统输入不同的数字量。
目前常用的大部分按键都是机械式按键,利用了机械触点的通断作用,通过机械触点的闭合与断开,实现了电压信号高低的输入。
由于机械式开关在闭合与断开的瞬间均有抖动过程,因此通过机械式开关输入的电压信号也会出现相应的抖动,这种抖动的时间一般为5~25ms,不同的开关由于不同的机械特征具备不同的抖动时间常数,在键盘设计中必须要考虑键盘抖动的问题,通过硬件或软件的措施来进行键盘输入消抖,保证输入的可靠性。
本论文设计并实验了常见的查询式键盘和阵列式键盘。
查询式键盘与阵列式键盘的实验
犹韬
摘要:
查询式键盘的实验:
提供了8个按钮的小键盘,如果有键按下,则相应输出为低,否则输出为高。
通过这样可以判断按下什么键。
在有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。
阵列式键盘的实验:
提供了一个4X4小建盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。
通过输出的列码和读取的行码来判断按下什么键。
在有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。
关键词:
键盘电平显示按键
查询式键盘实验
一、实验目的
1、掌握键盘和显示器的接口方法和编程方法
2、掌握键盘和八段码显示器的工作原理
3、静态显示的原理和相关程序的编写
二、实验步骤及内容
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、流程图
图1-2
2、源程序
ORG0000H
DBUFEQU30H
TEMPEQU40H
MOV30H,#16
MAIN:
ACALLDISP
ACALLKEY0
AJMPMAIN
KEY:
MOVP1,#0FFH;输入前,锁存器置“1”
MOVA,P1;读取键盘状况
CJNEA,#0FFH,K00;有键按下
AJMPKEY;无键按下
K00:
ACALLDELAY;延时去抖动
MOVA,P1
CJNEA,#0FFH,K01;确有键按下
AJMPKEY
K01:
MOVR3,#8;8个键
MOVR2,#0;键码
MOVB,A;暂存键值
MOVDPTR,#K0TAB
K02:
MOVA,R2
MOVCA,@A+DPTR;从键值表中取键值
CJNEA,B,K04;键值比较
K03:
MOVA,P1;相等
CJNEA#0FFH,K03;等键释放
ACALLDELAY;延时去抖动
MOVA,R2;得键码
RET
K04:
INCR2;不相等,到继续访问键值表
DJNZR3,K02
MOVA,#0FFH;键值不在键值中,即多键同时按下
AJMPKEY
K0TAB:
DB0FEH,0FDH,0FBH,0F7H;键值表
DB0EFH,0DFH,0BFH,07FH
DISP:
MOVDBUF,A
MOVDBUF+1,#16
MOVDBUF+2,#16
MOVDBUF+3,#16
MOVDBUF+4,#16
MOVR0,#DBUF
MOVR1,#TEMP
MOVR2,#5
DP10:
MOVDPTR,#SEGTAB
MOVA,@R0
MOVCA,@A+DPTR
MOV@R1,A
INCR0
INCR1
DJNZR2,DP10
MOVR0,#TEMP
MOVR1,#5
DP12:
MOVR2,#8
MOVA,@R0
DP13:
RLCA
MOV0B0H,C
CLR0B1H
SETB0B1H
DJNZR2,DP13
INCR0
DJNZR1,DP12
RET
SEGTAB:
DB3FH,06H,5BH,4FH,66H,6DH
DB7DH,07H,7FH,6FH,77H,7CH
DB58H,5EH,79H,71H,00H,40H
DELAY:
MOVR4,#02H
AA1:
MOVR5,#0F8H
AA:
DJNZR5,AA
DJNZR4,AA1
RET
END
四、原理图
图1-3
阵列式键盘实验
一、实验目的
1、掌握键盘和显示器的接口方法和编程方法
2、掌握阵列式键盘的硬件组成和软件编程方法
二、实验步骤及内容
1、用一根扁平10线插头连接阵列式键盘实验模块与LED与单片机接口模块。
无键按下或有键按下,发光二极管全亮。
若将A1-A4接地,则发光二极管显示0000XXXX;B1线上有键按下,则发光二极管显示0000XXX,B2线上有键按下,则发光二极管现世0000X0XX,B1和B2均有键按下,则发光二极管显示000000XX……同样可将B1与B4接地,按键与发光二极管显示情况,用户可以自行判断,自由操作。
2、用一根扁平10线插头连接阵列式键盘实验模块与扫描显示实验模块。
无键按下或有键按下,八段LED全亮。
用户参照1,观察键盘与八段LED亮熄的关系。
3、使用静态串行显示模块显示键值。
单片机最小应用系统1的P1口接阵列式键盘的A1~B4口,单片机最小应用系统1的RXD接串行静态数码显示DIN,TXD接CLK。
4、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
5、启动计算机,打开伟福仿真软件,进入仿真环境。
选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。
6、打开阵列KEY.ASM源程序,编译无误后运行程序,在键盘上按下某个键,观察数显是否与按键值一致。
16位建盘的键值从左至右、从上至下依次为0~F(16进制数)。
7、可把源程序编译成可执行文件,烧录到89C51芯片中。
三、流程图及源程序
1、流程图
2、源程序
ORG0000H
DBUFEQU30H
TEMPEQU40H
MOVA,#16
MAIN:
ACALLDISP
MOV30H,A
ACALLKEY1
AJMPMAIN
KEY1:
MOVP1,#0FH;A1-A4输出,B1-B4输入,输
;入者对应锁存先写“1”
MOVA,P1;读取键盘状况
CJNEA,#0FH,K11;有键按下
K10:
AJMPKEY1;无键按下
K11:
ACALLDELAY;去抖动
MOVP1,#0FH
MOVA,P1;再读键盘状况
CJNEA,#0FH,K12;确有键盘按下
SJMPK10;误动作
K12:
MOVB,A;存列值
MOVP1,#0EFH;按键在Ai行
MOVA,P1
CJNEA,#0EFH,K13;键在A4
MOVP1,#0DFH
MOVA,P1
CJNEA,#0DFH,K13;键在A3行
MOVP1,#0BFH
MOVA,P1
CJNEA,#0BFH,K13;键在A2行
MOVP1,#7FH
MOVA,P1
CJNEA,#7FH,K13;键在A1行
AJMPK10;多键同时按下
K13:
ANLA,#0F0H;的行值
ORLA,B;的按下键的行列值
MOVB,A;暂存键值
MOVR1,#16;16个键
MOVR2,#0;键码初值
MOVDPTR,#K1TAB;键码表首址
K14:
MOVA,R2
MOVCA,@A+DPTR;从键值表中取键值
CJNEA,B,K16;与按下键,键值比较
MOVP1,#0FH;相等,则完成以下步骤
K15:
MOVA,P1
CJNEA,#0FH,K15;等释放
ACALLDELAY;去抖动
MOVA,R2;得键码
RET
K16:
INCR2;不相等,则继续访问键值表
DJNZR1,K14
AJMPK10;多键同时按下处理
K1TAB:
DB0EEH,0DEH,0BEH,07EH;键值表
DB0EDH,0DDH,0BDH,07DH
DB0EBH,0DBH,0BBH,07BH
DB0E7H,0D7H,0B7H,077H
DISP:
MOVDBUF,A
MOVDBUF+1,#16
MOVDBUF+2,#16
MOVDBUF+3,#16
MOVDBUF+4,#16
MOVR0,#DBUF
MOVR1,#TEMP
MOVR2,#5
DP10:
MOVDPTR,#SEGTAB
MOVA,@R0
MOVCA,@A+DPTR
MOV@R1,A
INCR0
INCR1
DJNZR2,DP10
MOVR0,#TEMP
MOVR1,#5
DP12:
MOVR2,#8
MOVA,@R0
DP13:
RLCA
MOV0B0H,C
CLR0B1H
SETB0B1H
DJNZR2,DP13
INCR0
DJNZR1,DP12
RET
SEGTAB:
;段码表
DB3FH,06H,5BH,4FH,66H,6DH;“0,1,2,3,4,5”
DB7DH,07H,7FH,6FH,77H,7CH;“6,7,8,9,A,b”
DB58H,5EH,79H,71H,00H,40H;“C,d,E,F,,-”
DELAY:
MOVR4,#02H
AA1:
MOVR5,#0F8H
AA:
NOP
DJNZR5,AA
DJNZR4,AA1
RET
END
四、原理图
图2-3
参考文献:
夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社,2001
李广第.单片机基础.第1版.北京:
北京航空航天大学出版社,1999
赵晓安.MCS-51单片机原理及应用.天津:
天津大学出版社,2001.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 查询 键盘 阵列 实验