/*通过PWM(脉宽调制)调节LED的亮度,用这种方法也可以调节其他器件的功率
开发或设计功能时,先分析所在器件的电压、电流、脉冲频率的特点
然后根据所需脉冲的频率特点,用程序语句来把它描述出来就可以实现相应的功能控制了*/
#include<reg51.h>//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit LED0=P1^0; // 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易**的符号
void Delay(unsigned int t)
{
while(--t);
}
void main()
{
unsigned int CYCLE=600,PWM_LOW;//定义周期并赋值
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
}
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)//与逐渐变亮相反的过程
{
LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);
}
//主循环中添加其他需要一直工作的程序
}
}
|