注:本篇在寫《單片機(jī)入門指南系列》之前就已經(jīng)寫過,現(xiàn)在發(fā)現(xiàn)這篇比較合理的位置,應(yīng)該是放在《單片機(jī)入門指南系列(六) 單片機(jī)最小系統(tǒng)——麻雀雖小,五臟俱全》之后的,但是由于之前考慮不周,所以只好放在這里了,也就不重新修改文章的位置了。
作為基礎(chǔ)知識補(bǔ)充,本篇詳細(xì)介紹了串口、51單片機(jī)的ISP下載等知識,雖然這些知識并不一定要很了解也能學(xué)習(xí)單片機(jī),但是有一些概念有時(shí)對解決問題還是很有好處的。
前面已經(jīng)說了,單片機(jī)相當(dāng)于一個(gè)微型電腦,所以單片機(jī)是可以執(zhí)行程序的。在電腦上,我們可以上網(wǎng)下載各種游戲各種軟件,但是單片機(jī)這灰不溜秋的一塊芯片,怎么讓它執(zhí)行程序呢?不要急,這就給大家介紹相關(guān)知識。這里涉及到一些專業(yè)詞匯,可能大家不明白,但是并沒有很大影響,大致了解就好了,有興趣的可以上網(wǎng)搜索去了解下。另外等學(xué)到后面,不少概念也自然就明白了。
1、串口(RS232、UART) 廣義上而言,串行接口簡稱串口,也稱串行通信接口,是采用串行通信方式的擴(kuò)展接口。我們比較熟悉的USB接口,全名通用串行總線(Universal Serial BUS),就屬于串口。串口還包括UART、RS232、RS422、RS485等。通常狹義上,我們所說的串口指的是RS232、UART這一類串口,常稱為COM接口。
老式的臺式計(jì)算機(jī)和部分筆記本上就有RS232串口(RS232指RS232電平的串口)。后來由于這種串口使用很少、速度較慢、體積較大而逐漸在筆記本甚至臺式機(jī)上被淘汰了。
而51單片機(jī)具有UART串口(UART = Universal Asynchronous Receiver/Transmitter, 通用異步收發(fā)傳輸器,指的是TTL電平的串口)。
UART與RS232區(qū)別主要在于其電平定義不同。UART是TTL電平,定義3~5V為高電平,表示“1”,0V為低電平,表示“0”,就和前文說的一樣;而RS232是負(fù)邏輯電平,它定義+5~+12V為低電平,表示“0”,而-12~-5V為高電平,表示“1”。
標(biāo)準(zhǔn)串口指的就是RS232串口(也叫做COM接口),如圖就是臺式電腦機(jī)箱后面的標(biāo)準(zhǔn)串口。
2、給單片機(jī)下載程序 一些讀者可能已經(jīng)猜到,給單片機(jī)裝進(jìn)程序是通過電腦并且是使用串口來完成的。但是很可惜只猜對了一半。
說點(diǎn)題外話,為了感覺“專業(yè)”一點(diǎn),以后不要再說給單片機(jī)“裝程序”了,專業(yè)點(diǎn)的說法應(yīng)該是燒寫程序,或者下載程序。讀者很可能會好奇為什么叫燒寫程序呢?難道下載程序的時(shí)候,要用火烤一烤單片機(jī)嗎?當(dāng)然不是。這個(gè)就像馬路為什么叫馬路一樣,是有來歷的,想知道具體原因,還是等大家學(xué)習(xí)了單片機(jī),了解早期ROM的工作原理再去深究吧。
回歸正題,不同的單片機(jī)燒寫程序的方式是不一樣的。剛開始介紹STC單片機(jī)的時(shí)候,我提到了它的一個(gè)優(yōu)點(diǎn):可使用串口下載程序,不知讀者有沒有注意到。同樣是51單片機(jī),Atmel的產(chǎn)品分為兩種,一種是早期的89Cxx系統(tǒng),這種型號的單片機(jī)下載程序時(shí),需要把單片機(jī)取下來,使用專用的編程器燒寫程序,非常麻煩;另一種是后來推出的支持ISP的89Sxx系列(ISP = In System Programming,在線編程),只需要幾根線連接單片機(jī)和下載器,就能輕松下載程序。
3、ISP在線編程 什么是ISP呢?ISP意為在線編程,其作用在于,下載程序的時(shí)候,單片機(jī)不需要從已有的電路中取下來。大家可能體會不到這樣有什么好處,但是它的好處還是非常明顯的。下面我舉個(gè)例子。
有一天你給客戶設(shè)計(jì)了一種電器,是通過單片機(jī)控制的。然后很多人都購買了,但是過了一段時(shí)間,你發(fā)現(xiàn)你寫的程序有問題,或者有些地方需要優(yōu)化一下,但是你賣出去的產(chǎn)品,程序已經(jīng)寫在里面了呀。這個(gè)時(shí)候,如果你用的單片機(jī)不支持ISP,你得親自一個(gè)個(gè)的去找客戶,把他們的產(chǎn)品拆下來,然后取下單片機(jī),燒好程序,再裝回去。如果你設(shè)計(jì)不當(dāng),單片機(jī)還是焊接在電路上的,取不下了,那就更慘了。
但是有了ISP就不一樣了。你可以設(shè)計(jì)好產(chǎn)品,然后把ISP接口留出來。發(fā)現(xiàn)程序有問題,你把寫好的新的程序發(fā)到網(wǎng)上,然后群發(fā)一批電子郵件,告訴你的客戶,用產(chǎn)品附贈的下載線連接電腦和你的產(chǎn)品ISP接口,然后安裝一個(gè)下載軟件,把新的程序下載進(jìn)去,就可以用了。你甚至可以在說明書上寫,我們的產(chǎn)品軟件經(jīng)常會更新,請自行到官網(wǎng)下載最新軟件,這樣簡直是一勞永逸。
所以一個(gè)小小的改進(jìn),就帶來了如此大的變化。要用單片機(jī),我選ISP,實(shí)惠又好用。
而STC單片機(jī)不僅支持ISP下載,而且只需要通過串口和電腦連接就可以下載,這樣又省去了我們購買編程器的錢,實(shí)在是物美價(jià)廉,適合我們使用。
4、USB與串口的轉(zhuǎn)換模塊 由于USB接口與單片機(jī)的TTL串口不一樣,不能直接連接,一般通過轉(zhuǎn)換芯片來連接。連接到USB接口的轉(zhuǎn)換芯片則要求在電腦上安裝相應(yīng)的驅(qū)動程序,驅(qū)動程序很容易在網(wǎng)上找到。
USB、RS232、UART三者之間的轉(zhuǎn)換都有芯片可以實(shí)現(xiàn),并且很容易買到做好的成品模塊。下面給出了幾種常用的轉(zhuǎn)接器。
第一個(gè)是USB轉(zhuǎn)TTL串口,這是最常用的一種轉(zhuǎn)接器,常稱為USB轉(zhuǎn)TTL小板,USB-TTL轉(zhuǎn)接板,常用轉(zhuǎn)換芯片為PL2303,需要在電腦上安裝對應(yīng)驅(qū)動程序。
USB轉(zhuǎn)RS232串口,常用轉(zhuǎn)換芯片為CH341,使用時(shí)要在電腦上安裝CH341的驅(qū)動程序,可以在百度上搜索
RS232串口轉(zhuǎn)TTL串口,電平轉(zhuǎn)換芯片是MAX232,如果你的電腦有串口,可以直接使用這種轉(zhuǎn)接器,然后把TTL串口一端接到單片機(jī)上,這個(gè)不需要驅(qū)動程序。
也有這種集成了三種接口轉(zhuǎn)換功能的 USB - RS232串口 - TTL串口轉(zhuǎn)接板,如圖所示。這個(gè)功能比較強(qiáng)大,但是電子市場不一定能買到。
市面上的成品單片機(jī)學(xué)習(xí)板,很多都提供USB接口,或者RS232串口+USB接口。一方面USB接口負(fù)責(zé)給單片機(jī)供電,另一方面,USB轉(zhuǎn)TTL,或RS232轉(zhuǎn)TTL已經(jīng)集成在學(xué)習(xí)板上。
5、參考電路圖 下面順便提供這些模塊的參考電路原理圖,不需要掌握。如果有需要自己制作這些模塊,可以參考這幾個(gè)電路圖。
MAX232電路圖
PL2303電路圖
USB-RS232電路圖
6、51單片機(jī)程序的燒寫 關(guān)于AT89Cxx系列單片機(jī)使用的編程器下載,以及AT89Sxx系列單片機(jī)使用的ISP方式下載程序,不做詳細(xì)介紹,這里我們主要介紹STC單片機(jī)的串口下載方式。STC單片機(jī)燒寫程序時(shí),電腦端除了驅(qū)動以外,一般使用宏晶專用的STC-ISP軟件進(jìn)行下載。其界面如圖。
這里先說一點(diǎn)注意事項(xiàng)。STC-ISP軟件最好在宏晶官網(wǎng)下載最新版本。在首次運(yùn)行時(shí)常常會出現(xiàn)類似下圖中的情況,提示部件XXX不能注冊。對應(yīng)Win7系統(tǒng)可以先嘗試右擊STC-ISP的exe程序文件,選擇“以管理員身份運(yùn)行”(如果是XP系統(tǒng),則只需以管理員身份登錄計(jì)算機(jī)運(yùn)行程序)。如果還是不行,則需要上網(wǎng)下載提示的XXX.DLL或XXX.OCX文件,放在C:\Windows\System32文件夾中,然后以管理員身份運(yùn)行C:\Windows\System32\cmd.exe,輸入regsvr32 C:\Windows\System32\xxx.dll回車,進(jìn)行注冊。這樣的文件是系統(tǒng)動態(tài)鏈接庫文件,是程序執(zhí)行所需要的,有些電腦里沒有,或者無法注冊,所以會發(fā)生這種情況。
如果你已經(jīng)購買了USB轉(zhuǎn)串口模塊,你可以安裝好對應(yīng)驅(qū)動并把它插到電腦的USB口上,如果是成品學(xué)習(xí)板,就用給學(xué)習(xí)板供電,然后把下載線連接到電腦上。如果一切順利,我們可以在電腦上右擊“我的電腦”(XP系統(tǒng))或“計(jì)算機(jī)”(Win7以上系統(tǒng)),管理,打開設(shè)備管理器,在設(shè)備管理器中就能看到相應(yīng)的串口,如圖。
希望本篇看完了,大家把STC-ISP軟件安裝到自己的電腦上,有條件的把驅(qū)動也安裝好。具體下載方法將在隨后進(jìn)行介紹。
=======================================================
《單片機(jī)小白學(xué)步》系列教程(原名《單片機(jī)入門指南》)介紹 本系列教程從最基本的入門知識開始,逐步深入介紹單片機(jī)系統(tǒng)設(shè)計(jì),內(nèi)容包括: 1、入門篇:單片機(jī)等基本概念、各種電子設(shè)計(jì)基本知識 2、思想篇:單片機(jī)/計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的工程思想 3、學(xué)習(xí)篇:單片機(jī)學(xué)習(xí)過程、方法和技巧,以51單片機(jī)為例介紹,并推廣到其他單片機(jī) 4、應(yīng)用篇:遵循規(guī)范的工程方法,設(shè)計(jì)單片機(jī)系統(tǒng)實(shí)例(計(jì)劃設(shè)計(jì)的系統(tǒng)有:計(jì)算器、電子表、密碼鎖、簡易手機(jī),具體看有沒有時(shí)間再確定) 5、原理篇:從模擬電路、數(shù)字電路開始,逐步深入介紹單片機(jī)/計(jì)算機(jī)系統(tǒng)原理,并自行設(shè)計(jì)簡易的CPU(由于個(gè)人水平有限,這部分沒有把握寫好,具體內(nèi)容視情況而定)
教程特點(diǎn) 1、技術(shù)知識點(diǎn)全面,從入門到精通 包含了各種基本知識,尤其是對單片機(jī)基本概念的介紹、為什么要用單片機(jī)等,在很多同類書籍教程中都被忽略了。同時(shí)也包含了一些深入的知識,包括原理篇考慮對單片機(jī)的基本原理進(jìn)行介紹,有助于深入理解單片機(jī)。
本系列教程以51單片機(jī)為例進(jìn)行介紹。通過51介紹完單片機(jī)的基本知識,我會再把430進(jìn)行簡要介紹,尤其是對比兩者之間的優(yōu)缺點(diǎn),讓大家很快感受到430的巨大優(yōu)勢,而學(xué)習(xí)51正好為快速了解430打下了堅(jiān)實(shí)的基礎(chǔ)。
2、除了單片機(jī)知識,還有思想、方法、技巧的介紹 本系列教程中,介紹單片機(jī)各種模塊編程知識的主要是學(xué)習(xí)篇,而學(xué)習(xí)篇只是整個(gè)教程的一部分。在學(xué)習(xí)篇中我會貫穿各種方法技巧,如何理解一些模塊功能,怎么看時(shí)序圖,嚴(yán)格遵守工程思想進(jìn)行編程,程序發(fā)生了錯(cuò)誤怎么調(diào)試等等。而在思想篇中會總體介紹很多重要的思想,為后面的學(xué)習(xí)做好準(zhǔn)備工作。
3、知識先后順序的設(shè)計(jì) 單片機(jī)學(xué)習(xí)過程中,涉及大量的知識,而且很多知識之間相互依賴,關(guān)聯(lián)很強(qiáng)。
本系列教程對知識的先后順序進(jìn)行比較明確的規(guī)劃,盡最大可能符合人的認(rèn)知過程。但是實(shí)際規(guī)劃時(shí)發(fā)現(xiàn),無論怎么調(diào)整知識的順序,總有一些知識之間相互依賴,關(guān)系復(fù)雜。例如開始講IO口的時(shí)候肯定會提到寄存器,而寄存器這個(gè)詞的理解,需要深厚的背景知識。但是這些背景知識在沒有進(jìn)行實(shí)踐的時(shí)候也很難理解。
初學(xué)者常常就會在這樣的地方感覺疑惑不解,不知所措。而每次遇到類似這樣的知識,我會向初學(xué)者指出,應(yīng)該如何對待。這個(gè)知識是應(yīng)該自己去學(xué)習(xí)補(bǔ)充,還是等到學(xué)完原理篇再做理解,而現(xiàn)在又應(yīng)該怎么去看待這個(gè)名詞。
另外,在整個(gè)教程的學(xué)習(xí)前,需要掌握一定的C語言等基礎(chǔ)知識,具體可參考教程第〇篇《序》中的相關(guān)說明 http://www.hainter.com/mcu-primer-0
4、語言通俗易懂 本系列教程力求語言通俗易懂,而不會用一堆新手不懂的詞語去解釋另一個(gè)不懂的詞語。但是受限于個(gè)人語言表達(dá)能力,可能有些地方表述的比較繁瑣,或者不清楚,希望大家能夠幫忙指出。
其他問題 如果覺得我寫的對你有幫助,歡迎多多反饋,包括寫的不正確、不合理、不太明白都可以指出來,這樣方便我對其進(jìn)行完善。
更多可參見:《如何以學(xué)習(xí)單片機(jī)為契機(jī),逐步成為優(yōu)秀的工程師》 http://www.hainter.com/mcu-engineer
本系列教程首發(fā)于我的個(gè)人主頁,歡迎訪問(由于是國外服務(wù)器,速度稍微有點(diǎn)慢): http://www.hainter.com/category/hacker/mcu-primer
同時(shí)會將其轉(zhuǎn)發(fā)到CSDN、電子發(fā)燒友等站點(diǎn),歡迎關(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è)人主頁,轉(zhuǎn)載請注明來源:http://www.hainter.com/mcu-primer-10?
總結(jié)
以上是生活随笔 為你收集整理的单片机小白学步系列(十) 单片机程序下载相关知识 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。