说明一下ATmega16的I/O端口。ATmega16共四组I/O口(PA、PB、PC和PD),它们都是8位双向I/O口。可以说使用AVR单片机主要是I/O端口的操作,而对I/O端口的操作主要是对其寄存器的读写。每组端口有三组寄存器,每组寄存器的每一位就对应这组端口的相应位端口。以PC口为例,其寄存器有以下三组。
DDRC:PC口方向寄存器,可读可写。在写操作时,DDRC用于指定PC口是作为输入还是输出口(置1为输出,置0为输入);在读操作时,从DDRC读出来的是端口的方向设定值。
PORTC:PC口数据寄存器,可读可写。在写操作时,从PORTC写入的数据将存入内部锁存器,以确定端口的工作状态(端口设定)或者将写入的数据送到外部数据总线(数据传输)。
PINC:只允许读操作,用来获得PC口外部引脚电平。
|