求助STC8G1K08A的P30引脚如何点亮led
<p>求助各位大佬,在使用STC8G1K08A/Ai8G1K08A尝试实现六路流水灯的时候,发现P31-P55这五个引脚对应的LED都可以正常亮起,但是P30的LED无论如何都不亮,然后写了一个最基础的LED持续点亮的代码,发现还是不亮。考虑到代码可以正常下载以及LED单独连接电池的时候是亮的,P30和led应该都没有问题,不知道还有什么其他可能的问题原因。<br />下方是我写的基础LED点亮代码,P31引脚对应LED常亮,P30不亮。</p>
<p>补充:后续补充了配置P30和P31为准双向的代码,但是还是不行</p>
<pre><code class="language-C">#include "STC8G.h"
#include "Type_def.h"
sbit LED0 = P3^0;
sbit LED1 = P3^1;
sbit LED2 = P3^2;
sbit LED3 = P3^3;
sbit LED4 = P5^4;
sbit LED5 = P5^5;
void delay(u16 Count)
{
while(Count--)
{
_nop_();
}
}
void main(void)
{
P3M0 = 0x00; P3M1 = 0x00; // 补充的
delay(100);
LED0 = 0;
LED1 = 0;
while(1)
{
}
}
</code></pre>
io口没有初始化一下,设置输入输出模式啊。P3M0和P3M1寄存器要设置。 需要设置端口模式,都设置为准双向口就可以了 soma 发表于 2026-7-1 09:35
io口没有初始化一下,设置输入输出模式啊。P3M0和P3M1寄存器要设置。
这两个引脚的输出模式不是默认双向吗,所以我就没配置;另外刚才试了一下,在最开始加了一行“P3M0 = 0x00; P3M1 = 0x00;”显式配置了一下,还是不行... jwd 发表于 2026-7-1 09:50
需要设置端口模式,都设置为准双向口就可以了
P30和P31我看都是默认的准双向所以没有显示配置;另外P31确实点亮了,只有P30有问题, P30检查一下是不是接串口或USB了,可能被外部设备驱动了。 cmwdslzz 发表于 2026-7-1 09:55
这两个引脚的输出模式不是默认双向吗,所以我就没配置;另外刚才试了一下,在最开始加了一行“P3M0 = 0x0 ...
端口需要选择配置
STC89、90参考程序没有端口配置
后来的8G、8H、8A系列...需配置端口 1、将所有IO初始化为推挽输出。
2、将串口下载线拔走。 梁工 发表于 2026-7-1 10:22
1、将所有IO初始化为推挽输出。
2、将串口下载线拔走。
请问大佬准双向模式不可以吗,我之前看说如果把用于下载的P30和P31设置为推挽模式可能会导致下载失败单片机变砖所以没敢尝试。另外现在用准双向至少同为下载引脚的P31可以点亮 cmwdslzz 发表于 2026-7-1 10:27
请问大佬准双向模式不可以吗,我之前看说如果把用于下载的P30和P31设置为推挽模式可能会导致下载失败单片 ...
准双向模式只能输出低电平点亮LED,高电平电流太小点不亮,我不知道你是高电平还是低电平点亮LED,所以推荐推完输出。
如果你的P3.0接着下载线,USB转串口的输出脚高电平往往电流较大,P3.0拉低时啦不低,还有可能烧IO。
页:
[1]
2