AVR单片机的I/O寄存器和端口操作
时间:11-10
来源:互联网
点击:
1.在头文件“sfr_defs.h”中定义的宏“_BV(bit)”也常用来实现位操作。
其中,宏“_BV(bit)”的定义为:
#define _BV(bit) (1<(bit))
例子:
DDRD = _BV(PD0) | _BV(PD1)
//在相应器件的ioxxxxxxx.h中PD0定义为0,PD1定义为1
所以,DDRD = _BV(PD0) | _BV(PD1) 等价于DDRD=0x03.
2.ATmega128每个I/O端口都有3个寄存器来控制,分别是:
方向寄存器DDRx、数据寄存器PORTx和输入引脚寄存器PINx。
其中,方向寄存器DDRx和数据寄存器PORTx是可读可写寄存器,而PINx为只读寄存器。
例子:
在进行写操作的时候,方向寄存器DDRB用于指定PB口是作为输入口还是输出口用;
在进行读操作的时候,从方向寄存器DDRB读出来的是端口的方向设定值。
DDRA = 0xFF;//初始化端口A为输出模式。
#define LED0 0
#define LED1 1
DDRC = 0xFF;
PORTC = 0xFF;
...
PORTC &= ~ _BV (LED0);// 输出低电平
PORTC | = _BV (LED1);//输出高电平
...
PORTC &= ~ _BV (LED1);// 输出低电平
PORTC | = _BV (LED0);//输出高电平
SPDR :SPI数据寄存器
SPSR:SPI状态寄存器
SPCR :SPI控制寄存器
AVR单片机IO寄存器端口操 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)