此外,ATmega128自带输入上拉电阻功能,通过设置即可以实现其功能。例如将PA口设为输入口并且加上拉电阻,可以如下设置:
DDRA=0x00; //将PA口设置为输入端口
PORA=0xff; //将PA输入口加上拉电阻
(2)位操作的使用方法
采用ICCAVR对ATmega128的位操作的使用方法比较麻烦,不像51系列那样可以直接对某一个引脚进行置0或置1,而是要通过如下的方法进行位操作:
如要对PA端口的第1位置1,则用C语言必须按PORTA|=(1<
这样就可以单独对某一位操作而不影响其他位。位操作对其他寄存器也同样适合,例如若要对某个口的几位设为输入,某几位设为输出,就可以通过上面的置1、置0方法来实现。
(3)中 断
ATmega128中断资源丰富,一共有35个中断源,在ICCAVR的iom128v.h头文件中给出了这些中断源对应的中断向量表。当用到相应的中断时,首先应设置好对应的中断向量。用ICCAVR设置ATmega128中断的方法与Keil51设置中断的方法截然不同,例如若需要将ATmega128的串口0设置为中断接收,就必须在程序中做如下设置:
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
否则程序不能中断接收,延长开发过程。
ATmega128作为一种功能强大的芯片,相信会在不同的领域发挥不同的作用,为此需要人们不断地提高对ATmega128的认识。而且ATmega128与AVR等其他单片机如ATmega8、ATmega103、AT90S8535系列有相同的开发方法,掌握了ATmega128就可以在开发其他AVR类型的单片机时应用自如。
参考文献
1 USA:Atmel Corporation.ATmega128(L)Datasheet,2001
2 丁化成.AVR单片机应用设计.北京:北京航空航天大学出版社,2002