PIC、AVR、51單片機(jī)怎么選擇??jī)?yōu)缺點(diǎn)分析
51單片機(jī)和AVR最大的區(qū)別的是什么?學(xué)了51單片機(jī)也必須要學(xué)AVR單片機(jī)嗎?
單片機(jī)誕生于20世紀(jì)70年代末,它是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。單片機(jī)具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線(xiàn)系統(tǒng),目前大部分還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備。如今運(yùn)用最廣泛的就是51,PIC,AVR單片機(jī),那么它們之間有什么區(qū)別呢?我們來(lái)看看詳情。
一、AVR單片機(jī)概述
AVR單片機(jī)也是Atmel公司的產(chǎn)品,最早的就是AT90系列單片機(jī),現(xiàn)在很多AT90單片機(jī)都轉(zhuǎn)型為Atmega系列和AtTIny系列,AVR單片機(jī)最大的特點(diǎn)是精簡(jiǎn)指令型單片機(jī),執(zhí)行速度,在相同的振蕩頻率下是8位MCU中最快的一種單片機(jī)。
AVR應(yīng)用區(qū)域: 空調(diào)控制板 ,打印機(jī)控制板 ,智能電表,智能手電筒,LED控制屏,醫(yī)療設(shè)備,GPS。
二、51系列單片機(jī)概述
51系列單片機(jī)最早有Intel公司推出,主要有8031系列,8051系列。后來(lái)Atmel公司以8051的內(nèi)核為基礎(chǔ)推出了AT89系列單片機(jī)。它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。比較適合初學(xué)者的需要。
主要產(chǎn)品:
Intel(英特爾)的:80C31、80C51、87C51,80C32、80C52、87C52等;
ATMEL(艾德梅爾)的:89C51、89C52、89C2051,89S51(RC),89S52(RC)等;
Philips(飛利浦)、華邦、Dallas(達(dá)拉斯)、Siemens(西門(mén)子)等公司的許多產(chǎn)品;
STC(國(guó)產(chǎn)宏晶)單片機(jī):89c51、89c52、89c516、90c516等眾多品牌。
三、PIC單片機(jī)概述
PIC單片機(jī)是Microchip公司的產(chǎn)品,它也是一種精簡(jiǎn)指令型的單片機(jī),指令數(shù)量比較少,中檔的PIC系列僅僅有35條指令而已,低檔的僅有33條指令。但是如果使用匯編語(yǔ)言編寫(xiě)PIC單片機(jī)的程序有一個(gè)致命的弱點(diǎn)就是PIC中低檔單片機(jī)里有一個(gè)翻頁(yè)的概念,編寫(xiě)程序比較麻煩。
隨著單片機(jī)的發(fā)展,單片機(jī)在家用電器、工業(yè)自動(dòng)化、生產(chǎn)過(guò)程控制、智能儀器儀表等領(lǐng)域的應(yīng)用越來(lái)越廣泛。然而處于同一電力系統(tǒng)中的各種電氣設(shè)備通過(guò)電或磁的聯(lián)系彼此緊密相連,相互影響,由于運(yùn)行方式的改變,故障,開(kāi)關(guān)操作等引起的電磁振蕩會(huì)波及很多電氣設(shè)備。這對(duì)我們單片機(jī)系統(tǒng)的可靠性與安全性構(gòu)成了極大的威脅。單片機(jī)測(cè)控系統(tǒng)必須長(zhǎng)期穩(wěn)定、可靠運(yùn)行,否則將導(dǎo)致控制誤差加大,嚴(yán)重時(shí)會(huì)使系統(tǒng)失靈,甚至造成巨大損失。因此單片機(jī)的抗干擾問(wèn)題已經(jīng)成為不容忽視的問(wèn)題。
四、AVR、51系列、PIC單片機(jī)的對(duì)比分析
1、 51系列單片機(jī)的優(yōu)缺點(diǎn)分析
51系列優(yōu)點(diǎn)之一是它從內(nèi)部的硬件到軟件有一套完整的按位操作系統(tǒng),稱(chēng)作位處理器,或布爾處理器。它的處理對(duì)象不是字或字節(jié)而是位。它不光能對(duì)片內(nèi)某些特殊功能寄存器的某位進(jìn)行處理,如傳送、置位、清零、測(cè)試等,還能進(jìn)行位的邏輯運(yùn)算,其功能十分完備,使用起來(lái)得心應(yīng)手。雖然其他種類(lèi)的單片機(jī)也具有位處理功能,但能進(jìn)行位邏輯運(yùn)算的實(shí)屬少見(jiàn)。
51系列在片內(nèi)RAM區(qū)間還特別開(kāi)辟了一個(gè)雙重功能的地址區(qū)間,十六個(gè)字節(jié),單元地址20H~2FH,它既可作字節(jié)處理,也可作位處理(作位處理時(shí),合128個(gè)位,相應(yīng)位地址為OOH~7FH),使用極為靈活。51系列的另一個(gè)優(yōu)點(diǎn)是乘法和除法指令,這給編程也帶來(lái)了便利。其中51單片機(jī)做大的缺點(diǎn)就是運(yùn)行速度過(guò)慢。
2、PIC單片機(jī)的優(yōu)缺點(diǎn)分析
運(yùn)行速度快(指令周期約160~200nS),它能使程序存儲(chǔ)器的訪(fǎng)問(wèn)和數(shù)據(jù)存儲(chǔ)器的訪(fǎng)問(wèn)并行處理,這種指令流水線(xiàn)結(jié)構(gòu),在一個(gè)周期內(nèi)完成兩部分工作,一是執(zhí)行指令,二是從程序存儲(chǔ)器取出下一條指令,這樣總的看來(lái)每條指令只需一個(gè)周期(個(gè)別除外),這也是高效率運(yùn)行的原因之一。此外,它還具有低工作電壓、低功耗、驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)。
PIC系列單片機(jī)的I/O口是雙向的,其輸出電路為CMOS互補(bǔ)推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器,從而解決了51系列I/O腳為高電平時(shí)同為輸入和輸出的狀態(tài)。當(dāng)置位1時(shí)為輸入狀態(tài),且不管該腳呈高電平或低電平,對(duì)外均呈高阻狀態(tài);置位0時(shí)為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當(dāng)?shù)尿?qū)動(dòng)能力,低電平吸人電流達(dá)25mA,高電平輸出電流可達(dá)20mA。相對(duì)于51系列而言,這是一個(gè)很大的優(yōu)點(diǎn),它可以直接驅(qū)動(dòng)數(shù)碼管顯示且外電路簡(jiǎn)單。它的A/D為10位,能滿(mǎn)足精度要求。具有在線(xiàn)調(diào)試及編程功能。
該系列單片機(jī)的專(zhuān)用寄存器)并不像51系列那樣都集中在一個(gè)固定的地址區(qū)間內(nèi)(80~FFH),而是分散在四個(gè)地址區(qū)間內(nèi),即存儲(chǔ)體0(Bank0:00-7FH)、存儲(chǔ)體1(Bankl:80-FFH)、存儲(chǔ)體2(Bank2:100-17FH)、存儲(chǔ)體3(Bank3:180-1FFH)。只有5個(gè)專(zhuān)用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4個(gè)存儲(chǔ)體內(nèi)同時(shí)出現(xiàn)。在編程過(guò)程中,少不了要與專(zhuān)用寄存器打交道,得反復(fù)地選擇對(duì)應(yīng)的存儲(chǔ)體,也即對(duì)狀態(tài)寄存器STATUS的第6位(RPl)和第5位(RPO)置位或清零。這多少給編程帶來(lái)了一些麻煩。對(duì)于上述的單片機(jī),它的位指令操作通常限制在存儲(chǔ)體0區(qū)間(00~7FH)。數(shù)據(jù)的傳送和邏輯運(yùn)算基本上都得通過(guò)工作寄存器w(相當(dāng)于5l系列的累加器A)來(lái)進(jìn)行,而51系列的還可以通過(guò)寄存器相互之間直接傳送(如:MOV30H,20H;將寄存器20H的內(nèi)容直接傳送至寄存器30H中),因而PIC單片機(jī)的瓶頸現(xiàn)象比51系列還要嚴(yán)重,這在編程中很有感受。
3、AVR單片優(yōu)缺點(diǎn)分析
AVR單片機(jī)其顯著的特點(diǎn)為高性能、高速度、低功耗。它取消機(jī)器周期,以時(shí)鐘周期為指令周期,實(shí)行流水作業(yè)。AVR單片機(jī)指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時(shí)完成下一條指令的讀取。通用寄存器一共32個(gè)(RO-R31),前16個(gè)寄存器(R0~R15)都不能直接與立即數(shù)打交道,因而通用性有所下降。而在5l系列中,它所有的通用寄存器(地址00-7FH)均可以直接與立即數(shù)打交道,顯然要優(yōu)于前者。
綜合來(lái)看,AVR與51、PIC單片機(jī)相比具有一系列的優(yōu)點(diǎn),用通俗的說(shuō)法主要體現(xiàn)在這幾個(gè)方面:
(1)在相同的系統(tǒng)時(shí)鐘下AVR運(yùn)行速度最快;
(2)、所有AVR單片機(jī)的FLASH、EEPROM蓄存器都可以反復(fù)燒寫(xiě)、支持在ISP在線(xiàn)編程(燒寫(xiě)),入門(mén)費(fèi)用非常少;
(3)片內(nèi)集成多種頻率的RC振蕩器、上電自動(dòng)復(fù)位、看門(mén)狗、啟動(dòng)延時(shí)等功能,使得電路設(shè)計(jì)變得非常簡(jiǎn)單;
(4)每個(gè)IO口作輸出時(shí)都可以輸出很強(qiáng)的高、低電平,作輸入時(shí)IO口可以是高阻抗或者帶上拉電阻;
(5)片內(nèi)具有豐富實(shí)用的資源,如AD模數(shù)器、DA數(shù)模器,豐富的中斷源、SPI、USART、TWI通信口、PWM等等;
(6)片內(nèi)采用了先進(jìn)的數(shù)據(jù)加密技術(shù),大大的提高了破解的難度;(7)、片內(nèi)FLASH空間大、品種多,引腳少的有8腳,多的有64腳等各種封裝(8)、部分芯片的引腳兼容51系列,代換容易,如ATTIny2313兼容AT89C2051,ATmega8515/162兼容AT89S51等。
在抗干擾方面,主要還是和開(kāi)發(fā)者的水平有關(guān),而一定要說(shuō)哪種單片機(jī)的抗干擾強(qiáng),哪種弱,其實(shí)標(biāo)準(zhǔn)不一樣,結(jié)果也不一樣。人們普遍認(rèn)為pic的抗干擾很強(qiáng),但那是C系列,現(xiàn)在集成內(nèi)部Flash的F系列要差許多,特別是早期出廠(chǎng)的幾批。
avr系列單片機(jī)普遍被認(rèn)為抗干擾性能是比較差的,曾經(jīng)有人列出了一個(gè)表格,使用日本的測(cè)試方法,結(jié)果是avr排在了最后,其實(shí)對(duì)于一般的應(yīng)用也沒(méi)什么問(wèn)題。各種單片機(jī)都有各自的優(yōu)缺點(diǎn),你可以根據(jù)自己熟悉的情況來(lái)選擇合適自己的應(yīng)用芯片。 對(duì)于開(kāi)發(fā)者而言,根據(jù)項(xiàng)目的具體需求來(lái)具體選擇。