欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    4×4矩阵键盘在单片机中的应用(Proteus)(共9页).docx

    • 资源ID:15169085       资源大小:191.85KB        全文页数:9页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    4×4矩阵键盘在单片机中的应用(Proteus)(共9页).docx

    精选优质文档-倾情为你奉上4×4矩阵键盘原理及其在单片机中的简单应用基于Proteus仿真1、4×4矩阵键盘的工作原理如下图所示,4×4矩阵键盘由4条行线和4条列线组成,行线接P3.0P3.3,列线接P3.4P3.7,按键位于每条行线和列线的交叉点上。按键的识别可采用行扫描法和线反转法,这里采用简单的线反转法,只需三步。第一步,执行程序使X0X3均为低电平,此时读取各列线Y0Y3的状态即可知道是否有键按下。当无键按下时,各行线与各列线相互断开,各列线仍保持为高电平;当有键按下时,则相应的行线与列线通过该按键相连,该列线就变为低电平,此时读取Y0Y1Y2Y3的状态,得到列码。第二步,执行程序使Y0Y3均为低电平,当有键按下时,X0X3中有一条行线为低电平,其余行线为高电平,读取X0X1X2X3的状态,得到行码。第三步,将第一步得到的列码和第二步得到的行码拼合成被按键的位置码,即Y0Y1Y2Y3X0X1X2X3(因为行线和列线各有一条为低电平,其余为高电平,所以位置码低四位和高四位分别只有一位低电平,其余为高电平)。当0键按下时,行线X0和列线Y0为低电平,其余行列线为高电平,于是可以得到0键的位置码Y0Y1Y2Y3X0X1X2X3为0111 0111,即0X77。当5键按下时,行线X1和列线Y1为低电平,其余行列线为高电平,于是可得到5键的位置码Y0Y1Y2Y3X0X1X2X3为1011 1011,即0XBB。全部矩阵键盘的位置码如下:2、4×4矩阵键盘在单片机的简单应用举例(一)如下图所示,运行程序时,按下任一按键,数码管会显示它在矩阵键盘上的序号0F,并且蜂鸣器发出声音,模拟按键的声音。此处采用线反转法识别按键。C程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit buzzer=P10;uchar code dis= /09,AF的共阳显示代码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0X88,0X83,0XC6,0XA1,0X86,0X8E;uchar code tab=/矩阵键盘按键位置码0x77,0xb7,0xd7,0xe7,0x7b,0xbb,0xdb,0xeb,0x7d,0xbd,0xdd,0xed,0x7e,0xbe,0xde,0xee;void delay(uint x) /延时函数uchar i;while(x-)for(i=0;i<120;i+); uchar scan() /矩阵键盘扫描函数,得到按键号,采用线反转法uchar a,b,c,i;P3=0XF0; /P3口输出a=P3; /读取列码delay(10); /防抖延时10msP3=0X0F; /P3口输出b=P3; /读取行码c=a+b; /得到位置码for(i=0;i<16;i+)if(c=tabi)return i; /查表得到按键序号并返回return -1;/无按键,则返回-1void beep() /蜂鸣器发出声音,模拟按键的声音 uchar i;for(i=0;i<100;i+)buzzer=buzzer;delay(1);buzzer=0;void main()uchar key;buzzer=0; /关闭蜂鸣器while(1)key=scan(); /得到按键号if(key!=-1)/有按键则显示,并且蜂鸣器发出声音P0=diskey; beep(); delay(100);Proteus仿真运行结果如下:3、4×4矩阵键盘在单片机的简单应用举例(二)如下图所示,运行程序时,按下的按键键值越大,点亮的LED灯越多,例如,按下1号键时,点亮一只LED灯,按下2号键时,点亮两只LED灯,按下16号键时,点亮全部LED灯。这里仍然采用线反转法识别按键。C程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab= /矩阵键盘按键位置码0x77,0xb7,0xd7,0xe7,0x7b,0xbb,0xdb,0xeb,0x7d,0xbd,0xdd,0xed,0x7e,0xbe,0xde,0xee;void delay(uint x) /延时函数uchar i;while(x-)for(i=0;i<120;i+);uchar scan() /矩阵键盘扫描函数,得到按键号,采用线反转法uchar a,b,c,i;P1=0XF0;a=P1;delay(10);P1=0X0F;b=P1;c=a+b;for(i=0;i<16;i+)if(c=tabi)return i; /有按键,则返回按键号return -1; /无按键,则返回-1void main()uchar key,i,led3,led2; while(1) key=scan(); if(key!=-1) led3=0xff; led2=0xff; for(i=0;i<=key;i+) /这里假设key=3,因为key是从0开始算起,所以是4号键 ,应该 if(i<8) /点亮4只LED灯,执行4次for循环后,led3=,所以点亮 led3>>=1; /了4只LED灯。 else led2>>=1; P2=led2; P3=led3; Proteus仿真运行结果如下:专心-专注-专业

    注意事项

    本文(4×4矩阵键盘在单片机中的应用(Proteus)(共9页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开