单片机输入输出接口和系统扩展设计.ppt

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 单片机输入输出接口及系统扩展设计 预备知识 MCS-51的I/O接口形式主要分两类: 通过并行端口(P0~P3)直接完成输入输出 单片机并行接口内部结构可参阅第二章 单片机通过执行指令MOV A,Px完成端口输入 单片机通过执行指令MOV Px,A完成端口输出 通过系统总线扩展完成输入输出 单片机总线扩展操作时序可参阅第二章 单片机通过执行指令MOVX A,@DPTR完成总线输入 单片机通过执行指令MOVX @DPTR,A完成总线输出 第六章 单片机输入输出接口及系统扩展设计 6.1 键盘及其接口设计 6.1.1 键盘的基本工作原理 按键一般通过机械触点实现通断 单片机通过I/O端口输入触点状态判断按键的状态 按键按下及弹起时会有抖动现象 6.1.1 键盘的基本工作原理 对抖动现象的处理方法: 使用如图所示的消抖电路(成本高,体积大) 使用软件消抖(电路简化,软件复杂度提高) 使用专用集成电路 6.1.2 独立式键盘接口的设计 独立式键盘中每个按键都单独连接到单片机的一个端口引脚上,由程序分别处理 多个独立式按键组合在一起就构成了独立式键盘 6.1.2 独立式键盘接口的设计 也可如下图所示,采用中断的方式响应按键事件 6.1.2 独立式键盘接口的设计 两种工作方式的程序设计请参阅教材 6.1.3 行列式键盘接口设计 由横跨行线和列线的开关矩阵组成的键盘 行列式键盘可有效节约端口引脚的使用 6.1.3 行列式键盘接口设计 行列式键盘按键识别原理 当行线作为输出,列线作为输入时: 定时控制某根行线输出低电平,且不断循环; 读入所有列线,如果结果不为全1,则有按键按下; 找到读入为0的列,结合目前输出低电平的行,即可判断出具体的按键位置。 6.1.3 行列式键盘接口设计 6.1.3 行列式键盘接口设计 按键抖动的问题 可采用如下方法解决按键抖动问题: (1) 方法1 扫描到按键按下后,等待20ms,再次读入按键状态进行确认。这种方法很方便,但是等待过程太浪费CPU时间。 (2) 方法2 采用定时间隔扫描和异或法判断按键,将间隔值设置成大于抖动时间的值,例如20ms甚至更大,这样即使某次扫描正好处于抖动阶段,也不会对结果产生影响(但会使判断结果延时一次扫描间隔输出)。 6.1.3 行列式键盘接口设计 行列式键盘程序设计方法 方法1:循环扫描 6.1.3 行列式键盘接口设计 行列式键盘程序设计方法 方法2:定时中断扫描 第六章 单片机输入输出接口及系统扩展设计 6.2 LED显示器及其接口设计 6.2.1 数码管显示器的结构和原理 1、单个LED的驱动 通过单片机端口引脚灌电流方式驱动 6.2.1 数码管显示器的结构和原理 1、单个LED的驱动 通过单片机端口驱动三极管的方式驱动 6.2.1 数码管显示器的结构和原理 1、单个LED的驱动 通过单片机端口驱动专用集成电路的方式驱动 6.2.1 数码管显示器的结构和原理 2、单个数码管的驱动 将多个LED封装在一起,即可构成笔划式数码管 根据内部电路连接方式,数码管可分为共阳型和共阴型两种 下图为最常见的8段数码管的结构: 6.2.1 数码管显示器的结构和原理 2、单个数码管的驱动 单片机驱动数码管中不同的笔划点亮,即可构成不同的字型; 单片机驱动共阳型数码管的典型电路如下: 6.2.1 数码管显示器的结构和原理 2、单个数码管的驱动 构成不同字型的驱动编码称为数码管的字型码 对于共阳型的数码管,单片机端口输出0相应笔划点亮,根据0~F不同字型数码管点亮的段,以及单片机端口引脚和数码管各段的连接顺序,相应的字形码如下页表所示: 6.2.1 数码管显示器的结构和原理 6.2.2 数码管的静态驱动和动态驱动 1、数码管的静态驱动 所谓静态显示,就是数码管的各笔划段都由具有锁存能力的I/O端口引脚驱动,CPU将段码写入锁存器后,每个数码管都由锁存器的输出信号持续驱动。直到下一次CPU更新锁存器存储的段码之前,数码管的显示不会改变; 当需要用静态显示的方法驱动多个数码管时,就需要使用多个具有锁存能力的I/O端口,每个端口驱动一个数码管的显示。 6.2.2 数码管的静态驱动和动态驱动 1、数码管的静态驱动 多个共阳型数码管的静态驱动电路 6.2.2 数码管的静态驱动和动态驱动 2、数码管的动态驱动 所谓动态显示驱动,就是通过软件,间隔固定时间对每一位数码管轮流驱动,使其交替点亮; 动态显示驱动利用了人眼的“视觉暂留”现象,只要数码管点亮的间隔小于人眼的视觉暂留时间(约40ms),人们就会认为数码管是一直点亮的; 由于每次驱动只点亮一个数码管,因此驱动电路可大大简化──所有笔划驱动可以同名复接在一起。为了控制数码管轮流点亮,应增加位显示驱动控制线。具体电路如下页图所示: 6.2.2 数码管的

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档