单片机控制LED灯

暑假参加全国大学生电子设计大赛,是我头一次接触单片机,那时候为了比赛就自己花了一二百元在淘宝上买了块单片机开发板,我买的时候因为不太了解单片机这块,所以买的有些贵了,也不太适合初学者入门学习,那是块普中科技的嵌入式开发板,核心是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灯_第1张图片
源程序如下:

/***************点亮第一个LED灯****************/
#include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器
sbit LED=P0^0;	   //将单片机的P0.0端口定义为LED

void main()   
{
	LED=0;     //给单片机端口P0^0一个高电平,LED灯亮
}

仿真电路图如下:
单片机控制LED灯_第2张图片
接下来是实现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
}

代码跟电路都是亲测过的,下篇会给大家发关于单片机流水灯的电路图以及源代码~

你可能感兴趣的:(#,似水的年华流水的灯)