【51单片机】点亮LED灯的关键:开发板原理图解析
🎊专栏【51单片机】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【The Right Path】
🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰
目录
🍔基础内容
🏳️🌈sbit:特殊功能位声明
sbit 变量名=地址值;在给某个引脚取名的时候经常会用到。如上面对LED管脚的定义sbit led=P2^0。
如下图,就可以声明为
P2^0 P2^1 P2^2 P2^3等
🏳️🌈注意
⭐声明引脚必须要按照电路原理图上面给的引脚来声明,比如P0^1就是错的
🎆方法一
使用sbit
🍔现象&&代码
🎊点亮一个
🎈现象
🎈代码
#include <REGX52.H>
sbit led=P2^0; //将单片机的P2.0端口定义为led(当然也可以定义其他端口)
void main()
{
while(1)
{
led=0; //低电平
}
}
⭐可以看到LED模块是共阳极的,所以引脚(P2^0)要为0(低电平)
🎊点亮两个
🎈现象
🎈代码
#include <REGX52.H>
sbit led1=P2^0; //将单片机的P2.0端口定义为led(当然也可以定义其他端口)
sbit led2=P2^1;
void main()
{
while(1)
{
led1=0; //低电平
led2=0;
}
}
🎊点亮三个
🎈现象
🎈代码
#include <REGX52.H>
sbit led1=P2^0; //将单片机的P2.0端口定义为led(当然也可以定义其他端口)
sbit led2=P2^1;
sbit led3=P2^2;
void main()
{
while(1)
{
led1=0; //低电平
led2=0;
led3=0;
}
}
可以发现,声明不同的引脚,可以点亮不同的灯
🎆方法二
使用二进制
🍔现象&&代码
🎊点亮一个
🎈现象
🎈代码
#include <REGX52.H>
void main()
{
while(1)
{
P2=0xFE;
}
}
0xEF对应二进制1111 1110,最低位为0,所以P2.0 的输出被设置为低电平,其他位的输出都是高电平
🎊点亮两个
🎈现象
🎈代码
#include <REGX52.H>
void main()
{
while(1)
{
P2=0xFE; //1111 1110
P2=0xFD; //1111 1101
}
}
🏳️🌈总结(非常重要)
上面介绍了两种方式点亮LED灯,下面来说说一些注意事项
1.要看原理图,因为原理图上面的LED是P2的,所以如果写为P3=0xFE,就不能亮
2.sbit和使用二进制其实有一定的关联
比如P2=0xFE,对应二进制1111 1110,就是P2.0,和sbit led=P2^0是一样的
🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰