下面是自己在學(xué)習(xí)AVR單片機時的學(xué)習(xí)經(jīng)驗,分享出來給大家,一起學(xué)習(xí)。
1、 AVR單片機采用RISC架構(gòu),8051單片機采用CISC架構(gòu)。前者速度為后者的2~4倍,為流水線操作指令。
2、 AVR單片機有32個通用寄存器(地址在RAM區(qū)從$0000開始到$001F),其中有6個(最后6個)合并為3個16位的X,Y,Z寄存器,用來存放地址指針,Z寄存器還可以尋址程序存儲器。
3、 哈佛結(jié)構(gòu),131條機器指令。
4、 延遲開機功能。
5、 內(nèi)部自帶RC振蕩器,可提供1/2/4/8MHZ的工作時鐘。
6、 FLASH+EEPROM+SRAM+SPI+USART+TWI+PWM+RTC+10位ADC+模擬比較器+JTAG。
7、 堆棧指針向下增長,51單片機向上增長。
8、 程序存儲器按字來訪問,擦除和寫入以頁為單位。
9、 復(fù)位時,所有的I/O口處于沒有上拉電阻的輸入狀態(tài)(高阻)。
10、 沒有中斷優(yōu)先級控制寄存器,由中斷向量表的地址決定優(yōu)先級(地址越低,優(yōu)先級越高)。
11、 PORTB |= (1<<2)D2置1,PORTB&= ~(1<<6)D6清零。
12、 FLASH分兩段:引導(dǎo)程序段(BootProgram Section)+應(yīng)用程序段(Application Program Section)。BPS中可以使用SPM指令實現(xiàn)IAP功能。
13、 中斷向量表位于FLASH程序存儲器的最前面。
14、 I/O空間為連續(xù)的64個I/O寄存器空間,在數(shù)據(jù)存儲器空間的映射地址為$0020~$005F。訪問I/O寄存器的兩種方式:IN,OUT指令+對SRAM訪問指令。
15、 單獨的AVcc用于給PORTA的ADC做AREF。
16、 13位的程序計數(shù)器PC,正好滿足16KB的尋址。
17、 AVR對片內(nèi)SRAM的訪問需要2個時鐘周期。
19、 狀態(tài)寄存器SREG:
I:全局中斷使能位。置1,CPU可以響應(yīng)中斷;清0,CPU禁止響應(yīng)中斷。清0時,單獨的中斷觸發(fā)控制的值保持不變。并且中斷響應(yīng)后,I由硬件清0(手動置1實現(xiàn)中斷嵌套),由RETI置1再響應(yīng)其他中斷。
T:位復(fù)制存儲。BLD,BST。可以將通用寄存器組中的任何一位復(fù)制到T中,反過來也可以。
H:半進位標志位。用于BCD的運算。
S:符號標志位。S=N⊕V。不管溢出與否(溢出后N的表示就不正確了!),但S總是能正確的表示計算結(jié)果的符號。