那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

pwm呼吸燈原理及程序分享

ss ? 來源:網絡整理 ? 2018-03-28 17:41 ? 次閱讀

PWM

PulseWidthModulation脈沖寬度調制,簡稱PWM。

PWM(脈沖寬度調制)對模擬信號電平進行數字編碼的方法,計算機只能輸出0或5V的數字電壓值而不能輸出模擬電壓,而我們如果想獲得一個模擬電壓值,則需通過使用高分辨率計數器,改變方波的占空比來對一個模擬信號的電平進行編碼。

仍輸出數字信號,因為滿幅值的直流供電只有5V(1)和0V(0)兩種。電壓是以一種連接(1)或斷開(0)的重復脈沖序列被夾到模擬負載上去的,連接即是直流供電輸出,斷開即是直流供電斷開。通過對連接和斷開時間的控制,只要帶寬足夠,可以輸出任意不大于最大電壓值的模擬電壓。

pwm呼吸燈原理及程序分享

51單片機Timer

用的單片機是STC89C52,其內部有3個16位Timer,分別為T/C0,T/C1,T/C2,通過配置相關寄存器即可實現Timer的功能控制。

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

相關寄存器:

1.IE寄存器

pwm呼吸燈原理及程序分享

2. TCON寄存器

pwm呼吸燈原理及程序分享

3. TMOD寄存器

控制Timer0/1的工作方式

pwm呼吸燈原理及程序分享

pwm呼吸燈原理及程序分享

4. Timer0/1計數寄存器

TL0

TL1

TH0

TH1

當定時開啟后,TL0(TL1)自動跟隨機器周期加一。當TL0(TL1)滿了后,自動清零同時向TH0(TH1)進一位,不需要手動操作。

而當TL0(TL1)和TH0(TH1)都滿了以后,此時如果定時中斷和總中斷都已經打開,那么就會發生溢出中斷,同時這兩個寄存器清零。

運用PWM完成呼吸燈硬件電路

pwm呼吸燈原理及程序分享

程序設計:

unsigned char PWM_COUNT; //計數

unsigned int HUXI_COUNT; //占空比更新時間

unsigned char PWM_VLAUE; //占空比比對值

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

void timer0_init()

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

TH0=0x47; //定時器溢出值設置,每隔200us發起一次中斷。

TL0=0X47; TR0=1; //定時器0開始計時

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

EA=1; //開總中斷

PWM_COUNT =0; }

void time0() interrupt 1

{ PWM_COUNT++; HUXI_COUNT++;

if(PWM_COUNT == PWM_VLAUE) //判斷是否到了點亮LED的時候

LED = 1; //點亮LED

if(PWM_COUNT == 10) //當前周期結束

{ LED = 0; //熄滅LED

PWM_COUNT = 0; //重新計時 }

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; //默認LED熄滅

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

while(1);

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5198

    瀏覽量

    214889
  • 呼吸燈
    +關注

    關注

    10

    文章

    111

    瀏覽量

    42811
收藏 人收藏

    評論

    相關推薦

    PWM驅動LED實現呼吸效果

    C51 利用pwm 驅動LED 實現呼吸效果
    的頭像 發表于 04-24 15:29 ?3911次閱讀
    <b class='flag-5'>PWM</b>驅動LED實現<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>效果

    自己寫的io口輸出pwm呼吸程序,基于stc89c52RC

    源碼和工程文件都給出來,夠積分的下載,積分不夠就自己辛苦復制一下。源碼如下:[code]/*利用io口輸出pwm模擬呼吸*//*T0作為產生pwm的時間基準,*//*T1作為
    發表于 08-29 10:09

    基于stm32的PWM呼吸工程分享

    (NVIC_PriorityGroup_2);//中斷優先級分組分兩組LED_Init();TIM3_CH1_PWM_Init(500,72-1); //頻率是2kHzTIM_SetCompare1(TIM3,i);delay_ms(10); } 全部資料51hei下載地址: 基于stm32的
    發表于 07-02 07:51

    基于stm32的PWM呼吸工程分享

    (NVIC_PriorityGroup_2);//中斷優先級分組分兩組LED_Init();TIM3_CH1_PWM_Init(500,72-1); //頻率是2kHzTIM_SetCompare1(TIM3,i);delay_ms(10); } 全部資料51hei下載地址: 基于stm32的
    發表于 07-06 07:37

    一文分享pwm呼吸原理及程序

    PulseWidthModulation脈沖寬度調制,簡稱PWM。PWM(脈沖寬度調制)對模擬信號電平進行數字編碼的方法,計算機只能輸出0或5V的數字電壓值而不能輸出模擬電壓,而我們如果想獲得一個
    發表于 10-30 08:21

    關于PWM呼吸的幾個問題,求解答

    ){flag = 1;}if(value == 0){flag = 0;}if(value > timer1){LED = 0;}else{LED = 1;}//}}這是我編寫的PWM呼吸
    發表于 04-09 23:36

    STM32 PWM是如何去控制呼吸程序

    PWM的工作原理是什么?STM32 PWM是如何去控制呼吸程序呢?
    發表于 11-26 07:00

    基于stm32 f103的pwm呼吸程序代碼分享

    基于stm32 f103的pwm呼吸程序代碼分享
    發表于 12-14 07:52

    PWM實現呼吸的應用

    stm32實現PWM最簡單方法前言一、PWM概念二、PWM應用輸出比較功能框圖三、PWM呼吸
    發表于 01-21 13:18

    使用單片機的定時器模擬PWM輸出實現呼吸程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機的定時器模擬PWM輸出實現呼吸程序免費下載。
    發表于 09-06 17:27 ?20次下載
    使用單片機的定時器模擬<b class='flag-5'>PWM</b>輸出實現<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的<b class='flag-5'>程序</b>免費下載

    STM32實現PWM呼吸程序合集免費下載

    本文檔的主要內容詳細介紹的是STM32實現PWM呼吸程序合集免費下載。
    發表于 03-19 08:00 ?16次下載
    STM32實現<b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的<b class='flag-5'>程序</b>合集免費下載

    使用PWM控制LED實現呼吸的效果

    本文主要講解使用PWM控制LED,實現呼吸的效果。
    的頭像 發表于 02-08 17:50 ?1.4w次閱讀
    使用<b class='flag-5'>PWM</b>控制LED實現<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的效果

    STM32_PWM呼吸

    全面屏發展,因此很多手機取消了呼吸這一功能,取而代之的是息屏顯示)2、什么是PWM?PWM:Pulse Width Modulation,脈沖寬度調制,是利用微處理器的數字輸出來對模
    發表于 11-26 12:21 ?20次下載
    STM32_<b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    STM32 使用PWM實現呼吸

    STM32 PWM實現呼吸使用STM32F103ZET6 定時器4 CH2通道產生PWM波,在GPIOD,GPIO_PIN13引腳LED1產生呼吸
    發表于 12-24 19:41 ?55次下載
    STM32 使用<b class='flag-5'>PWM</b>實現<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    通過STM32實現PWM呼吸的教程

    顧名思義,就是一個。的亮度的變化,由亮變暗,從暗變亮,有一個漸變,規律的變化,像是人的呼吸,是呼吸,所以叫
    的頭像 發表于 07-26 15:20 ?1.3w次閱讀
    通過STM32實現<b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的教程
    亚洲百家乐官网博彩的玩法技巧和规则 | 全讯网vc8888| 百家乐官网终端下载| 百家乐官网14克粘土筹码| 百家乐娱乐网网| 现金百家乐技巧| 百家乐官网游戏机子| 优博百家乐yobo88| 舟山星空棋牌首页| 奇博娱乐| 百家乐网络公式| 百家乐网投注| 泸水县| 百家乐龙虎的投注法| 无极县| 淘宝博百家乐的玩法技巧和规则| 百家乐官网教父方法| 免水百家乐官网的玩法技巧和规则 | 大发888官网www.dafa888.com | 百家乐打印机分析| 极速百家乐官网真人视讯| 大发888线上娱乐城百家乐| 华人百家乐官网博彩论| 绩溪县| 百家乐麻将筹码币| 姚记百家乐官网的玩法技巧和规则| 星期8百家乐的玩法技巧和规则 | 大发888出纳柜| 博坊百家乐游戏| e世博百家乐官网娱乐场| 恒丰百家乐的玩法技巧和规则| 百家乐官网游戏接口| 澳门百家乐21点| 视频百家乐官网是真是假| 烟台市| 十三张娱乐城开户| 加州百家乐官网的玩法技巧和规则 | 大东方百家乐游戏| 游戏房百家乐官网赌博图片| 优博信誉| 大发888客服端下载|