单片机对外部器件的控制或接受外部器件控制,都是通过I/O接口实现的。采用DIP 40封装的MCS-51系列单片机有P0、P1、P2、P34组共32个双向输入输出(I/O)端口,每组8个接口与各自对应的锁存器、输出驱动器和输入缓冲器连接,如P0接口与单片机内部的P0寄存器连接,P0.0接口与P0寄存器的P0.0连接。在具有片外扩展存储器的系统中,P2接口作为高8位地址线,P0接口分时用于低8位地址线和双向数据总线。
1.I/O接口直接驱动负载
MCS-51系列单片机的4组I/O接口内部电路有很大差别,其中P1、P2和P3采用场效应晶体管互补对称输出方式,输出的高低电平与TTL电平兼容;P0接口采用OD门输出,高电平输出时没有拉出电流,因此不具有高电平驱动能力。但P0接口输出低电平时,灌入电流达到5~20mA,具有较强的低电平驱动能力,在不加上拉电阻的情况下,P0可以直接驱动小功率的负载。
图3-1 P0接口驱动LED电路
图3-1a所示的电路是P0.0接口低电平驱动LED电路。直径3~5mm红色或橙色LED,正常工作电流一般在10mA以下,在使用中为了保证LED安全工作,电路中LED需要加限流电阻R1保护,R1取值一般为几百到几千欧姆。
由于P0输出漏极与电源正极之间开路,即使通过编程让P0输出高电平,但是实际只能输出低电平。如果利用高电平驱动门电路或LED这样的小功率负载,P0必须加上拉电阻。图3-1b是单片机P0.0高电平驱动LED电路,P0.0接口与电源之间接有一个电阻R1。当P0.0接口输出低电平时,LED的正极为低电平,P0.0接口吸收了从电源正极出发经过电阻的电流,此时LED不亮;当P0接口设置为高电平时,经过电阻R1的电流无法进入P0.0接口,只能通过LED,此时LED点亮。这里所指的高电平为电源正极+5V电压,低电平为0V或地。(www.xing528.com)
根据管型和材料及功率不同,LED工作电流差别比较大。一般作为电平显示常用的LED工作电流很小,单片机的I/O接口可以直接驱动;对于大功率LED,比如超高亮LED、大功率白光LED、红外LED、交通灯以及LED阵列汉字屏等,驱动电流可达几百毫安甚至更大,单片机如果驱动这些器件时,需要利用缓冲器间接驱动。
2.I/O间接驱动
继电器、晶闸管、蜂鸣器、数码管、电动机等都是单片机外部常用的受控部件。虽然单片机的I/O接口低电平驱动能力比较强,但负载电流过大会引起单片机过热,从而使系统稳定性能下降。为了提高系统的控制稳定性,较大电流的负载驱动,一般采用间接驱动方式。图3-2a所示的电路为蜂鸣器驱动电路,图3-2b为继电器驱动电路,图3-2c为采用光耦合器、继电器光隔离驱动。在这些电路的基础上,大功率负载可以通过继电器直接控制,交流负载可以通过光电晶闸管控制。由于单片机在启动时I/O接口输出为高电平,为避免误操作,晶体管一般采用PNP型。晶体管基极限流电阻阻值大小选择,以满足端口输出低电平时能使NPN型晶体管工作在饱和区为准。
图3-2 负载间接驱动
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。