新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)小白學(xué)步(10) 單片機(jī)程序下載相關(guān)知識(shí)

單片機(jī)小白學(xué)步(10) 單片機(jī)程序下載相關(guān)知識(shí)

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò) 收藏
注:本篇在寫(xiě)《單片機(jī)入門(mén)指南系列》之前就已經(jīng)寫(xiě)過(guò),現(xiàn)在發(fā)現(xiàn)這篇比較合理的位置,應(yīng)該是放在《單片機(jī)入門(mén)指南系列(六) 單片機(jī)最小系統(tǒng)——麻雀雖小,五臟俱全》之后的,但是由于之前考慮不周,所以只好放在這里了,也就不重新修改文章的位置了。

作為基礎(chǔ)知識(shí)補(bǔ)充,本篇詳細(xì)介紹了串口、51單片機(jī)的ISP下載等知識(shí),雖然這些知識(shí)并不一定要很了解也能學(xué)習(xí)單片機(jī),但是有一些概念有時(shí)對(duì)解決問(wèn)題還是很有好處的。

本文引用地址:http://butianyuan.cn/article/201611/318523.htm

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

前面已經(jīng)說(shuō)了,單片機(jī)相當(dāng)于一個(gè)微型電腦,所以單片機(jī)是可以執(zhí)行程序的。在電腦上,我們可以上網(wǎng)下載各種游戲各種軟件,但是單片機(jī)這灰不溜秋的一塊芯片,怎么讓它執(zhí)行程序呢?不要急,這就給大家介紹相關(guān)知識(shí)。這里涉及到一些專(zhuān)業(yè)詞匯,可能大家不明白,但是并沒(méi)有很大影響,大致了解就好了,有興趣的可以上網(wǎng)搜索去了解下。另外等學(xué)到后面,不少概念也自然就明白了。

串口(RS232、UART)

廣義上而言,串行接口簡(jiǎn)稱(chēng)串口,也稱(chēng)串行通信接口,是采用串行通信方式的擴(kuò)展接口。我們比較熟悉的USB接口,全名通用串行總線(xiàn)(Universal Serial BUS),就屬于串口。串口還包括UART、RS232、RS422、RS485等。通常狹義上,我們所說(shuō)的串口指的是RS232、UART這一類(lèi)串口,常稱(chēng)為COM接口。

老式的臺(tái)式計(jì)算機(jī)和部分筆記本上就有RS232串口(RS232指RS232電平的串口)。后來(lái)由于這種串口使用很少、速度較慢、體積較大而逐漸在筆記本甚至臺(tái)式機(jī)上被淘汰了。

而51單片機(jī)具有UART串口(UART = Universal Asynchronous Receiver/Transmitter, 通用異步收發(fā)傳輸器,指的是TTL電平的串口)。

UART與RS232區(qū)別主要在于其電平定義不同。UART是TTL電平,定義3~5V為高電平,表示“1”,0V為低電平,表示“0”,就和前文說(shuō)的一樣;而RS232是負(fù)邏輯電平,它定義+5~+12V為低電平,表示“0”,而-12~-5V為高電平,表示“1”。

標(biāo)準(zhǔn)串口指的就是RS232串口(也叫做COM接口),如圖就是臺(tái)式電腦機(jī)箱后面的標(biāo)準(zhǔn)串口。

給單片機(jī)下載程序

一些讀者可能已經(jīng)猜到,給單片機(jī)裝進(jìn)程序是通過(guò)電腦并且是使用串口來(lái)完成的。但是很可惜只猜對(duì)了一半。

說(shuō)點(diǎn)題外話(huà),為了感覺(jué)“專(zhuān)業(yè)”一點(diǎn),以后不要再說(shuō)給單片機(jī)“裝程序”了,專(zhuān)業(yè)點(diǎn)的說(shuō)法應(yīng)該是燒寫(xiě)程序,或者下載程序。讀者很可能會(huì)好奇為什么叫燒寫(xiě)程序呢?難道下載程序的時(shí)候,要用火烤一烤單片機(jī)嗎?當(dāng)然不是。這個(gè)就像馬路為什么叫馬路一樣,是有來(lái)歷的,想知道具體原因,還是等大家學(xué)習(xí)了單片機(jī),了解早期ROM的工作原理再去深究吧。

回歸正題,不同的單片機(jī)燒寫(xiě)程序的方式是不一樣的。剛開(kāi)始介紹STC單片機(jī)的時(shí)候,我提到了它的一個(gè)優(yōu)點(diǎn):可使用串口下載程序,不知讀者有沒(méi)有注意到。同樣是51單片機(jī),Atmel的產(chǎn)品分為兩種,一種是早期的89Cxx系統(tǒng),這種型號(hào)的單片機(jī)下載程序時(shí),需要把單片機(jī)取下來(lái),使用專(zhuān)用的編程器燒寫(xiě)程序,非常麻煩;另一種是后來(lái)推出的支持ISP的89Sxx系列(ISP = In System Programming,在線(xiàn)編程),只需要幾根線(xiàn)連接單片機(jī)和下載器,就能輕松下載程序。

ISP在線(xiàn)編程

什么是ISP呢?ISP意為在線(xiàn)編程,其作用在于,下載程序的時(shí)候,單片機(jī)不需要從已有的電路中取下來(lái)。大家可能體會(huì)不到這樣有什么好處,但是它的好處還是非常明顯的。下面我舉個(gè)例子。

有一天你給客戶(hù)設(shè)計(jì)了一種電器,是通過(guò)單片機(jī)控制的。然后很多人都購(gòu)買(mǎi)了,但是過(guò)了一段時(shí)間,你發(fā)現(xiàn)你寫(xiě)的程序有問(wèn)題,或者有些地方需要優(yōu)化一下,但是你賣(mài)出去的產(chǎn)品,程序已經(jīng)寫(xiě)在里面了呀。這個(gè)時(shí)候,如果你用的單片機(jī)不支持ISP,你得親自一個(gè)個(gè)的去找客戶(hù),把他們的產(chǎn)品拆下來(lái),然后取下單片機(jī),燒好程序,再裝回去。如果你設(shè)計(jì)不當(dāng),單片機(jī)還是焊接在電路上的,取不下了,那就更慘了。

但是有了ISP就不一樣了。你可以設(shè)計(jì)好產(chǎn)品,然后把ISP接口留出來(lái)。發(fā)現(xiàn)程序有問(wèn)題,你把寫(xiě)好的新的程序發(fā)到網(wǎng)上,然后群發(fā)一批電子郵件,告訴你的客戶(hù),用產(chǎn)品附贈(zèng)的下載線(xiàn)連接電腦和你的產(chǎn)品ISP接口,然后安裝一個(gè)下載軟件,把新的程序下載進(jìn)去,就可以用了。你甚至可以在說(shuō)明書(shū)上寫(xiě),我們的產(chǎn)品軟件經(jīng)常會(huì)更新,請(qǐng)自行到官網(wǎng)下載最新軟件,這樣簡(jiǎn)直是一勞永逸。

所以一個(gè)小小的改進(jìn),就帶來(lái)了如此大的變化。要用單片機(jī),我選ISP,實(shí)惠又好用。

而STC單片機(jī)不僅支持ISP下載,而且只需要通過(guò)串口和電腦連接就可以下載,這樣又省去了我們購(gòu)買(mǎi)編程器的錢(qián),實(shí)在是物美價(jià)廉,適合我們使用。

USB與串口的轉(zhuǎn)換模塊

由于USB接口與單片機(jī)的TTL串口不一樣,不能直接連接,一般通過(guò)轉(zhuǎn)換芯片來(lái)連接。連接到USB接口的轉(zhuǎn)換芯片則要求在電腦上安裝相應(yīng)的驅(qū)動(dòng)程序,驅(qū)動(dòng)程序很容易在網(wǎng)上找到。

USB、RS232、UART三者之間的轉(zhuǎn)換都有芯片可以實(shí)現(xiàn),并且很容易買(mǎi)到做好的成品模塊。下面給出了幾種常用的轉(zhuǎn)接器。

第一個(gè)是USB轉(zhuǎn)TTL串口,這是最常用的一種轉(zhuǎn)接器,常稱(chēng)為USB轉(zhuǎn)TTL小板,USB-TTL轉(zhuǎn)接板,常用轉(zhuǎn)換芯片為PL2303,需要在電腦上安裝對(duì)應(yīng)驅(qū)動(dòng)程序。

USB轉(zhuǎn)RS232串口,常用轉(zhuǎn)換芯片為CH341,使用時(shí)要在電腦上安裝CH341的驅(qū)動(dòng)程序,可以在百度上搜索

RS232串口轉(zhuǎn)TTL串口,電平轉(zhuǎn)換芯片是MAX232,如果你的電腦有串口,可以直接使用這種轉(zhuǎn)接器,然后把TTL串口一端接到單片機(jī)上,這個(gè)不需要驅(qū)動(dòng)程序。

也有這種集成了三種接口轉(zhuǎn)換功能的 USB – RS232串口 – TTL串口轉(zhuǎn)接板,如圖所示。這個(gè)功能比較強(qiáng)大,但是電子市場(chǎng)不一定能買(mǎi)到。

市面上的成品單片機(jī)學(xué)習(xí)板,很多都提供USB接口,或者RS232串口+USB接口。一方面USB接口負(fù)責(zé)給單片機(jī)供電,另一方面,USB轉(zhuǎn)TTL,或RS232轉(zhuǎn)TTL已經(jīng)集成在學(xué)習(xí)板上。

參考電路圖

下面順便提供這些模塊的參考電路原理圖,不需要掌握。如果有需要自己制作這些模塊,可以參考這幾個(gè)電路圖。

MAX232電路圖

PL2303電路圖

USB-RS232電路圖

51單片機(jī)程序的燒寫(xiě)

關(guān)于AT89Cxx系列單片機(jī)使用的編程器下載,以及AT89Sxx系列單片機(jī)使用的ISP方式下載程序,不做詳細(xì)介紹,這里我們主要介紹STC單片機(jī)的串口下載方式。STC單片機(jī)燒寫(xiě)程序時(shí),電腦端除了驅(qū)動(dòng)以外,一般使用宏晶專(zhuān)用的STC-ISP軟件進(jìn)行下載。其界面如圖。

這里先說(shuō)一點(diǎn)注意事項(xiàng)。STC-ISP軟件最好在宏晶官網(wǎng)下載最新版本。在首次運(yùn)行時(shí)常常會(huì)出現(xiàn)類(lèi)似下圖中的情況,提示部件XXX不能注冊(cè)。對(duì)應(yīng)Win7系統(tǒng)可以先嘗試右擊STC-ISP的exe程序文件,選擇“以管理員身份運(yùn)行”(如果是XP系統(tǒng),則只需以管理員身份登錄計(jì)算機(jī)運(yùn)行程序)。如果還是不行,則需要上網(wǎng)下載提示的XXX.DLL或XXX.OCX文件,放在C:WindowsSystem32文件夾中,然后以管理員身份運(yùn)行C:WindowsSystem32cmd.exe,輸入regsvr32 C:WindowsSystem32xxx.dll回車(chē),進(jìn)行注冊(cè)。這樣的文件是系統(tǒng)動(dòng)態(tài)鏈接庫(kù)文件,是程序執(zhí)行所需要的,有些電腦里沒(méi)有,或者無(wú)法注冊(cè),所以會(huì)發(fā)生這種情況。

如果你已經(jīng)購(gòu)買(mǎi)了USB轉(zhuǎn)串口模塊,你可以安裝好對(duì)應(yīng)驅(qū)動(dòng)并把它插到電腦的USB口上,如果是成品學(xué)習(xí)板,就用給學(xué)習(xí)板供電,然后把下載線(xiàn)連接到電腦上。如果一切順利,我們可以在電腦上右擊“我的電腦”(XP系統(tǒng))或“計(jì)算機(jī)”(Win7以上系統(tǒng)),管理,打開(kāi)設(shè)備管理器,在設(shè)備管理器中就能看到相應(yīng)的串口,如圖。

希望本篇看完了,大家把STC-ISP軟件安裝到自己的電腦上,有條件的把驅(qū)動(dòng)也安裝好。具體下載方法將在隨后進(jìn)行介紹。

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



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉