《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > 制作機(jī)器人常用的單片機(jī)性能特點(diǎn)及使用經(jīng)驗(yàn)(上篇)

制作機(jī)器人常用的單片機(jī)性能特點(diǎn)及使用經(jīng)驗(yàn)(上篇)

2015-11-03
關(guān)鍵詞: 單片機(jī) 機(jī)器人

      很多接觸機(jī)器人單片機(jī)不久的朋友面對(duì)種類繁多的單片機(jī)常會(huì)困惑,到底它們之間有何不同?制作機(jī)器人到底用哪種單片機(jī)控制比較好?當(dāng)我們選擇了一種 單片機(jī)后,有何捷徑能迅速掌握并應(yīng)用這種單片機(jī)?本文嘗試用一種通俗易懂的方法解讀上述問題,并設(shè)計(jì)了一種有深度的單片機(jī)控制機(jī)器人的實(shí)例,希望能起到拋 磚引玉的作用。我與大家分享我使用單片機(jī)的一些經(jīng)驗(yàn),希望能讓初學(xué)者少些迷茫,讓已經(jīng)入門的朋友思維開闊。

  寫本文時(shí)我僅有3年單片機(jī)實(shí)踐經(jīng)驗(yàn),比較了解51系列和AVR系列單片機(jī),因此著重討論了AVR單片機(jī),我經(jīng)驗(yàn)有限,有錯(cuò)誤在所難免,希望朋友們批評(píng)指正!

一 單片機(jī)和CPU、個(gè)人電腦的區(qū)別和聯(lián)系

  這部分內(nèi)容比較初級(jí),但很多朋友剛接觸單片機(jī)時(shí)或許對(duì)下面的問題不是很清楚。

  1 什么是CPU?

   CPU中文名稱為“中央處理器”,典型代表為英特爾8086處理器,現(xiàn)在的奔騰X處理器都是8086的直系后代。處理器,顧名思義,其功能是處理數(shù)據(jù), 對(duì)于中央處理器,就是在數(shù)據(jù)處理中處于核心地位的處理器,聽起來似乎很復(fù)雜,但實(shí)際上核心就是一個(gè)ALU“算術(shù)邏輯單元”。這個(gè)單元由一些數(shù)字門電路組 成,僅能完成括加、減、乘、除四則運(yùn)算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作。CPU內(nèi)部包含ALU,除此之外CPU還有時(shí)鐘電 路,CPU運(yùn)行的基本原理是:時(shí)鐘電路產(chǎn)生計(jì)數(shù)脈沖,這個(gè)脈沖控制著一個(gè)累加器,即每產(chǎn)生一個(gè)時(shí)鐘脈沖,累加器加1,這個(gè)累加值以16進(jìn)制數(shù)字的形式通過 地址總線唯一選通程序儲(chǔ)存器中一個(gè)儲(chǔ)存單元(在CPU外部),這個(gè)單元將內(nèi)部?jī)?chǔ)存的程序命令代碼通過數(shù)據(jù)總線送到ALU中,ALU根據(jù)代碼不同執(zhí)行不同操 作,比如把某寄存器數(shù)值和某數(shù)值相加等,然后將計(jì)算結(jié)果輸出到IO口或者各個(gè)總線上。

  總之,CPU的工作就是把程序中的命令代碼翻譯成不同任務(wù),然后執(zhí)行,輸出執(zhí)行結(jié)果。CPU在一切數(shù)字計(jì)算機(jī)中都發(fā)揮了核心作用,即計(jì)算機(jī)都有CPU。

  2 什么是個(gè)人電腦?

  由于CPU只有計(jì)算功能,其計(jì)算的結(jié)果需要通過顯示器、音箱輸出,而其工作的依據(jù),即程序命令則依靠硬盤儲(chǔ)存,其執(zhí)行任務(wù)時(shí)動(dòng)態(tài)存取的數(shù)據(jù)要保存在內(nèi)存中,而人可以通過鍵盤控制程序命令的執(zhí)行過程,把所有這些CPU的外設(shè)組合在一起就叫做“個(gè)人電腦”。

       3 什么是單片機(jī)?

  個(gè)人電腦功能強(qiáng)大,計(jì)算速度快,是較為理想的計(jì)算機(jī)。但當(dāng)我們需要用一個(gè)小裝置控制微波爐定時(shí)開關(guān)時(shí),個(gè)人電 腦就顯得笨重和昂貴。因此人們?cè)O(shè)計(jì)出一種濃縮型電腦,大的有幾平方厘米,小的比米粒還小,它們叫做“單片機(jī)”——單片微型計(jì)算機(jī)。CPU是一個(gè)芯片,單片 機(jī)也是一個(gè)芯片,看起來外觀差不多,它們有什么不同呢?答案是:?jiǎn)纹瑱C(jī)內(nèi)除了集成有CPU外,還集成了程序儲(chǔ)存器ROM(可理解為硬盤)、數(shù)據(jù)儲(chǔ)存器 RAM(可理解為內(nèi)存),輸入輸出接口(可理解為顯示器、鍵盤插座),有的單片機(jī)內(nèi)還集成了電機(jī)驅(qū)動(dòng)電路、視頻解碼電路、AD轉(zhuǎn)換器、無線傳輸電路等,使 得單片機(jī)功能變得非常強(qiáng)大。單片機(jī)的特長(zhǎng)在于可以用單個(gè)芯片和簡(jiǎn)單外部電路去實(shí)現(xiàn)復(fù)雜的控制操作,因此非常適合機(jī)器人控制。其實(shí)在絕大多數(shù)機(jī)器人中都有單片機(jī)的影子。簡(jiǎn)單的和中等復(fù)雜的機(jī)器人可以用單片機(jī)直接控制,高度復(fù)雜的機(jī)器人用“個(gè)人電腦”或者“超級(jí)計(jì)算機(jī)”指揮許多單片機(jī)來完成機(jī)器人控制。

  4 學(xué)習(xí)單片機(jī)的捷徑是什么?

  所謂捷徑就是少走彎路。我剛開始學(xué)單片機(jī)時(shí)走了不少彎路,很多朋友和我都有相似的經(jīng)歷,剛開始接觸單片機(jī),面對(duì)琳瑯滿目的圖書教材,不知選擇哪本;想實(shí)踐時(shí)不知到哪買單片機(jī);不知如何編程下載程序……

  A 對(duì)于初學(xué)者仔細(xì)看本文就是學(xué)習(xí)單片機(jī)的捷徑之一。

  B 到圖書館或者書店在數(shù)十本單片機(jī)書中選一本你能看懂,而且覺得案例有趣的“實(shí)在、生動(dòng)、活潑”的單片機(jī)書做為你的入門讀物。

  C 建議先從51單片機(jī)學(xué)起。掌握51后再學(xué)AVR,然后學(xué)ARM、DSP等。

  D 在學(xué)習(xí)過程中實(shí)踐非常必要。你需要一臺(tái)電腦。如果是臺(tái)式電腦,你可以花十幾元購買25針并口下載線,如果是筆記本電腦,你只能購買幾十元到幾百元的USB ISP編程器。

  E 用萬用板自己焊一個(gè)單片機(jī)最小系統(tǒng),或者購買開發(fā)板。沒有必要使用昂貴的仿真器。

   F 你需要上網(wǎng)下載單片機(jī)編程軟件,比如51用Keil編程,AVR用CVAVR編程,在編程軟件中編好程序,然后生成HEX文件,再上網(wǎng)下載并口燒程序軟件 或者USB ISP燒程序軟件,用燒程序軟件加載HEX文件,然后將編程線查到你的單片機(jī)電路板上,即可把程序燒到單片機(jī)中。

  G 拔下編程線,然后接通單片機(jī)板電源,你可以看到單片機(jī)系統(tǒng)在運(yùn)行。

   H 如果系統(tǒng)不能正常運(yùn)行,首先檢查電路是否接錯(cuò),然后檢查程序是否燒錯(cuò),如果以上都沒毛病,研究程序是否編錯(cuò)。有時(shí)系統(tǒng)不能正常運(yùn)行并不意味著有什么地方錯(cuò) 了,只是某些參數(shù)沒設(shè)置好,你需要不斷運(yùn)行、修改程序、調(diào)試參數(shù)、再運(yùn)行如此往復(fù),直到你對(duì)系統(tǒng)運(yùn)行滿意為止。有時(shí)這是一個(gè)非常艱苦的重復(fù)勞動(dòng),調(diào)整數(shù)百 次上千次,你無法回避,只能堅(jiān)定信念,勇往直前。

  I 到淘寶網(wǎng)上買東西更方便、更便宜。

二 在單片機(jī)誕生前人們用什么控制機(jī)器人

  1 模擬計(jì)算機(jī)

  在數(shù)字計(jì)算機(jī)誕生前,人們用電子管、電容器和電感線圈、電阻搭建模擬計(jì)算機(jī),能夠完成許多簡(jiǎn)單的計(jì)算和控制任務(wù)。所謂模擬計(jì)算機(jī)就是其計(jì)算采用的信號(hào)不是 1、0數(shù)字信號(hào),而是電壓連續(xù)變換的模擬信號(hào),類似于自動(dòng)控制原理中的各種控制器采用的運(yùn)算。別小看了模擬計(jì)算機(jī),上世紀(jì)80年代中東戰(zhàn)爭(zhēng)時(shí),阿拉伯國(guó)家使用的蘇制全自動(dòng)自行防空炮內(nèi)采用模擬計(jì)算機(jī)實(shí)現(xiàn)計(jì)算飛機(jī)軌跡并控制火炮射擊目標(biāo)。

121.jpg

  2 齒輪和凸輪組成的控制器

   在模擬計(jì)算機(jī)誕生前,也就是蒸汽機(jī)時(shí)代,有些機(jī)械天才硬是用數(shù)百個(gè)齒輪和凸輪搭建出機(jī)械計(jì)算機(jī),人們通過轉(zhuǎn)動(dòng)印有數(shù)字的各種齒輪,另一些齒輪就將運(yùn)算結(jié) 果顯示出來。機(jī)械計(jì)算機(jī)在人類史上上曾經(jīng)是高科技產(chǎn)品,第二次世界大戰(zhàn)時(shí),德國(guó)著名的密碼機(jī)就是一種機(jī)電混合式計(jì)算機(jī),它當(dāng)時(shí)是最保密的通信工具。

122.jpg

  3 發(fā)條和秒表和繼電器組成的控制器

  在電氣時(shí)代開始時(shí),人們用鐘表內(nèi)機(jī)械的旋轉(zhuǎn)分時(shí)控制一些繼電器的通斷,從而控制一些機(jī)床和生產(chǎn)線的運(yùn)行。這種裝置類似于早期洗衣機(jī)內(nèi)的定時(shí)器。

123.jpg

三 入門首選 AT89S51系列單片機(jī)

  1 簡(jiǎn)介

  1980,英特爾公司開 發(fā)出一種簡(jiǎn)易的8031CPU,在當(dāng)時(shí)該CPU性能不比8086差很多,但價(jià)格較便宜,因此被很多低端應(yīng)用選中。由于市場(chǎng)看好,ATMEL公司購買了 8031的內(nèi)核,把Flash存儲(chǔ)器和加強(qiáng)型IO口融入進(jìn)去開發(fā)出了AT89系列單片機(jī)。所有兼容8031指令和內(nèi)核相似的單片機(jī)統(tǒng)稱為51單片機(jī),它是 目前應(yīng)用最廣泛的8位單片機(jī)之一。因51單片機(jī)結(jié)構(gòu)簡(jiǎn)單,指令易學(xué),應(yīng)用廣泛,因此是初學(xué)單片機(jī)首選機(jī)型。如果有人想不學(xué)51,直接學(xué)AVR,那么此人一 定會(huì)遇到很多難題,困惑和郁悶將伴隨著學(xué)習(xí)過程。如果學(xué)了51再學(xué)AVR和其他單片機(jī),人們會(huì)發(fā)現(xiàn)“所謂單片機(jī)都不過如此”。

  2 性能

  根據(jù)任務(wù)具體需要選擇最合適的單片機(jī),使單片機(jī)資源充分利用,使系統(tǒng)性價(jià)比達(dá)到最高,同時(shí)兼顧未來擴(kuò)展需要,不一味追求高性能單片機(jī),這就是選單片機(jī)的原則。

   AT89S51有4K的Flash程序存儲(chǔ)器,128字節(jié)的RAM,32條IO口,中斷系統(tǒng)具有6個(gè)中斷源、5個(gè)終端矢量、2個(gè)中斷優(yōu)先級(jí)的中斷結(jié)構(gòu); 串行口是一個(gè)全雙工的串行通信口;AT89S51的電源電壓為4.0-5.5V,AT89LS51的電源電壓為2.7-4.0V;振蕩器頻率 0-33MHz(AT89S51),0-16MHz(AT89LS51); 有ISP 在線編程功能,這個(gè)功能的優(yōu)勢(shì)在于改寫單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)強(qiáng)大易用的功能。

  AT89S52程序儲(chǔ)存器容量為8KB,還有AT89S55,ROM容量更大。

  有很多公司生產(chǎn)了很多擴(kuò)展型51系列單片機(jī),有的帶有AD轉(zhuǎn)換器,有的帶有比較器,有的帶有PWM,讀者可以根據(jù)自身需要選擇合適的51單片機(jī),但要注意他們的管腳定義和編程方式。

  3 使用方法

   AT89S51 適于做單片機(jī)學(xué)習(xí)板、電子時(shí)鐘、超聲波測(cè)距儀等不需要采集模擬量和控制大功率外部元件的電路。S51與過去的C51的區(qū)別在于S51支持ISP在線編程, 即C51需要幾百元的編程器編程,而S51僅需一條25針并口線和非常簡(jiǎn)單的轉(zhuǎn)換電路即可接在臺(tái)式電腦打印機(jī)接口燒程序,下載燒程序小軟件即實(shí)現(xiàn)可對(duì) S51單片機(jī)編程。對(duì)51單片機(jī)編程一般選用Keil軟件,可采用C語言或者匯編語言,編完程后選擇輸出HEX文件,然后用燒程序小軟件讀取HEX文件, 再燒寫到單片機(jī)中。

  4 實(shí)踐經(jīng)驗(yàn)

  A 剛開始看書時(shí),按照書上的電路圖連線然后通電調(diào)試,但總不成功,將自己的電路和書上的電路仔細(xì)對(duì)照發(fā)現(xiàn)不了問題。原因在于很多書上的電路圖都是“簡(jiǎn)化 圖”,即省略了一些電路,而這些被省略的電路卻關(guān)乎系統(tǒng)的運(yùn)行。比如,當(dāng)單片機(jī)書講到AD轉(zhuǎn)換電路,給出的電路圖多省略了晶振和復(fù)位電路,按照AD轉(zhuǎn)換電 路圖搭出來的系統(tǒng)自然不能運(yùn)行。

  B 51單片機(jī)P0口輸出信號(hào)時(shí)需要上拉電阻,我經(jīng)常忘記加電阻,導(dǎo)致電路不好使。

  C 51單片機(jī)31引腳需要接正極,以選擇采用內(nèi)部程序存儲(chǔ)器。如果忘記給這個(gè)引腳以正確的電壓,你的單片機(jī)可能不能執(zhí)行程序。

124.jpg

  4 應(yīng)用舉例

125.jpg

126.jpg

127.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。