网站大量收购独家精品文档,联系QQ:2885784924

单片机-矩阵式键盘接口实验.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机-矩阵式键盘接口实验

PAGE4 / NUMPAGES4 安徽文达信息工程学院学生实验报告 学年第 学期 课程名称《 单片机原理与应用 》 实验日期: 院部 班级 姓名 学号 实验项目名称: 实验七 矩阵式键盘接口实验 指导老师: 实验类型: 编程仿真 成绩: 一、【实验目的】 1.掌握单片机按键的使用和编程方法; 2.掌握矩阵式键盘的编程方法。 二、【实验原理及内容】 按照代码转换方式,键盘可以分为编码式和非编码式两种。编码式键盘是通过数字电路直接产生对应于按键的ASCⅡ码,这种方式目前很少使用。非编码式键盘将按键排列成矩阵的形势,由硬件或软件随时对矩阵扫描,一旦某一键被按下,该键的行列信息即被转换为位置码并送入主机,再由键盘驱动程序查表,从而得到按键的ASCⅡ码,最后送入内存中的键盘缓冲区供主机分析执行。非编码式键盘由于结构简单,按键重定义方便而成为目前最常采用的键盘类型。 非编码键盘又分为独立式键盘和矩阵式键盘。因为独立式键盘较为简单,此次实验以矩阵键盘的查询扫描方式为主。 矩阵式(行列式)键盘的接口电路 对上图矩阵式键盘,编写查询式的键盘处理程序。 先判有无键按下,即把所有行线P1.0~P1.3均置为低,然后检测各列线状态,若列线不全为高电平,则表示键盘中有键被按下;若所有列线列均为高电平,说明键盘中无键按下。 在确认有键按下后,即可查找具体闭合键位置,其方法是依次将行线置为低电平,再逐行检查各列线的电平状态。若某列为低,则该列线与行线交叉处键就是闭合键。 三、【实验器材】 PC机 Proteus仿真软件 Keil c51仿真软件 四、【实验步骤】 基础实验 数码管显示4×4矩阵键盘键号。单片机的P1口的P1.0~P1.7连接4×4矩阵键盘,矩阵中各键编号见下图。 数码管显示由P0口控制,当4×4矩阵键盘中的某一按键按下时,数码管上显示对应键号。例如,1号键按下时,数码管显示“1”;E键按下时,数码管显示“E”等等。 数码管显示4×4矩阵键盘键号的原理电路 扩展实验 在P3.0~p3.3口各连接一个LED小灯,每当按下一个按键,数码管显示数字之后,小灯也以亮灭来表示数字,例如按键为5,则小灯依次“亮灭亮灭”。 五、【实验过程原始记录】(可附页) 基础实验: #include reg51.h #define uchar unsigned char sbit L1=P1^0; sbit L2=P1^1; sbit L3=P1^2; sbit L4=P1^3; uchar dis[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86, 0x8e }; unsigned int time; Void delay(time) { unsigned int j; for(j=0;jtime;j++) {} } main() { uchar temp; uchar i; while(1) { P1=0xef; for(i=0;i=3;i=i++) { if (L1==0) P0= dis [i*4+0]; if (L2==0) P0= dis [i*4+1]; if (L3==0) P0= dis [i*4+2]; if (L4==0) P0= dis [i*4+3]; delay(500); temp=P1; temp=temp|0x0f; temp=temp1; temp=temp|0X0f; P1=temp; } } } 扩展实验: #include reg51.h #define uchar unsigned char sbit L1=P1^0; sbit L2=P1^1; sbit L3=P1^2; sbit L4=P1^3; uchar dis[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86, 0x8e }; uchar led[16]={0x00,0x01,0x

文档评论(0)

zhengshumian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档