如何基于51單片機利用定時器的實現(xiàn)PWM的方法詳細概述
出處:電子說 發(fā)布于:2018-06-13 14:53:13
51單片機是可以輸出PWM的,比較的麻煩。此時需要用到內(nèi)部定時器來實現(xiàn),可用兩個定時器實現(xiàn),也可以用一個定時器實現(xiàn)。
用兩個定時器的方法是用定時器T0來控制頻率,定時器T1來控制占空比。大致的的編程思路是這樣的:T0定時器中斷讓一個I0口輸出高電平,在這個定時器T0的中斷當(dāng)中起動定時器T1,而這個T1是讓IO口輸出低電平,這樣改變定時器T0的初值就可以改變頻率,改變定時器T1的初值就可以改變占空比。
下面重點介紹用一個定時器的實現(xiàn)PWM的方法。以周期為1ms(1kHZ)為例,要產(chǎn)生其它頻率的PWM波,程序中只需作簡單修改即可。用一個定時器時(如定時器T0),首先要確定PWM的周期T和占空比D,確定了這些以后,就可以用定時器產(chǎn)生一個時間基準t,比如定時器溢出n次的時間是PWM的高電平的時間,則D*T=n*t,類似的可以求出PWM低電平時間需要多少個時間基準n。
因為這里我們是產(chǎn)生周期為1ms(1kHZ)的PWM,所以可設(shè)置中斷的時間基準為0.01ms,,然后中斷100次即為1ms。在中斷子程序內(nèi),可設(shè)置一個變量如time,在中斷子程序內(nèi),有三條重要的語句:
1、當(dāng)time>=100時,time清零(此語句保證頻率為1kHZ);
2、當(dāng)time>n時(n應(yīng)該在0-100之間變化開),讓單片相應(yīng)的I/O口輸出低電平;
3、當(dāng)time<=n時,讓單片相應(yīng)的I/O口輸出高電平,此時占空比就為%n。
下面程序產(chǎn)生30%占空比的pwm:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit PWM=P2^0;// P2.0輸出pwm
uchar time; // 定義占空比的變量
void main()
{
TMOD=0x01;//定時器0工作方式1
TH0=0xff;//(65536-10)/256;//賦初值定時
TL0=0xf7;//(65536-10)%256;//0.01ms
EA=1;//開總中斷
ET0=1;//開定時器0中斷
TR0=1;//啟動定時器0
while(1)
{
}
}
void tim0() interrupt 1
{
TR0=0;//賦初值時,關(guān)閉定時器
TH0=0xff;//(65536-10)/256;//賦初值定時
TL0=0xf7;//(65536-10)%256;//0.01ms
TR0=1;//打開定時器
time++;
if(time>=100) <span style="font-family:'KaiTi_GB2312';">//1khz</span>
time=0;
if(time<=30) <span style="font-family:'KaiTi_GB2312';">//占空比%30,可改</span>
PWM=1;
else PWM=0;
}
的到波形,在示波器上顯示如下圖所示
如何基于51單片機利用定時器的實現(xiàn)PWM的方法詳細概述
如果想修改占空比,直接在程序里面修改下面這句即可。
if(time<=30)//占空比%30,可改占空比
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機技術(shù)特性與嵌入式開發(fā)實踐指南2026/1/7 10:00:02
- 單片機(MCU)與數(shù)字信號處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機專用SoC單片機2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴充定義2025/10/27 13:59:22









