热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自动感光调节LED灯亮度C语言程序,PWM控制LED灯的亮度(C语言)

原标题:PWM控制LED灯的亮度(C语言)控制的亮度,通过调节电压的方式可以达到,但不理想,而且可调的范围很小,电压稍高,还容易把烧毁,唯一可行的方法就是通过PWM(

原标题:PWM控制LED灯的亮度(C 语言)

控制 的亮度,通过调节电压的方式可以达到,但不理想,而且可调的范围很小,电压稍高,还容易把 烧毁,唯一可行的方法就是通过PWM(脉冲宽度调节)来控制其亮度.

以下程序是在中控制LED...

//***********************

// LED发光亮度

// 作者:周 勇

//***********************

#include

sbit speaker=P2^1; //定义喇叭控制引脚

sbit up=P1^5; //定义UP键

sbit down=P1^6; //定义DOWN键

static unsigned char pwm;

unsigned char t;

main ()

{

void delay (unsigned char ms);

void beep (void);

voil_delay (void);

TMOD=0X21;

ET0=1;

ET1=1;

EA=1;

TH0=0XFC; //定时器0,定时1ms

TL0=0X18;

TH1=0X9C; //定时器1,定时0.1ms

TL1=0X00;

TR0=1;

PT1=1; //定义定时器1优先中断

pwm=0x9c;

while (1)

{

do

{

pwm++;

delay (10);

if (pwm==0xff) beep();

}

while (pwm!=0xff);

do

{

pwm--;

delay (10);

if (pwm==0x01) beep ();

}

while (pwm!=0x01);

}

}

void timer0 (void) 1 //定义定时器0

{

TH0=0XFC;

TL0=0X18;

TR1=1;

TH1=pwm;

P0=0X00;

}

void timer1(void) interrupt 3 //定义定时器1

{

P0=0XFF;

TR1=0;

}

void delay (unsigned char ms) //延时

{

unsigned char i=120;

while (ms--)

{

while (i--)

{}

}

}

void beep (void) //报警

{

unsigned char b;

for (b=40;b>=2;b--)

{speaker=!speaker;

alarm_delay ();

}

speaker=1;

}

void alarm_delay (void) //报警延时

{

unsigned char time;

for (time&#61;0;time<120;time&#43;&#43;)

{}

}

责任编辑&#xff1a;



推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有