微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR端口(DDxn,PORTxn)配置及其说明

AVR端口(DDxn,PORTxn)配置及其说明

时间:11-18 来源:互联网 点击:

void IO_change_A(void)
{//高阻态
DDxn=0;
PORTxn=0;
//上拉电阻使能 ({DDxn, PORTxn} = 0b01) 或输出低电平 ({DDxn, PORTxn} = 0b10)
DDxn=0;
PORTxn=0xff;
/*
DDxn=0xff;
PORTxn=0;
*/
//输出高电平
DDxn=0xff;
PORTxn=0xff;

}
void IO_changge_B()
{//上拉输入
DDxn=0;
PORTxn=0xff;
//高阻态 ({DDxn, PORTxn} = 0b00) 或输出高电平 ({DDxn, PORTxn}=0b11)
DDxn=0;
PORTxn=0;
/*
DDxn=0xff;
PORTxn=0xff;
*/
//输出低电平
DDxn=0xff;
PORTxn=0;

}
/******************************************读取引脚的数据***************************************/
void read_PINX(void)
{
/*

PUD 上拉电
DDxn PORTxn (in SFIOR) I/O 阻 说明

0 0 X Input No 高阻态 (Hi-Z)

0 1 0 Input Yes 被外部电路拉低时将输出电流

0 1 1 Input No 高阻态 (Hi-Z)

1 0 X Output No 输出低电平 ( 吸收电流 )

1 1 X Output No 输出高电平 ( 输出电流 )
不论如何配置 DDxn ,都可以通过读取PINxn 寄存器来获得引脚电平.PINxn 寄存器的各个位与其前面的锁存器组成了一个同步器,这样就可以避免在内部时钟状态发生改变的短时

间范围内由于引脚电平变化而造成的信号不稳定.引入了延迟是必然的。
*/
unsigned char i;
/* 定义上拉电阻和设置高电平输出 */
/* 为端口引脚定义方向 */
PORTB = (1DDRB = (1/* 为了同步插入 nop指令 */
_NOP();
/* 读取端口引脚 */
i = PINB;
}
/**************************未连接引脚的处理****************************************/
/*
如果有引脚未被使用,建议给这些引脚赋予一个确定电平。虽然如上文所述,在深层休眠模式下大多数数字输入被禁用,但还是需要避免因引脚没有确定的电平而造成悬空引脚在

其它数字输入使能模式 ( 复位、工作模式、空闲模式 ) 消耗电流。最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时上拉电阻将被禁用。如

果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。不推荐直接将未用引脚与 VCC 或 GND 连接,因为这样可能会在引脚偶然作为输出时出现冲击电流。

*/

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top