您的位置 首页 电源

AVR单片机的I/O寄存器和端口操作

1.在头文件sfr_defs.h中定义的宏_BV(bit)也常用来实现位操作。其中,宏_BV(bit)的定义为:#define_BV(bit)(1(bit))例子:DDRD=_BV…

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操控寄存器

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/275772.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部