说明AVR单片机I/O口3个寄存器的名称和作用是什么?当I/O口用于输入和输出时,如何设置和应用这3个寄存器?
说明AVR单片机I/O口3个寄存器的名称和作用是什么?当I/O口用于输入和输出时,如何设置和应用这3个寄存器?...
说明AVR单片机I/O口3个寄存器的名称和作用是什么?当I/O口用于输入和输出时,如何设置和应用这3个寄存器?
展开
2个回答
展开全部
拿A口作例子
DDRA是数据方向寄存器,用来选择引脚的方向,某位为1配置为输出,某位为0配置为输入。
DDRA相应位输出,PORTA用来设置端口电平。
DDRA相应位输入,PORTA配置上拉电阻,为1带上拉电阻,为0不带上拉电阻。
输出:
DDRA=0xFF;//全作输出,设置一次即可
PORTA=0xFF;//全为1,全输出高电平
PORTA=0;//全为0,全输出低电平
输入:
DDRA=0;//全作输入,设置一次即可
PORTA=0xFF;//全带上拉电阻,设置一次即可
PORTA=0;//全不带上拉电阻,设置一次即可
a=PINA;//读A口。不论何时都可以读PINA来获得端口电平,不过因为锁存会有延时
注意,因为一个端口有8个引脚(少数不够8个脚),所以可以精确控制某一位或者某几位而不影响别的位。
DDRA|=1;//A口第0位变成输出,不影响别的位,也不管第0位原来是输出还是输入
DDRA&=~1;//A口第0位变成输入,不影响别的位,也不管0位原来是输出还是输入
PORTA类似
a=PINA;//一次读8个引脚状态,在程序中再处理a的相应位好了。
DDRA是数据方向寄存器,用来选择引脚的方向,某位为1配置为输出,某位为0配置为输入。
DDRA相应位输出,PORTA用来设置端口电平。
DDRA相应位输入,PORTA配置上拉电阻,为1带上拉电阻,为0不带上拉电阻。
输出:
DDRA=0xFF;//全作输出,设置一次即可
PORTA=0xFF;//全为1,全输出高电平
PORTA=0;//全为0,全输出低电平
输入:
DDRA=0;//全作输入,设置一次即可
PORTA=0xFF;//全带上拉电阻,设置一次即可
PORTA=0;//全不带上拉电阻,设置一次即可
a=PINA;//读A口。不论何时都可以读PINA来获得端口电平,不过因为锁存会有延时
注意,因为一个端口有8个引脚(少数不够8个脚),所以可以精确控制某一位或者某几位而不影响别的位。
DDRA|=1;//A口第0位变成输出,不影响别的位,也不管第0位原来是输出还是输入
DDRA&=~1;//A口第0位变成输入,不影响别的位,也不管0位原来是输出还是输入
PORTA类似
a=PINA;//一次读8个引脚状态,在程序中再处理a的相应位好了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询