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

代碼片段和文件信息
/*******************************************************************/
//?利用定時器控制產生占空比可變的?PWM?波
//?按K1,PWM值增加,則占空比減小LED?燈漸暗。
//?按K2,PWM值減小,則占空比增加LED?燈漸亮。
//?當PWM值增加到最大值或減小到最小值時,蜂鳴器將報警。
/*********************************************************/
#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延時常數?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!=0x02)
??????????{PWM--?;delayms(10);}
???????????else?Beep()?;?
??????????}
?????while(K2==0);
???}
}
/*********************************************************/
//?定時器0中斷服務程序.
/*********************************************************/
void?timer0()?interrupt?1?
{??
????TR1=0?;
????TH0=0xfc?;
????TL0=0x18?;
????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++)?;
?????}
}
/*********************************************************/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-10-13?20:01??PWM控制LED燈漸亮漸滅實驗\
?????文件????????4021??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實驗\PWMLED
?????文件????????5277??2019-10-13?19:57??PWM控制LED燈漸亮漸滅實驗\PWMLED.LST
?????文件????????6728??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實驗\PWMLED.M51
?????文件????????4440??2019-10-13?19:57??PWM控制LED燈漸亮漸滅實驗\PWMLED.OBJ
?????文件????????2136??2009-07-22?22:51??PWM控制LED燈漸亮漸滅實驗\PWMLED.Uv2.bak
?????文件????????2685??2009-07-22?22:47??PWM控制LED燈漸亮漸滅實驗\PWMLED.c
?????文件?????????969??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實驗\PWMLED.hex
?????文件??????????29??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實驗\PWMLED.lnp
?????文件????????1556??2015-12-30?21:57??PWM控制LED燈漸亮漸滅實驗\PWMLED.opt.bak
?????文件?????????550??2019-10-13?20:00??PWM控制LED燈漸亮漸滅實驗\PWMLED.plg
?????文件???????56207??2019-10-13?20:01??PWM控制LED燈漸亮漸滅實驗\PWMLED.uvopt
?????文件???????13254??2019-10-13?20:01??PWM控制LED燈漸亮漸滅實驗\PWMLED.uvproj
?????文件????????1212??2009-07-22?23:01??PWM控制LED燈漸亮漸滅實驗\PWMLED_Opt.Bak
?????文件????????2148??2008-07-19?08:23??PWM控制LED燈漸亮漸滅實驗\PWMLED_Uv2.Bak
?????文件??????????92??2009-07-24?14:58??PWM控制LED燈漸亮漸滅實驗\實驗操作說明.txt
- 上一篇:KTV數據庫.zip
- 下一篇:2、紅外避障單獨程序-PWM調速.rar
評論
共有 條評論