单片机控制LED灯
原创
©著作权归作者所有:来自51CTO博客作者wx6411ad6c4812c的原创作品,请联系作者获取转载授权,否则将追究法律责任

暑假参加全国大学生电子设计大赛,是我头一次接触单片机,那时候为了比赛就自己花了一二百元在淘宝上买了块单片机开发板,我买的时候因为不太了解单片机这块,所以买的有些贵了,也不太适合初学者入门学习,那是块普中科技的嵌入式开发板,核心是STM32,当然也支持插装C51单片机系列,板子是不错双核心两用的,但初学者的话建议买块30~60块钱的板子就行,便宜不代表质量不好,只是模块少了些,但基本的模块像LED灯、数码管、矩阵键盘、独立键盘、蜂鸣器、点阵、温度传感器、DS1302时钟模块这些应该还是会有的。
这次想给大家分享一下单片机控制LED灯方面的心得,和一些像闪烁灯、呼吸灯、流水灯、节奏灯等之类的小设计。
首先给大家介绍一下单片机如何点亮一颗LED
所需元器件如下:
STC89C52RC芯片 *1
10K电阻 *1
330Ω电阻 *1
10uF 电解电容 *1
22pF 瓷片电容 *2
12MHz晶振 *1
按键 *1
LED灯 *1
点亮一个LED灯电路图如下:

源程序如下:

/***************点亮第一个LED灯****************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
sbit LED=P0^0; //将单片机的P0.0端口定义为LED
void main()
{
LED=0; //给单片机端口P0^0一个高电平,LED灯亮
}
仿真电路图如下:

接下来是实现LED灯的闪烁,所需元件跟电路图不变,只需稍微改下代码即可,LED闪烁灯代码如下:
/*************** LED灯闪烁****************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
sbit LED=P0^0; //将单片机的P0.0端口定义为LED
typedef unsigned int u16;
void delay(u16 i) //延时函数,i=1时,大约延时10us
{
while(i--); //利用i自减循环以达到时间的流逝
}
void main()
{
LED=0; //给单片机端口P0^0一个高电平,LED灯亮
delay(50000);//延时约0.5s
LED=1; //给单片机端口P0^0一个低电平,LED灯灭
delay(50000);//延时约0.5s
}
代码跟电路都是亲测过的,下篇会给大家发关于单片机流水灯的电路图以及源代码~