×
嵌入式 > 嵌入式开发 > 详情

实现5V单片机与3.3V器件实现电平兼容

发布时间:2020-08-28 发布时间:
|
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 ,//验证成功!
}
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机汇编语言 如何实现点亮熄灭二极管