資源簡(jiǎn)介
按K1,PWM值增加,則占空比減小,LED 燈漸暗。
按K2,PWM值減小,則占空比增加,LED 燈漸亮。
按K2,PWM值減小,則占空比增加,LED 燈漸亮。

代碼片段和文件信息
/*******************************************************************/
//?利用定時(shí)器控制產(chǎn)生占空比可變的?PWM?波
//?按K1,PWM值增加,則占空比減小LED?燈漸暗。
//?按K2,PWM值減小,則占空比增加LED?燈漸亮。
//?當(dāng)PWM值增加到最大值或減小到最小值時(shí),蜂鳴器將報(bào)警。
/*********************************************************/
#include?
#include?
sbit??K1?=P3^2?;????????????????????//增加鍵
sbit??K2?=P3^3?;????????????????????//減少鍵
sbit??BEEP?=P3^6?;????????????????//蜂鳴器
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延時(shí)常數(shù)?12M
????TL0=0x18?;????????????//頻率調(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=0x18?;
????TH1=PWM?;
????TR1=1?;
????P0=0x00?;??????//啟動(dòng)輸出
}
/*********************************************************/
//?定時(shí)器1中斷服務(wù)程序
/*********************************************************/
void?timer1()?interrupt?3?
{?
????TR1=0?;
????P0=0xff?;?????//結(jié)束輸出
}
/*********************************************************/
//蜂鳴器子程序
/*********************************************************/
void?Beep()?????
??{
??????unsigned?char?i??;
??????for?(i=0??;i<100??;i++)
????????{
??????????delay(100)??;
??????????BEEP=!BEEP??;????????????????//Beep取反
????????}?
?????BEEP=1??;????????????????????????????//關(guān)閉蜂鳴器
?????delayms(100);
??}?
/*********************************************************/
//?延時(shí)子程序
/*********************************************************/??
void?delay(unsigned?char?t)
?{?
????while(t--)???;
?}
/*********************************************************/
//?延時(shí)子程序
/*********************************************************/
void?delayms(unsigned?char?ms)?
{
????unsigned?char?i?;
????while(ms--)
?????{
????????for(i?=?0?;?i?120?;?i++)?;
?????}
}
/*********************************************************/
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-10-13?20:01??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\
?????文件????????4021??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED
?????文件????????5277??2019-10-13?19:57??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.LST
?????文件????????6728??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.M51
?????文件????????4440??2019-10-13?19:57??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.OBJ
?????文件????????2136??2009-07-22?22:51??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.Uv2.bak
?????文件????????2685??2009-07-22?22:47??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.c
?????文件?????????969??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.hex
?????文件??????????29??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.lnp
?????文件????????1556??2015-12-30?21:57??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.opt.bak
?????文件?????????550??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.plg
?????文件???????56207??2019-10-13?20:01??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.uvopt
?????文件???????13254??2019-10-13?20:01??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED.uvproj
?????文件????????1212??2009-07-22?23:01??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED_Opt.Bak
?????文件????????2148??2008-07-19?08:23??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\PWMLED_Uv2.Bak
?????文件??????????92??2009-07-24?14:58??PWM控制LED燈漸亮漸滅實(shí)驗(yàn)\實(shí)驗(yàn)操作說(shuō)明.txt
評(píng)論
共有 條評(píng)論