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);//延时大约50ms
			LED1=1;//灭
			delay_10us(5000);//执行完后继续在while循环永远执行,就可以一直亮灭
		}
}

实验现象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值