51单片机的P0口开漏极输出,不只能够便利驱动LED(LED与电阻串联后直接接在P0口开漏极输出处,另一端要接电源正极),并且更重要的是能够完成电平兼容,比如说,5V的单片机要和3.3V的元件相连接,例如STC89C52RC单片机(5V)要与LT8900无线模块(3.3V)完成通讯,那么,咱们能够将LT8900无线模块的通讯端口接在51单片机的P0口开漏极输出处,不过P0口要接上拉电阻(一般挑选10K的上拉电阻),接下来就要特别注意了,上拉电阻的电源端引脚要接到3.3V,而不是像往常的使用那样直接与单片机供电的5V电源相连接。当然,能够这样做的条件是你的板子上要有5V转3.3V的电压转化电路。这样,就能够完成电平兼容了。以下是测验验证程序:
#include
//STC89C52RC,5V单片机,P03口接上拉电阻,上拉10K电阻另一端接3.3V(电平兼容测验)
sbit P03 = P0^3;
sbit P10 = P1^0;
void main(void)
{
// 单片机输出测验
//P03 = 1;//此刻丈量P03口,其电压应为3.3V//验证成功!
//P03 = 0;//此刻丈量P03口,其电压应为0V//验证成功!
//P0 = 0xff; //此刻测验P03口和P0口其他IO的差异,
//试验标明,只要接上拉电阻的P03口电压为3.3V,其他不接上拉电阻的P0口电压在1.3-1.5V之间
//P0 = 0x00; //此刻测验P03口和P0口其他IO的差异,
//试验标明,不管是否接上拉电阻,其电压都是0V
//外部输入(高电平为3.3V,低电平为0V)测验
while(1)
{
P03 = 1;//检测外部输入时,需求先向IO写1
if (P03)P10 = 0; //检测到P03口输入为高时(3.3V),令P10口为0 ,//验证成功!
else P10 = 1;//检测到P03口输入为低时(0V),令P10口为1 ,//验证成功!
}
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/256784.html