单片机按键剖析.pptxVIP

  1. 1、本文档共26页,可阅读全部内容。
  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文档。上传文档
查看更多
单片机的按键 ;6.1任务说明 任务:了解按键的器件特性,学习利用外部中断扫描,延 时等手段实现按键的输入,重点掌握按键程序的变 成 方法。;;图6-1 加数计数小系统 ; 图6-2 加数计数小系统 ; 在图6-1所示的一个加数计数小系统中,设计数器的 脉冲输入端CP为上升沿有效,加计数器初始显示为0。按 键不按时,CP = 0,计数器不加1计数。一般认为:按键 按下,CP端由低电平变为高电平,含有电平上升沿,计 数器加1计数,并且按下1次,计数器加1。实际实验时会 发现,按键按下1次,计数器不是加1,而是跳跃一次性增 加3或4。原因是按键按下在导体接触的瞬间产生了震动。;图6-2是按键按下过程中CP端实际电平改变情况。T1为不 按按键时刻,T2为按键按下瞬间的抖动,T3为按键按下稳 定时刻,T4为按键放开时刻瞬间,T5为按键放开时刻。从 图中可以了解到,按键按下的瞬间由于震动会是按键内部 的导体稳定接触,而是在导通和不导通之间来回弹跳,虽 然时间一瞬间,但使CP端获得了多个电平的上升沿。按 键抖动时间的长短由按键的机械特性决定,一般为5ms~ 10ms。因此不能直接把按键作为1个脉冲的输入。 ; 在数字电路中,常利用触发器消除键盘抖动,但在单 片机系统中,按键可以直接接在单片机的I/O口上,常利用 键盘程序来消除键盘的抖动现象。;6.3 利用外部中断实现键盘输入 一、电路原理 在图6-3中,单片机的P0.0口接一只LED,键盘接在 P3.2端口,按键不按时,由于P3.2接有上拉电阻R3,所 以P3.2此时为高电平+5V,如果按键按下,P3.2电源地短 路,P3.2为低电平。; 为了消除键盘抖动现象,键盘两端并联滤波电容器C4。 P3.2是单片机的外部中断的输入端,当按键按下时,让单 片机执行外部中断服务程序,在中断服务中完成对LED的 控制。;;二、外部中断 51系列单片机的中断共有5个,其中外部中断共占两 个。外部中断主要通过单片机的引脚P3.3()、P3.4()接收 外部脉冲或高低电平出发CPU中断。与外部中断有关的多 功能寄存器为IE、IP、TCON。程序如下:;/*****************************************************************/ #includereg51.h sbit LED = P0^0; bit i; void delay() { unsigned char a,b; for(a=0;a255;a++) for(b=0;b255;b++); } ;void int0_isr(void) interrupt 0 //INT0中断服务函数,INT0的中断号为0 { i = ~i; //INT0中断1次,i值改变1次 LED = i; //INT0中断1次,LED工作状态变化1次 delay(); //调用延时函数 } void main(void) { LED = 0; //芯片初始化时,LED灭 EA = 0; EX0 = 1; //开启INT0中断 PX0 = 1; //INT0中断优先,可以省去 EA = 1; //开启总中断开关 while(1); //等待按键按下,中断发生 } /**********************************************************/; 这里没有设置INT0是下降沿触发中断或是低电平触发 中断,原因是按键按下,不管产生不产生键抖现象,总能 使INT0引脚产生1个下降沿和低电平。如果设置只有下降 沿才触发INT0中断,需要利用设置计时器控制寄存器 TCON的IT0 = 1位,按键按下是否产生中断,可以利用程 序检测TCON的IE0位。利用外部中断触发作为按键输入很 好的解决了键盘抖动问题。; 如果需要多个键盘,把INT0口与I/O口之间用键盘连 接,I/O输出低电平扫面信号即可。在数码管动态显示电路 中

文档评论(0)

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

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

1亿VIP精品文档

相关文档