STC8G1K08A-SOP8,工作在24MHz, 需要 :
1,P3.0低电平点亮LED灯的演示程序
2,P3.0/P3.1/P3.2/P3.3/P3.4/P5.4/P5.5
低电平点亮LED灯的流水灯演示程序
<p>好的,根据从 STC8G 数据手册和 AI8 手册中获得的信息,特别是关于引脚配置和 SOP8 封装特性的说明,我为你编写了以下两个演示程序。</p>
<h3>重要说明</h3>
<ol>
<li>
<p><strong>关于封装与引脚 P3.4</strong>:<br />
根据手册, <strong><code>STC8G1K08A-SOP</code></strong> (SOP8) 封装只有 6 个可用 I/O 口,分别为 <strong>P3.0, P3.1, P3.2, P3.3, P5.4, P5.5</strong>。<br />
<strong>该封装没有 P3.4 引脚。</strong><br />
你要求的 P3.4 仅在 <strong>TSSOP20</strong> 或 <strong>SOP16</strong> 封装(如 <code>STC8G1K08A-38I-TSSOP20</code>)上存在。因此,以下流水灯程序会基于 SOP8 封装的 6 个引脚实现。如果你需要使用 P3.4,请改用 TSSOP20 封装的芯片。</p>
</li>
<li>
<p><strong>关于 I/O 口初始化(关键!)</strong>:<br />
根据手册第4.5.5节:</p>
<ul>
<li><strong>P3.0 和 P3.1</strong>:上电后默认是<strong>准双向口</strong>,可以直接输出。</li>
<li><strong>其他 I/O 口 (P3.2, P3.3, P5.4, P5.5)</strong>:上电后均为<strong>高阻输入</strong>状态,<strong>必须在程序初始化时先设置模式,否则无法正常输出高低电平!</strong><br />
手册建议:驱动 LED 时,推荐使用<strong>推挽输出</strong>模式,并采用<strong>高电平点亮</strong>,这样可以获得更好的驱动能力和稳定性,避免地线干扰。</li>
</ul>
</li>
<li>
<p><strong>关于点亮方式</strong>:<br />
你要求“低电平点亮”。在推挽模式下,无论高电平还是低电平,驱动能力都很强。以下代码在推挽模式下实现你要求的低电平点亮逻辑。</p>
</li>
</ol>
<hr />
<h3>程序1:P3.0 单独低电平点亮 LED</h3>
<p>这个程序专门用于测试 P3.0 引脚是否能正常驱动 LED。</p>
<pre><code class="language-c">#include "STC8G.h"
#include "intrins.h"
#define MAIN_Fosc 24000000L // 定义主时钟为 24MHz
// 如果使用的是 Ai8G1K08A 系列,请包含 Ai8G.h 头文件
// #include "Ai8G.h"
sbit LED_P30 = P3^0;
void delay_ms(unsigned int ms)
{
unsigned int i;
do {
i = MAIN_Fosc / 10000;
while(--i);
} while(--ms);
}
void main(void)
{
// --- 初始化 I/O 口模式 ---
// 设置 P3.0 为推挽输出模式 (P3M0=1, P3M1=0)
// 推挽模式下,低电平驱动能力很强,适合点亮 LED
P3M0 |= 0x01; // 设置 P3.0 对应位为 1
P3M1 &= ~0x01;// 设置 P3.0 对应位为 0
// 也可以设置为准双向口(默认模式),但驱动电流较小
// P3M0 &= ~0x01;
// P3M1 &= ~0x01;
// 关闭所有无关外设以节省功耗(可选)
P_SW2 = 0x80; // 使能访问 XFR
// 根据具体型号关闭不需要的外设时钟...
delay_ms(100);// 等待系统稳定
// --- 主循环 ---
while(1)
{
// 低电平点亮 LED(假设 LED 正极接 VCC,负极通过限流电阻接 P3.0)
LED_P30 = 0;
// 如果想闪烁,可以取消下面的注释
// delay_ms(500);
// LED_P30 = 1;
// delay_ms(500);
}
}
</code></pre>
<hr />
<h3>程序2:6 路流水灯(SOP8 封装可用引脚)</h3>
<p>这个程序实现了 P3.0, P3.1, P3.2, P3.3, P5.4, P5.5 的流水灯效果。<strong>请根据你的实际硬件封装修改引脚数组。</strong></p>
<pre><code class="language-c">#include "STC8G.h"
#include "intrins.h"
#define MAIN_Fosc 24000000L
// 定义需要操作的引脚
// 注意:SOP8 封装下无 P3.4,以下是 SOP8 的 6 个引脚
// 如果你使用的是 TSSOP20 封装,可以取消 P3.4 的注释,并启用对应的引脚
sbit LED0 = P3^0;
sbit LED1 = P3^1;
sbit LED2 = P3^2;
sbit LED3 = P3^3;
// sbit LED4 = P3^4; // SOP8 封装无此引脚!请改用 TSSOP20
sbit LED5 = P5^4;
sbit LED6 = P5^5;
// 定义引脚组:数组方式便于流水灯操作
// 按照流水灯顺序排列:P3.0, P3.1, P3.2, P3.3, P5.4, P5.5
#define LED_PORT_COUNT6
// 毫秒级延时函数 (24MHz 下粗略延时)
void delay_ms(unsigned int ms)
{
unsigned int i;
do {
i = MAIN_Fosc / 10000;
while(--i);
} while(--ms);
}
void main(void)
{
unsigned char i;
// --- 初始化所有用到的 I/O 口为推挽输出 ---
// 推挽输出模式下,高低电平都有很强的驱动能力
// P3.0 - P3.3: 设置为推挽输出
P3M0 |= 0x0F; // 位0-3 置1
P3M1 &= ~0x0F;// 位0-3 置0
// P5.4, P5.5: 设置为推挽输出
P5M0 |= 0x30; // 位4,5 置1
P5M1 &= ~0x30;// 位4,5 置0
// 如果需要使用 P3.4 (仅 TSSOP20 封装),取消下面的注释
// P3M0 |= 0x10;
// P3M1 &= ~0x10;
// --- 初始化所有 LED 为熄灭状态(高电平熄灭,低电平点亮)---
// 先全部置高(熄灭)
P3 |= 0x0F; // P3.0 - P3.3 置1
// P3 |= 0x10;// P3.4 (仅 TSSOP20)
P5 |= 0x30; // P5.4, P5.5 置1
delay_ms(200);// 等待系统稳定
// --- 主循环:流水灯 ---
while(1)
{
// 循环点亮每一个 LED(低电平点亮)
for(i = 0; i < LED_PORT_COUNT; i++)
{
// 根据 i 的值点亮对应的 LED
switch(i)
{
case 0: LED0 = 0; break;
case 1: LED1 = 0; break;
case 2: LED2 = 0; break;
case 3: LED3 = 0; break;
// case 4: LED4 = 0; break;// P3.4 (仅 TSSOP20)
case 4: LED5 = 0; break; // P5.4
case 5: LED6 = 0; break; // P5.5
default: break;
}
delay_ms(150);// 每个 LED 亮 150ms
// 熄灭当前 LED(置高)
switch(i)
{
case 0: LED0 = 1; break;
case 1: LED1 = 1; break;
case 2: LED2 = 1; break;
case 3: LED3 = 1; break;
// case 4: LED4 = 1; break;// P3.4 (仅 TSSOP20)
case 4: LED5 = 1; break; // P5.4
case 5: LED6 = 1; break; // P5.5
default: break;
}
}
}
}
</code></pre>
<hr />
<h3>硬件连接与注意事项</h3>
<ol>
<li>
<p><strong>LED 连接方式</strong>:</p>
<ul>
<li>LED 正极 → VCC (3.3V 或 5V)</li>
<li>LED 负极 → 限流电阻 (约 330Ω ~ 1kΩ) → 单片机引脚</li>
<li>这样当引脚输出低电平时,电流从 VCC 流过 LED 和电阻到引脚,LED 点亮。</li>
</ul>
</li>
<li>
<p><strong>关于 P3.0 和 P3.1</strong>:</p>
<ul>
<li>这两个引脚同时也是串口下载引脚 (RxD/TxD)。</li>
<li>如果在下载程序时,这两个引脚上的 LED 电路可能会影响下载,请在下载前拔掉下载线,或者确保 LED 电路不会将引脚电平拉死。</li>
<li>下载完成后,再插上 LED 电路观察效果。</li>
</ul>
</li>
<li>
<p><strong>关于封装</strong>:</p>
<ul>
<li>如果你确实需要 <strong>7 个 I/O 口</strong> (P3.0 ~ P3.4, P5.4, P5.5),请务必更换为 <strong>TSSOP20</strong> 或 <strong>SOP16</strong> 封装的 <code>STC8G1K08A-38I</code> 系列。</li>
<li>SOP8 封装最多只能有 6 个 I/O 口。</li>
</ul>
</li>
<li>
<p><strong>如果 LED 不亮</strong>:</p>
<ul>
<li>检查 I/O 口是否已初始化为 <strong>推挽输出</strong> (PxM0/PxM1 寄存器设置正确)。</li>
<li>检查 LED 的极性和限流电阻是否接对。</li>
<li>如果是 SOP8 封装,请确认你没有使用 P3.4。</li>
</ul>
</li>
</ol>
<hr />
<p><a href="https://www.stcaimcu.com/plugin.php?id=twpx_xunsearch&mod=forum&q=STC8G1K08A-SOP%20%E5%B7%A5%E4%BD%9C%E5%9C%A824MHz%20%E9%9C%80%E8%A6%81%20%EF%BC%9A%0A1&f=_all&m=yes&syn=yes&s=relevance&fid=0">🔍 搜索 "STC8G1K08A-SOP 工作在24MHz 需要 :<br />
1"</a></p>
<p><strong>📌 相关论坛讨论</strong></p>
<ol>
<li><a href="https://www.stcaimcu.com/forum.php?mod=viewthread&tid=24638&highlight=STC8G1K08A-SOP%EF%BC%8C%E5%B7%A5%E4%BD%9C%E5%9C%A824MHz%2C%20%E9%9C%80%E8%A6%81%20%EF%BC%9A%0A1%EF%BC%8CP3.0%E4%BD%8E%E7%94%B5%E5%B9%B3%E7%82%B9%E4%BA%AELED%E7%81%AF%E7%9A%84%E6%BC%94%E7%A4%BA%E7%A8%8B%E5%BA%8F%0A2%EF%BC%8CP3.0%2FP3.1%2FP3.2%2FP3.3%2FP3.4%2FP5.4%2FP5.5%0A%E4%BD%8E%E7%94%B5%E5%B9%B3%E7%82%B9%E4%BA%AELED%E7%81%AF%E7%9A%84%E6%B5%81%E6%B0%B4%E7%81%AF%E6%BC%94%E7%A4%BA%E7%A8%8B%E5%BA%8F&page=2&extra=#pid222002">求助 STC8G1K08A的P3.0引脚如何点亮led</a></li>
<li><a href="https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1083&highlight=STC8G1K08A-SOP%EF%BC%8C%E5%B7%A5%E4%BD%9C%E5%9C%A824MHz%2C%20%E9%9C%80%E8%A6%81%20%EF%BC%9A%0A1%EF%BC%8CP3.0%E4%BD%8E%E7%94%B5%E5%B9%B3%E7%82%B9%E4%BA%AELED%E7%81%AF%E7%9A%84%E6%BC%94%E7%A4%BA%E7%A8%8B%E5%BA%8F%0A2%EF%BC%8CP3.0%2FP3.1%2FP3.2%2FP3.3%2FP3.4%2FP5.4%2FP5.5%0A%E4%BD%8E%E7%94%B5%E5%B9%B3%E7%82%B9%E4%BA%AELED%E7%81%AF%E7%9A%84%E6%B5%81%E6%B0%B4%E7%81%AF%E6%BC%94%E7%A4%BA%E7%A8%8B%E5%BA%8F&page=3&extra=#pid10473">冲哥视频学习笔记</a></li>
<li><a href="https://www.stcaimcu.com/forum.php?mod=viewthread&tid=19727&highlight=STC8G1K08A-SOP%EF%BC%8C%E5%B7%A5%E4%BD%9C%E5%9C%A824MHz%2C%20%E9%9C%80%E8%A6%81%20%EF%BC%9A%0A1%EF%BC%8CP3.0%E4%BD%8E%E7%94%B5%E5%B9%B3%E7%82%B9%E4%BA%AELED%E7%81%AF%E7%9A%84%E6%BC%94%E7%A4%BA%E7%A8%8B%E5%BA%8F%0A2%EF%BC%8CP3.0%2FP3.1%2FP3.2%2FP3.3%2FP3.4%2FP5.4%2FP5.5%0A%E4%BD%8E%E7%94%B5%E5%B9%B3%E7%82%B9%E4%BA%AELED%E7%81%AF%E7%9A%84%E6%B5%81%E6%B0%B4%E7%81%AF%E6%BC%94%E7%A4%BA%E7%A8%8B%E5%BA%8F&page=1&extra=#pid182615">学习感悟分享</a></li>
</ol>
页:
1
[2]