常用于機(jī)器人的單片機(jī)的使用經(jīng)驗(yàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一 學(xué)習(xí)單片機(jī)的捷徑是什么?
所謂捷徑就是少走彎路。我剛開始學(xué)單片機(jī)時(shí)走了不少彎路,很多朋友和我都有相似的經(jīng)歷,剛開始接觸
2 齒輪和凸輪組成的控制器
在模擬計(jì)算機(jī)誕生前,也就是蒸汽機(jī)時(shí)代,有些機(jī)械天才硬是用數(shù)百個(gè)齒輪和凸輪搭建出機(jī)械計(jì)算機(jī),人們通過轉(zhuǎn)動印有數(shù)字的各種齒輪,另一些齒輪就將運(yùn)算結(jié)果顯示出來。機(jī)械計(jì)算機(jī)在人類史上上曾經(jīng)是高科技產(chǎn)品,第二次世界大戰(zhàn)時(shí),德國著名的密碼機(jī)就是一種機(jī)電混合式計(jì)算機(jī),它當(dāng)時(shí)是最保密的通信工具。
3 發(fā)條和秒表和繼電器組成的控制器
在電氣時(shí)代開始時(shí),人們用鐘表內(nèi)機(jī)械的旋轉(zhuǎn)分時(shí)控制一些繼電器的通斷,從而控制一些機(jī)床和生產(chǎn)線的運(yùn)行。這種裝置類似于早期洗衣機(jī)內(nèi)的定時(shí)器。
三 入門首選 AT89S51系列單片機(jī)
1 簡介
1980,英特爾公司開發(fā)出一種簡易的8031CPU,在當(dāng)時(shí)該CPU性能不比8086差很多,但價(jià)格較便宜,因此被很多低端應(yīng)用選中。由于市場看好,ATMEL公司購買了8031的內(nèi)核,把Flash存儲器和加強(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,那么此人一定會遇到很多難題,困惑和郁悶將伴隨著學(xué)習(xí)過程。如果學(xué)了51再學(xué)AVR和其他單片機(jī),人們會發(fā)現(xiàn)“所謂單片機(jī)都不過如此”。
2 性能
根據(jù)任務(wù)具體需要選擇最合適的單片機(jī),使單片機(jī)資源充分利用,使系統(tǒng)性價(jià)比達(dá)到最高,同時(shí)兼顧未來擴(kuò)展需要,不一味追求高性能單片機(jī),這就是選單片機(jī)的原則。
AT89S51有4K的Flash程序存儲器,128字節(jié)的RAM,32條IO口,中斷系統(tǒng)具有6個(gè)中斷源、5個(gè)終端矢量、2個(gè)中斷優(yōu)先級的中斷結(jié)構(gòu);串行口是一個(gè)全雙工的串行通信口;AT89S51的電源電壓為4.0-5.5V,AT89LS51的電源電壓為2.7-4.0V;振蕩器頻率0-33MHz(AT89S51),0-16MHz(AT89LS51); 有ISP 在線編程功能,這個(gè)功能的優(yōu)勢在于改寫單片機(jī)存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)強(qiáng)大易用的功能。
AT89S52程序儲存器容量為8KB,還有AT89S55,ROM容量更大。
有很多公司生產(chǎn)了很多擴(kuò)展型51系列單片機(jī),有的帶有AD轉(zhuǎn)換器,有的帶有比較器,有的帶有PWM,讀者可以根據(jù)自身需要選擇合適的51單片機(jī),但要注意他們的管腳定義和編程方式。
3 使用方法
AT89S51 適于做單片機(jī)學(xué)習(xí)板、電子時(shí)鐘、超聲波測距儀等不需要采集模擬量和控制大功率外部元件的電路。S51與過去的C51的區(qū)別在于S51支持ISP在線編程,即C51需要幾百元的編程器編程,而S51僅需一條25針并口線和非常簡單的轉(zhuǎn)換電路即可接在臺式電腦打印機(jī)接口燒程序,下載燒程序小軟件即實(shí)現(xiàn)可對S51單片機(jī)編程。對51單片機(jī)編程一般選用Keil軟件,可采用C語言或者匯編語言,編完程后選擇輸出HEX文件,然后用燒程序小軟件讀取HEX文件,再燒寫到單片機(jī)中。
4 實(shí)踐經(jīng)驗(yàn)
A 剛開始看書時(shí),按照書上的電路圖連線然后通電調(diào)試,但總不成功,將自己的電路和書上的電路仔細(xì)對照發(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口輸出信號時(shí)需要上拉電阻,我經(jīng)常忘記加電阻,導(dǎo)致電路不好使。
C 51單片機(jī)31引腳需要接正極,以選擇采用內(nèi)部程序存儲器。如果忘記給這個(gè)引腳以正確的電壓,你的單片機(jī)可能不能執(zhí)行程序。
4 應(yīng)用舉例
四 愛好者制作機(jī)器人首選 AVR系列單片機(jī)
1 簡介
AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機(jī)。高可靠性、功能強(qiáng)、高速度、低功耗和低價(jià)位一直是衡量單片機(jī)性能的重要指標(biāo),而AVR單片機(jī)是典型高性能單片機(jī)。
早期單片機(jī),比如51單片機(jī)為了提高可靠性(防止數(shù)據(jù)誤讀或跑飛)采用較高的分頻系數(shù)對時(shí)鐘分頻,使得指令周期長,執(zhí)行速度慢。例如51單片機(jī)需要12個(gè)晶振周期才能組成1個(gè)機(jī)器周期,而且很多指令需要2個(gè)機(jī)器周期才能執(zhí)行。AVR單片機(jī)的推出,徹底打破這種舊設(shè)計(jì)格局,廢除了機(jī)器周期,采用精簡指令集,取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。AVR單片機(jī)在12個(gè)晶振周期中能執(zhí)行12條指令,從這個(gè)角度看,如果晶振頻率相同,AVR的速度是51的12倍到24倍。
AVR有32個(gè)通用寄存器,在進(jìn)行大量復(fù)雜運(yùn)算時(shí),AVR的32個(gè)寄存器可相當(dāng)于51的32個(gè)累加器,克服了51系列單片機(jī)只有單一累加器數(shù)據(jù)處理造成的瓶頸現(xiàn)象,在復(fù)雜運(yùn)算時(shí)速度比51快5倍以上。由此可看出,51與AVR相比是多么慢,AVR是多么快。
AVR系列單片機(jī)多內(nèi)部集成了多路AD轉(zhuǎn)換器、電壓比較器、ISP、I2C、JTAG總線電路、UART串口、大功率IO口、看門狗等實(shí)用電路,并且很多AVR單片機(jī)型號有EEPROM、FLASH、SRAM三種存儲器,可以實(shí)現(xiàn)實(shí)時(shí)修改程序存儲器中的內(nèi)容,即AVR單片機(jī)可以自己修改自己的程序。同時(shí)AVR一般能工作在寬電壓范圍(2.7~6.0V),有的居然可以在1.8V電壓下工作。以上這些性能只是AVR眾多性能中的一部分,然而已經(jīng)讓51系列單片機(jī)望塵莫及了。
如此高性能的單片機(jī)價(jià)格居然和51單片機(jī)差不多,比如ATmega8價(jià)格為8元左右,ATmega16在13元左右,這是AVR有極高性價(jià)比的真實(shí)寫照。
2 性能
AVR家族人丁興旺,包括ATinyAVR(微小型)、低功耗類、ATmegaAVR高中低檔5類單片機(jī)。它們都基于同一核心技術(shù),但在內(nèi)部集成的電路多少上有不同。不論你要做電子手表還是視頻處理,都有一款合適的AVR單片機(jī)能滿足你的需要。
本文只列出ATmega16中檔單片機(jī)的性能:
16KB的FLASH程序存儲器;512B的EEPROM;1KB的SRAM;32個(gè)快速寄存器;32個(gè)大功率IO口;20個(gè)中斷;2個(gè)外部中斷口;有SPI、SUART、I2C總線接口;2個(gè)8位定時(shí)器;1個(gè)16位定時(shí)器;3個(gè)PWM通道;有實(shí)時(shí)時(shí)鐘RTC;8個(gè)10位AD通道;電壓比較器;看門狗;內(nèi)置時(shí)鐘振蕩器;JTAG接口;ISP在線編程;電壓范圍為2.7V-5.5V;外部時(shí)鐘晶振0-16MHz;有PID和多種貼片封裝。
AVR的IO口能輸出20mA和吸收40mA的電流,不僅可直接驅(qū)動LED,甚至可直接驅(qū)動微型直流減速電機(jī)。而且AVR的IO口可編程設(shè)置成輸入、輸出、高阻態(tài)狀態(tài),是真正的3態(tài)IO口。和51相比使用AVR開發(fā)產(chǎn)品你會發(fā)現(xiàn)前所未有的方便和自由。
AVR單片機(jī)可上操作系統(tǒng),比如UCOS2、Linux等,自主編程實(shí)現(xiàn)操作系統(tǒng)功能也很容易。
根據(jù)任務(wù)具體需要選擇最合適的單片機(jī),使單片機(jī)資源充分利用,使系統(tǒng)性價(jià)比達(dá)到最高,同時(shí)兼顧未來擴(kuò)展需要,不要一味選用高性能單片機(jī),這就是選單片機(jī)的原則。
用ARM+操作系統(tǒng)做超聲波測距儀——?dú)㈦u用了牛刀。用AVR中檔單片機(jī)做機(jī)器視覺——有些吃不消。如果把它們調(diào)換一下,一切就恰到好處了。
3 使用方法
學(xué)AVR單片機(jī)的好書是《AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐》,封面見下圖。
AVR一般采用CVAVR編程軟件編程,也可用GUN GCCAVR、AVR Studio軟件編程。可采用匯編或C語言編程。燒程序前先輸出HEX文件,然后用SLISP(雙龍ISP)軟件加載,再通過ISP編程線或者25針并口連接線燒入AVR單片機(jī),支持在線編程。
由于AVR單片機(jī)最小系統(tǒng)很簡單,就是電源+晶振(可不用)+LED+ISP接口(通電就運(yùn)行,斷電就停止,不用復(fù)位電路),因此任何初學(xué)者都可以用面包板搭出AVR最小系統(tǒng),并且編程實(shí)踐。
4 實(shí)踐經(jīng)驗(yàn)
使用AVR單片機(jī)時(shí)注意要正確設(shè)置熔絲位,SLISP軟件就可設(shè)置,熔絲位可決定單片機(jī)是采用外部晶振還是采用內(nèi)部時(shí)鐘振蕩器,如果熔絲位設(shè)置為采用外部晶振,而電路中沒有接入晶振,則AVR程序不能運(yùn)行。很多初學(xué)者忽視了這一點(diǎn),他們的AVR系統(tǒng)不能運(yùn)行卻找不到原因。再有就是AVR的IO口在使用前需先編程設(shè)置其狀態(tài),否則你將發(fā)現(xiàn)程序在運(yùn)行,但I(xiàn)O口沒信號。
4 應(yīng)用舉例
五 高級機(jī)器人控制器 ARM
1 簡介
ARM是一個(gè)公司名,他們基于同一內(nèi)核設(shè)計(jì)了很多高性能處理器,這些處理器都叫ARM。該技術(shù)被很多公司購買后生產(chǎn)出了集成很多功能電路的ARM芯片,使得ARM成為高性能單片機(jī)。ARM一般為32位單片機(jī),適于處理大量復(fù)雜數(shù)據(jù),很多ARM裝上了UCOS2、WindowsCE、Linux操作系統(tǒng),能夠同時(shí)運(yùn)行多個(gè)程序。ARM廣泛應(yīng)用于手機(jī)、MP3、GPS導(dǎo)航儀、吸塵機(jī)器人等產(chǎn)品上。
六 音頻視頻處理首選DSP
1 簡介
DSP數(shù)字信號處理(Digital Signal Processing,簡稱DSP),它是一種獨(dú)特的微處理器,是以數(shù)字信號來處理大量信息的器件。其工作原理是接收模擬信號,轉(zhuǎn)換為0或1的數(shù)字信號,再對數(shù)字信號進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱道的兩大特色。
在高速小車巡線、語音識別等領(lǐng)域DSP被廣泛應(yīng)用。但如果僅用DSP檢測幾個(gè)碰撞開關(guān)、控制幾個(gè)電機(jī)顯得大材小用。