《基于C51+Proteus仿真单片机》教学课件—06单片机的输入输出.pptVIP

《基于C51+Proteus仿真单片机》教学课件—06单片机的输入输出.ppt

  1. 1、本文档共143页,可阅读全部内容。
  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文档。上传文档
查看更多
* * 结束 分 * * * * 键盘检测及接口技术 任务描述 设计一个4×4的行列式键盘,当按下某一个按键时,在LED数码管上显示该按键的序号。 要求: (1) 在Proteus ISIS中完成键盘指示器电路设计。 (2) 在Keil μVision3中创建键盘指示器项目、编写、编译键盘指示器控制程序。 (3) 用Proteus和Keil C51仿真与调试键盘指示器。 * 8.1 键盘及其接口 8.1.1 键盘的管理及类型 键盘分为编码键盘和非编码键盘。编码键盘采用硬件电路实现键盘编码,内部有消抖电路,这种键盘硬件电路复杂,成本较高,在单片机应用系统中较少采用。非编码键盘仅提供按键工作状态,按键的编码或功能都由软件实现,硬件电路简单,使用灵活等特点,可以根据实际的需求确定按键数量,在单片机应用系统中被广泛使用。 1、键扫描过程与软件结构 当所设置的功能或数字键按下时,计算机应用系统应完成该按键所设定的功能。因此键信息输入与软件结构密切相关。对于一些系统的设计,比如红外遥控系统、调速、仪器仪表等系统,编写键盘程序是整个系统设计的核心。键扫描流程如图8-1所示。 2、按键抖动问题 在图8-2中,当开关S未被按下时,P1.0输入为高电平,S闭合后,P1.0输入为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1.0输入端的波形如图9-3所示。 为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。 软件方法 在单片机获得P1.0口为低的信息后,不是立即认定S已被按下,而是延时5~10毫秒或更长一些时间后再次检测P1.0口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1.0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。 硬件方法 单片机的硬件消抖通常采用稳态电路或滤波电路,如图8-4所示。 3、键值与键号 一组按键或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构不同,采用不同的编码方法。但无论有无编码最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的散转转移,详细在矩阵键盘中介绍。 4、键盘扫描方式 键盘处理既要即时响应按键操作又不能占用CPU太长时间而影响其他程序执行。CPU对键盘处理控制的工作方式有三种:程序扫描方式、定时扫描方式和中断扫描方式。 程序扫描方式:程序扫描方式是将键盘处理程序作为主程序的一部分,最多的是和显示程序一起构成应用系统的主程序,当主程序运行到键盘处理程序时,扫描键盘、检测按键状态,检测到有键输入执行相应的键功能程序。这种方式要求主程序循环时间周期不能太长,否则可能会漏掉按键检测的即时性。这种扫描的不足是没有按键时也要扫描,浪费CPU的时间。 定时扫描方式;定时扫描方式是用定时计数器反复产生中断,将键盘处理程序作为定时计数器的中断服务程序。CPU响应中断后扫描键盘,在有按键按下时处理相应键的功能程序,这种方式除了占用CPU时间还占用了定时计数器,实际应用中很少使用。 中断扫描方式:中断扫描方式利用外部中断源,当有键按下时产生中断请求,在中断服务程序中处理键盘程序。在没有键操作时CPU执行正常程序,只在有键操作时才处理键盘程序,这样不占用CPU的时间,在实际应用中常被采用。 5、编制键盘程序 监测有无键按下。 有键按下后,应采用消抖方法。 键锁定:即有键按下后,其间对任何其他键按下又松开的键不产生处理。 输出确定的键号以满足散转指令要求。 8.1.2 独立式键盘 1、独立式键盘结构 独立式按键是指直接用I/O口线构成的单个按键电路,其结构见图8-5。每个独立式按键单独占有一根I/O口线,每个I/O口线上的按键工作状态不会影响其他I/O口线工作状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大,故按键数量不多时,常采用这种按键电路。 通常按键输入都采用低电平有效。上拉电阻保证了按键断开I/O口线有确定的高电平,当I/O口内部有上拉电阻时外部电路可以不配置上拉电阻。 2、独立式按键应用 【例8-1】如图8-6所示。P3.2~P3.5分别接4个按键S1~S4,编制4个按键的扫描子程序。 #include reg51.h #include intrins.h //--定义要使用的IO口--// #define GPIO_KEY P3 //独立键盘用P3口 #define GPIO_LED P0 //led使用P0口 //--声明全局函数--// void Delay10m

文档评论(0)

139****1983 + 关注
实名认证
文档贡献者

副教授、一级建造师持证人

一线教师。

领域认证该用户于2023年06月21日上传了副教授、一级建造师

1亿VIP精品文档

相关文档