《電子技術(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)部儲(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è)芯片,,看起來外觀差不多,它們有什么不同呢,?答案是:單片機(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ī)的特長在于可以用單個(gè)芯片和簡單外部電路去實(shí)現(xiàn)復(fù)雜的控制操作,,因此非常適合機(jī)器人控制。其實(shí)在絕大多數(shù)機(jī)器人中都有單片機(jī)的影子,。簡單的和中等復(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ī),,能夠完成許多簡單的計(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)爭時(shí),,阿拉伯國家使用的蘇制全自動(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í),德國著名的密碼機(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 簡介

  1980,,英特爾公司開 發(fā)出一種簡易的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)簡單,,指令易學(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針并口線和非常簡單的轉(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)不了問題。原因在于很多書上的電路圖都是“簡化 圖”,,即省略了一些電路,,而這些被省略的電路卻關(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;郵箱:[email protected],。