- 1、本文档共73页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
单片机系统设计及应用任务5电子广告牌的设计与制作
目录知识链接任务实施二、LED点阵显示器一、任务分析二、安装与调试一、单片机键盘接口技术三、LCD液晶显示器
目录知识链接任务实施二、LED点阵显示器一、任务分析二、安装与调试三、LCD液晶显示器一、单片机键盘接口技术
1、键盘工作原理及消抖通过按键的接通与断开,产生两种相反的逻辑状态:未按下,输出高电平;按下,输出低电平。可以通过检测输出线上电平的高/低来判断键位有无按下。
1、键盘工作原理及消抖前沿抖动后沿抖动01前沿抖动:按下按键时产生的抖动。02后沿抖动:松开按键时产生的抖动。
1、键盘工作原理及消抖如何消抖?01硬件消抖02软件消抖
1、键盘工作原理及消抖硬件消抖:通过在按键输出电路上加上一定的硬件线路来消除抖动,一般采用R-S触发器或单稳态电路。如图所示,经过图中的R-S触发器消除抖动后,输出端的信号就变为标准的矩形波了。适用于三端开关。图6.2硬件消抖电路硬件消抖
1、键盘工作原理及消抖利用延时来跳过抖动过程,当判断有键按下时,先执行一段大于10ms的延时程序后再去判断按下的键位是哪一个,从而消除前沿抖动的影响。对于后沿抖动,只需要在接收一个键位后,经过一定时间再去检测有无按键,这样就自然跳过后沿抖动时间而消除后沿抖动了。软件消抖
2、独立式键盘及其接口独立式键盘:最简单的键盘结构形式,每个按键的电路都是独立的,每个按键占用一根I/O线,01优点:相互之间没有影响,按键识别(编程)简单。02缺点:占用较多口线,适合8键以下使用。图6.3按键与8051接口电路
3、矩阵式键盘及其接口矩阵式键盘又叫行列式键盘。用I/O接口线组成行、列结构,键位设置在行、列的交点上。比一个键位用一根I/O接口线的独立式键盘少了一半的I/O接口线。而且键位越多,效果就越明显。适用于按键数目较多的情况。图6.4矩阵键盘及其接口
4、键盘的工作方式01随机扫描工作方式CPU完成某特定任务后,即执行键盘扫描程序,以确定键盘有无按键输入,然后根据按键功能转去执行相应的操作。在执行键盘按键规定的功能中不理睬键盘输入。03中断扫描方式为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。02定时扫描方式每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。
5、4×4键盘应用实例在单片机P1口接一个4×4的矩阵键盘,P0口接一静态显示数码管。要求按键按下后,在数码管上显示对应键值。(0~9、A~F)例6.1确定行号,确定列号,计算键值
5、4×4键盘应用实例
5、4×4键盘应用实例
C源程序#includereg51.h#defineuchar unsignedchar#defineuint unsignedint//0~F的共阳数码管段码,最后一个是黑屏constucharSEG_CODE[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};//当前按键序号,该矩阵中序号范围为0-15,0xFF表示无按键ucharkeyNo=0xff;//-----------------------------------------------------------------//延时函数//-----------------------------------------------------------------voiddelay_ms(uintx){ uchart; while(x--) for(t=0;t120;t++);}
C源程序voidKeys_Scan()//键盘矩阵扫描子程序{ P1=0x0f; delay_ms(1); if(P1==0x0f) //无按键按下,提前返回 { keyNo=0xff; return; } switch(P1) //判断按键所在列 { case0x0E: keyNo=0; break; case0x0D: keyNo=1; break; case0x0B: keyNo=2; break; case0x07: keyNo=3; break; default: keyNo=0x
文档评论(0)