欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 51单片机点亮一个LED介绍

51单片机点亮一个LED介绍

2025/10/5 18:48:40 来源:https://blog.csdn.net/2301_76466692/article/details/148056419  浏览:    关键词:51单片机点亮一个LED介绍

LED介绍

LED就是发光二极管,一般来说如果是直插式的,那就是长正短负,如果是贴片式的,那就带彩色标记是阴极,如果是三角形的,水平箭头指的就是阴极,通常一般的工作电压在3mA~20mA,当发光的时候,两端电压为1.7V

 

这是我们此次实验51单片机LED硬件资源,由图中可知,D1接在单片机P2.0口,并且LED采用共阳极接法,只需要让P2.0口接低电平就可以让LED点亮,RP9和RP10就是排阻,就是让一个个电阻组装到一个排阻里,可以使用更简单。

软件设计

本次要实现的功能是:点亮D1指示灯,即让P2.0管脚输出一个低电平。完成后再控制LED闪烁。

#include <REGX52.H>
sbit LED1=P2^0;//特殊寄存器位定义使用sbit关键字
void main()    //将P2^0重命名为LED1,程序从main函数执行
{LED1=0;//只需要将定义好的管脚赋值低电平就可以while(1){}
}

 

编译成功会先显示data=9,xdata=0,code=19,其中code表示占用程序flash字节,data表示数据存储器内部RAM占用字节,xdata表示占用外部数据存储器RAM字节

下面一行creating .hex files表示生成了.hex文件,将其烧录到单片机中即可运行

 

实验现象

闪烁软件设计

#include <REGX52.H>
typedef unsigned int u16;//将无符号整形重新定义为u16,以后程序看到u16就是unsigned int
sbit LED1=P2^0;//特殊寄存器位定义使用sbit关键字
void delay_10us(u16 ten_us)//当ten_us为1时,大约延时10us,这是使用循环语句占用CPU来延时,
{																										//并不是准确的延时,只是个大概while(ten_us--);
}
void main()    //将P2^0重命名为LED1,程序从main函数执行
{while(1){LED1=0;// 亮delay_10us(5000);//延时大约50msLED1=1;//灭delay_10us(5000);//执行完后继续在while循环永远执行,就可以一直亮灭}
}

实验现象

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词