第六章通用IO接口的基本结构与基本应用.doc

第六章通用IO接口的基本结构与基本应用.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章通用IO接口的基本结构与基本应用

基于 AVR 的单片嵌入式系统原理与实践应用 第 6 章 通用I/O接口基本结构与输出应用 从本章开始,将从 AVR 单片机的基本功能单元入手,讲解其各个外围功能部件的基本组 成和特性,以及它们的应用。 ATmega16 芯片有 PORTA、PORTB、PORTC、PORTD(简称 PA、PB、PC、PD)4 组 8 位,共 32 路通用 I/O 接口,分别对应于芯片上 32 根 I/O 引脚。所有这些 I/O 口都是双(有的为 3) 功能复用的。其中第一功能均作为数字通用 I/O 接口使用,而复用功能则分别用于中断、时 钟/计数器、USRAT、I2C 和 SPI 串行通信、模拟比较、捕捉等应用。这些 I/O 口同外围电路 的有机组合,构成各式各样的单片机嵌入式系统的前向、后向通道接口,人机交互接口和数 据通信接口,形成和实现了千变万化的应用。 由于刚开始学习 I/O 的应用,读者还没有掌握中断和定时计数器的使用,所以在本章的 实例中,调用了 CVAVR 提供的软件延时函数来实现时间延时等待的功能。 需要指出的是,使用软件延时的方式会造成 MCU 效率的下降,而且也不能实现精确的延 时,所以在一般情况下应尽量不使用软件延时的方式。在后面的章节里,会逐步介绍如何使 用 T/C 和中断实现延时的正确方法。 6.1 通用I/O口的基本结构与特性 6.1.1 I/O口的基本结构 图 6-1 为 AVR 单片机通用 I/O 口的基本结构示意图。从图中可以看出,每组 I/O 口配备 三个 8 位寄存器,它们分别是方向控制寄存器 DDRx,数据寄存器 PORTx,和输入引脚寄存器 PINx(x=A\B\C\D)。I/O 口的工作方式和表现特征由这 3 个 I/O 口寄存器控制。 数 据 总 线  DDRx 0 PORTx 0 PINx ?  方向:输入 上拉:OFF  上 拉  物理引脚 ? 图 6-1 通用 I/O 口结构示意图 华东师范大学 电子系 马 潮 6-1 第 6 章 通用 I/O 接口基本结构与输出应用 方向控制寄存器 DDRx 用于控制 I/O 口的输入输出方向,即控制 I/O 口的工作方式为输 出方式还是输入方式。 当 DDRx=1 时,I/O 口处于输出工作方式。此时数据寄存器 PORTx 中的数据通过一个推 挽电路输出到外部引脚(图 6-2)。AVR 的输出采用推挽电路提高了 I/O 口的输出能力,当 PORTx=1 时,I/O 引脚呈现高电平,同时可提供输出 20mA 的电流;而当 PORTx=0 时,I/O 引 脚呈现低电平,同时可吸纳 20mA 电流。因此,AVR 的 I/O 在输出方式下提供了比较大的驱 动能力,可以直接驱动 LED 等小功率外围器件。 当 DDRx=0 时,I/O 处于输入工作方式。此时引脚寄存器 PINx 中的数据就是外部引脚的 实际电平,通过读 I/O 指令可将物理引脚的真实数据读入 MCU。此外,当 I/O 口定义为输入 时(DDRx=0),通过 PORTx 的控制,可使用或不使用内部的上拉电阻(图 6-3)。 数 据 总 线  DDRx 1 PORTx 1 PINx 1  方向:输出 上拉:OFF  上 拉  物理引脚 1 数 据 总 线  图 6-2 通用 I/O 口输出工作方式示意图 DDRx 0 PORTx 1 PINx ? 方向:输入 上拉:ON  上 拉  物理引脚 ? 图 6-3 通用 I/O 口输入工作方式示意图(带内部上拉) 表 6.1 是 AVR 通用 I/O 端口的引脚配置情况。 华东师范大学 电子系 马 潮 6-2 基于 AVR 的单片嵌入式系统原理与实践应用 表 6.1 I/O 口引脚配置表 DDRXn PORTXn PUD I/O 方式 内部上拉电阻 引脚状态说明 0 0 0 1 1 0 1 1 0 1 X 0 1 X X 输入 输入 输入 输出 输出 无效 有效 无效 无效 无效 三态(高阻) 外部引脚拉低时输出电流(uA) 三态(高阻) 推挽 0 输出,吸收电流(20mA) 推挽 1 输出,输出电流(20mA) 表中的 PUD 为寄存器 SFIOR 中的一位,它的作用相当 AVR 全部 I/O 口内部上拉电阻的总 开关。当 PUD=1 时,AVR 所有 I/O 内部上拉电阻都不起作用(全局内部上拉无效);而 PUD=0 时,各个 I/O 口内部上拉电阻取决于 DDRXn 的设置。 AVR 通用 I/O 端口的主要特点为: ? 双向可独立位控的 I/O 口 ATmega16 的 PA、PB、PC、PD 四个端口都是 8 位双向 I/O 口,每一位引脚都可以单独的 进行定义

文档评论(0)

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

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

1亿VIP精品文档

相关文档