chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

單片機(jī)中LED有哪些作用

Q4MP_gh_c472c21 ? 來源:嵌入式專欄 ? 作者:strongerHuang ? 2021-11-16 15:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多初學(xué)者覺得自己學(xué)的東西很基礎(chǔ),擔(dān)心今后實(shí)際工作用不到。有初學(xué)者問了這樣的問題:單片機(jī)真正開發(fā)產(chǎn)品和學(xué)習(xí)的時(shí)候有什么差別,平時(shí)學(xué)的LED、ADC這些東西,在實(shí)際項(xiàng)目中會(huì)用到嗎? 雖然技術(shù)更新迭代很快,但有很多基本的技術(shù),仍然在實(shí)際項(xiàng)目中會(huì)用到,今天就拿LED為例來說說吧。

01

LED有哪些作用?

別小看LED,它在實(shí)際生活中應(yīng)用很廣泛的。

首先就是以LED為光源的項(xiàng)目,比如呼吸燈、廣告燈、LED顯示屏等,這類控制LED亮滅(閃爍),或者亮度漸變。

其次是LED背光燈,像液晶背光燈、按鍵背光燈等,這種也是需要控制LED變化的。我之前做過有按鍵的項(xiàng)目,按鍵背光燈需要漸變、配合音效控制LED不同頻率閃爍,目的就是為了達(dá)到更好的體驗(yàn)效果。

再次是LED作為指示燈,電源指示燈、狀態(tài)指示燈,這種就和接近初學(xué)者的學(xué)習(xí)時(shí)的LED燈,但這種卻在項(xiàng)目中很常見。

拿狀態(tài)指示燈來說,一個(gè)項(xiàng)目的LED狀態(tài)指示燈可以直觀明了的指示設(shè)備的運(yùn)行狀態(tài),比如:運(yùn)行、故障、待機(jī)、死機(jī)等常見狀態(tài)。通過RGB,或者紅黃綠不同顏色LED組合,可以實(shí)現(xiàn)更多狀態(tài)的指示。

下面針對(duì)LED狀態(tài)燈,說幾點(diǎn)細(xì)節(jié)的內(nèi)容。

02

LED狀態(tài)燈的實(shí)現(xiàn)

這里結(jié)合代碼為大家分享一些項(xiàng)目中常見的LED狀態(tài)燈的實(shí)現(xiàn)方法。

單色LED運(yùn)行狀態(tài)指示燈:

通過閃爍(一亮一滅)指示設(shè)備運(yùn)行的狀態(tài)的指示燈,一個(gè)關(guān)鍵作用:設(shè)備有沒有死機(jī)。

很多產(chǎn)品中都會(huì)用到,你買一個(gè)開發(fā)板,提供的綜合例程也基本都有。

裸機(jī)情況下(一般狀態(tài)機(jī)),在某一個(gè)狀態(tài)實(shí)現(xiàn)LED閃爍:

int main(void){//系統(tǒng)初始化  while(1)  {//dosomething    switch(State)    {      case 狀態(tài)1:        //do something      break;
      case 狀態(tài)2:        //do somethingbreak;      ·      ··      case 狀態(tài)燈:        ED_TOGGLE();  //LED閃爍      break;    }  }}
RTOS情況下,新建一個(gè)狀態(tài)燈線程,在線程里面直接控制即可:

?

void StatusLight_Task(void *pvParameters){staticTickType_txLastWakeTime;//初始化xLastWakeTime=xTaskGetTickCount();  for(;;){//dosomething    LED_TOGGLE();   //LED閃爍    vTaskDelayUntil(&xLastWakeTime, 500);  }}

03

單色LED漸變

LED漸變?cè)谏钪衅鋵?shí)也有一些場(chǎng)景在用,呼吸燈、鍵盤等,其實(shí)原來也很簡(jiǎn)單,就是控制LED亮度。

控制方法有很多,電壓、PWM都能達(dá)到控制LED亮度的效果。當(dāng)然,現(xiàn)在還有控制LED漸變的專有芯片。

但是,對(duì)于單片機(jī)項(xiàng)目來說,單片機(jī)自身就能實(shí)現(xiàn),如果單獨(dú)用一個(gè)芯片,就顯得有點(diǎn)多余。 使用DAC輸出模擬量可以實(shí)現(xiàn),但如果多路就不現(xiàn)實(shí),因此這種方法不常見。 常見的是PWM控制IO高低電平(從而控制電壓),這種對(duì)于單片機(jī)來說有兩種方法:

a. 定時(shí)器硬件PWM:一個(gè)定時(shí)器輸出PWM波形的同時(shí),還需要一個(gè)定時(shí)器定時(shí)更新PWM輸出占空比(修改亮度)。

b. 控制GPIO口高低電平:這個(gè)方法就比較簡(jiǎn)單,控制IO口高低電平時(shí)間,只是這個(gè)時(shí)間需要結(jié)合整個(gè)項(xiàng)目業(yè)務(wù)邏輯(特別是裸機(jī)情況下),不能出現(xiàn)“卡機(jī)”情況。

當(dāng)然,在RTOS情況下,業(yè)務(wù)邏輯就比較簡(jiǎn)單,單獨(dú)一個(gè)線程:

LED_ON();vTaskDelay(TimesON);LED_OFF();vTaskDelay(TimesOFF);
這里TimesONTimesOFF是需要結(jié)合項(xiàng)目情況修改的變量(比如漸變時(shí)間)。

04

多色LED,多種運(yùn)行狀態(tài)

一個(gè)設(shè)備在沒有顯示屏指示狀態(tài)的時(shí)候,通過LED指示狀態(tài)也是一種方法,比如:紅、黃、綠三色,分別常滅、常亮、閃爍三種狀態(tài)。

這種相對(duì)第一種單色固定狀態(tài)要復(fù)雜一點(diǎn),但實(shí)現(xiàn)起來也不難,方法也有很多。

這里分享一些思路:創(chuàng)建一個(gè)線程,一個(gè)結(jié)構(gòu)體,輪詢各種LED狀態(tài),根據(jù)應(yīng)用修改其各種狀態(tài),以及閃爍時(shí)間等。

LED狀態(tài)結(jié)構(gòu)體:

typedef struct{uint8_tMode;//模式  uint8_t  Status;                //當(dāng)前狀態(tài)  uint16_t OffTimes;              //滅時(shí)間  uint16_t OnTimes;               //亮?xí)r間(ms)uint16_tCounter;//計(jì)數(shù)(計(jì)時(shí))  void (*OffFun)(void);           //滅函數(shù)接口  void (*OnFun)(void);            //亮函數(shù)接口}SL_TypeDef;/* 狀態(tài)燈 */

LED狀態(tài)主線程:

void StatusLight_Task(void *pvParameters){staticTickType_txLastWakeTime;  xLastWakeTime = xTaskGetTickCount();
  for(;;)  {    SL_Scan(&sSLG_Structure);      //紅燈    SL_Scan(&sSLY_Structure);      //黃燈    SL_Scan(&sSLR_Structure);      //綠燈
    vTaskDelayUntil(&xLastWakeTime, SL_TASK_PERIOD);  }}

這里結(jié)構(gòu)體也是方便統(tǒng)一管理,其中SL_Scan瀏覽(掃描)函數(shù)的參數(shù)通過傳遞結(jié)構(gòu)體指針,是為了方便讀取并修改其中變量。 當(dāng)然,SL_Scan 瀏覽函數(shù)具體實(shí)現(xiàn),就與你應(yīng)用有關(guān):
static void SL_Scan(SL_TypeDef *SL_Struct){  /* 常滅模式 */  if(SL_MODE_OFF == SL_Struct->Mode)  {    SL_Struct->Status = SL_STATUS_OFF;           //狀態(tài)置為"滅"    SL_Struct->OffFun();                         //滅燈  }  /* 常亮模式 */  else if(SL_MODE_ON == SL_Struct->Mode)  {    SL_Struct->Status = SL_STATUS_ON;            //狀態(tài)置為"亮"    SL_Struct->OnFun();                          //亮燈  }  /* 閃爍模式 */  else if(SL_MODE_FLICKER == SL_Struct->Mode)  {    /* 在滅狀態(tài) */    if(SL_STATUS_OFF == SL_Struct->Status)    {      SL_Struct->Counter++;      if(SL_Struct->Counter >= SL_Struct->OffTimes)      {        SL_Struct->Counter = 0;        SL_Struct->OnFun();                      //亮燈        SL_Struct->Status = SL_STATUS_ON;        //狀態(tài)置為"亮"      }    }    /* 在亮狀態(tài) */    else if(SL_STATUS_ON == SL_Struct->Status)    {      SL_Struct->Counter++;      if(SL_Struct->Counter >= SL_Struct->OnTimes)      {        SL_Struct->Counter = 0;        SL_Struct->OffFun();                     //滅燈        SL_Struct->Status = SL_STATUS_OFF;       //狀態(tài)置為"滅"      }    }    else    {      SL_Struct->Status = SL_STATUS_OFF;         //狀態(tài)置為"滅"    }  }  /* 未知模式 */  else  {    SL_Struct->Status = SL_STATUS_OFF;           //狀態(tài)置為"滅"    SL_Struct->OffFun();                         //滅燈  }}

05

最后

以上的控制LED的狀態(tài),其實(shí)是一個(gè)項(xiàng)目中很小的一個(gè)模塊,還有更復(fù)雜的LED實(shí)現(xiàn)和控制方法,相信做過這一塊的同學(xué)就比較了解。 當(dāng)然,LED在項(xiàng)目中是微不足道的一個(gè)模塊,但是,如果針對(duì)莫個(gè)人設(shè)計(jì)一塊LED的產(chǎn)品,那就意義非凡了。

上面這種,相信很多暖(zhi)男都做過,就是不知道,最終那個(gè)女孩子感動(dòng)了沒有?如果感動(dòng)了,那這個(gè)LED項(xiàng)目就是一生中非常重要的項(xiàng)目。

責(zé)任編輯:haq


聲明:本文內(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)注

    243

    文章

    24334

    瀏覽量

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

    關(guān)注

    6071

    文章

    45266

    瀏覽量

    660943
  • 光源
    +關(guān)注

    關(guān)注

    3

    文章

    770

    瀏覽量

    70866

原文標(biāo)題:只會(huì)用單片機(jī)點(diǎn)燈,很丟人嗎?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    什么單片機(jī)比較耐用

    ? ? ? ? 在工業(yè)控制、戶外設(shè)備、醫(yī)療儀器等場(chǎng)景單片機(jī)的耐用性直接決定了設(shè)備的穩(wěn)定運(yùn)行與維護(hù)成本。耐用的單片機(jī)通常具備寬溫工作范圍、強(qiáng)抗干擾能力、穩(wěn)定的電源適應(yīng)性和長(zhǎng)壽命的硬件設(shè)計(jì)。深圳市安
    的頭像 發(fā)表于 07-31 13:48 ?476次閱讀

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測(cè)量
    的頭像 發(fā)表于 07-25 11:39 ?307次閱讀

    單片機(jī)怎么驅(qū)動(dòng)電機(jī)?

    在各類自動(dòng)化設(shè)備和智能裝置,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過特定的方式驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動(dòng)電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類型和功率,搭配合適的驅(qū)動(dòng)電路,才能實(shí)現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?307次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫好的程序代碼寫入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過程,是單片機(jī)應(yīng)用開發(fā)不可或缺的環(huán)節(jié)。無論是簡(jiǎn)單的燈光控
    的頭像 發(fā)表于 07-23 11:47 ?491次閱讀

    單片機(jī)和伺服什么區(qū)別

    單片機(jī)和伺服的區(qū)別 單片機(jī)(Microcontroller)和伺服(Servo System)是兩種完全不同的技術(shù)概念,分別屬于 控制系統(tǒng)硬件 和 運(yùn)動(dòng)控制執(zhí)行系統(tǒng) 。以下是它們的詳細(xì)對(duì)比和區(qū)別
    的頭像 發(fā)表于 05-26 09:18 ?459次閱讀

    PLC和單片機(jī)到底什么區(qū)別?

    在自動(dòng)化和嵌入式開發(fā)領(lǐng)域,PLC和單片機(jī)是兩種常見的控制系統(tǒng)。雖然它們許多相似之處,但它們的功能、應(yīng)用范圍、開發(fā)成本等方面也存在顯著差異。本文將從多個(gè)角度詳細(xì)探討這兩者的不同之處,幫助大家更好地理
    的頭像 發(fā)表于 04-07 11:58 ?3990次閱讀
    PLC和<b class='flag-5'>單片機(jī)</b>到底<b class='flag-5'>有</b>什么區(qū)別?

    單片機(jī)中斷技術(shù)詳解

    在現(xiàn)代電子設(shè)備,單片機(jī)作為控制核心發(fā)揮著舉足輕重的作用。而在其高效運(yùn)作的背后,中斷機(jī)制是推動(dòng)單片機(jī)實(shí)現(xiàn)實(shí)時(shí)響應(yīng)與高效執(zhí)行的關(guān)鍵因素。本文將深入探討
    的頭像 發(fā)表于 02-02 15:57 ?1285次閱讀

    單片機(jī)在電子技術(shù)的應(yīng)用及發(fā)展

    其在實(shí)現(xiàn)設(shè)備智能化、微型化和功能提升方面的重要作用。接著,探討了單片機(jī)技術(shù)的最新發(fā)展動(dòng)態(tài),如片內(nèi)存儲(chǔ)器的改進(jìn)、在線編程技術(shù)的應(yīng)用以及接口技術(shù)的發(fā)展等,為單片機(jī)技術(shù)的未來發(fā)展提供了方向。 關(guān)鍵詞 :
    的頭像 發(fā)表于 01-15 10:30 ?1078次閱讀

    AFE4400的30管腳CLKOUT什么作用,他需要和單片機(jī)相連嗎?連接到哪?

    AFE4400的30管腳CLKOUT什么作用,他需要和單片機(jī)相連嗎?連接到哪?
    發(fā)表于 12-31 08:32

    單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令

    單片機(jī)(Microcontroller Unit, MCU)調(diào)試是嵌入式開發(fā)的一個(gè)重要環(huán)節(jié),它幫助開發(fā)者發(fā)現(xiàn)和修復(fù)代碼的錯(cuò)誤,優(yōu)化程序性能。不同的單片機(jī)和開發(fā)環(huán)境可能使用不同的調(diào)試
    的頭像 發(fā)表于 12-19 09:56 ?1955次閱讀

    51單片機(jī)為什么很少出現(xiàn)printf的身影

    51單片機(jī)為什么很少出現(xiàn) printf 的身影?是用不了嗎? 不是的,51單片機(jī)可以用 printf,只是不建議使用。 平時(shí)我們?cè)诓僮飨到y(tǒng)上寫C語言代碼,使用 printf 可以把數(shù)據(jù)寫到標(biāo)準(zhǔn)輸出
    的頭像 發(fā)表于 12-03 10:46 ?1694次閱讀
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>中</b>為什么很少出現(xiàn)printf的身影

    單片機(jī)在物聯(lián)網(wǎng)作用

    隨著技術(shù)的飛速發(fā)展,物聯(lián)網(wǎng)已經(jīng)成為連接物理世界與數(shù)字世界的橋梁。物聯(lián)網(wǎng)設(shè)備通過互聯(lián)網(wǎng)相互連接,實(shí)現(xiàn)數(shù)據(jù)的收集、處理和傳輸,從而提高效率、降低成本并增強(qiáng)用戶體驗(yàn)。在這一過程,單片機(jī)作為物聯(lián)網(wǎng)設(shè)備
    的頭像 發(fā)表于 11-01 14:27 ?2003次閱讀

    如何優(yōu)化單片機(jī)項(xiàng)目的功耗

    在現(xiàn)代電子設(shè)計(jì),功耗優(yōu)化已成為一個(gè)不可忽視的重要議題。對(duì)于單片機(jī)(MCU)項(xiàng)目而言,功耗不僅關(guān)系到產(chǎn)品的能效比,還直接影響到電池壽命和熱管理。 硬件層面的功耗優(yōu)化 1. 選擇合適的單片機(jī) 選擇一個(gè)
    的頭像 發(fā)表于 11-01 14:16 ?1620次閱讀

    單片機(jī)在工業(yè)自動(dòng)化的應(yīng)用

    用電器、汽車電子和工業(yè)控制系統(tǒng)。在工業(yè)自動(dòng)化單片機(jī)因其可靠性、靈活性和成本效益而受到青睞。 2. 單片機(jī)的特點(diǎn) 低成本 :單片機(jī)的價(jià)格相對(duì)較低,適合大規(guī)模部署。 高性能 :現(xiàn)代
    的頭像 發(fā)表于 11-01 14:15 ?1984次閱讀

    單片機(jī)編程語言哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫程序的過程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng),如家用電器、汽車電子、工業(yè)控制等領(lǐng)
    的頭像 發(fā)表于 11-01 14:13 ?3350次閱讀