#include //程序是基于KEIL-C51編寫,引入8051頭文件sbit P10=P1^0; sbit P11=P1^1;unsigned int scale; //占空比控制變量void main(void) { unsigned int n; //延時(shí)循環(huán)變量 TMOD=0x02; //定時(shí)器0,工作模式2(0000 0010),8位定時(shí) TH0=0x06; //定時(shí)250us(12M晶振) TL0=0x06; //預(yù)置值 TR0=1; //啟動(dòng)定時(shí)器0 ET0=1; //啟動(dòng)定時(shí)器0中斷 EA=1; //開啟總中斷 while(1) { for(n=0;n<50000;n++); ? ?//延時(shí)一段時(shí)間 ? ? ? ?scale++; ? ? ? ? ? ? ? ? //占空比控制變量加一 ? ? ? ?if(scale==10) ?scale=0; ?//達(dá)到循環(huán)的效果 ?} } timer0() interrupt 1 ? ? ? ? ? ? //定時(shí)器0中斷程序 { ? ?static ?unsigned int ?tt ; ? //tt用來保存當(dāng)前時(shí)間在一個(gè)時(shí)鐘周期的位置 ? ?tt++; ? ? ? ? ? ? ? ? ? ? ? ?//每中斷一次,即每經(jīng)過250us,tt的值自加1 ? ?if(tt==10) ? ? ? ? ? ? ? ? ? //中斷10次定時(shí)2.5ms, ? ?{ ? ? ? ?tt=0; ? ? ? ? ? ? ? ? ? ?//使tt=0,開始新的周期,達(dá)到循環(huán)的效果 ? ? ? ?P10=0; ? ? ? ? ? ? ? ? ? //點(diǎn)亮LED ? ?} ? ?if(scale>=tt) //如果占空比與中斷次數(shù)相同時(shí),此時(shí)輸出高電平 P10=1; //熄滅LED燈 /* 前面的程序是將占空比設(shè)置成了10個(gè)等級(jí),scale=1時(shí)維持高電平的時(shí)間 是1/10個(gè)PWM周期(這里是2.5ms),因?yàn)閟cale<=tt的時(shí)間段是低電平點(diǎn)亮LED燈的, ? ?scale>=tt的時(shí)間是熄滅LED燈的,通過改變一個(gè)周期內(nèi)高低電平維持的時(shí)間長短 就可以控制LED燈的亮度或者是電機(jī)的轉(zhuǎn)速了,這就是PWM的工作原理 */}
PWM原理:
對(duì)程序稍作修改變?yōu)閷?duì)電機(jī)的轉(zhuǎn)速控制,在proteus8.4仿真如下:
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
原文標(biāo)題:51單片機(jī)PWM程序詳解
文章出處:【微信號(hào):edn-china,微信公眾號(hào):EDN電子技術(shù)設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
相關(guān)推薦
單片機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出設(shè)備構(gòu)成。單片機(jī)是如何工作的呢?我們來看一下單片機(jī)的工作原理:單
發(fā)表于 08-30 16:50
單片機(jī)工作原理:1、主要器件cpu(負(fù)責(zé)運(yùn)算與控制)、存儲(chǔ)器(程序存儲(chǔ)在ROM存儲(chǔ)器中,臨時(shí)變量存放在RAM存儲(chǔ)器中)、IO(輸入、輸出),三者相互配合實(shí)現(xiàn)
發(fā)表于 11-23 07:25
單片機(jī)系統(tǒng)的工作原理設(shè)計(jì)
單片機(jī)應(yīng)用系統(tǒng)的存儲(chǔ)器擴(kuò)充單片機(jī)應(yīng)用系統(tǒng)的存儲(chǔ)器擴(kuò)充單片機(jī)應(yīng)用系統(tǒng)的開關(guān)量輸入...電路
發(fā)表于 04-14 14:27
?26次下載
單片機(jī)pwm產(chǎn)生的方法及程序,里面的很詳細(xì)的教程
發(fā)表于 11-02 17:36
?97次下載
單片機(jī)pwm模塊的程序。
發(fā)表于 05-19 17:45
?10次下載
本文詳細(xì)介紹了單片機(jī)程序的設(shè)計(jì)基礎(chǔ),內(nèi)容包括單片機(jī)中常用的線性數(shù)據(jù)結(jié)構(gòu)和線性表的排序算法等知識(shí)的詳解。
發(fā)表于 11-23 16:56
?29次下載
單片機(jī)制作音樂譜程序原理圖詳解下載
發(fā)表于 03-20 11:38
?5次下載
本文首先介紹了舵機(jī)概述與工作原理,其次介紹了舵機(jī)的PWM信號(hào),最后詳細(xì)闡述了單片機(jī)控制舵機(jī)方法及程序分享。
發(fā)表于 05-11 11:06
?6w次閱讀
本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)教程之給初學(xué)單片機(jī)的40個(gè)實(shí)驗(yàn)詳解。
發(fā)表于 10-10 08:00
?34次下載
本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)的PWM程序資料免費(fèi)下載。
發(fā)表于 04-02 17:13
?74次下載
本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)的PWM程序詳解和仿真資料免費(fèi)下載。
發(fā)表于 07-17 17:39
?11次下載
有了電子電路和數(shù)字電路的基礎(chǔ)知識(shí),就可以開始學(xué)習(xí)嵌入式系統(tǒng)的核心元件-單片機(jī)。從本期開始我們將為大家介紹單片機(jī)的基礎(chǔ)知識(shí)。在單片機(jī)入門系列講座中,首先學(xué)習(xí)
發(fā)表于 11-10 18:36
?16次下載
要輸出一個(gè)固定的頻率,那么單片機(jī)只要開機(jī)時(shí),把PCA的相關(guān)寄存器配置一下,頻率就出來了,就是后臺(tái)運(yùn)行了,單片機(jī)就可以去做其他的事情,想連續(xù)發(fā)脈沖時(shí),不中斷其他運(yùn)行中的程序。多路發(fā)出也可
發(fā)表于 11-17 10:51
?17次下載
單片機(jī)中晶振的工作原理是什么?
發(fā)表于 11-23 09:08
?962次閱讀
單片機(jī)復(fù)位電路工作原理? 單片機(jī)是一種集成電路,通常用于嵌入式系統(tǒng)中。單片機(jī)復(fù)位電路是單片機(jī)可靠
發(fā)表于 12-07 15:17
?4382次閱讀
評(píng)論