不同频率闪烁多个LED灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义
/*-------------------------IO口定义----------------------------*/
sbit P20 = P2^0;//这是为了关闭开发板上的数码管实际应用去掉
sbit P21 = P2^1;//这是为了关闭开发板上的数码管实际应用去掉
sbit CS88 = P2^2;//这是为了关闭开发板上的点阵实际应用去掉
sbit LED0=P1^0;// 用sbit 关键字定义LED到P1.0端口,LED是自己任意定义且容易记忆的符号
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;
void Delay(unsigned int t); //函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
//此方法使用bit位对单个端口赋值
unsigned char i; //定义一个无符号字符型局部变量i 取值范围0~255
P1=0x00;//这是为了关闭开发板上的数码管实际应用去掉
P20=0; //这是为了关闭开发板上的数码管实际应用去掉
P21=0; //这是为了关闭开发板上的数码管实际应用去掉
CS88=0; //这是为了关闭开发板上的点阵实际应用去掉
P1=0xFF;//P1口置1
while (1) //主循环
{
for(i=0;i<10;i++) //加入for循环,表明for循环大括号中
//的程序循环执行10次
{
LED0=0; //将P1.0口赋值0,对外输出低电平
LED2=1;
LED4=0;
Delay(5000); //调用延时程序;更改延时数字可以更改延时长度;
//用于改变闪烁频率
LED0=1; //将P1.0口赋值1,对外输出高电平
LED2=0;
LED4=1;
Delay(5000);
}
for(i=0;i<10;i++)
{
LED0=0; //将P1.0口赋值0,对外输出低电平
LED2=1;
LED4=0;
Delay(60000); //调用延时程序;更改延时数字可以更改延时长度;
//用于改变闪烁频率
LED0=1; //将P1.0口赋值1,对外输出高电平
LED2=0;
LED4=1;
Delay(60000);
}
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}。