實驗45 用定時器產生方波
單片機源程序如下:
- /*********************************************************************************
- * 【作 者】: 清翔電子:03
- * 【版 本】: 1.0
- * 【實驗平臺】: QX-MCS51 單片機開發板
- * 【外部晶振】: 11.0592mhz
- * 【主控芯片】: STC89C52
- * 【編譯環境】: Keil μVisio3
- * 【程序功能】: 本程序演示用定時器的方法產生一PWM方波,其周期為1ms(0.001s,1KHz);
- 占空比為1/5(高電平持續200us)。若產生其他參數的PWM波,只需更改
- 程序中的相關參數即可。(同學們也可試著設計可調的PWM輸出)
- pwm波由P1^0口輸出?捎^察到其對應發光二極管在閃爍
- (熄滅持續時間為200us,點亮持續時間為800us,閃爍周期為1ms)
-
- 下載程序后我們看到的現象是燈一直亮,是因為熄滅時間太短人眼分辨不出
- 調節占空比 占空比越大燈的亮度越暗
- * 【使用說明】:
- * 說明:免費開源,不提供源代碼分析.
- **********************************************************************************/
- #include<reg52.h>
- #define uint unsigned int
- uint pp;
- sbit pwm=P1^0;
- void main()
- {
- TMOD=0x01; //模式設置,00000001,可見采用的是定時器0,工作與模式1(M1=0,M0=1)。
- TR0=1; //打開定時器
- TH0=0Xff; //定時器設置,每隔100微秒發起一次中斷。
- TL0=0Xa4;
- ET0=1; //開定時器0中斷
- EA=1; //開總中斷
- while(1)
- {
- if(pp<=2) //調節占空比 占空比越大燈的亮度越暗
- pwm=1;
- else
- pwm=0;
- if(pp==10)
- pp=0;
- }
- }
- void time0() interrupt 1
- { TH0=0Xff;
- TL0=0Xa4;
- pp++;
- }
復制代碼
所有資料51hei提供下載:
【實驗45】用定時器產生方波0.rar
(9.37 KB, 下載次數: 56)
2018-3-25 20:18 上傳
點擊文件名下載附件
用定時器產生方波 下載積分: 黑幣 -5
|