标题:
呼吸灯的实现
[打印本页]
作者:
闪丨电
时间:
2017-6-18 23:19
标题:
呼吸灯的实现
硬件的原理设计是怎样的呢?现在软件编程方面大概的想法:
#include<reg52.h> //
包含头文件,一般情况不需要改动,
//
头文件包含特殊功能寄存器的定义
/*-------------------------IO
口定义
----------------------------*/
sbit LED0=P1^0;//
用
sbit
关键字
定义
LED
到
P1.0
端口,
LED
是自己任意定义且容易记忆的符号
void Delay(unsigned int t); //
函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;//
定义周期并赋值
while (1) //
主循环
{
LED0=1;
Delay(60000); //
特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){//PWM_LOW
表示低
//
电平时间,这个循环中低电平时长从
1
累加到
CYCLE
(周期)的值,即
600
次
LED0=0; //
点亮
LED
Delay(PWM_LOW);//
延时长度,
600
次循环中从
1
加至
599
LED0=1; //
熄灭
LED
Delay(CYCLE-PWM_LOW);//
延时长度,
600
次循环中从
599
减至
1
}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){//
与逐渐变亮相反的过程
LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);
}
//
主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数
unsigned int t
,无返回值
unsigned int
是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
作者:
qjyjack612510
时间:
2017-6-19 11:38
有人试过没?怎么样?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1