单片机的I/O口作为输出口,可以驱动哪些输出设备?
看你的单片机是什么型号的了。
不同型号的单片机驱动能力不同。一般来讲,IO口的驱动能力是指驱动电流的大小。如常用的51系列的单片机驱动电流最大为20MA。可以驱动带电阻的二极管,蜂鸣器等。单片机的io口作为输入口是,需要选输出全零?
如今的比较好的单片机的IO口是可以定义的,这和最原来的51有区别。当作为输入口时候是单片机接收IC的数据信息,或者是灌电流,这时候要考虑电流的大小是否在单片机的承受范围内;当作为输出口时候就是单片机向外发出数据,或者再产生拉电流,单片机的拉电流一般要比灌电流小,基本上就能点亮2,3个LED,功率很有限,所以一般时候必须用驱动芯片来驱动单片机的外围器件!!!
怎样使单片机上电时IO口为低电平呀?
会恢复到1。原因是,准双向口内部上拉是一个大电阻,下拉是个晶体管。输出1,就代表此时下拉晶体管截止 ,内部上拉电阻无电流无压降,引脚为VCC。外部拉低时,拉电流会从IO口流出。上拉电阻与接地导线分压后的电压,就是引脚电压,显然这个电压非常小,读引脚是逻辑0。端口重新断开后,恢复到第二段状态。引脚自行恢复为高电平。这就是51著名的准双向口。51IO作为通用输入输出使用全部是准双向口,这点要注意。
由于STC单片机上电后有一段时间的延迟,好像最长能到65535个指令周期,才进入用户程序,所以从软件上想办法不能阻止上电误动作的产生,最简单的方法是在需要处理的IO口加一个下拉电阻,STC单片机上电后默认IO为准双向口,查其手册可知拉电流为150-250uA之间,系统电压为5V的情况下,计算可知相当于20K以上的上拉电阻,因此只要远小于这个阻值,例如下拉1K,即可实现上电后IO输出为低电平,这个阻值你可以实验一下,在可靠的前提下,能加到多大就用多大,以优化功耗。
当然,之后再想使用这个管脚作为输出的话,就应该使用推挽模式了,否则不能输出高电平,使用推挽模式需要考虑限流电阻的问题。另外这样处理完可能单片机功耗会上升,1K下拉的话输出高电平会额外消耗5mA电流,IO多的话,注意不要超过限制值。