PWM控制LED渐亮渐灭示例程序

来源:本站
导读:目前正在解读《PWM控制LED渐亮渐灭示例程序》的相关信息,《PWM控制LED渐亮渐灭示例程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《PWM控制LED渐亮渐灭示例程序》的详细说明。
简介:本文是用单片机编写的PWM控制LED渐亮渐灭示例程序。

/***********************************************************程序说明:利用定时器控制产生占空比可变的PWM按S6,PWM值增加,则占空比减小,

LED灯渐暗。 按S3,PWM值减小,则占空比增加,LED 灯渐亮。

当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。

***********************************************************/#include < reg51.h >

#include < intrins.h >sbitK1 =P3^2 ; //增加键

sbitK2 =P3^3 ; //减少键

sbitBEEP =P3^7 ; //蜂鸣器

unsigned char PWM=0x7f ; //赋初值void Beep();

void delayms(unsigned char ms);

void delay(unsigned char t);/*********************************************************/

void main()

{ P0=0xff;

TMOD=0x21 ;

TH0=0xfc ; //1ms延时常数 12M

TL0=0x18 ; //频率调节 TH1=PWM ; //脉宽调节

TL1=0 ; EA=1;

ET0=1;

ET1=1;

TR0=1 ; while(1)

{

do{

if(PWM!=0xff)

{

PWM++ ;

delayms(10);

}

else

Beep();

}while(K1==0); do{

if(PWM!=0x01)

{

PWM-- ;

delayms(10);}

else

Beep() ;

}while(K2==0);

}

}/*********************************************************/

// 定时器0中断服务程序.

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

void timer0() interrupt 1

{

TR1=0 ;

TH0=0xfc ;

TL0=0x66 ;

TH1=PWM ;

TR1=1 ;

P0=0x00 ; //启动输出

}/*********************************************************/

// 定时器1中断服务程序

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

void timer1() interrupt 3

{

TR1=0 ;

P0=0xff ; //结束输出

}/*********************************************************/

//蜂鸣器子程序

/*********************************************************/void Beep()

{

unsigned char i;

for (i=0;i<100;i++)

{

delay(100);

BEEP=!BEEP; //Beep取反

}

BEEP=1; //关闭蜂鸣器

delayms(100);

} /*********************************************************/

// 延时子程序

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

void delay(unsigned char t)

{

while(t--) ;

}/*********************************************************/

// 延时子程序

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

void delayms(unsigned char ms) {

unsigned char i ;

while(ms--)

{

for(i = 0 ; i < 120 ; i++) ;

}

}

提醒:《PWM控制LED渐亮渐灭示例程序》最后刷新时间 2024-03-14 01:09:20,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《PWM控制LED渐亮渐灭示例程序》该内容的真实性请自行鉴别。