您现在的位置: 主页 > MCU > 单片机技术应用 > AVR单片机IO端口操作方法 -
本文所属标签:
为本文创立个标签吧:

AVR单片机IO端口操作方法 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
AVR单片机的IO端口操作是撑握AVR技术的基础,因此需要清晰的理解。下面的例子列出了操作IO端口的方法,资料来源于OURAVR。举例一:将PB0定义为输出,且输出为高电平DDRB=BIT(0);//定义PB0为输出PORTB|=

 

本文引用地址: http://www.21ic.com/app/mcu/201804/765844.htm

AVR单片机IO端口操作是撑握AVR技术的基础,因此需要清晰的理解。下面的例子列出了操作IO端口的方法,资料来源于OURAVR。

举例一:将PB0定义为输出,且输出为高电平

DDRB=BIT(0);//定义PB0为输出

PORTB|=BIT(0);// PB0输出高电平

举例二:将PB0、PB1定义为输出,PB0、PB1均为高电平

DDRB|=BIT(0)|BIT(1);//定义PB0、PB1为输出

PORTB|=BIT(0)|BIT(1);// PB0、PB1输出高电平

举例三:将PB0数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

PORTB^=BIT(0);//翻转PB0口

举例四:将PB0、PB1数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

PORTB^=BIT(0)|BIT(1);//翻转PB0、PB1口

举例五:将PB2、PB3定义为输入,不带上拉电阻

DDRB&=~(BIT(2)|BIT(3));//定义PB2、PB3为输入

PORTB&=~(BIT(2)|BIT(3));//将PORT置0,没有上拉电阻

举例六:将PB2、PB3定义为输入,带上拉电阻。即没有引用这些引脚时,缺省值为高电平

SFIOR&=~BIT(PUD);// SFIOR寄存器的上拉电阻控制位PUD置0,在整个代码中,这句话可以不出现,或仅出现一次即可。因为它是一个控制全部上拉电阻的控制位。

DDRB&=~(BIT(2)|BIT(3));//定义PB2、PB3为输入

PORTB|=BIT(2)|BIT(3);//将PORT置1,满足上拉电阻的另一个条件

举例七:DDRB=BIT(0)|BIT(1)与DDRB|=BIT(0)|BIT(1)的区别

假定在执行上面两句指令前,DDRB的状态为:1000 0000

如果执行DDRB="BIT"(0)|BIT(1),DDRB的状态变为:0000 0011
如果执行DDRD|=BIT(0)|BIT(1),,DDRB的状态变为:1000 0011

那前一句会先清空以前的所有状态,后一句保留前面的状态。

在实际应用中,后一句更常用。

举例八:将第三位置1,除了用BIT(3),还有其它的表达方法吗?

DDRB|=BIT(3);

DDRB|=1<<3;

DDRB|=0x08;

DDRB|=0b00001000;

 

 



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > AVR单片机IO端口操作方法 -
 

"AVR单片机IO端口操作方法 -"的相关文章

网站地图

围观()