单片机实验五报告_单片机键盘实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告
学生姓名:学号:专业班级:
实验类型:?验证?综合■设计?创新实验日期:2018.05.18实验成绩:
实验五单片机键盘实验
(一)实验目的
1. 掌握单片机键盘控制;
2. 掌握数码管显示控制。
(二)设计要求
1•行列扫描按键键值为0~F;
2. 按键只支持单键按下,不支持多键同时按下;
3. 要求用数码管显示按键值。
(三)实验原理
1. 矩阵式键盘的设计
按键数目较多的杨合常采用矩阵式(也称行列式)键盘。键盘由行线和列线组成,按键位于行、列的交叉点上,如下图所示,一个4X4的行列结构可构成一个16个按键的键盘,需要一个8位的并行I/O 口。很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节省较多的I/O 口线。对下
图所示的矩阵式键盘的查询扫描,一般包括以下4个步骤。
(1)首先判别整个键盘有无按键按下方法为单片机驱动列线P0.0-P0.3输出全0,然后读行线恂上
HUT
R7J-
K.73对恨
期阵式諧盘•可同扌1描;上讯别按进
SW2*
301R
D SW37
sw )0
GW
O—1o—l
10K
A WK
1II
K
E SW诣
P0.4-P0.7的状态,若全为1,则键盘上没有闭合键;若P0.4-P0.7,则有键按下。
(2)去除键的抖动当判别出可能有键按下时,软件延时一段时间(10ms左右)再判别键盘的状
态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。
(3)求出按下键的键号上图中的16个按键,键号依次为0,1,...15。各行的首键号分别为0, 4,
8,12,列号依次为0,1,2,3。行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。
如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是
:
先令0列线P0.0为低电平0,其余3根列线都为高电平,遂行检查行线状态。如果行线P0.4-P0.7都为高电平1,则P0.0这列上没有按键闭合,若P0.4-P0.7中有一行为低电平,则该行线与列线交叉的按键按下。如果P0.0这一列上没有按键闭合,接着再使P0.1为低电平,其余列线为高电平。用同样的方法检查P0.1这列上有无按键闭合,以此类推。这样采用逐列扫描(只有列为低),然后读入各行线的电平,即可求出设下键的键号N=行的首键号+列号。各行的首键号分别为0, 4, 8, 12,列号依次为0, 1, 2, 3。编程时设置1个列号计数器,初值为0,每扫描1列,列号计数器加1。
(4)判闭合键是否松开如果松开则将键号送入相应的寄存器中保存,单片机根据按下键的键
号,对该键的一次闭合仅作一次键功能处理。
2. 数码管显示键值
上述的键盘扫面步骤结束后,键号存储在相应的寄存器中,要把键号显示出来,只须向P4.0 口输出对应的段码、位码以及向P4.3和P5.4 口输出相应信号,利用74HC595芯片控制八段数码管从而达到显示相应键号的效果。电路图如下所示:
UJUT
I I\I>.
301R Ml 20HH. K4£> 2U1K
C.FIM UDI ILED4 IIKA
数训订即-戊阴比较肝佃加礦拉低陀力比殺越
0训八FU均
对)小
D
右
I Tlf
-* v g g > n n
(四)实验设备
硬件:PC
机、
USB数据传输线、STC单片机综合实验箱
软件:兼容51单片机的Keil uvision5集成开发环境、STC-ISP单片机烧录软件
(五)实验结果
实验源代码如(七)所示,对代码进行编译,提示0错误0警告,生成hex文件
dibuild 1?
aasetflbling 3 can_d i sp I ay ・£丽・・.
linking,・・
-Size:«Q XdATia"Q Ed隼■屮
ereAClng hex file E E^H廉.\0b j eet«V k-eyteeard* B.・・
'■ a V®]- 0 Errof £•)f0 Wirnlngfa),
Build Tajte Ela^aed: 口丄
将单片机试验箱和电脑通过USB数据线连接,打开STC-ISP检测串口
单片机密E JAFLEIH颐洌絆t y引坤刖忡*
聲口号USB-fIRlAL OO如(COBB) v 扫編
EtftWS 2400 - 為雪戟特車115200
迅當总址_ _____________ (
DkDora 伺WW畑播冲E L打开理馭件」
thrixno 膏除漳初強申凰^nnor -
点击点开程序文件,选择刚才生成的hex文件,点击下载程序
(六)结果讨论与心得体会
(Aj«ets
]keyboa rd, hex
看门踪R播甘獰釆前2W 7
0 止倉门飼计藪
V
I——一n 检测BC曲辻意御助115^1 3社y
结果分析讨论:将程序烧录至单片机后,可观察数码管最高位显示0 (初始值),其他位消隐按下矩阵键盘的键,数码管显示相应的键号,从0-F都能完整显示,完成实验。
心得体会:通过本次实验,我学会了如何使用矩阵键盘,掌握了矩阵键盘的扫描原理,理解了矩阵键盘的电路结构以及数码管的显示方式。希望通过自己多次尝试能在今后实验中熟练使用矩阵键盘并将其运用到其他方面。
(七)附录:实验源代码
P4DATA0C0H
P5DATA0C8H
0x93
P0M1DATA
;
P0M0DATA0x94
P4M1DATA0xB3 ;
P4M0DATA0xB4 ;
P5M1DATA0xC9 ;
P5M0DATA0xCA ;
P_HC59
5_SER BIT P4.0
P_HC59
_RCLK BIT P5.4
5
P_HC595_SRCLK BIT P4.3
KeyState DATA 70H
ORG 0000H
LJMP F_Mai n
ORG 0100H
F_Ma in:
CLR A
MOV P0M1, A
MOV P0M0, A
MOV P4M1, A
MOV P4M0, A
MOV P5M1, A