4.1.5 闪烁1个LED
一、简介
本文介绍如何利用单片机让led灯闪烁
二、实验平台
单片机型号:STC12C5A60S2
编译软件:KEIL
硬件平台:达芬奇51开发版
三、版权声明
博主:文武先生
声明:喝水不忘挖井人,转载请注明出处。
原文地址:
联系方式:644746740@qq.com
51单片机群:463850023
四、讲解
我们从以上实验学到了如何去控制IO口,进而控制LED的亮灭,那么我们这节实验就让LED闪烁起来。
/***************************SantaE_VinciPI_51开发板***************************/
/*工程名称:IO口高低电平控制
/*淘宝店铺:
/*编写时间:2014年09月15日
/*硬件支持:SantaE_VinciPI_51开发板 V1.0
/*编写人员:SantaE
/*实验内容:让P2端口8个led闪烁
/*****************************************************************************/
#include<STC12C5A.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
定义
------------------------------------------------*/
sbit LED_Switch = P3^3;// 8个led开关;
sbit LED0 = P2^0;
/*------------------------------------------------
函数声明
------------------------------------------------*/
void Delay(unsigned int t); //函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
P2M0 = 0XFF; //设置P2端口推挽输出
P2M1 = 0X00;
P2 = 0x00; //初始化P2端口数据
LED_Switch = 0; //打开流水灯开关
while (1) //主循环
{
LED0 = 0; //将P1口赋值 0,对外输出低电平
Delay(10000); //调用延时程序;更改延时数字可以更改延时长度;
Delay(60000);
Delay(60000);
Delay(60000);
Delay(60000);
Delay(60000);
Delay(60000); //用于改变闪烁频率
LED0 = 1; //将P1口赋值 1,对外输出高电平
Delay(10000);
Delay(60000);
Delay(60000);
Delay(60000);
Delay(60000);
Delay(60000);
Delay(60000); //主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数 unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t)
{
;
}
}
/******************************版权归SantaE所有*********************************/
闪烁,就是让LED亮一会,灭一会。
传送门