单片机实验五报告_单片机键盘实验_第1页
单片机实验五报告_单片机键盘实验_第2页
单片机实验五报告_单片机键盘实验_第3页
单片机实验五报告_单片机键盘实验_第4页
单片机实验五报告_单片机键盘实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南昌大学实验报告学生姓名: 学号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期:2018.05.18 实验成绩: 实验五 单片机键盘实验(一)实验目的1.掌握单片机键盘控制;2.掌握数码管显示控制。(二)设计要求1.行列扫描按键键值为0f;2.按键只支持单键按下,不支持多键同时按下;3.要求用数码管显示按键值。(三)实验原理1.矩阵式键盘的设计按键数目较多的杨合常采用矩阵式(也称行列式)键盘。键盘由行线和列线组成,按键位于行、列的交叉点上,如下图所示,一个44的行列结构可构成一个16个按键的键盘,需要一个8位的并行i/o口。很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节

2、省较多的i/o口线。对下图所示的矩阵式键盘的查询扫描,一般包括以下4个步骤。(1)首先判别整个键盘有无按键按下 方法为单片机驱动列线p0.0-p0.3输出全0,然后读行线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,当无键按下时,行线为高电平,当有

3、按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线p0.0为低电平0,其余3根列线都为高电平,遂行检查行线状态。如果行线p0.4-p0.7都为高电平1,则p0.0这列上没有按键闭合,若p0.4-p0.7中有一行为低电平,则该行线与列线交叉的按键按下。如果p0.0这一列上没有按键闭合,接着再使p0.1为低电平,其余列线为高电平。用同样的方法检查p0.1这列上有无按键闭合,以此类推。这样采用逐列扫描(只有列为低),然后读入各行线的电平,即可求出设下键的键号n=行的首键号+列号。各行

4、的首键号分别为0,4,8,12,列号依次为0,1,2,3。编程时设置1个列号计数器,初值为0,每扫描1列,列号计数器加1。(4)判闭合键是否松开 如果松开则将键号送入相应的寄存器中保存,单片机根据按下键的键号,对该键的一次闭合仅作一次键功能处理。2.数码管显示键值上述的键盘扫面步骤结束后,键号存储在相应的寄存器中,要把键号显示出来,只须向p4.0口输出对应的段码、位码以及向p4.3和p5.4口输出相应信号,利用74hc595芯片控制八段数码管从而达到显示相应键号的效果。电路图如下所示:(四)实验设备硬件:pc机、usb数据传输线、stc单片机综合实验箱软件:兼容51单片机的keil uvisi

5、on5集成开发环境、stc-isp单片机烧录软件(五)实验结果实验源代码如(七)所示,对代码进行编译,提示0错误0警告,生成hex文件将单片机试验箱和电脑通过usb数据线连接,打开stc-isp检测串口点击点开程序文件,选择刚才生成的hex文件,点击下载程序(六)结果讨论与心得体会结果分析讨论:将程序烧录至单片机后,可观察数码管最高位显示0(初始值),其他位消隐。按下矩阵键盘的键,数码管显示相应的键号,从0-f都能完整显示,完成实验。心得体会:通过本次实验,我学会了如何使用矩阵键盘,掌握了矩阵键盘的扫描原理,理解了矩阵键盘的电路结构以及数码管的显示方式。希望通过自己多次尝试能在今后实验中熟练使

6、用矩阵键盘并将其运用到其他方面。(七)附录:实验源代码p4 data 0c0hp5 data 0c8hp0m1data0x93;p0m0data0x94;p4m1data0xb3;p4m0data0xb4;p5m1data0xc9;p5m0data0xca;p_hc595_serbitp4.0;p_hc595_rclkbit p5.4;p_hc595_srclkbit p4.3;keystate data70h;org0000h ljmpf_main org0100hf_main:clramovp0m1,a;movp0m0,a;movp4m1,a;movp4m0,a;movp5m1,a;mov

7、p5m0,a;movpsw,#00h;mov27h,#40h;movkeystate,#00h;f_main_loop: lcall key2 ; lcall f_delay_ms ; lcall f_displayscan ;ajmp f_main_loop;key2:lcall ks;jnz s1;lcall f_delay_ms;ajmp quit;s1:lcall f_delay_ms;lcall ks;jnz s2;ajmp quit;s2:mov r4,#0feh;mov r5,#00h;s3: mov p0,r4;l0:jb p0.4, l1;mov a, #00h;ajmp l

8、k;l1: jb p0.5,l2;mov a,#04h; ajmp lk;l2: jb p0.6, l3; mov a, #08h; ajmp lk;l3: jb p0.7,next;mov a,#0ch;lk:add a,r5;push acc;ljmp s4;next:inc r5;mov a,r4;jnb acc.3,s4;rl a;mov r4, a;ajmp s3;s4:lcall ks;jnz s4;pop acc;mov keystate, a;ljmp quit;ks: mov p0, #0fh;mov a, p0;xrl a, #0fh;retquit: retf_delay

9、_ms: mov r2, #25;d1:mov r3,#200djnz r3,$djnz r2,d1retf_send_595:push01h;movr1,#8;l_send_595_loop:rlca;movp_hc595_ser,c;setbp_hc595_srclk;clrp_hc595_srclk;djnzr1,l_send_595_loop;pop01h;retf_displayscan: push acc;mov a, #080h; cpl a;lcall f_send_595;pop acc;mov a, keystate; mov dptr,#t_display;movc a,a+dptr;lcallf_send_595;setbp_hc595_rclk;clrp_hc595_rclklcall f_delay_ms;rett_di

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论