ATmega128在開發(fā)應(yīng)用中應(yīng)注意的問題
此外,ATmega128自帶輸入上拉電阻功能,通過設(shè)置即可以實(shí)現(xiàn)其功能。例如將PA口設(shè)為輸入口并且加上拉電阻,可以如下設(shè)置:
DDRA=0x00; //將PA口設(shè)置為輸入端口
PORA=0xff; //將PA輸入口加上拉電阻
(2)位操作的使用方法
采用ICCAVR對(duì)ATmega128的位操作的使用方法比較麻煩,不像51系列那樣可以直接對(duì)某一個(gè)引腳進(jìn)行置0或置1,而是要通過如下的方法進(jìn)行位操作:
如要對(duì)PA端口的第1位置1,則用C語言必須按PORTA|=(1
這樣就可以單獨(dú)對(duì)某一位操作而不影響其他位。位操作對(duì)其他寄存器也同樣適合,例如若要對(duì)某個(gè)口的幾位設(shè)為輸入,某幾位設(shè)為輸出,就可以通過上面的置1、置0方法來實(shí)現(xiàn)。
(3)中 斷
ATmega128中斷資源豐富,一共有35個(gè)中斷源,在ICCAVR的iom128v.h頭文件中給出了這些中斷源對(duì)應(yīng)的中斷向量表。當(dāng)用到相應(yīng)的中斷時(shí),首先應(yīng)設(shè)置好對(duì)應(yīng)的中斷向量。用ICCAVR設(shè)置ATmega128中斷的方法與Keil51設(shè)置中斷的方法截然不同,例如若需要將ATmega128的串口0設(shè)置為中斷接收,就必須在程序中做如下設(shè)置:
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
否則程序不能中斷接收,延長(zhǎng)開發(fā)過程。
ATmega128作為一種功能強(qiáng)大的芯片,相信會(huì)在不同的領(lǐng)域發(fā)揮不同的作用,為此需要人們不斷地提高對(duì)ATmega128的認(rèn)識(shí)。而且ATmega128與AVR等其他單片機(jī)如ATmega8、ATmega103、AT90S8535系列有相同的開發(fā)方法,掌握了ATmega128就可以在開發(fā)其他AVR類型的單片機(jī)時(shí)應(yīng)用自如。
參考文獻(xiàn)
1 USA:Atmel Corporation.ATmega128(L)Datasheet,2001
2 丁化成.AVR單片機(jī)應(yīng)用設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2002
評(píng)論