I/O口是单片机与外界联系的通道。
它可对各类外部信号(开关量、模拟量、频率信一号)进行检测、判断、处理,并可控制各类外部设备。单片机通过I/O口感知外界的存在,而外界也通过I/O口感知单片机的存在。
现在的单片机I/O口已经集成了更多的特性和功能。因此,在学习某一款单片机时,需要先了解其I/O口具有哪些特性和特殊的应用功能(不同的单片机是有所差别的),并因地制宜设计外围电路、编写控制软件,充分发挥该I/O口的优势。
1.输入/输出概念
大多数I/O口都是双向三态的。根据具体应用情况,可以分为输入口和输出口。输人口用来读取外部输人的电平信号,输出口则用于对外输出一个电平信号。
有些单片机(如PIC)允许设置I/O口的输入/输出状态。这样做的好处是可以让I/O口适应更多的应用环境:当I/O口处于输入状态时,对外表现为“高阻态”;而当I/O口处于输出状态时,对外可以提供更大的灌电流或拉电流,这样可以直接驱动一些如LED之类的负载。无需再外扩驱动电路了。
2.输入门槛电平
对于51系列单片机来说,输入电平低于0.7V就是低电平,高于1. 8 V就是高电平。如果输入的电平介于二者之间,那么CPU在读取该I/O口时可能会得到一个不确定的错误数据。一般来说,我们不希望输入口上出现这种模棱两可的电平状态(除非那个口是ADC检测口)。
3.最大输出电流
这个特性是针对输出来讲的。最大输出电流包括两种:灌电流和拉电流。灌电流是指当I/O口输出“0”(低电平)时允许灌人(流入)该I/O口的电流;拉电流则是指当I/O口输出“1"(高电平)时允许流出的电流。
4.输出电平
这个特性是也针对输出来讲的,包括两种:“0”(低电平电压)和“1"(高电平电压)。理想状态上来说,输出高电平应该等于单片机的工作电压Vcc。但是实际由于内阻的关系,输出高电平会略低于Vcc。尤其是当拉电流较大时,高电平会被进一步拉低。同样的道理,输出低电平也往往不是正好等于0V,而是有可能比0V高出一点。
5.I/O口附加功能
许多单片机都为I/O口集成了许多新的功能控制,包括内部上拉/下拉电阻功能、R-op-TION功能以及漏极(或集电极)开路功能。如果能够合理地使用这些功能,就可以简化外围工作电路。
6.I/O口功能的拓展与复用
包括中断、唤醒、ADC检测以及PWM输出等。