?? pwm控制led.c
字號(hào):
// PWM 控制 LED 燈漸亮漸滅程序
// 晶振為11.0592M
// 利用定時(shí)器控制產(chǎn)生占空比可變的 PWM 波
// 按K1,PWM值增加,則占空比減小,LED 燈漸暗。
// 按K2,PWM值減小,則占空比增加,LED 燈漸亮。
// 當(dāng)PWM值增加到最大值或減小到最小值時(shí),蜂鳴器將報(bào)警。
/*********************************************************/
#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^3; //增加鍵
sbit K2=P3^5; //減少鍵
sbit BEEP=P1^0; //蜂鳴器
uchar PWM=0x7f; //賦初值
void Beep(void);
void delayms(uchar ms);
void delay(uchar t);
/*********************************************************/
void main(void)
{
TMOD=0x21;
TH0=0xfc; //1ms延時(shí)常數(shù)
TL0=0x66; //頻率調(diào)節(jié)
TH1=PWM; //脈寬調(diào)節(jié)
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!=0x02){PWM--;delayms(10);}
else Beep();
}while(K2==0);
}
}
/*********************************************************/
// 定時(shí)器0中斷服務(wù)程序.
/*********************************************************/
void timer0() interrupt 1
{
TR1=0;
TH0=0xfc;
TL0=0x66;
TH1=PWM;
TR1=1;
P0=0x00; //啟動(dòng)輸出
}
/*********************************************************/
// 定時(shí)器1中斷服務(wù)程序
/*********************************************************/
void timer1() interrupt 3
{
TR1=0;
P0=0xff; //結(jié)束輸出
}
/*********************************************************/
//蜂鳴器子程序
/*********************************************************/
void Beep(void)
{
uchar i;
for(i=0;i<100;i++)
{
delay(100);
BEEP=!BEEP; //Beep取反
}
BEEP=1; //關(guān)閉蜂鳴器
delayms(100);
}
/*********************************************************/
// 延時(shí)子程序
/*********************************************************/
void delay(uchar t)
{
while(t--);
}
/*********************************************************/
// 延時(shí)子程序
/*********************************************************/
void delayms(uchar ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
/********************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -