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

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

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

如何用單片機(jī)電路點(diǎn)亮led?

GReq_mcu168 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-11-14 05:07 ? 次閱讀

前面介紹了很多概念知識(shí),做了很多準(zhǔn)備工作,從這一節(jié)開(kāi)始,我們正式開(kāi)始單片機(jī)的學(xué)習(xí)。我們將使用單片機(jī)完成一項(xiàng)非常簡(jiǎn)單的工作:點(diǎn)亮一個(gè)發(fā)光二極管(即LED:Light-Emitting Diode)。

LED簡(jiǎn)介

先簡(jiǎn)單介紹一下LED。LED是一種半導(dǎo)體器件,大家其實(shí)對(duì)LED并不陌生,各種電器的指示燈、手機(jī)鍵盤(pán)燈、LED液晶屏的背光、高亮LED手電筒等,都是通過(guò)LED發(fā)光的。LED有兩種主要用途,一種是作為指示燈;另一種是照明。照明用的LED一般都是大功率LED,需要較大的電壓電流才能正常工作。而這里我們要用到的則是用作指示燈的小功率LED。常見(jiàn)的小功率LED,在它的正負(fù)極加上3V左右的電壓,就會(huì)發(fā)光,正常發(fā)光的時(shí)候,電流大概是2~5mA。這里要注意,LED有正負(fù)極之分,接反了不會(huì)發(fā)光。另外,電壓也不可太高,那樣會(huì)燒壞LED。關(guān)于LED更詳細(xì)的介紹,大家可以參考電子元器件介紹之類的書(shū)籍。

電路設(shè)計(jì)

前面已經(jīng)介紹了,單片機(jī)的IO口能輸出高低電平,點(diǎn)亮LED就是通過(guò)IO口輸出電平實(shí)現(xiàn)的。如果我們把LED的正極接在電源正極,負(fù)極接在單片機(jī)的一個(gè)IO口上。讓單片機(jī)的IO口輸出低電平,也就是接近0V的電壓,這時(shí)LED兩端有電壓差,就能發(fā)光;如果IO口輸出高電平,LED就會(huì)熄滅。

由于我們用的51單片機(jī)是5V供電,而LED需要3V電壓,所以我們需要在LED上串聯(lián)合適的電阻,否則會(huì)燒壞器件。我們可以選用P0~P3共32個(gè)IO口中的任何一個(gè),這里選擇的是P1.0。電路圖如下,電阻取值推薦為330Ω ~ 1kΩ之間。

順便附上電阻阻值的計(jì)算過(guò)程:

1、電阻和LED串聯(lián),LED點(diǎn)亮?xí)r總電壓5V,LED上需要3V,所以電阻上電壓是5-3=2V。

2、LED的電流為2~5mA,如果算成2mA,電阻上電壓為2V,電流為2mA,根據(jù)歐姆定律,所以阻值應(yīng)該為2V/2mA=1kΩ。

面包板搭建電路

我們?cè)谧约旱拿姘迳洗罱ǖ碾娐啡缦?,我把LED連接在P1.0端口上(萬(wàn)用板焊接的電路這里沒(méi)有提供,大家可以自己去搭建):

開(kāi)發(fā)板的使用

如果你是用的是開(kāi)發(fā)板并且上面有LED模塊,你可以查看電路圖。例如我的開(kāi)發(fā)板電路圖:

圖中VCC通過(guò)J1接到RP1上,RP1是排阻,圖中的1號(hào)腳是公共腳,在排阻的內(nèi)部從1號(hào)腳往2~9號(hào)每個(gè)管腳之間有一個(gè)1k電阻,總共8個(gè)1k電阻排列起來(lái),所以叫做排阻。J1相當(dāng)于一個(gè)開(kāi)關(guān),其實(shí)是兩個(gè)排針構(gòu)成的插座。如果插上跳線帽,就可以導(dǎo)通;拔下跳線帽,就斷開(kāi)了。這樣設(shè)計(jì)的好處是,如果我要用LED模塊就插上跳線帽;而如果我不用LED模塊,而講IO口用于其他目的,這時(shí)LED就不會(huì)對(duì)我的電路產(chǎn)生干擾,因?yàn)長(zhǎng)ED一端接IO口,另一端接到排阻上,而排阻另一端是懸空的,沒(méi)有接入電路。

而圖中的標(biāo)號(hào)DB1~DB8又接在單片機(jī)最小系統(tǒng)電路中的P1.0~P1.7的IO口,所以在J1導(dǎo)通的情況下,P1.0~P1.7的高低電平就能控制D1~D8這八個(gè)LED的亮滅了。

具體操作

單片機(jī)的編程,我們通常使用Keil軟件。Keil軟件可以從網(wǎng)上下載,安裝過(guò)程這里不做詳細(xì)介紹,有基本計(jì)算機(jī)操作知識(shí),安裝起來(lái)應(yīng)該沒(méi)有問(wèn)題。值得注意的一點(diǎn)是,安裝的時(shí)候盡量安裝到英文目錄下,最好不要用中文,以免程序運(yùn)行出現(xiàn)問(wèn)題。

我們打開(kāi)Keil軟件,準(zhǔn)備給單片機(jī)寫(xiě)程序。大家可以按照下面的步驟進(jìn)行(這里以Keil uv4英文版為例進(jìn)行說(shuō)明。如果你使用的是Keil其他版本,操作方式基本相同)。

一、新建并配置工程

1、首先新建工程:點(diǎn)擊菜單中的Project – New uVision Project。

2、然后我們?cè)?a target="_blank">電腦上為我們的工程新建一個(gè)文件夾,這里我用的是Project01 – LED,大家可以自行命名,但最好是英文名。

3、打開(kāi)文件夾,輸入工程的名稱,點(diǎn)擊保存。這里我輸入的是LED。

4、然后彈出一個(gè)窗口,讓我們選擇單片機(jī)的型號(hào)。我們用到的是STC89C52RC,而這里面可能沒(méi)有STC單片機(jī),我們只需要選擇完全兼容STC的Atmel系列AT89C52單片機(jī),點(diǎn)擊OK確認(rèn)即可。

5、隨后會(huì)彈出一個(gè)窗口,提示我們是否需要添加8051的啟動(dòng)代碼到工程中,點(diǎn)擊否即可(如果我們需要使用自定義的啟動(dòng)代碼,則可以點(diǎn)是,然后修改啟動(dòng)代碼。而我們編程用的是C語(yǔ)言,一般情況下不需要修改啟動(dòng)代碼。至于啟動(dòng)代碼有什么用處,則可以等到我們對(duì)單片機(jī)了解的比較深入的時(shí)候再查找相關(guān)資料進(jìn)行學(xué)習(xí))。

6、下面我們對(duì)工程進(jìn)行簡(jiǎn)單的設(shè)置。右擊Target 1,選擇第一項(xiàng)Options for Target ‘Target1’…,彈出工程屬性設(shè)置窗口。

7、我們打開(kāi)Output標(biāo)簽,并勾選Create HEX File,然后點(diǎn)擊OK確認(rèn)即可。

二、新建源文件并添加至工程中

1、工程新建并配置完成了,下面我們開(kāi)始新建程序源文件。點(diǎn)擊菜單中的File-New,出現(xiàn)一個(gè)新的文件,如圖。

2、然后我們點(diǎn)擊保存按鈕,將其保存到工程文件夾Project01 – LED中,保存為擴(kuò)展名是“.c”的文件,如main.c。這里大家要注意的是,源文件其實(shí)只是一個(gè)普通的文本文件,不過(guò)擴(kuò)展名是c而不是txt。我們剛剛新建main.c文件的操作,也可以通過(guò)在資源管理器中新建文本文檔,然后重命名為main.c的方式進(jìn)行。

3、源文件新建好了。源文件只是一個(gè)獨(dú)立的文本文件,而工程文件現(xiàn)在和剛剛新建的源文件還是完全獨(dú)立、沒(méi)有關(guān)聯(lián)的。我們要把剛剛新建的main.c文件添加到我們的工程中來(lái):右擊Target 1/Source Group 1,并選擇菜單中的Add Files to Group ‘Source Group 1’…來(lái)添加文件。

4、雙擊需要添加的文件main.c,或者選中它再點(diǎn)擊Add按鈕,從左邊的Project窗口就可以看到,文件就已經(jīng)被添加到工程中了。這時(shí)彈出的窗口并沒(méi)有關(guān)閉,因?yàn)檫@樣可以方便繼續(xù)添加其他文件。因?yàn)槲覀儸F(xiàn)在只需添加一個(gè)文件并且添加好了,所以點(diǎn)擊Close關(guān)閉彈出的窗口。

三、編寫(xiě)程序并編譯

1、我們打開(kāi)main.c,開(kāi)始正式編寫(xiě)程序了。我們編寫(xiě)的程序如下并保存。至于這個(gè)程序是什么含義,之后將詳細(xì)介紹。注意一點(diǎn),我給出的程序中設(shè)置的LED是P1.0,如果你的開(kāi)發(fā)板或者自己搭建的電路中LED的IO口不是P1.0,你需要照著我給出的格式修改sbit那一行。這一點(diǎn)也充分體現(xiàn)了,單片機(jī)編程是和實(shí)際硬件電路息息相關(guān)的,程序和電路要配套,才能正常運(yùn)行。

#include

sbit LED = P1^0;

void main()

{

LED = 0;

while(1);

}

2、點(diǎn)擊左上方的雙箭頭按鈕編譯全部文件,我們看到下方的輸出窗口顯示編譯完成,“creating hex file from ‘LED’”表明已經(jīng)編譯時(shí)創(chuàng)建了HEX文件(HEX文件是十六進(jìn)制文件,將燒寫(xiě)進(jìn)單片機(jī)。相當(dāng)于Windows中的可執(zhí)行文件“.exe”),“0 Error(s), 0 Warning(s).”表示編譯成功,程序也沒(méi)有語(yǔ)法錯(cuò)誤。如果提示你的程序有錯(cuò),請(qǐng)細(xì)心的檢查一下,有沒(méi)有發(fā)生漏掉分號(hào)等情況。

四、燒寫(xiě)程序到單片機(jī)中

在工程文件夾下,我們可以看到生成的LED.hex文件,這正是我們所需要的。下面我們將把LED.hex文件燒寫(xiě)進(jìn)單片機(jī)。前面已經(jīng)介紹了單片機(jī)程序下載相關(guān)知識(shí),這里我們將介紹下載程序的一般步驟。由于大家使用的電腦、開(kāi)發(fā)板等都不完全一樣,有可能會(huì)下載失敗。希望下載沒(méi)有成功的讀者不要灰心,關(guān)于下載失敗如何處理,請(qǐng)繼續(xù)看后面內(nèi)容。下載程序的操作步驟如下:

1、設(shè)置單片機(jī)型號(hào),這里我們?cè)O(shè)置單片機(jī)為STC89C52RC。

2、設(shè)置串口端口號(hào),波特率等參數(shù)。由于我們一般用的是USB轉(zhuǎn)串口芯片,不是真正的RS232串口,所以串口號(hào)不固定,每次插上轉(zhuǎn)接板或單片機(jī)學(xué)習(xí)板時(shí),我們應(yīng)打開(kāi)設(shè)備管理器如圖(XP系統(tǒng):右擊“我的電腦”→“屬性”→“硬件”→“設(shè)備管理器”;Win7系統(tǒng):右擊“計(jì)算機(jī)”→“管理”→“設(shè)備管理器”)。找到端口(COM和LPT)選項(xiàng),展開(kāi),里面會(huì)有一個(gè)類似“Prolific USB-to-Serial Comm Port(COM1)”或者“USB-SERIAL CH431(COM1)”的項(xiàng)。括號(hào)里面的COMx就是我們要找的端口號(hào)。填到STC-ISP中就可以了(如果有多項(xiàng)不知道是哪一個(gè),可以插拔單片機(jī)學(xué)習(xí)板看哪項(xiàng)會(huì)刷新)。如果很不幸,你的串口號(hào)很大,超出STC-ISP可設(shè)置的范圍了,可以右擊設(shè)備管理器中顯示的那一項(xiàng)更改COM端口序號(hào)。波特率等選項(xiàng)一般按默認(rèn)即可,不需設(shè)置。

3、點(diǎn)擊“打開(kāi)程序文件”,選擇要燒寫(xiě)的單片機(jī)程序HEX或BIN文件。HEX或BIN文件是編譯之后的機(jī)器碼,打開(kāi)后可以在STC-ISP右側(cè)程序文件中看到對(duì)應(yīng)的十六進(jìn)制數(shù)字。你可以選擇自己寫(xiě)的程序產(chǎn)生的機(jī)器碼,也可以在STC-ISP的test-hex目錄中找一些測(cè)試程序。這里我們選擇剛剛編譯生成的HEX文件。

4、先點(diǎn)擊“下載”,然后再打開(kāi)電源開(kāi)關(guān),給單片機(jī)上電。稍后STC-ISP就會(huì)顯示正在燒寫(xiě)程序。如果點(diǎn)擊“下載”前忘了先關(guān)電源,或者程序沒(méi)能下載,不需要點(diǎn)擊“停止”按鈕,直接斷電再上電嘗試即可。一般幾秒鐘就能下載完成,STC-ISP中會(huì)顯示下載成功。

五、觀察程序執(zhí)行結(jié)果,有必要的時(shí)調(diào)試程序。

一般程序下載完成后,如果P1.0口接有LED,電路連接無(wú)誤,LED就會(huì)奇跡般的亮起來(lái)。我們就成功的讓單片機(jī)執(zhí)行了我們自己寫(xiě)的程序。每個(gè)初學(xué)單片機(jī)的人在看到這一幕的時(shí)候,往往都會(huì)激動(dòng)萬(wàn)分,正如我第一次學(xué)習(xí)單片機(jī)一樣開(kāi)心。由于這里的程序非常簡(jiǎn)單,基本不需要調(diào)試。這時(shí)你就可以向好友炫耀一下,展示你的勞動(dòng)成果了。

聲明:本文內(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)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23323

    瀏覽量

    661958
  • 單片機(jī)電路
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7495
  • 面包板
    +關(guān)注

    關(guān)注

    3

    文章

    298

    瀏覽量

    17590

原文標(biāo)題:?jiǎn)纹瑱C(jī)小白(13):點(diǎn)亮第一個(gè)LED——好的開(kāi)始,成功的一半

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)入門(mén)之點(diǎn)亮LED

    上一章中我們已經(jīng)認(rèn)識(shí)了單片機(jī),并且完成了開(kāi)發(fā)環(huán)境的搭建,這章中我們正式開(kāi)始進(jìn)入單片機(jī)編程的學(xué)習(xí),本章的學(xué)習(xí)目標(biāo)是 點(diǎn)亮一盞LED燈 。
    發(fā)表于 06-26 15:38 ?2679次閱讀
    <b class='flag-5'>單片機(jī)</b>入門(mén)之<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>燈

    求大神指點(diǎn)怎樣通過(guò)51單片機(jī)點(diǎn)亮LED燈?

    怎樣通過(guò)51單片機(jī)點(diǎn)亮LED燈?如何用Proteus對(duì)LED燈進(jìn)行仿真?
    發(fā)表于 07-06 09:14

    單片機(jī)點(diǎn)亮LED

    點(diǎn)亮LED原理單片機(jī)點(diǎn)亮LED利用LED陽(yáng)極為正陰極為負(fù)才會(huì)導(dǎo)通
    發(fā)表于 11-18 06:10

    何用單片機(jī)點(diǎn)亮LED

    點(diǎn)亮,就把單片機(jī)相關(guān)的I/O口賦為低電平。(3)單片機(jī)中,用0表示低電平,1表示高電平。2.C語(yǔ)言基礎(chǔ)此處不做過(guò)多贅述,相關(guān)語(yǔ)法知識(shí)可復(fù)習(xí)C語(yǔ)言基礎(chǔ)。3.點(diǎn)亮一盞
    發(fā)表于 11-23 09:10

    使用51單片機(jī)點(diǎn)亮LED的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)點(diǎn)亮LED的C語(yǔ)言程序免費(fèi)下載。
    發(fā)表于 09-02 17:28 ?0次下載
    使用51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>的程序免費(fèi)下載

    使用單片機(jī)點(diǎn)亮LED的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)點(diǎn)亮LED的程序免費(fèi)下載。
    發(fā)表于 07-30 17:35 ?3次下載
    使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>的程序免費(fèi)下載

    如何使用單片機(jī)點(diǎn)亮LED

    我們學(xué)單片機(jī),第一個(gè)程序就是點(diǎn)亮一盞LED燈,那么我單片機(jī)開(kāi)啟面向?qū)ο蠓绞降牡谝徊揭彩?b class='flag-5'>點(diǎn)亮一盞LED
    發(fā)表于 07-16 17:39 ?4次下載
    如何使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>燈

    使用單片機(jī)點(diǎn)亮LED的學(xué)習(xí)課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)點(diǎn)亮LED的學(xué)習(xí)課件免費(fèi)下載
    發(fā)表于 10-14 08:00 ?6次下載
    使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>的學(xué)習(xí)課件免費(fèi)下載

    AT89C51單片機(jī)點(diǎn)亮LED

    AT89C51單片機(jī)點(diǎn)亮LED1、環(huán)境要求安裝proteus(用來(lái)單片機(jī)仿真的)安裝keli(用來(lái)生成單片機(jī)所需的HEX文件)2、prot
    發(fā)表于 11-11 14:36 ?10次下載
    AT89C51<b class='flag-5'>單片機(jī)</b>之<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>

    51單片機(jī)——LED燈的點(diǎn)亮

    點(diǎn)亮LED原理單片機(jī)點(diǎn)亮LED 利用LED陽(yáng)極為正陰極為負(fù)才會(huì)導(dǎo)通
    發(fā)表于 11-11 19:21 ?19次下載
    51<b class='flag-5'>單片機(jī)</b>——<b class='flag-5'>LED</b>燈的<b class='flag-5'>點(diǎn)亮</b>

    51單片機(jī) 點(diǎn)亮一個(gè)LED LED閃爍

    ) //循環(huán) { }}使用51單片機(jī)點(diǎn)亮一個(gè)LED#include <reg52.h> //51單片機(jī)頭文件sbit
    發(fā)表于 11-23 17:06 ?5次下載
    51<b class='flag-5'>單片機(jī)</b> <b class='flag-5'>點(diǎn)亮</b>一個(gè)<b class='flag-5'>LED</b> <b class='flag-5'>LED</b>閃爍

    89C52單片機(jī) 點(diǎn)亮第一個(gè) led,流水燈的實(shí)現(xiàn)

    文章目錄1、簡(jiǎn)介2、了解開(kāi)發(fā)板電路圖2、代碼編寫(xiě) ,點(diǎn)亮 LED13.將編寫(xiě)的程序燒錄 單片機(jī)4. 實(shí)物觀測(cè)1、簡(jiǎn)介網(wǎng)上購(gòu)買(mǎi)的單片機(jī)開(kāi)發(fā)板,
    發(fā)表于 11-23 17:06 ?7次下載
    89C52<b class='flag-5'>單片機(jī)</b> <b class='flag-5'>點(diǎn)亮</b>第一個(gè) <b class='flag-5'>led</b>,流水燈的實(shí)現(xiàn)

    51單片機(jī)——點(diǎn)亮一個(gè)LED

    51單片機(jī)——點(diǎn)亮一個(gè)LED燈文章目錄51單片機(jī)——點(diǎn)亮一個(gè)LED燈一、原理圖二、
    發(fā)表于 11-23 18:06 ?16次下載
    51<b class='flag-5'>單片機(jī)</b>——<b class='flag-5'>點(diǎn)亮</b>一個(gè)<b class='flag-5'>LED</b>燈

    實(shí)例:用單片機(jī)點(diǎn)亮家庭電路中的燈

    能否使用單片機(jī)點(diǎn)亮家庭電路中的燈?當(dāng)然可以,對(duì)于熟悉單片機(jī)的人來(lái)說(shuō),原理很簡(jiǎn)單!
    的頭像 發(fā)表于 03-24 09:11 ?2202次閱讀

    基于單片機(jī)點(diǎn)亮LED

    單片機(jī)來(lái)點(diǎn)亮LED燈就像用C語(yǔ)言輸出“hello world”一樣,是入門(mén)的第一課。
    的頭像 發(fā)表于 05-24 14:25 ?1860次閱讀
    基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>燈