专业做俄语网站建设,搜狗推广助手,商丘网站建设略奥网,app的制作费用#x1f38a;专栏【51单片机】 #x1f354;喜欢的诗句#xff1a;更喜岷山千里雪 三军过后尽开颜。 #x1f386;音乐分享【The Right Path】 #x1f970;大一同学小吉#xff0c;欢迎并且感谢大家指出我的问题#x1f970; 目录 #x1f354;基础内容
#x1f3f3… 专栏【51单片机】 喜欢的诗句更喜岷山千里雪 三军过后尽开颜。 音乐分享【The Right Path】 大一同学小吉欢迎并且感谢大家指出我的问题 目录 基础内容
️sbit特殊功能位声明
️注意
方法一
现象代码
点亮一个
现象
代码
点亮两个
现象
代码
点亮三个 现象
代码
方法二
现象代码
点亮一个
现象
代码
点亮两个
现象
代码 ️总结非常重要 基础内容
️sbit特殊功能位声明
sbit 变量名地址值在给某个引脚取名的时候经常会用到。如上面对LED管脚的定义sbit ledP2^0。 如下图就可以声明为
P2^0 P2^1 P2^2 P2^3等
️注意
⭐声明引脚必须要按照电路原理图上面给的引脚来声明比如P0^1就是错的 方法一
使用sbit
现象代码
点亮一个
现象 代码
#include REGX52.Hsbit ledP2^0; //将单片机的P2.0端口定义为led当然也可以定义其他端口void main()
{while(1) {led0; //低电平}
}
⭐可以看到LED模块是共阳极的所以引脚P2^0要为0低电平
点亮两个
现象 代码
#include REGX52.Hsbit led1P2^0; //将单片机的P2.0端口定义为led当然也可以定义其他端口
sbit led2P2^1;
void main()
{while(1) {led10; //低电平led20;}
}
点亮三个 现象 代码
#include REGX52.Hsbit led1P2^0; //将单片机的P2.0端口定义为led当然也可以定义其他端口
sbit led2P2^1;
sbit led3P2^2;
void main()
{while(1) {led10; //低电平led20;led30;}
}
可以发现声明不同的引脚可以点亮不同的灯
方法二
使用二进制
现象代码
点亮一个
现象 代码
#include REGX52.Hvoid main()
{while(1) {P20xFE; }
}
0xEF对应二进制1111 1110最低位为0所以P2.0 的输出被设置为低电平其他位的输出都是高电平
点亮两个
现象 代码
#include REGX52.Hvoid main()
{while(1) {P20xFE; //1111 1110P20xFD; //1111 1101}
} ️总结非常重要
上面介绍了两种方式点亮LED灯下面来说说一些注意事项
1.要看原理图因为原理图上面的LED是P2的所以如果写为P30xFE就不能亮
2.sbit和使用二进制其实有一定的关联
比如P20xFE对应二进制1111 1110就是P2.0和sbit ledP2^0是一样的 如果大家有不明白的地方或者文章有问题欢迎大家在评论区讨论指正