dzbj 发表于 2019-11-24 11:23 你的理解是错误的。准双向口内部上拉电阻大于100K,外接下拉电阻后IO口实际电压不到0.5V,不足以使晶体管误动作。待初始化完成后该IO口已是低电平推挽模式,运行中有足够的高电平驱动能力,此时下拉电阻对该IO口已无影响。STC手册给的这个图没有问题。 |
非常感谢,经过仿真,用PNP直接驱动光耦这种方法最简单了,引脚置低电平导通后电压直接加到光耦上,高电平时三极管截止,没有电流通过。 |
哦 对了 还有法子是 电源先到光耦正向输入端 出来再到IO口 上电是高电平 等于IO口是1 光耦就不通 必须程序操作IO口成0 光耦才通 这样可以更简单的避免上电时光耦误动 如果必须用驱动管的话 用PNP或者P沟道MOSFET 这管子低有效 和上面说的道理一样 |
前辈 探讨一下这个电路 STC手册给的这个图 下拉电阻是否应该接到IO口 然后才是限流 如果按它这么接等于片子的输出电压分压后才到器件 假设片子输出5v 按1:1k配置两个电阻 输出电压应该是2.5v 这样好么 |
1、上电后最先控制IO口(先执行IO指令,在做其它动作)。以缩短失控时间。 2、在光藕的第1脚,对地加一个电容,由于电容上的电压不能跃变,而一开始电容上是无电的(未供电),这样就达成目的了。 负作用:控制LED灯时,会有一点延时。 |
![]() |
如果是比较新的单片机 比如STC或者新塘之类的 可以把端口置成推挽输出 然后在端口先接一个1k~3k的下拉电阻 再串联一个1k~10k的限流电阻 再到要驱动的光耦 这样在上电时是准双向弱上拉 有下拉电阻拉不起来就是低 等你需要驱动光耦的时候 端口置位 就是高电位了 |
换PNP管,低电平触发 |
Q1 换成PNP即可,低电平触发 |
方法1.电路和程序改用低电平触发。方法2.用两个io点,一个输出高电平,一个输出低电平来控制光耦 |
文中有误,应该是51保持高电平期间, |