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

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

先给大家看一下仿真软件的电路(软件为Proteus)
51单片机:点亮一个LED并闪烁(仿真+代码)_第1张图片
左侧为时钟电路和复位电路,右侧便是我们的实验电路。

实验电路:一个LED灯+100电阻
(因为LED电压电流很小,所以必须加一个电阻限流一下,在现实试验中我们也得加个电阻,不要太大也不能太小,不然起不到作用)
右击晶振点击属性改12KHz,LED段的电阻同样点开属性改为100,其余的话数值可以不用改动。
单片机下载程序,只要右击单片机进入属性找到程序文件夹中的后缀名为.hex,确定就好。
51单片机:点亮一个LED并闪烁(仿真+代码)_第2张图片
上图是在仿真软件中需要用到的元件,点击元件模式——再点P标志——搜索(框中的元件名),
AT89C51RC2:单片机
BUTTON:按键
CAP:电容
CRYSTAL:晶振
LED-GERRN:LED灯(绿色)
RES:电阻
51单片机:点亮一个LED并闪烁(仿真+代码)_第3张图片
上图是电源的选择,点击终端模式——框中的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那个打上勾后才能输出我们要的文件格式)

你可能感兴趣的:(LED,单片机)