該系列單片機的專用寄存器)并不像51系列那樣都集中在一個固定的地址區間內(80~FFH),而是分散在四個地址區間內,即存儲體0(Bank0:00-7FH)、存儲體1(Bankl:80-FFH)、存儲體2(Bank2:100-17FH)、存儲體3(Bank3:180-1FFH)。只有5個專用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4個存儲體內同時出現。在編程過程中,少不了要與專用寄存器打交道,得反復地選擇對應的存儲體,也即對狀態寄存器STATUS的第6位(RPl)和第5位(RPO)置位或清零。這多少給編程帶來了一些麻煩。
對于上述的單片機,它的位指令操作通常限制在存儲體0區間(00~7FH)。數據的傳送和邏輯運算基本上都得通過工作寄存器w(相當于5l系列的累加器A)來進行,而51系列的還可以通過寄存器相互之間直接傳送(如:MOV30H,20H;將寄存器20H的內容直接傳送至寄存器30H中),因而PIC單片機的瓶頸現象比51系列還要嚴重,這在編程中很有感受。
綜合來說PIC單片機應該說有三個主要特點:
(1)總線結構:MCS-51單片機的總線結構是馮-諾依曼型,計算機在同一個存儲空間取指令和數據,兩者不能同時進行;而PIC單片機的總線結構是哈佛結構,指令和數據空間是完全分開的,一個用于指令,一個用于數據,由于可以對程序和數據同時進行訪問,所以提高了數據吞吐率。正因為在PIC單片機中采用了哈佛雙總線結構,所以與常見的微控制器不同的一點是:程序和數據總線可以采用不同的寬度。數據總線都是8位的,但指令總線位數分別位12、14、16位。
(2)流水線結構:MCS-51單片機的取指和執行采用單指令流水線結構,即取一條指令,執行完后再取下一條指令;而PIC的取指和執行采用雙指令流水線結構,當一條指令被執行時,允許下一條指令同時被取出,這樣就實現了單周期指令。
(3)寄存器組:PIC單片機的所有寄存器,包括I/O口,定時器和程序計數器等都采用RAM結構形式,而且都只需要一個指令周期就可以完成訪問和操作;而MCS-51單片機需要兩個或兩個以上的周期才能改變寄存器的內容。
3、AVR單片優缺點分析。
AVR單片機其顯著的特點為高性能、高速度、低功耗。它取消機器周期,以時鐘周期為指令周期,實行流水作業。AVR單片機指令以字為單位,且大部分指令都為單周期指令。而單周期既可執行本指令功能,同時完成下一條指令的讀取。通用寄存器一共32個(RO-R31),前16個寄存器(R0~R15)都不能直接與立即數打交道,因而通用性有所下降。而在5l系列中,它所有的通用寄存器(地址00-7FH)均可以直接與立即數打交道,顯然要優于前者。
AVR系列沒有類似累加器A的結構,它主要是通過R16~R31寄存器來實現A的功能。在AVR中,沒有像5l系列的數據指針DPTR,而是由X(由R26、R27組成)、Y(由R28、.R29組成)、z(由R30、R31組成)三個16位的寄存器來完成數據指針的功能(相當于有三組DPTR),而且還能作后增量或先減量等的運行。
在51系列中,所有的邏輯運算都必須在A中進行;而AVR卻可以在任兩個寄存器之間進行,省去了在A中的來回折騰,這些都比51系列強。
AVR的專用寄存器集中在$00~$3F地址區間,無需像PIC那樣得先進行選存儲體的過程,使用起來比PIC方便。AVR的片內RAM的地址區間為$0060~$00DF(AT90S23131)和$0060~$025F(AT90S85l5、AT90S8535),它們占用的是數據空間的地址,這些片內RAM僅僅是用來存儲數據的,通常不具備通用寄存器的功能。當程序復雜時,通用寄存器R0一R31就顯得不夠用;而51系列的通用寄存器多達128個(為AVR的4倍),編程時就不會有這種感覺。
AVR的I/O腳類似PIC,它也有用來控制輸入或輸出的方向寄存器,在輸出狀態下,高電平輸出的電流在10mA左右,低電平吸入電流20mA。雖不如PIC,但比51系列強。
綜合來看,AVR與51、PIC單片機相比具有一系列的優點,用通俗的說法主要體現在這幾個方面:
(1)、在相同的系統時鐘下AVR運行速度最快;
(2)、所有AVR單片機的FLASH、EEPROM蓄存器都可以反復燒寫、支持在ISP在線編程(燒寫),入門費用非常少;
(3)、片內集成多種頻率的RC振蕩器、上電自動復位、看門狗、啟動延時等功能,使得電路設計變得非常簡單;
(4)、每個IO口作輸出時都可以輸出很強的高、低電平,作輸入時IO口可以是高阻抗或者帶上拉電阻;
(5)、片內具有豐富實用的資源,如AD模數器、DA數模器,豐富的中斷源、SPI、USART、TWI通信口、PWM等等;
(6)、片內采用了先進的數據加密技術,大大的提高了破解的難度;
(7)、片內FLASH空間大、品種多,引腳少的有8腳,多的有64腳等各種封裝
(8)、部分芯片的引腳兼容51系列,代換容易,如ATtiny2313兼容AT89C2051,ATmega8515/162兼容AT89S51等
4、單片機的選擇。
各種單片機都有各自的優缺點,應根據需要選擇。選擇單片機原則如下:
1. 單片機的基本參數例如速度,程序存儲器容量,I/O引腳數量
2. 單片機的增強功能,例如看門狗,雙指針,雙串口,RTC(實時時鐘),EEPROM,擴展RAM,CAN接口,I2C接口,SPI接口,USB接口。
3. Flash和OTP(一次性可編程)相比較,最好是Flash。
4. 封裝IP(雙列直插),PLCC(PLCC有對應插座)還是貼片。DIP封裝在做實驗時可能方便一點。
5. 工作溫度范圍,工業級還是商業機。如果設計戶外產品,必須選用工業級。
6. 功耗,比如設計并口加密狗,信號線取電只能提供幾個mA,用PIC就是因為低功耗,后來出了MSP430也不錯。
7. 工作電壓范圍。例如設計電視機遙控器,2節干電池供電,至少應該能在1.8-3.6V電壓范圍內工作。
8. 供貨渠道暢通。能申請樣片,小批量購買有現貨。最好像標準51,中發里隨便找個柜臺就能買到(我在北京)
9. 價格低。
10. 有服務商,像周立功公司推Philips,雙龍公司推AVR,都提供了很多有用的技術支持,起碼燒寫器有地方買。
評論