日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半

發(fā)布時(shí)間:2024/9/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

LED簡(jiǎn)單介紹

先簡(jiǎn)介一下LED。LED是一種半導(dǎo)體器件,大家事實(shí)上對(duì)LED并不陌生,各種電器的指示燈、手機(jī)鍵盤燈、LED液晶屏的背光、高亮LED手電筒等,都是通過LED發(fā)光的。LED有兩種主要用途,一種是作為指示燈;還有一種是照明。照明用的LED一般都是大功率LED,須要較大的電壓電流才干正常工作。

而這里我們要用到的則是用作指示燈的小功率LED。常見的小功率LED。在它的正負(fù)極加上3V左右的電壓,就會(huì)發(fā)光。正常發(fā)光的時(shí)候。電流大概是2~5mA。這里要注意,LED有正負(fù)極之分,接反了不會(huì)發(fā)光。另外,電壓也不可太高,那樣會(huì)燒壞LED。

關(guān)于LED更具體的介紹,大家能夠參考電子元器件介紹之類的書籍。

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

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

因?yàn)槲覀冇玫?1單片機(jī)是5V供電,而LED須要3V電壓,所以我們須要在LED上串聯(lián)合適的電阻,否則會(huì)燒壞器件。

我們能夠選用P0~P3共32個(gè)IO口中的不論什么一個(gè),這里選擇的是P1.0。電路圖例如以下,電阻取值推薦為330Ω ~ 1kΩ之間。

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

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

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

面包板搭建電路

我們?cè)谧约旱拿姘迳洗罱ǖ碾娐防缫韵隆N野袻ED連接在P1.0port上(萬用板焊接的電路這里沒有提供,大家能夠自己去搭建):

開發(fā)板的使用

假設(shè)你是用的是開發(fā)板而且上面有LED模塊。你能夠查看電路圖。

比如我的開發(fā)板電路圖:

圖中VCC通過J1接到RP1上,RP1是排阻,圖中的1號(hào)腳是公共腳,在排阻的內(nèi)部從1號(hào)腳往2~9號(hào)每一個(gè)管腳之間有一個(gè)1k電阻。總共8個(gè)1k電阻排列起來,所以叫做排阻。J1相當(dāng)于一個(gè)開關(guān)。事實(shí)上是兩個(gè)排針構(gòu)成的插座。假設(shè)插上跳線帽,就能夠?qū)?#xff1b;拔下跳線帽,就斷開了。這樣設(shè)計(jì)的優(yōu)點(diǎn)是。假設(shè)我要用LED模塊就插上跳線帽;而假設(shè)我不用LED模塊。而講IO口用于其它目的,這時(shí)LED就不會(huì)對(duì)我的電路產(chǎn)生干擾。由于LED一端接IO口,還有一端接到排阻上。而排阻還有一端是懸空的,沒有接入電路。

而圖中的標(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的亮滅了。

詳細(xì)操作

單片機(jī)的編程,我們通常使用Keil軟件。Keil軟件能夠從網(wǎng)上下載。安裝過程這里不做具體介紹,有基本計(jì)算機(jī)操作知識(shí),安裝起來應(yīng)該沒有問題。

值得注意的一點(diǎn)是,安裝的時(shí)候盡量安裝到英文文件夾下,最好不要用中文,以免程序執(zhí)行出現(xiàn)故障。

我們打開Keil軟件。準(zhǔn)備給單片機(jī)敲代碼。

大家能夠依照以下的步驟進(jìn)行(這里以Keil uv4英文版為例進(jìn)行說明。

假設(shè)你使用的是Keil其它版本號(hào)。操作方式基本同樣)。

一、新建并配置project

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

2、然后我們?cè)陔娔X上為我們的project新建一個(gè)目錄,這里我用的是Project01 – LED,大家能夠自行命名,但最好是英文名。

3、打開目錄,輸入project的名稱,點(diǎn)擊保存。這里我輸入的是LED。

4、然后彈出一個(gè)窗體,讓我們選擇單片機(jī)的型號(hào)。

我們用到的是STC89C52RC。而這里面可能沒有STC單片機(jī),我們僅僅須要選擇全然兼容STC的Atmel系列AT89C52單片機(jī),點(diǎn)擊OK確認(rèn)就可以。

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

6、以下我們對(duì)project進(jìn)行簡(jiǎn)單的設(shè)置。

右擊Target 1。選擇第一項(xiàng)Options for Target ‘Target1’…。彈出project屬性設(shè)置窗體。

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

二、新建源文件并加入至project中

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

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

3、源文件新建好了。源文件僅僅是一個(gè)獨(dú)立的文本文件。而project文件如今和剛剛新建的源文件還是全然獨(dú)立、沒有關(guān)聯(lián)的。我們要把剛剛新建的main.c文件加入到我們的project中來:右擊Target 1/Source Group 1,并選擇菜單中的Add Files to Group ‘Source Group 1’…來加入文件。

4、雙擊須要加入的文件main.c。或者選中它再點(diǎn)擊Addbutton。從左邊的Project窗體就能夠看到。文件就已經(jīng)被加入到project中了。這時(shí)彈出的窗體并沒有關(guān)閉,由于這樣能夠方便繼續(xù)加入其它文件。由于我們?nèi)缃駜H僅需加入一個(gè)文件而且加入好了,所以點(diǎn)擊Close關(guān)閉彈出的窗體。

三、編敲代碼并編譯

1、我們打開main.c。開始正式編敲代碼了。我們編寫的程序例如以下并保存。至于這個(gè)程序是什么含義,之后將具體介紹。注意一點(diǎn)。我給出的程序中設(shè)置的LED是P1.0,假設(shè)你的開發(fā)板或者自己搭建的電路中LED的IO口不是P1.0,你須要照著我給出的格式改動(dòng)sbit那一行。這一點(diǎn)也充分體現(xiàn)了,單片機(jī)編程是和實(shí)際硬件電路息息相關(guān)的。程序和電路要配套。才干正常執(zhí)行。

#include <reg52.h>

sbit LED = P1^0;

void main()

{

? ? LED = 0;

? ? while(1);

}

2、點(diǎn)擊左上方的雙箭頭button編譯所有文件,我們看到下方的輸出窗體顯示編譯完畢。“creating hex file from ‘LED’”表明已經(jīng)編譯時(shí)創(chuàng)建了HEX文件(HEX文件是十六進(jìn)制文件。將燒寫進(jìn)單片機(jī)。

相當(dāng)于Windows中的可運(yùn)行文件“.exe”),“0 Error(s), 0 Warning(s).”表示編譯成功。程序也沒有語(yǔ)法錯(cuò)誤。假設(shè)提示你的程序有錯(cuò),請(qǐng)細(xì)心的檢查一下。有沒有發(fā)生漏掉分號(hào)等情況。

四、燒敲代碼到單片機(jī)中

在project目錄下,我們能夠看到生成的LED.hex文件,這正是我們所須要的。以下我們將把LED.hex文件燒寫進(jìn)單片機(jī)。

前面已經(jīng)介紹了單片機(jī)程序下載相關(guān)知識(shí),這里我們將介紹下載程序的一般步驟。因?yàn)榇蠹沂褂玫碾娔X、開發(fā)板等都不全然一樣,有可能會(huì)下載失敗。希望下載沒有成功的讀者不要灰心,關(guān)于下載失敗怎樣處理,請(qǐng)繼續(xù)看后面內(nèi)容。下載程序的操作過程例如以下:

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

2、設(shè)置串口port號(hào),波特率等參數(shù)。因?yàn)槲覀円话阌玫氖荱SB轉(zhuǎn)串口芯片,不是真正的RS232串口,所以串口號(hào)不固定。每次插上轉(zhuǎn)接板或單片機(jī)學(xué)習(xí)板時(shí),我們應(yīng)打開設(shè)備管理器如圖(XP系統(tǒng):右擊“我的電腦”→“屬性”→“硬件”→“設(shè)備管理器”。Win7系統(tǒng):右擊“計(jì)算機(jī)”→“管理”→“設(shè)備管理器”)。找到port(COM和LPT)選項(xiàng)。展開。里面會(huì)有一個(gè)類似“Prolific USB-to-Serial Comm Port(COM1)”或者“USB-SERIAL CH431(COM1)”的項(xiàng)。括號(hào)中面的COMx就是我們要找的port號(hào)。

填到STC-ISP中就能夠了(假設(shè)有多項(xiàng)不知道是哪一個(gè),能夠插拔單片機(jī)學(xué)習(xí)板看哪項(xiàng)會(huì)刷新)。假設(shè)非常不幸,你的串口號(hào)非常大,超出STC-ISP可設(shè)置的范圍了。能夠右擊設(shè)備管理器中顯示的那一項(xiàng)更改COMport序號(hào)。波特率等選項(xiàng)一般按默認(rèn)就可以,不需設(shè)置。

3、點(diǎn)擊“打開程序文件”,選擇要燒寫的單片機(jī)程序HEX或BIN文件。

HEX或BIN文件是編譯之后的機(jī)器碼,打開后能夠在STC-ISP右側(cè)程序文件里看到相應(yīng)的十六進(jìn)制數(shù)字。

你能夠選擇自己寫的程序產(chǎn)生的機(jī)器碼,也能夠在STC-ISP的test-hex文件夾中找一些測(cè)試程序。這里我們選擇剛剛編譯生成的HEX文件。

4、先點(diǎn)擊“下載”,然后再打開電源開關(guān),給單片機(jī)上電。稍后STC-ISP就會(huì)顯示正在燒敲代碼。

假設(shè)點(diǎn)擊“下載”前忘了先關(guān)電源。或者程序沒能下載,不須要點(diǎn)擊“停止”button,直接斷電再上電嘗試就可以。一般幾秒鐘就能下載完畢,STC-ISP中會(huì)顯示下載成功。

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

一般程序下載完畢后,假設(shè)P1.0口接有LED,電路連接無誤,LED就會(huì)奇跡般的亮起來。我們就成功的讓單片機(jī)運(yùn)行了我們自己寫的程序。每一個(gè)初學(xué)單片機(jī)的人在看到這一幕的時(shí)候,往往都會(huì)激動(dòng)萬分,正如我第一次學(xué)習(xí)單片機(jī)一樣開心。因?yàn)檫@里的程序很easy,基本不須要調(diào)試。這時(shí)你就能夠向好友炫耀一下,展示你的勞動(dòng)成果了。

=======================================================

《單片機(jī)小白學(xué)步》系列教程(原名《單片機(jī)入門指南》)介紹

本系列教程從最主要的入門知識(shí)開始,逐步深入介紹單片機(jī)系統(tǒng)設(shè)計(jì),內(nèi)容包含:
1、入門篇:單片機(jī)等基本概念、各種電子設(shè)計(jì)基本知識(shí)
2、思想篇:單片機(jī)/計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的project思想
3、學(xué)習(xí)篇:單片機(jī)學(xué)習(xí)過程、方法和技巧,以51單片機(jī)為例介紹。并推廣到其它單片機(jī)
4、應(yīng)用篇:遵循規(guī)范的project方法,設(shè)計(jì)單片機(jī)系統(tǒng)實(shí)例(計(jì)劃設(shè)計(jì)的系統(tǒng)有:計(jì)算器、電子表、password鎖、簡(jiǎn)易手機(jī),詳細(xì)看有沒有時(shí)間再確定)
5、原理篇:從模擬電路、數(shù)字電路開始,逐步深入介紹單片機(jī)/計(jì)算機(jī)系統(tǒng)原理,并自行設(shè)計(jì)簡(jiǎn)易的CPU(因?yàn)閭€(gè)人水平有限。這部分沒有把握寫好。詳細(xì)內(nèi)容視情況而定)

教程特點(diǎn)

1、技術(shù)知識(shí)點(diǎn)全面。從入門到精通

包括了各種基本知識(shí),尤其是對(duì)單片機(jī)基本概念的介紹、為什么要用單片機(jī)等。在非常多同類書籍教程中都被忽略了。同一時(shí)候也包括了一些深入的知識(shí),包括原理篇考慮對(duì)單片機(jī)的基本原理進(jìn)行介紹。有助于深入理解單片機(jī)。

本系列教程以51單片機(jī)為例進(jìn)行介紹。通過51介紹完單片機(jī)的基本知識(shí),我會(huì)再把430進(jìn)行簡(jiǎn)要介紹,尤其是對(duì)照兩者之間的優(yōu)缺點(diǎn),讓大家非常快感受到430的巨大優(yōu)勢(shì),而學(xué)習(xí)51正好為高速了解430打下了堅(jiān)實(shí)的基礎(chǔ)。

2、除了單片機(jī)知識(shí),還有思想、方法、技巧的介紹

本系列教程中,介紹單片機(jī)各種模塊編程知識(shí)的主要是學(xué)習(xí)篇,而學(xué)習(xí)篇僅僅是整個(gè)教程的一部分。

在學(xué)習(xí)篇中我會(huì)貫穿各種方法技巧,怎樣理解一些模塊功能,怎么看時(shí)序圖,嚴(yán)格遵守project思想進(jìn)行編程,程序發(fā)生了錯(cuò)誤怎么調(diào)試等等。而在思想篇中會(huì)整體介紹非常多重要的思想,為后面的學(xué)習(xí)做好準(zhǔn)備工作。

3、知識(shí)先后順序的設(shè)計(jì)

單片機(jī)學(xué)習(xí)過程中,涉及大量的知識(shí),并且非常多知識(shí)之間相互依賴,關(guān)聯(lián)非常強(qiáng)。

本系列教程對(duì)知識(shí)的先后順序進(jìn)行比較明白的規(guī)劃,盡最大可能符合人的認(rèn)知過程。可是實(shí)際規(guī)劃時(shí)發(fā)現(xiàn)。不管怎么調(diào)整知識(shí)的順序,總有一些知識(shí)之間相互依賴,關(guān)系復(fù)雜。

比如開始講IO口的時(shí)候肯定會(huì)提到寄存器,而寄存器這個(gè)詞的理解,須要深厚的背景知識(shí)。可是這些背景知識(shí)在沒有進(jìn)行實(shí)踐的時(shí)候也非常難理解。

剛開始學(xué)習(xí)的人經(jīng)常就會(huì)在這種地方感覺疑惑不解,不知所措。

而每次遇到類似這種知識(shí),我會(huì)向剛開始學(xué)習(xí)的人指出,應(yīng)該怎樣對(duì)待。

這個(gè)知識(shí)是應(yīng)該自己去學(xué)習(xí)補(bǔ)充。還是等到學(xué)完原理篇再做理解,而如今又應(yīng)該怎么去看待這個(gè)名詞。

另外。在整個(gè)教程的學(xué)習(xí)前,須要掌握一定的C語(yǔ)言等基礎(chǔ)知識(shí),詳細(xì)可參考教程第〇篇《序》中的相關(guān)說明
http://www.hainter.com/mcu-primer-0

4、語(yǔ)言通俗易懂

本系列教程力求語(yǔ)言通俗易懂,而不會(huì)用一堆新手不懂的詞語(yǔ)去解釋還有一個(gè)不懂的詞語(yǔ)。可是受限于個(gè)人語(yǔ)言表達(dá)能力。可能有些地方表述的比較繁瑣,或者不清楚,希望大家可以幫忙指出。

其它問題

假設(shè)認(rèn)為我寫的對(duì)你有幫助,歡迎多多反饋,包含寫的不對(duì)、不合理、不太明確都能夠指出來,這樣方便我對(duì)其進(jìn)行完好。

很多其它可參見:《怎樣以學(xué)習(xí)單片機(jī)為契機(jī)。逐步成為優(yōu)秀的project師》
http://www.hainter.com/mcu-engineer

本系列教程首發(fā)于我的個(gè)人主頁(yè)。歡迎訪問(因?yàn)槭菄?guó)外server,速度略微有點(diǎn)慢):
http://www.hainter.com/category/hacker/mcu-primer

同一時(shí)候會(huì)將其轉(zhuǎn)發(fā)到CSDN、電子發(fā)燒友等網(wǎng)站,歡迎關(guān)注。


CSDN專欄網(wǎng)址?http://blog.csdn.net/column/details/mcu-introduction.html
電子發(fā)燒友論壇?http://bbs.elecfans.com/zhuti_mcu_1.html

本文首發(fā)自我的個(gè)人主頁(yè),轉(zhuǎn)載請(qǐng)注明來源:http://www.hainter.com/mcu-primer-13

轉(zhuǎn)載于:https://www.cnblogs.com/clnchanpin/p/7255843.html

總結(jié)

以上是生活随笔為你收集整理的单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。