51单片机:点亮一个LED并闪烁(仿真+代码)

这篇博客介绍了如何使用51单片机进行LED闪烁实验。通过在Proteus仿真软件搭建电路,包括时钟、复位和LED+电阻电路,并详细说明了元件属性设置。在keil软件中编写程序,定义引脚并实现LED的周期性闪烁。实验强调了单片机的作用和实际操作中的注意事项。

点亮一个LED,这是单片机的一个最简单的入门实验。能让你初步了解到单片机的作用。(因为简单就只在仿真软件上给大家看一下)

先给大家看一下仿真软件的电路(软件为Proteus)
左侧为时钟电路和复位电路,右侧便是我们的实验电路
左侧为时钟电路和复位电路,右侧便是我们的实验电路。

实验电路:一个LED灯+100电阻
(因为LED电压电流很小,所以必须加一个电阻限流一下,在现实试验中我们也得加个电阻,不要太大也不能太小,不然起不到作用)
右击晶振点击属性改12KHz,LED段的电阻同样点开属性改为100,其余的话数值可以不用改动。
单片机下载程序,只要右击单片机进入属性找到程序文件夹中的后缀名为.hex,确定就好。
在这里插入图片描述
上图是在仿真软件中需要用到的元件,点击元件模式——再点P标志——搜索(框中的元件名),
AT89C51RC2:单片机
BUTTON:按键
CAP:电容
CRYSTAL:晶振
LED-GERRN:LED灯(绿色)
RES:电阻
在这里插入图片描述
上图是电源的选择,点击终端模式——框中的POWER和GROUND分别为VCC和GND,也就是5V电源和地线。

接下来是程序部分(软件为keil)

#include"reg51.h"	//定义头文件

sbit led=P2^0; 	   //定义引脚

void delay(unsigned char i)	  //延时函数   i=1时 延时10us
{
    while(i--);
}

void main()		 //main代表主函数,程序执行的部分
{
	led=0;
	while(1)	//代表这循环
	{
		led=~led;  //~表示之前的值取反,即0变1 1变0
		delay(100);	 //延时,使得led灯闪烁
	}
}

首先定义一下引脚,在仿真软件中我们LED连接着单片机的P2^0,且LED的负极连接着单片机,因此引脚必须输出低电平,才能点亮LED 。在主函数中,先使led=0,此时灯亮,进入while循环,led取反,led=1,灯不亮,delay延时1ms,再对led取反,由此反复,我们就看到了led闪烁的情况。

(PS:软件在编写完成后必须在设置中设置震荡为12KHz,在.hex那个打上勾后才能输出我们要的文件格式)

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值