- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR的IO结构分析与操作
AVR的IO结构分析与操作
??????????????????????????????????????????? 作者 HJJourAVR? www.OurAVR.com????????
AVR的IO是真正双向IO结构,由于大部分网友都是从标准51转过来的,受标准51的准双向IO和布尔操作概念影响,没能掌握AVR的IO操作,所以有必要撰文说明一下
其实采用真正双向IO结构的新型MCU很多,常用的有 增强型51,PIC,AVR等
先简单的回顾一下标准51的准双向IO结构
这种准双向IO结构的特点是
??? 1 输出结构类似 OC门,输出低电平时,内部NMOS导通,驱动能力较强(800uA);输出高电平靠内部上拉电阻,驱动能力弱(60uA)。
??? 2 永远有内部电阻上拉(P0口除外),高电平输出电流能力很弱,所以即使IO口长时间短路到地也不会损坏IO口???????? (同理,IO口低电平输出能力较强,作低电平输出时不能长时间短路到VCC)
??? 3 作输入时,因为OC门有线与特性,必须把IO口设为高电平(所以按键多为共地接法)
??? 4 作输出时,输出低电平可以推动LED(也是很弱的),输出高电平通常需要外接缓冲电路(所以LED多为共阳接法)
??? 5 软件模拟 OC结构的总线反而比较方便-----例如 IIC总线
* P0口比较特殊,做外部总线时,是推挽输出,做普通IO时没有内部上拉电阻,所以P0口做按键输入需要外接上拉电阻。
* OC门:三极管的叫集电极开路,场效应管的叫漏极开路,简称开漏输出。具备线与能力,有0得0。
* 为什么设计成输出时高电平弱,低电平强----是考虑了当年流行的TTL器件输入特性
AVR的真正双向IO结构就复杂多了,单是控制端口的寄存器也有4个 PORTx.DDRx,PINx,SFIOR(PUD位),不过功能也强劲多了
作为通用数字I/O 使用时,所有AVR I/O 端口都具有真正的读- 修改- 写功能。这意味着用SBI 或CBI 指令改变某些管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻) 时不会无意地改变其他管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻)。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接驱动LED。所有的端口引脚都具有与电压无关的上拉电阻。并有保护二极管与VCC 和地相连。*?? (很多数字器件都有保护二极管,在低功耗应用时要考虑保护二极管的电流倒灌的影响)
每个端口都有三个I/O 存储器地址:???? 数据寄存器???? – PORTx???? 数据方向寄存器 – DDRx???? 端口输入引脚?? – PINx。数据寄存器PORTx和数据方向寄存器DDRx为读/ 写寄存器,而端口输入引脚PINx为只读寄存器。但是需要特别注意的是,对PINx 寄存器某一位写入逻辑1“ 将造成数据寄存器相应位的数据发生0“ 与“1“ 的交替变化。当寄存器MCUCR 的上拉禁止位PUD置位时所有端口引脚的上拉电阻都被禁止。
在( 高阻态) 三态({DDxn, PORTxn} = 0b00) 输出高电平({DDxn, PORTxn} = 0b11) 两种状态之间进行切换时,上拉电阻使能({DDxn, PORTxn} = 0b01) 或输出低电平({DDxn,PORTxn} = 0b10) 这两种模式必然会有一个发生。通常,上拉电阻使能是完全可以接受的,因为高阻环境不在意是强高电平输出还是上拉输出。如果使用情况不是这样子,可以通过置位SFIOR 寄存器的PUD 来禁止所有端口的上拉电阻。在上拉输入和输出低电平之间切换也有同样的问题。用户必须选择高阻态({DDxn,PORTxn} = 0b00) 或输出高电平({DDxn, PORTxn} = 0b10) 作为中间步骤。
不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平PINxn寄存器的各个位与其前面的锁存器组成了一个同步器。这样就可以避免在内部时钟状态发生改变的短时间范围内由于引脚电平变化而造成的信号不稳定。其缺点是引入了延迟。
AVR IO具备多种IO模式:
?? 1 高阻态 ,多用于高阻模拟信号输入,例如ADC数模转换器输入,模拟比较器输入
?? 2 弱上拉状态(Rup=20K~50K),输入用。为低电平信号输入作了优化,省去外部上拉电阻,例如按键输入,低电平中断触发信号输入
?? 3 推挽强输出状态,驱动能力特强(20mA),可直接推动LED,而且高低驱动能力对称.
使用注意事项:
????? 写用PORTx,读取用PINx
?????? 实验时,尽量不要把管脚直接接到GND/VCC,当设定不当,IO口将会输出/灌入 80mA(Vcc=5V)
您可能关注的文档
最近下载
- 2021届北京市海淀高三语文一模阅读部分讲评 课件(150张PPT).pptx
- 背负式风力灭火机的操作与使用 .ppt VIP
- 苏州七年级月考试卷及答案.doc VIP
- 山东科学技术版劳动实践指导手册三年级第11课公益劳动与志愿服务校园公益劳动清洁美化校园我行动 教案.docx VIP
- 2025年中级审计师测试题习题.docx VIP
- 一、毕业设计(论文)的目的和意义.doc VIP
- 四川大学软件学院2008级毕业设计启动会课程设计.ppt VIP
- 2025全科医生考试题及答案.docx VIP
- 大班科学标准教案小油滴不见了.pptx VIP
- 2024年隆昌市兴诚投资集团有限公司人员招聘考试题库及答案解析.docx VIP
文档评论(0)