久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

51單片機(jī)脈沖寬度調(diào)制(PWM)控制LED燈亮度

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2009年06月28日   【字體:

   /*介紹一個(gè)51系列單片機(jī)采用脈沖寬度調(diào)制(PWM)方式控制LED燈亮度的一個(gè)程序,大家都知道,51單片機(jī)本身是沒(méi)有pwm接口的,這個(gè)程序是通過(guò)軟件模擬pwm.在一定的頻率的方波中,調(diào)整高電平和低電平的占空比,即可實(shí)現(xiàn)LED燈亮度控制。程序出自:單片機(jī)網(wǎng)http://www.zg4o1577.cn,如有問(wèn)題可在論壇提出,程序中使用定時(shí)器0產(chǎn)生2.5ms周期脈沖,使用占空比控制變量scale控制占空比,在低電平期間使LED燈亮,在高電平期間使LED燈滅,改變scale就改變了高電平與低電平的時(shí)間,因此也就控制了LED燈的亮度。*/
#include "AT89X51.H"  //模擬PWM輸出控制燈的10個(gè)亮度級(jí)
unsigned int scale;   //占空比控制變量
void main(void)       // 主程序
{ unsigned int n;    //延時(shí)循環(huán)變量
TMOD=0x02;  //定時(shí)器0,工作模式2(0000,0010),8位定時(shí)模式
TH0=0x06;   //寫(xiě)入預(yù)置初值6到定時(shí)器0,使250微秒溢出一次(12MHz)
TL0=0x06;   //寫(xiě)入預(yù)置值
TR0=1;    //啟動(dòng)定時(shí)器
ET0=1;    //允許定時(shí)器0中斷
EA=1;     //允許總中斷
while(1)   //無(wú)限循環(huán),實(shí)際應(yīng)用中,這里是做主要工作
{ for(n=0;n<50000;n++);  //每過(guò)一段時(shí)間,就自動(dòng)加一個(gè)檔次的亮度
scale++;    //占空比控制變量scale加1
if(scale==10)  scale=0;  //如果scale=10,使scale為0
} }
timer0() interrupt 1    //定時(shí)器0中斷服務(wù)程序
{ static  unsigned int   tt ;   //tt用來(lái)保存當(dāng)前時(shí)間在一秒中的比例位置
tt++;    //每250微秒增加1
if(tt==10)   //2.5毫秒的時(shí)鐘周期
{ tt=0;  //使tt=0,開(kāi)始新的PWM周期
P2_0=0;  //使LED燈亮
}
if(scale==tt)  //按照當(dāng)前占空比切換輸出為高電平
P2_0=1;        //使LED燈滅

/*程序中從tt=0開(kāi)始到scale為低電平,從scale開(kāi)始到tt=10為高電平,由于scale是變量,所以改變scale就可以改變占空比。*/

關(guān)閉窗口
主站蜘蛛池模板: 亚洲毛片| 国产日批 | 97国产精品 | 天天曰天天曰 | 操久久 | 国产a级毛片 | 91久久国产综合久久 | 九九九久久国产免费 | 久久精品欧美一区二区三区不卡 | 91福利网 | 免费观看一级毛片 | 国产1区2区在线观看 | 色视频在线观看 | 国产一二区视频 | 国产精品特级毛片一区二区三区 | 欧美精品一区在线 | 国产线视频精品免费观看视频 | 一级免费a | 国产精品久久久久久妇女6080 | 中文亚洲字幕 | 欧美久久久久久 | 国产一级视屏 | 91精品国产综合久久久久久丝袜 | 日韩精品区 | 亚洲美女在线一区 | 亚洲免费在线 | 久久国产区| 精品日韩一区 | a免费视频 | 欧美久久精品一级c片 | 亚洲精品一区二区在线观看 | 国产精品免费一区二区 | 久久中文字幕一区 | 精品久久久久久久久久久 | 成人一区在线观看 | 国产视频福利一区 | aa级毛片毛片免费观看久 | 亚洲美女av网站 | 国产精品一区二区欧美 | 男女免费观看在线爽爽爽视频 | 亚洲精品视频一区 |