单片机的哪一组IO没有上拉电阻?
1、P0的八个口没有,P1P2P3的各八个口都有;
2、标准51单片机P0口为开漏输出,没有上拉电阻,其它口都有,但上拉电阻很大,所以IO口高电平驱动能力很弱。STC系列51单片机改进了IO口结构,每个口都可以配置成推挽输出,准双向口、高阻和仅为输入四种模式。
stc8单片机i/o口有几种工作模式?
stc8单片机i/o口有下列四种工作模式:
①标准双向输入/输出
②推挽输出
具有很强的推动能力
③高阻态输入
I/O接口写入1或0不改变接口的电平,I/O接口只能用于输入,引脚输入高电平,对应的寄存器为1,引脚输入低电平或者悬空,对应寄存器为0.
④开漏状态
与标准双向输入/输出类似,但单片机内部没有给I/O接口接上拉电阻,因此I/O接口的高电平推动能力极弱,需要用外部上拉电阻使用。
怎样使单片机上电时IO口为低电平呀?
会恢复到1。原因是,准双向口内部上拉是一个大电阻,下拉是个晶体管。输出1,就代表此时下拉晶体管截止 ,内部上拉电阻无电流无压降,引脚为VCC。外部拉低时,拉电流会从IO口流出。上拉电阻与接地导线分压后的电压,就是引脚电压,显然这个电压非常小,读引脚是逻辑0。端口重新断开后,恢复到第二段状态。引脚自行恢复为高电平。这就是51著名的准双向口。51IO作为通用输入输出使用全部是准双向口,这点要注意。
由于STC单片机上电后有一段时间的延迟,好像最长能到65535个指令周期,才进入用户程序,所以从软件上想办法不能阻止上电误动作的产生,最简单的方法是在需要处理的IO口加一个下拉电阻,STC单片机上电后默认IO为准双向口,查其手册可知拉电流为150-250uA之间,系统电压为5V的情况下,计算可知相当于20K以上的上拉电阻,因此只要远小于这个阻值,例如下拉1K,即可实现上电后IO输出为低电平,这个阻值你可以实验一下,在可靠的前提下,能加到多大就用多大,以优化功耗。
当然,之后再想使用这个管脚作为输出的话,就应该使用推挽模式了,否则不能输出高电平,使用推挽模式需要考虑限流电阻的问题。另外这样处理完可能单片机功耗会上升,1K下拉的话输出高电平会额外消耗5mA电流,IO多的话,注意不要超过限制值。