您现在的位置是:首页 >技术杂谈 >【51单片机】点亮一个LED灯(看开发板原理图十分重要)网站首页技术杂谈

【51单片机】点亮一个LED灯(看开发板原理图十分重要)

在下小吉. 2024-06-02 12:00:03
简介【51单片机】点亮一个LED灯(看开发板原理图十分重要)

?专栏【51单片机

?喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。

?音乐分享【The Right Path

?大一同学小吉,欢迎并且感谢大家指出我的问题?

目录

?基础内容

?️‍?sbit:特殊功能位声明

?️‍?注意

?方法一 

?现象&&代码

?点亮一个

?现象

?代码

?点亮两个

?现象

?代码

?点亮三个 

 ?现象

?代码

?方法二 

?现象&&代码

?点亮一个

?现象

?代码

?点亮两个

?现象

?代码 

 ?️‍?总结(非常重要)


?基础内容

?️‍?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是一样的

 

 ?如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正?

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。