8 单片机功能扩展.pptVIP

  1. 1、本文档共52页,可阅读全部内容。
  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文档。上传文档
查看更多
8 单片机功能扩展

第8章 单片机的功能扩展 ;第8章 单片机的功能扩展 ;8.1 键盘输入及接口;二、非编码键盘的键输入程序应完成的基本任务: 1、监测有无键按下。键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。 2、判断是哪个键按下。 3、完成按键处理任务。;键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。;1. 按键的消抖:;硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用R—S触发器或单稳态电路。如图。 ;2. 串键保护:单键按下有效,多键同时按下无效;4、键盘的工作方式;8.1.2 键盘程序设计;;上拉汇编示例程序 get_key: JB P1.0,no_key ACALL Delay ;第一次检测到按键信息 JB P1.0,no_key … ; 执行按键功能(第二次检测到按键信息) JB P1.0,no_key ; 等待按键抬起 SJMP $-1 ;跳转到上一行 no_key: … Delay: …;上拉C51示例程序 if(P1_0==0) { //第一次检测到按键信息 Delay(); //延时20ms左右,消除抖动 if(P1_0==0) { //第二次检测到按键信息 … //执行按键功能 while(P1_0==0); //等待按键释放 } };行列式键盘(如图8.4所示) 按键识别有两种方法:行扫描法和线反转法 1、键盘接口处理的内容;先经输出口向所有列线输出低电平,然后再输入各行线状态;如果列线上有一位为0,则说明必有键被按下 ;逐行扫描查询 ;线反转法 先让行线工作在输出方式,列线工作在输入方式,即往输出端口各行线上全部送“0”,然后从输入端口读入列线的值。如果此时有某个键被按下,则必定会使某一列线值为“0”。 重新设置两个并行端口的工作方式,使其互换,将刚才读得的列线值从并行端口输出,再读取行线的输入值,那么,在闭合键所在的行线上的值必定为“0”,这样,被按下的键的行列值就可以获得了。;知道列号;输出口;8.2 显示器及其接口;数码管的特点: ① 发光响应快,亮度强,高频特性好 ② 机械性能好,使用寿命长,可达105~106h,与COMS和 TTL电路兼容 ③ 工作电压低,驱动电流适中。每段工作电流为5~10mA, 一只数码管的7段LED全亮需要35~70mA。需要驱动电路。;湃钩枣柜炕哆厂奢喉躲旁扎狂牧铸嘻柑帐神骸砾胞骋券斤炉赘隐募笑隔尤8 单片机功能扩展8 单片机功能扩展;1 1 0 1 1 0 1 0;表8.2 常见数字和字符的字形代码;1.点亮单个LED;2.点亮七段LED;图 8.12 共阴LED静态扫描电路;例:依次在数码管上显示数字“0”~“9”,并延时一段时间。;3.动态扫描;段驱动(a~dp)必须输出足够的电流, 同时位驱动(C1~C4)是所有段驱动电流之和 ;;段驱动(a~dp)必须输出足够的电流, 同时位驱动(C1~C4)是所有段驱动电流之和 ;void display(void) { P2=0xf0; //关断位选信号 P1=table[d1]; //送显示数据 p2_0=1; //选中第一个数码管 delay(); //延时 P2=0xf0; //关断位选信号 P1=table[d2]; //送显示数据 p2_1=1; ; //选中第二个数码管 delay(); //延时 P2=0xf0; //关断位选信号 P1=table[d3]; //送显示数据 p2_2=1; //选中第三个数码管 delay(); //延时 P2=0xf0; //关断位选信号 P1=table[d4]; //送显示数据 p2_3=1; //选中第四个数码管 delay(); //延时 P1=0; //关段码 P2=0xf0; //关位码 };void main(void) { while(1) { display();

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档