以STC12C5628系列为例,按datasheet说法:
现可在STC12系列单片机I/O口上加一个下拉电阻(1K/2K/3K),这样上电复位时,虽然单片机内部I/O口是弱上拉/高电平输出,但由于内部上拉能力有限,而外部下拉电阻又较小,无法将其拉高,所以该I/O口上电复位时外部为低电平。如果要将此I/O口驱动为高电平,可将此I/O口设置为强推挽输出,而强推挽输出时,I/O口驱动电流可达20mA,故肯定可以将该口驱动为高电平输出。
以P2.0为例,要将这个口设为上电低电平。请看I/O口设置sfr:
#include "stc12c5628ad.h"
void main(void)
{
P2M0 = 0x00; //0000 0000 注意最低位0为对应P2.0的P2M0设置强推挽
P2M1 = 0x01; //0000 0001 注意最低位1为对应P2.0的P2M1设置强推挽
while(1) { ; }
}