<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 關(guān)于MCS-51單片機實(shí)現PWM的方法

關(guān)于MCS-51單片機實(shí)現PWM的方法

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏
關(guān)于MCS-51單片機實(shí)現PWM的方法
PWM是“脈沖寬度調制”的意思。
PWM實(shí)際上是在單片機的某個(gè)引腳輸出一系列的矩形波,其周期一般是固定的;而其高電平、低電平所占用的時(shí)間,是可以受控調整的。高電平、低電平所占用的時(shí)間之比,稱(chēng)為占空比,其值為0~1之間。PWM的應用很廣,簡(jiǎn)單的說(shuō),它可以控制燈光的亮度、可以控制直流電機的轉速,甚至還可以輸出語(yǔ)音信號。
新型的單片機,往往都含有硬件的PWM模塊,編寫(xiě)程序就很簡(jiǎn)單;而老式的MCS-51系列,就不具備這個(gè)條件。
其實(shí),在沒(méi)有PWM硬件的單片機上實(shí)現PWM,也并不難,只需一個(gè)定時(shí)器,令其工作在中斷方式即可。下面以網(wǎng)上的一個(gè)題目為例,說(shuō)明實(shí)現PWM方法。
題目鏈接:http://zhidao.baidu.com/question/170790790.html?push=core
題目:AT89C52單片機輸出可調PWM波。
要求:
1。單片機的晶振是12MHz,輸出周期為1s。
2。用兩個(gè)開(kāi)關(guān)控制占空比的增加和減少,分20等級。針對這個(gè)題目,做而論道設計了一個(gè)簡(jiǎn)單的實(shí)驗電路:
 在P2口的8條線(xiàn)輸出PWM波形;
 在/INT1、/INT0外接了兩個(gè)按鍵,用來(lái)調整占空比;
 在P0口外接了兩個(gè)BCD數碼顯示器,用來(lái)顯示當前的占空比的等級。
 實(shí)驗的時(shí)候,可以使用示波器來(lái)觀(guān)察P2口輸出的波形。
 如果把PWM波形的頻率提高,也可以用LED觀(guān)察到漸亮漸暗的效果,目前看,只是閃爍的時(shí)間發(fā)生變化。

//程序如下:
//==========================================
#include
unsignedinta,b;
//------------------------------------------
voidmain()
{
TMOD=0x01;//T0定時(shí)方式1
TH0=(65536-50000)/256;//50ms@12MHz
TL0=(65536-50000)%256;
TR0=1;ET0=1;
EX0=1;EX1=1;
IT0=1;IT1=1;
EA=1;a=0;
b=10;
while(1);
}
//------------------------------------------
voidtime0()interrupt1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;//50ms@12MHz
a++;
if(a==20)a=0;//在這里調整周期.
if(a<b)P2=0xff;//在這里調整占空比.
elseP2=0x00;
P0=((b/10)<<4)+b%10;//顯示占空比等級
}
//------------------------------------------
voidX0_INT()interrupt0
{
b++;
if(b>19)b=19;//占空比等級最大為19
}
//------------------------------------------
voidX1_INT()interrupt2
{
b--;
if(b<1)b=1;//占空比等級最小為1.
}
//==========================================


關(guān)鍵詞: MCS-51單片機PW

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>