欢迎来到天天文库
浏览记录
ID:38037241
大小:34.00 KB
页数:3页
时间:2019-05-25
《对AVR_I_O口的_理解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学习ATMEL89S5X系列单片机也有快两年了,前段时间接到个项目,帮别人做的GPS中的模块,磁场检测用的,通俗来说就是做个数字指南针,因为考虑到成本和速度几个问题,用89S5X系列做很不和算,所以逼着学新东西了。因为有51系列单片机的基础,对AVR的学习还算顺利,看了他的DATASHEET后,差不多就清楚了这个单片机有那些功能了。学习差不多的东西的时候,有对比才能学的更快,所以先来对比下标准51单片机和AVR的I/O口的区别吧:一:标准51的准双向IO结构的特点是 1输出结构类似OC门,输出低电平时,内部NMOS导通,驱动能力较强(80
2、0uA);输出高电平靠内部上拉电阻,驱动能力弱(60uA)。 2永远有内部电阻上拉(P0口除外),高电平输出电流能力很弱,所以即使IO口长时间短路到地也不会损坏IO口 (同理,IO口低电平输出能力较强,作低电平输出时不能长时间短路到VCC) 3作输入时,因为OC门有"线与"特性,必须把IO口设为高电平(所以按键多为共地接法) 4作输出时,输出低电平可以推动LED(也是很弱的),输出高电平通常需要外接缓冲电路(所以LED多为共阳接法) 5软件模拟OC结构的总线反而比较方便-----例如IIC总线*P0口比较
3、特殊,做外部总线时,是推挽输出,做普通IO时没有内部上拉电阻,所以P0口做按键输入需要外接上拉电阻。*OC门:三极管的叫集电极开路,场效应管的叫漏极开路,简称开漏输出。具备"线与"能力,有0得0。*为什么设计成输出时高电平弱,低电平强----是考虑了当年流行的TTL器件输入特性 二:AVR单片机I/O口 AVR的真正双向IO结构复杂多了,单是控制端口的寄存器也有4个PORTx.DDRx,PINx,SFIOR(PUD位),不过功能也强劲多了 作为通用数字I/O使用时,所有AVRI/O端口都具有真正的读-修改-写功能。
4、 这意味着用SBI或CBI指令改变某些管脚的方向(或者是端口电平、禁止/使能上拉电阻)时不会无意地改变其他管脚的方向(或者是端口电平、禁止/使能上拉电阻)。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接驱动LED。所有的端口引脚都具有与电压无关的上拉电阻。并有保护二极管与VCC和地相连。* (很多数字器件都有保护二极管,在低功耗应用时要考虑保护二极管的电流倒灌的影响)每个端口都有三个I/O存储器地址: 数据寄存器 –PORTx 数据方向寄存器–DDRx 端口输入引脚 –PINx。数据寄存器POR
5、Tx和数据方向寄存器DDRx为读/写寄存器,而端口输入引脚PINx为只读寄存器。但是需要特别注意的是,对PINx寄存器某一位写入逻辑"1“将造成数据寄存器相应位的数据发生"0“与“1“的交替变化。当寄存器MCUCR的上拉禁止位PUD置位时所有端口引脚的上拉电阻都被禁止。 在(高阻态)三态({DDxn,PORTxn}=0b00)输出高电平({DDxn,PORTxn}=0b11)两种状态之间进行切换时,上拉电阻使能({DDxn,PORTxn}=0b01)或输出低电平({DDxn,PORTxn}=0b10)这两种模式必然会有一个发生。 通
6、常,上拉电阻使能是完全可以接受的,因为高阻环境不在意是强高电平输出还是上拉输出。如果使用情况不是这样子,可以通过置位SFIOR寄存器的PUD来禁止所有端口的上拉电阻。在上拉输入和输出低电平之间切换也有同样的问题。用户必须选择高阻态({DDxn,PORTxn}=0b00)或输出高电平({DDxn,PORTxn}=0b10)作为中间步骤。不论如何配置DDxn,都可以通过读取PINxn寄存器来获得引脚电平PINxn寄存器的各个位与其前面的锁存器组成了一个同步器。这样就可以避免在内部时钟状态发生改变的短时间范围内由于引脚电平变化而造成的信号不稳定。其缺
7、点是引入了延迟。 AVRIO具备多种IO模式: 1高阻态,多用于高阻模拟信号输入,例如ADC数模转换器输入,模拟比较器输入 2弱上拉状态(Rup=20K~50K),输入用。为低电平信号输入作了优化,省去外部上拉电阻,例如按键输入,低电平中断触发信号输入 3推挽强输出状态,驱动能力特强(>20mA),可直接推动LED,而且高低驱动能力对称. 使用注意事项: 写用PORTx,读取用PINx 实验时,尽量不要把管脚直接接到GND/VCC,当设定不当,IO口将会输出/灌入80mA(Vcc=5V)的大电流,导致器件损坏
8、。 1.作输入时: 1通常要使能内部上拉电阻,悬空(高阻态)将会很容易受干扰。(表面看好像是51的抗干扰能力强,是因为51永远有内部
此文档下载收益归作者所有