lclbf 发表于 2023-12-27 08:25:48

STC8H8K64U开发箱9.6版IO口初始化配置问题

本帖最后由 lclbf 于 2023-12-27 09:41 编辑

学习开发箱DEMO程序,发现按照官方配置,P6口输出控制的灯,不需要点亮的LED会有微亮,有强光看不出来。具体情况如下:




    P0M1 = 0x30;   P0M0 = 0x30;   //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P1M1 = 0x30;   P1M0 = 0x30;   //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P2M1 = 0x3c;   P2M0 = 0x3c;   //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P3M1 = 0x50;   P3M0 = 0x50;   //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
    P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P5M1 = 0x0c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
    P6M1 = 0x00;   P6M0 = 0x00;   //设置为漏极开路(实验箱加了上拉电阻到3.3V)
    P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口

上面是DEMO程序中的配置,P6口后面注解说设置为开漏,实际是准双向口。所以直接下载程序,看不出不亮的灯有微亮。
我测试,配置为准双向口和推挽输出,不会出现微亮。设置为高阻输入和开口输出,即使不需要点亮的IO口,设置为高电
平输出,结果都会有微亮。没有想明白是为什么。P6口实际也接了上拉电阻。
   单片机是5V减去一个二极管的压降供电,和SYS-VCC电压基本一样。我设置为开漏输出的时候,把不需要点亮的二极管的IO口输出高电平,这样LED该不会出现微亮才对,实际也会出现微亮!

电路简化如下:






lzl1okOK 发表于 2023-12-27 09:15:12

开漏输出不是内部没有上下拉电阻吗?

乘风飞扬 发表于 2023-12-27 09:19:08

这个问题,下面帖子也有讨论过,可将LED控制接口P6.0 - P6.7设置为推挽输出模式
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=263&pid=34748

lclbf 发表于 2023-12-27 09:22:52

lzl1okOK 发表于 2023-12-27 09:15
开漏输出不是内部没有上下拉电阻吗?

外部有上拉电阻

lclbf 发表于 2023-12-27 09:31:48

乘风飞扬 发表于 2023-12-27 09:19
这个问题,下面帖子也有讨论过,可将LED控制接口P6.0 - P6.7设置为推挽输出模式
https://www.stcaimcu.com/ ...

谢谢 你的回复,我去看了那个贴,其实就是sys-vcc通过电阻和发光二极管到3.3V形成了回路。我没有想明白为啥推挽输出和准双向口可以不出现微亮。还有个解决办法就是把SYS-VCC换成3.3V,也可以解决。

lclbf 发表于 2023-12-27 09:42:25

乘风飞扬 发表于 2023-12-27 09:19
这个问题,下面帖子也有讨论过,可将LED控制接口P6.0 - P6.7设置为推挽输出模式
https://www.stcaimcu.com/ ...

单片机是5V减去一个二极管的压降供电,和SYS-VCC电压基本一样。我设置为开漏输出的时候,把不需要点亮的二极管的IO口输出高电平,这样LED该不会出现微亮才对,实际也会出现微亮!

lzl1okOK 发表于 2023-12-27 11:44:03

lzl1okOK 发表于 2023-12-27 09:15
开漏输出不是内部没有上下拉电阻吗?

发光二极管发亮肯定是有点流的出现,我觉得SYS_VCC和3.3V肯定有压差,如果设置P6.2为推挽模式的话内部的上拉电阻就会对LED下端放电使LED反向截止就不会发光了
页: [1]
查看完整版本: STC8H8K64U开发箱9.6版IO口初始化配置问题