avr 单片机引脚输出时为什么不用上拉电阻,??

作者&投稿:冷龙 (若有异议请与网页底部的电邮联系)
avr单片机引脚输出时为什么不用上拉电阻~

因为AVR单片机的IO口做输出时是 推挽输出,无需上拉
输入时,可以配置为带内部上拉或不带内部上拉 输入

51单片机,PO口是开漏输出,如果不加上拉电阻,只能输出低电平,换句话说,单片机内部输出逻辑0时,端口对地短路,输出低电平,内部输出逻辑1时,端口悬空,即高阻态,所以必须加上拉电阻,才能输出高电平。
AVR单片机,端口全部为推挽输出,端口设置为输出时,不需要加上拉电阻。端口设置为输入时,如果外设芯片不具备输出高电平的能力(即外设芯片端口不是推挽输出,而是开漏输出,且没有上拉电阻),可以使能AVR单片机内部上拉电阻
DDRx&=(~((1<<n1)|(1<<n2)));PORTx|=(1<<x)|(1<<n2);
或外接上拉电阻。

其实单片机内部一般都加上了一个上拉电阻,并且avr的io口的驱动能力较强,不需要外部的上拉电阻也能正常工作,所以不加也可以!可以具体看avr的芯片资料!都有内部结构图的!

AVR单片机的引脚在芯片内部是推挽式结构,具有更大的电流输出能力,不需要上拉电阻。


尧都区17331463775: avr 单片机引脚输出时为什么不用上拉电阻,?? -
保雁蛇胆: 其实单片机内部一般都加上了一个上拉电阻,并且avr的io口的驱动能力较强,不需要外部的上拉电阻也能正常工作,所以不加也可以!可以具体看avr的芯片资料!都有内部结构图的!

尧都区17331463775: avr 单片机引脚输出时为什么不用上拉电阻,??
保雁蛇胆: 如果内部和外部都没有上拉电阻,那内部就是推挽输出的电路结构.

尧都区17331463775: 为什么AVR单片机需要上拉电阻 -
保雁蛇胆: 51单片机,PO口是开漏输出,如果不加上拉电阻,只能输出低电平,换句话说,单片机内部输出逻辑0时,端口对地短路,输出低电平,内部输出逻辑1时,端口悬空,即高阻态,所以必须加上拉电阻,才能输出高电平. AVR单片机,端口全部为推挽输出,端口设置为输出时,不需要加上拉电阻.端口设置为输入时,如果外设芯片不具备输出高电平的能力(即外设芯片端口不是推挽输出,而是开漏输出,且没有上拉电阻),可以使能AVR单片机内部上拉电阻 DDRx&=(~((1<<n1)|(1<<n2)));PORTx|=(1<<x)|(1<<n2); 或外接上拉电阻.

尧都区17331463775: avr需要上拉电阻吗 -
保雁蛇胆: AVR在设计电路时一般不需要加上拉电阻(内部有),51上面加上拉电阻是因为P0口不自带内部上拉电阻,不法在不加上拉的情况下完成写'1'操作.

尧都区17331463775: AVR的Mega48单片机,不用的引脚应该怎么处理??? -
保雁蛇胆: 硬件上可以悬空,编程时将其设置为带上拉电阻的输入,这样当外部出现短路也不会有大的电流冲击,也不会因为高阻输入态受到干扰端口电平漂浮不定

尧都区17331463775: (新手发问)如何让单片机的管脚输出低电平?? -
保雁蛇胆: 1.对于传统的51单片机,在复位之后所有端口都输出1,即高电平,avr单片机则是portx=0x00,ddrx=0x00的高阻态,pic单片机也是这样. 2.如果你要让led受控,那应该反着接,即在端口输出0的时候才点亮led,另外对于常用的51单片机,高电平...

尧都区17331463775: avr设置为输入状态,给一个高电平,单片机为什么不读取? -
保雁蛇胆: avr的输入与输出是两个寄存器,例如端口B,对应输入寄存器是PINB,输入数据储存在这个中,要使端口B是输入状态,必须设置DDRB=0X00,需要上电阻:PORTB=0XFF,不需要PORTB=0X00,只需要对每一位设置输入状态:DDRB&=~(1

尧都区17331463775: AVR中如何读引脚? -
保雁蛇胆: 首先需要将单片机引脚设置为输入,既然你有外部上拉,所以不用使能内部上拉.但是AVR单片机如果输入不使能上拉电阻设置为的端口就成了高阻态了,所以还是要使能上拉电阻的,而且即使使能上拉电阻也没问题的.然后直接读取引脚的值就行了.代码如下: //------------------------------------------------- unsigned char temp; //定义保存的变量 DDRA=0x00; //将端口A设置为输入 PORTA=0xff; //使能上拉电阻 temp=PINA; //读取端口A的状态然后在程序例可以对读取的temp逐位处理你的开关量就行了

尧都区17331463775: avr单片机引脚设置的问题,大神近 -
保雁蛇胆: 开关型霍尔元件是开漏(开集)输出的,除非你的单片机引脚损坏或设置有问题,否则不会出现这种情况,你检查一下自己的单片机和程序吧.另外,如果设置为输入,不必将引脚置位为0,置位位1,还可以有上拉,甚至可以省掉外部上拉电阻.应该注意的是,虽然你初始状态是将PD6设置为输入,但你程序有无可能在执行过程中意外地改了PD6这个引脚的输入输出设置,而你自己没有察觉而造成这种现象.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网