在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-06-10 08:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、項(xiàng)目介紹

呼吸燈是一種常見的LED燈光效果,它可以模擬人類呼吸的變化,使燈光看起來更加柔和和自然。51單片機(jī)是一種廣泛使用的微控制器,具有體積小、功耗低、成本低等優(yōu)點(diǎn),非常適合用于控制LED呼吸燈。本項(xiàng)目的呼吸燈將使用PWM(脈沖寬度調(diào)制)技術(shù)控制LED亮度,從而實(shí)現(xiàn)呼吸燈的效果。

在本項(xiàng)目中,將使用51單片機(jī)作為主控制器,通過編程實(shí)現(xiàn)呼吸燈的控制。將使用C語言編寫代碼,并使用Keil C51集成開發(fā)環(huán)境進(jìn)行編譯和調(diào)試。使用Proteus仿真軟件進(jìn)行電路設(shè)計(jì)和仿真,確保電路的正確性和穩(wěn)定性。

image-20230606214353670

二、設(shè)計(jì)原理

2.1 PWM技術(shù)

PWM是脈沖寬度調(diào)制(Pulse Width Modulation)的縮寫,是一種通過改變脈沖寬度來控制電路的技術(shù)。在數(shù)字電路中,PWM是一種非常常見的技術(shù),它可以用來控制電機(jī)、LED燈等電子設(shè)備的亮度、速度等參數(shù)。

PWM技術(shù)的基本原理是通過控制脈沖的寬度和周期來控制電路的輸出。在一個(gè)PWM周期內(nèi),電路會(huì)以一定的頻率(也就是PWM頻率)產(chǎn)生一系列脈沖,每個(gè)脈沖的寬度和高電平時(shí)間占整個(gè)周期的比例是由控制器根據(jù)需要設(shè)定的。通過這種方式,可以實(shí)現(xiàn)對(duì)電路輸出的精確控制。

在LED呼吸燈項(xiàng)目中,使用定時(shí)器模擬PWM技術(shù)可以實(shí)現(xiàn)呼吸燈效果。具體來說,就是通過定時(shí)器產(chǎn)生一定頻率的脈沖信號(hào),然后通過改變脈沖的占空比來控制LED燈的亮度。當(dāng)脈沖的占空比逐漸增大時(shí),LED燈的亮度也會(huì)逐漸增強(qiáng),直到達(dá)到最大亮度;當(dāng)脈沖的占空比逐漸減小時(shí),LED燈的亮度也會(huì)逐漸減弱,直到最終熄滅。這樣就可以實(shí)現(xiàn)類似于人類呼吸的漸變效果。

2.2 呼吸燈原理

呼吸燈是一種將 LED 燈光做成漸變效果的技術(shù),可以讓 LED 的亮度在一定時(shí)間內(nèi)慢慢地增加和減小,使得 LED 的亮度變化更加自然和柔和,適合用于需要漸變效果的場(chǎng)景,如燈光調(diào)節(jié)、音響節(jié)拍等。

呼吸燈的原理是通過改變 LED 的 PWM 信號(hào)的占空比來控制 LED 的亮度。PWM(Pulse Width Modulation,脈寬調(diào)制)是一種調(diào)節(jié)模擬信號(hào)幅度的常用技術(shù),它通過改變信號(hào)的脈沖寬度來實(shí)現(xiàn)對(duì)信號(hào)幅度的調(diào)節(jié)。在呼吸燈中,PWM 信號(hào)的頻率較高,而占空比則會(huì)隨著時(shí)間的推移而逐漸變化,從而實(shí)現(xiàn) LED 亮度的漸變效果。

呼吸燈的實(shí)現(xiàn)通常需要使用一個(gè)定時(shí)器和一個(gè) PWM 模塊。定時(shí)器用來定時(shí)觸發(fā)中斷事件,在中斷處理函數(shù)中改變 PWM 信號(hào)的占空比,從而控制 LED 的亮度。在定時(shí)器中斷處理函數(shù)中,可以通過數(shù)學(xué)函數(shù)(如正弦、余弦等)或者簡(jiǎn)單的數(shù)值計(jì)算來得到不同的 PWM 占空比,實(shí)現(xiàn)不同的呼吸燈效果。

2.3 51單片機(jī)

51單片機(jī)是一種廣泛使用的微控制器,具有體積小、功耗低、成本低等優(yōu)點(diǎn),非常適合用于控制LED呼吸燈。

STC89C52是一種基于MCS-51內(nèi)核的8位單片機(jī),由中國的STC公司生產(chǎn)。具有高性價(jià)比、易于編程、廣泛應(yīng)用等特點(diǎn),在工業(yè)控制通信、家電控制等領(lǐng)域得到了廣泛應(yīng)用。

STC89C52單片機(jī)的主要特點(diǎn)如下:

  1. 采用MCS-51內(nèi)核,具有8位數(shù)據(jù)總線和16位地址總線,可以訪問64KB的程序存儲(chǔ)器和64KB的數(shù)據(jù)存儲(chǔ)器。
  2. 內(nèi)置12MHz的晶振,可以通過軟件設(shè)置分頻系數(shù)來獲得不同的系統(tǒng)時(shí)鐘頻率。
  3. 具有多種外設(shè)接口,包括UART、SPI、I2C、定時(shí)器、中斷等,可以方便地實(shí)現(xiàn)各種應(yīng)用。
  4. 支持ISP(In-System Programming)編程方式,可以通過串口或并口進(jìn)行在線編程,方便快捷。
  5. 具有低功耗模式,可以通過軟件設(shè)置進(jìn)入不同的睡眠模式,以節(jié)省系統(tǒng)能耗。

STC89C52單片機(jī)可以使用C語言或匯編語言進(jìn)行編程,編寫的程序可以通過編譯器生成HEX文件,然后通過編程器燒錄到芯片中。由于STC89C52單片機(jī)的廣泛應(yīng)用和豐富的資料,因此學(xué)習(xí)和使用它相對(duì)來說比較容易。

三、代碼實(shí)現(xiàn)

3.1 自動(dòng)呼吸燈

因?yàn)镾TC89C52單片機(jī)沒有PWM輸出功能,只能使用延時(shí)函數(shù)實(shí)現(xiàn),以下是基于STC89C52單片機(jī)實(shí)現(xiàn)呼吸燈效果的完整代碼:

#include < reg52.h >
 ?
 #define LED P1
 ?
 void delay(unsigned int xms)
 {
     unsigned int i, j;
     for (i = xms; i > 0; i--)
         for (j = 110; j > 0; j--);
 }
 ?
 void main()
 {
     unsigned char i;
     while (1)
     {
         for (i = 0; i < 255; i++)
         {
             LED = i;
             delay(10);
         }
         for (i = 255; i > 0; i--)
         {
             LED = i;
             delay(10);
         }
     }
 }

在這個(gè)代碼中,使用了STC89C52單片機(jī)的P1口來控制LED燈的亮度。通過一個(gè)循環(huán),讓LED燈的亮度從0到255逐漸增加,再從255到0逐漸減小,這樣就實(shí)現(xiàn)了呼吸燈的效果。

在代碼中,使用了一個(gè)delay函數(shù)來控制循環(huán)的速度。這個(gè)函數(shù)可以讓程序延時(shí)一定的時(shí)間,從而控制LED燈的亮度變化速度。在這個(gè)代碼中,設(shè)置了每次延時(shí)10毫秒,可以根據(jù)需要調(diào)整這個(gè)值來改變呼吸燈的效果。

3.2 按鍵控制燈光亮度

以下是基于STC89C52單片機(jī)的LED燈亮度控制完整代碼,其中使用了兩個(gè)按鍵分別控制LED的亮度和滅度。

#include < reg52.h >
 ?
 #define LED P1
 ?
 sbit KEY_UP = P3 ^ 2;
 sbit KEY_DOWN = P3 ^ 3;
 ?
 unsigned char pwm = 0;
 ?
 void delay(unsigned int i) {
     while (i--);
 }
 ?
 void key_scan() {
     if (KEY_UP == 0) {
         delay(1000);
         if (KEY_UP == 0) {
             pwm += 10;
             if (pwm >= 100) {
                 pwm = 100;
             }
         }
     }
     if (KEY_DOWN == 0) {
         delay(1000);
         if (KEY_DOWN == 0) {
             pwm -= 10;
             if (pwm <= 0) {
                 pwm = 0;
             }
         }
     }
 }
 ?
 void main() {
     TMOD = 0x01; // 設(shè)置定時(shí)器0為模式1
     TH0 = 0xFC; // 定時(shí)器初值,用于產(chǎn)生PWM信號(hào)的頻率為50Hz
     TL0 = 0x67;
     TR0 = 1; // 啟動(dòng)定時(shí)器0
     ET0 = 1; // 允許定時(shí)器0中斷
     EA = 1; // 開啟總中斷
     while (1) {
         key_scan();
     }
 }
 ?
 void timer0() interrupt 1 {
     static unsigned char cnt = 0;
     if (cnt >= 100) {
         cnt = 0;
     }
     if (cnt < pwm) {
         LED = 0;
     } else {
         LED = 1;
     }
     cnt++;
 }

以上代碼中,使用了定時(shí)器0來產(chǎn)生PWM信號(hào),控制LED的亮度。使用了兩個(gè)按鍵來調(diào)整LED的亮度和滅度。其中,KEY_UP按鍵用于增加LED的亮度,KEY_DOWN按鍵用于減小LED的亮度。在每次定時(shí)器中斷時(shí),根據(jù)pwm的值來控制LED的亮度。當(dāng)cnt小于pwm時(shí),LED為低電平,LED亮度較高;當(dāng)cnt大于等于pwm時(shí),LED為高電平,LED亮度較低。

審核編輯:湯梓紅

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

    關(guān)注

    242

    文章

    23820

    瀏覽量

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

    關(guān)注

    6067

    文章

    44970

    瀏覽量

    649797
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5481

    瀏覽量

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

    關(guān)注

    277

    文章

    5710

    瀏覽量

    127231
  • 呼吸燈
    +關(guān)注

    關(guān)注

    10

    文章

    112

    瀏覽量

    43206
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

    如何利用51單片機(jī)實(shí)現(xiàn)呼吸的設(shè)計(jì)?

    如何利用51單片機(jī)實(shí)現(xiàn)呼吸的設(shè)計(jì)?
    發(fā)表于 10-19 06: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 ?171次下載

    使用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)下載

    使用單片機(jī)設(shè)計(jì)的呼吸程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)設(shè)計(jì)的呼吸程序免費(fèi)下載。
    發(fā)表于 08-02 17:34 ?2次下載
    使用<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>程序免費(fèi)下載

    使用51單片機(jī)設(shè)計(jì)LED點(diǎn)陣呼吸效果程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)LED點(diǎn)陣呼吸效果程序免費(fèi)下載。
    發(fā)表于 07-04 17:41 ?21次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)設(shè)</b>計(jì)LED點(diǎ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 ?15次下載
    使用<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)下載

    51單片機(jī)設(shè)計(jì)簡(jiǎn)易交通

    **51單片機(jī)設(shè)計(jì)簡(jiǎn)易交通**單片機(jī)好難啊 (好像學(xué)啥都難。。。)皮毛也沒學(xué)到設(shè)計(jì)簡(jiǎn)陋(尷尬)不過通過自己的學(xué)習(xí)做出了一點(diǎn)東西 雖然很簡(jiǎn)陋 但還是很讓人開心啊使用Proteus設(shè)計(jì)電
    發(fā)表于 11-04 11:21 ?40次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)設(shè)</b>計(jì)簡(jiǎn)易交通<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ī)心形實(shí)現(xiàn)旋轉(zhuǎn)呼吸流水編程

    51單片機(jī)心形實(shí)現(xiàn)旋轉(zhuǎn)呼吸流水編程
    發(fā)表于 11-23 16:20 ?23次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>心形<b class='flag-5'>燈</b>實(shí)現(xiàn)旋轉(zhuǎn)<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>流水編程

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

    利用51單片機(jī)編寫的呼吸小程序,實(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>程序編寫

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

    51單片機(jī)呼吸頻率的調(diào)節(jié)方法可以通過改變PWM(脈沖寬度調(diào)制)的工作周期和占空比來實(shí)現(xiàn)。在下面的文章中,我將詳細(xì)介紹如何使用51
    的頭像 發(fā)表于 12-19 10:39 ?4006次閱讀
    主站蜘蛛池模板: 婷婷久久综合九色综合九七 | 波多野结衣三个女人蕾丝边 | 国产美女精品视频免费观看 | 激情综合在线 | 最刺激黄a大片免费观看 | 亚洲一级视频在线观看 | 一级毛片在线免费视频 | 国产美女久久久久 | 国产美女一级视频 | 久久精品视频网站 | 国产chinesehd精品酒店 | 视频一区日韩 | 97福利视频 | 91福利网| 日韩免费一级毛片 | 国产精品久久久久久久午夜片 | 一级女性黄 色生活片 | 色综合视频在线 | 亚洲精品影视 | 日本护士撒尿 | 天天操天天玩 | 狠狠操亚洲 | 9久热久re爱免费精品视频 | 四虎成人免费影院网址 | 色聚网久久综合 | 女人张开双腿让男人桶完整 | 嫩草影院网站入口 | 99精品国产在热久久 | 日韩一区二区三区免费 | 糖心vlog麻豆精东影业传媒 | 久久久夜| 天堂综合| 天天夜夜狠狠一区二区三区 | 亚洲第一页国产 | 操美女网址 | 亚洲成人在线播放 | 国产簧片| 亚洲毛片免费在线观看 | 国产美女视频黄a视频免费全过程 | 理论毛片 | 久久综合色播 |