0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

51單片機(jī)的Timer,運(yùn)用PWM完成呼吸燈

0BFC_eet_china ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-02 09:14 ? 次閱讀

Pulse Width Modulation脈沖寬度調(diào)制,簡(jiǎn)稱(chēng)PWM。

PWM(脈沖寬度調(diào)制)對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,計(jì)算機(jī)只能輸出0或5V的數(shù)字電壓值而不能輸出模擬電壓,而我們?nèi)绻氆@得一個(gè)模擬電壓值,則需通過(guò)使用高分辨率計(jì)數(shù)器,改變方波的占空比來(lái)對(duì)一個(gè)模擬信號(hào)的電平進(jìn)行編碼。

仍輸出數(shù)字信號(hào),因?yàn)闈M幅值的直流供電只有5V(1)和0V(0)兩種。電壓是以一種連接(1)或斷開(kāi)(0)的重復(fù)脈沖序列被夾到模擬負(fù)載上去的,連接即是直流供電輸出,斷開(kāi)即是直流供電斷開(kāi)。通過(guò)對(duì)連接和斷開(kāi)時(shí)間的控制,只要帶寬足夠,可以輸出任意不大于最大電壓值的模擬電壓。

輸出電壓=(接通時(shí)間/脈沖時(shí)間)*最大電壓值

12

二、51單片機(jī)Timer

作者用的單片機(jī)是STC89C52,其內(nèi)部有3個(gè)16位Timer,分別為T(mén)/C0,T/C1,T/C2,通過(guò)配置相關(guān)寄存器即可實(shí)現(xiàn)Timer的功能控制。

控制PWM需要用到定時(shí)器來(lái)生成不同占空比的波形,采用定時(shí)器中斷的方式。

相關(guān)寄存器:

1.IE寄存器

2. TCON寄存器

3. TMOD寄存器

控制Timer0/1的工作方式


TL14. Timer0/1計(jì)數(shù)寄存器

TL0

TH0

TH1

當(dāng)定時(shí)開(kāi)啟后,TL0(TL1)自動(dòng)跟隨機(jī)器周期加一。當(dāng)TL0(TL1)滿了后,自動(dòng)清零同時(shí)向TH0(TH1)進(jìn)一位,不需要手動(dòng)操作.

而當(dāng)TL0(TL1)和TH0(TH1)都滿了以后,此時(shí)如果定時(shí)中斷和總中斷都已經(jīng)打開(kāi),那么就會(huì)發(fā)生溢出中斷,同時(shí)這兩個(gè)寄存器清零

三、運(yùn)用PWM完成呼吸燈

1. 硬件電路

2. 軟件驅(qū)動(dòng)

unsigned char PWM_COUNT; //計(jì)數(shù)

unsigned int HUXI_COUNT; //占空比更新時(shí)間

unsigned char PWM_VLAUE; //占空比比對(duì)值

bit direc_flag; //占空比更新方向

void timer0_init()

{

TMOD=0x02; //模式設(shè)置,00010000,定時(shí)器0,工作于模式2(M1=1,M0=0)

TH0=0x47; //定時(shí)器溢出值設(shè)置,每隔200us發(fā)起一次中斷。

TL0=0X47;

TR0=1; //定時(shí)器0開(kāi)始計(jì)時(shí)

ET0=1; //開(kāi)定時(shí)器0中斷

EA=1; //開(kāi)總中斷

PWM_COUNT =0;

}

void time0() interrupt 1

{

PWM_COUNT++;

HUXI_COUNT++;

if(PWM_COUNT == PWM_VLAUE) //判斷是否到了點(diǎn)亮LED的時(shí)候

LED = 1; //點(diǎn)亮LED

if(PWM_COUNT == 10) //當(dāng)前周期結(jié)束

{

LED = 0; //熄滅LED

PWM_COUNT = 0; //重新計(jì)時(shí)

}

if((HUXI_COUNT == 600) && (direc_flag == 0))

{ //占空比增加10%

HUXI_COUNT = 0;

PWM_VLAUE++;

if(PWM_VLAUE == 9) //占空比更改方向

direc_flag = 1;

}

if((HUXI_COUNT == 600) && (direc_flag == 1))

{ //占空比減少10%

HUXI_COUNT = 0;

PWM_VLAUE--;

if(PWM_VLAUE == 1) //占空比更改方向

direc_flag = 0;

}

}

void main()

{

HUXI_COUNT = 0;

PWM_COUNT = 0;

PWM_VLAUE = 5;

direc_flag = 0;

LED = 1; //默認(rèn)LED熄滅

timer0_init(); //定時(shí)器0初始化

while(1);

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5119

    瀏覽量

    213183
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    273

    文章

    5697

    瀏覽量

    122997

原文標(biāo)題:51單片機(jī)PWM的控制(呼吸燈)

文章出處:【微信號(hào):eet-china,微信公眾號(hào):電子工程專(zhuān)輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    51單片機(jī)呼吸程序設(shè)計(jì)

    51單片機(jī)呼吸程序設(shè)計(jì)是基于單片機(jī)的原理與接口設(shè)計(jì),采用單片機(jī)I/O口,加以C語(yǔ)言編程實(shí)現(xiàn)LE
    發(fā)表于 07-14 07:54

    基于51單片機(jī)呼吸怎樣設(shè)計(jì)

    課程設(shè)計(jì)報(bào)告書(shū)題目:基于51單片機(jī)呼吸設(shè)計(jì)信息工程學(xué)院課程設(shè)計(jì)任務(wù)書(shū)學(xué) 號(hào)1學(xué)生姓名專(zhuān)業(yè)(班級(jí))設(shè)計(jì)題目基于51
    發(fā)表于 07-15 08:01

    怎么樣去設(shè)計(jì)基于單片機(jī)PWM呼吸

    51單片機(jī)(呼吸)C語(yǔ)言版基于單片機(jī)PWM呼吸
    發(fā)表于 07-15 06:02

    51單片機(jī)如何利用PWM定時(shí)器實(shí)現(xiàn)呼吸?

    51單片機(jī)如何利用PWM定時(shí)器實(shí)現(xiàn)呼吸
    發(fā)表于 10-15 09:24

    基于51單片機(jī)的七彩呼吸設(shè)計(jì)資料分享

    ”。(4)按鍵3按下時(shí),恢復(fù)起始亮法。1 先做一個(gè)呼吸由易到難,先做一個(gè)呼吸。呼吸是讓小
    發(fā)表于 11-19 07:11

    51單片機(jī)呼吸的實(shí)現(xiàn)源程序

    51單片機(jī)呼吸的實(shí)現(xiàn),源程序,hex文件都有,用到的led是共陰極的
    發(fā)表于 12-10 16:35 ?169次下載

    使用51單片機(jī)做一個(gè)簡(jiǎn)易呼吸的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)做一個(gè)簡(jiǎn)易呼吸的程序免費(fèi)下載。
    發(fā)表于 04-01 08:00 ?1次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>做一個(gè)簡(jiǎn)易<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的程序免費(fèi)下載

    使用51單片機(jī)實(shí)現(xiàn)的呼吸工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實(shí)現(xiàn)的呼吸工程文件免費(fèi)下載。
    發(fā)表于 09-03 08:00 ?13次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)的<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>工程文件免費(fèi)下載

    單片機(jī)(通過(guò)PWM調(diào)制模擬呼吸)源代碼

    //功能:通過(guò)PWM調(diào)制模擬呼吸//名稱(chēng):呼吸#include //調(diào)用含有51
    發(fā)表于 11-10 19:35 ?8次下載
    <b class='flag-5'>單片機(jī)</b>(通過(guò)<b class='flag-5'>PWM</b>調(diào)制模擬<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>)源代碼

    51單片機(jī) 呼吸 七彩呼吸

    呼吸”。(4) 按鍵3按下時(shí),恢復(fù)起始亮法。1 先做一個(gè)呼吸由易到難,先做一個(gè)呼吸呼吸
    發(fā)表于 11-12 11:51 ?59次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b> <b class='flag-5'>呼吸</b><b class='flag-5'>燈</b> 七彩<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    51單片機(jī)基于定時(shí)器的精準(zhǔn)呼吸

    51單片機(jī)基于定時(shí)器的精準(zhǔn)呼吸設(shè)計(jì)目的:實(shí)現(xiàn)LED小從最暗到最亮再到最暗的循環(huán)顯示最暗——最亮——最暗整個(gè)周期為2.88秒(符合
    發(fā)表于 11-21 09:51 ?50次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>基于定時(shí)器的精準(zhǔn)<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    基于51單片機(jī)呼吸程序編寫(xiě)

    利用51單片機(jī)編寫(xiě)的呼吸小程序,實(shí)驗(yàn)程序內(nèi)容截圖分享~
    發(fā)表于 11-23 16:36 ?33次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>程序編寫(xiě)

    STC89C52_51單片機(jī)_例程3_PWM_呼吸

    STC89C52_51單片機(jī)_例程3_PWM_呼吸_代碼鏈接0000000000000000000000
    發(fā)表于 11-23 17:21 ?15次下載
    STC89C52_<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>_例程3_<b class='flag-5'>PWM</b>_<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    單片機(jī)呼吸的實(shí)現(xiàn)(可移植性強(qiáng))

    1.增強(qiáng)程序的可移植性通過(guò)硬件PWM的方式實(shí)現(xiàn)呼吸是十分方便的,但這種方式要求單片機(jī)帶有硬件PWM外設(shè),且不同
    發(fā)表于 12-31 18:50 ?7次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的實(shí)現(xiàn)(可移植性強(qiáng))

    51單片機(jī)呼吸頻率怎么調(diào)節(jié)

    51單片機(jī)呼吸頻率的調(diào)節(jié)方法可以通過(guò)改變PWM(脈沖寬度調(diào)制)的工作周期和占空比來(lái)實(shí)現(xiàn)。在下面的文章中,我將詳細(xì)介紹如何使用
    的頭像 發(fā)表于 12-19 10:39 ?2228次閱讀