娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月21日(星期二)

正在發生

2020年01月21日 | 51單片機理通定時器輸出PWM例程

發布者:Wanderlust123 來源: 51hei關鍵字:51單片機  定時器  輸出PWM 手機看文章 掃描二維碼
隨時隨地手機看文章

開門第一話,授人以魚不如授人以漁。簡單介紹一下原理及程序過程。

通過定時中斷翻轉IO口電平。PWM波一個周期需要兩次電平翻轉,因為高電平時間與低電平時間可能不相對,所以定時器需要根據該電平狀態的持續時間來負初值,也就是說,不能用常量。賦初值后啟動定時器,中斷時翻轉IO口電平,實現PWM波的輸出。


開門第二話,直接上代碼。

IO口及變量定義

//定義IO口以及高低電平持續時間對應定時器初值的暫存變量


sbit PWM=P2^6;

uint PWM_H=0;        //高電平定時器初值

uint PWM_L=0;        //低電平定時器初值


初始化部分,提供“周期+脈寬”和“頻率+占空比”兩種方式的初始化函數

////////////////////////////////////////////////////////////////////////

//        名稱 : PWM_Init_Cycle(uint cycle,uint width)

//        功能 : 通過周期和脈寬調制PWM波

//        參數 : 

//                        uint cycle                周期                單位:微秒                范圍:20-65535

//                        uint width                脈寬                單位:微秒                范圍:20-65535

//        返回 : 無

////////////////////////////////////////////////////////////////////////

void PWM_Init_Cycle(uint cycle,uint width)

{

        TMOD=0x01;//定時器0工作方式1

        EA=1;                        //開總中斷

        ET0=1;                //開定時器0中斷

TH0=TL0=0;

        PWM_H=0xFFFF-width;

        PWM_L=0xFFFF-(cycle-width);

TR0=1;                //啟動定時器0

}

////////////////////////////////////////////////////////////////////////

//        名稱 : PWM_Init_Fre(uint fre,uchr duty)

//        功能 : 通過頻率和占空比調制PWM波

//        參數 : 

//                        uint fre                        頻率                        單位:赫茲                        范圍:20-50000

//                        uchr duty                        占空比                單位:百分比                范圍:1-100

//        返回 : 無

////////////////////////////////////////////////////////////////////////

void PWM_Init_Fre(uint fre,uchr duty)

{

        int cycle=1000000/fre;

        TR0=0;                //停止定時器0

        TMOD=0x01;//定時器0工作方式1

        TH0=TL0=0;

        EA=1;                        //開總中斷

        ET0=1;                //開定時器0中斷

PWM_H=cycle/100*duty;  //算出持續時間

        PWM_L=cycle-PWM_H;

        PWM_H=0xFFFF - PWM_H;/持續時間轉換為初值

        PWM_L=0xFFFF - PWM_L;

TR0=1;                //啟動定時器0

}


PWM調制定時器中斷處理

////////////////////////////////////////////////////////////////////////

//        名稱 : interrupt_timer0(void)

//        功能 : 定時器0溢出終端處理函數

//        參數 : 無

//        返回 : 無

////////////////////////////////////////////////////////////////////////

void interrupt_timer0(void) interrupt 1

{

        PWM=!PWM;                //翻轉IO電平

        if(PWM)                        //高電平,把高電平對應的初值搬入定時器

        {

                TH0=(uchr)(PWM_H>>8);

                TL0=(uchr)(PWM_H>>0);

        }

        else                        //低電平,把低電平對應的初值搬入定時器

        {

                TH0=(uchr)(PWM_L>>8);

                TL0=(uchr)(PWM_L>>0);

        }

}


是不是覺得特別簡單。放心,我沒有偷懶代碼都在。


總結一下,由于是通過定時器中斷調制的脈寬,所以,高低電平持續時間都不能大于65535個機器周期。同事,由于中斷處理函數也需要時間,高低電平持續時間也都不能太短,最好在10個機器周期以上,如果太短,CPU就沒時間干其他事了。這算是一個缺點把,但這個范圍應該也夠用了。


關鍵字:51單片機  定時器  輸出PWM 引用地址:51單片機理通定時器輸出PWM例程

上一篇:基于STC15單片機芯片的直流電機PID控制轉速源碼
下一篇:基于狀態機的51單片機獨立按鍵檢測與消抖思路

推薦閱讀

什么是物聯網卡?物聯網卡指的是是通過射頻識別(RFID)、紅外感應器、全球定位系統、激光掃描器等信息傳感設備,按約定的協議,把任何物品與互聯網連接起來,進行信息交換和通訊,以實現智能化識別、定位、跟蹤、監控和管理的一種網絡。簡單來說通訊物聯網卡 就是借助于某種場景的智能設備(手機終端、車載設備等)通過通信傳輸網絡,來鏈接人、物(資源...
開車容易分心,容易累,還開得歪歪扭扭,唉,開車好麻煩。不過不用擔心,未來這都不再是問題。雖然無人自動駕駛的汽車在短時間內可能還不會問世,但新的駕駛輔助系統已經非常先進,已經能夠讓你有一種車在自己駕駛的錯覺。先來看看特斯拉的輔助駕駛系統。以前的輔助系統,無非就是提示雙手離開方向盤了的那種滴滴聲,或者是在盲區出現物體時的警報。而特斯...
由于編譯器默認signed int即32位有符號整數類型,而1<<31實際為0x80000000,這樣就有可能改寫了符號位(最高位)依此類推,(2<<30),(3<<29)...等都會出現編譯警告問題.解決辦法為: ((unsigned int)1<<31),((unsigned int)2<<30),...
對于大多數單片機我們在進行操作時都需要一定的延時對于51系列常使用_NOP_( );指令進行1us延時或者更簡單粗暴一些直接使用for循環for(i=0;i<1000;i++)做一MS的延時大多數的單片機執行+1運算時間為1US,但是這種延時并不準確下面實現精準延時IAR 軟件430的編譯器里面我們可以利用它內部的延時子程序來實現我們想要的高精度軟件延時,方法如下:(1):...

史海拾趣

問答坊 | AI 解惑

常見元器件封裝說明

文件大小: 539 K 軟件等級: 軟件類別: 國產軟件…

查看全部問答∨

TI C54xx DSP 十天速成講義 &lt;六&gt;

實驗六 DMA實驗實驗目的:學習DMA的原理的使用方法實驗內容:用DMA方法接收McBSP接口語音芯片的數據 DMA是直接存儲器存取,是一種傳送不占用CPU處理時間的大批量數據傳送的有效方式。我們用以下實例來說明它的應用:如果我們要做一個音頻處理系統, ...…

查看全部問答∨

做方波驅動變壓器的項目需要用什么參數的示波器?

請問業界朋友:做方波驅動變壓器的項目需要用什么參數的示波器?驅動信號為3V方波,寬度為2us,要求能測量幅度 …

查看全部問答∨

基于CC2430的水輪發電機組無線振擺監測系統研究

摘要:針對現有水輪發電機組振擺監測系統永久性結構模式 問題,構建了基于CC2430的水輪發電機組無線振擺監測系 統。給出了系統的體系結構和工作流程;設計基于CC2430模 塊的無線傳感器節點;詳盡給出系統能源、信號同步及采樣 精度測試等關鍵技 ...…

查看全部問答∨

2440 bootloader中,MBR是什么東西?

請教,bootloader中有這么一個函數: // lqm: 1G08:dwStartSector = 7 * 64 (boot:7個block) HANDLE BP_OpenPartition(DWORD dwStartSector, DWORD dwNumSectors, DWORD dwPartType, BOOL fActive, DWORD dwCreationFlags) {      & ...…

查看全部問答∨

求配置

在運行程序速度上比市場上常見的機子快一倍的有什么要求啊?麻煩給出配置啊。謝了…

查看全部問答∨

wince5.0 下中英文 定制問題!

wince5.0下 問題: 怎樣定制內核,讓系統默認語言是英文,但是我能瀏覽中文及中文繁體的網站? 我在定制內核的時候 platform --setting LOACL 選了三種 中文、中文(臺灣)、英文。 defaulte language:英語(美國)的時候,中文網頁顯示不出 ...…

查看全部問答∨

請教Windows Mobile 加載窗體的問題

在向項目添加新的窗體時,出現窗體設計器不能加載的情況,請問各位怎么解決呀?謝謝…

查看全部問答∨

HES失效問題

                                 在試驗stm32的時鐘安全試驗時發現:如果使用HSE為系統時鐘時,當HSE失效時不能切換到HSI;如果使用PLL作系統時鐘時 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 乌什县| 盈江县| 铁力市| 利川市| 石景山区| 惠水县| 黄骅市| 贵州省| 修武县| 汉阴县| 盐城市| 佛坪县| 怀远县| 洪湖市| 洞头县| 临澧县| 龙山县| 乐山市| 宜宾县| 普安县| 白银市| 二连浩特市| 梁山县| 麻城市| 修水县| 永泰县| 辽阳市| 河间市| 内江市| 溧阳市| 诏安县| 齐齐哈尔市| 武汉市| 云霄县| 琼结县| 凤凰县| 额尔古纳市| 衡水市| 榆中县| 涡阳县| 门源|