AVR單片機(jī)一些學(xué)習(xí)筆記
下面是自己在學(xué)習(xí)AVR單片機(jī)時(shí)的學(xué)習(xí)經(jīng)驗(yàn),分享出來(lái)給大家,一起學(xué)習(xí)。
1、 AVR單片機(jī)采用RISC架構(gòu),8051單片機(jī)采用CISC架構(gòu)。前者速度為后者的2~4倍,為流水線操作指令。
2、 AVR單片機(jī)有32個(gè)通用寄存器(地址在RAM區(qū)從$0000開(kāi)始到$001F),其中有6個(gè)(最后6個(gè))合并為3個(gè)16位的X,Y,Z寄存器,用來(lái)存放地址指針,Z寄存器還可以尋址程序存儲(chǔ)器。
3、 哈佛結(jié)構(gòu),131條機(jī)器指令。
4、 延遲開(kāi)機(jī)功能。
5、 內(nèi)部自帶RC振蕩器,可提供1/2/4/8MHZ的工作時(shí)鐘。
6、 FLASH+EEPROM+SRAM+SPI+USART+TWI+PWM+RTC+10位ADC+模擬比較器+JTAG。
7、 堆棧指針向下增長(zhǎng),51單片機(jī)向上增長(zhǎng)。
8、 程序存儲(chǔ)器按字來(lái)訪問(wèn),擦除和寫(xiě)入以頁(yè)為單位。
9、 復(fù)位時(shí),所有的I/O口處于沒(méi)有上拉電阻的輸入狀態(tài)(高阻)。
10、 沒(méi)有中斷優(yōu)先級(jí)控制寄存器,由中斷向量表的地址決定優(yōu)先級(jí)(地址越低,優(yōu)先級(jí)越高)。
11、 PORTB |= (12)D2置1,PORTB= ~(16)D6清零。
12、 FLASH分兩段:引導(dǎo)程序段(BootProgram Section)+應(yīng)用程序段(Application Program Section)。BPS中可以使用SPM指令實(shí)現(xiàn)IAP功能。
13、 中斷向量表位于FLASH程序存儲(chǔ)器的最前面。
14、 I/O空間為連續(xù)的64個(gè)I/O寄存器空間,在數(shù)據(jù)存儲(chǔ)器空間的映射地址為$0020~$005F。訪問(wèn)I/O寄存器的兩種方式:IN,OUT指令+對(duì)SRAM訪問(wèn)指令。
15、 單獨(dú)的AVcc用于給PORTA的ADC做AREF。
16、 13位的程序計(jì)數(shù)器PC,正好滿(mǎn)足16KB的尋址。
17、 AVR對(duì)片內(nèi)SRAM的訪問(wèn)需要2個(gè)時(shí)鐘周期。
19、 狀態(tài)寄存器SREG:
I:全局中斷使能位。置1,CPU可以響應(yīng)中斷;清0,CPU禁止響應(yīng)中斷。清0時(shí),單獨(dú)的中斷觸發(fā)控制的值保持不變。并且中斷響應(yīng)后,I由硬件清0(手動(dòng)置1實(shí)現(xiàn)中斷嵌套),由RETI置1再響應(yīng)其他中斷。
T:位復(fù)制存儲(chǔ)。BLD,BST??梢詫⑼ㄓ眉拇嫫鹘M中的任何一位復(fù)制到T中,反過(guò)來(lái)也可以。
H:半進(jìn)位標(biāo)志位。用于BCD的運(yùn)算。
S:符號(hào)標(biāo)志位。S=N⊕V。不管溢出與否(溢出后N的表示就不正確了!),但S總是能正確的表示計(jì)算結(jié)果的符號(hào)。
V:2的補(bǔ)碼溢出標(biāo)志位。溢出時(shí),N取反才是真正的結(jié)果符號(hào)。
N:負(fù)數(shù)標(biāo)志位。直接取自運(yùn)算結(jié)果的最高位。
Z:零值標(biāo)志位。運(yùn)算結(jié)果為0,置1。
C:進(jìn)/借位標(biāo)志。
20、 MCUCSR可以查看復(fù)位原因。
21、 掉電檢測(cè)(BOD)復(fù)位
22、 在FLASH的$0000H存放的是一條JMP或者RJMP指令,用來(lái)跳轉(zhuǎn)到正式代碼入口。$0002H~0028H(針對(duì)中斷向量為一個(gè)字的,如果中斷向量為兩個(gè)字$0002H~0050H)存放的是中斷向量表,20個(gè)中斷口算上第一個(gè)復(fù)位中斷為21個(gè)>,主程序開(kāi)始在$002AH。
23、 硬件開(kāi)發(fā)工具:軟件模擬仿真器,實(shí)時(shí)在板仿真器(ICE),實(shí)時(shí)在片仿真器(JTAG)。
24、 每組I/O口配置三個(gè)寄存器用來(lái)表征他們的狀態(tài):方向控制寄存器DDRx(Data Direction Register),數(shù)據(jù)寄存器PORTn,輸入引腳寄存器PINx。
評(píng)論