垂柳工作室 发表于 2024-12-31 10:50:40

8H2K12U芯片引脚输出电平的疑问

项目的铅酸电池可调电压和电流脉冲修复用的。设计是P3.2引脚连接行程开关,合上行程开关,P3.2引脚接地,充电器根据STC8H2K12U在P5.4引脚输出高频方波驱动场效应管脉冲充电,打开行程开关,P5.4引脚始终输出高电平。

简单敲几行测试程序,发现芯片引脚会自动输出波形:
1、P3.1、P3.0设置准双向口,程序代码没有任何操作,示波器测量P3.1、P3.0有输出方波;
2、P3.2、P3.3设置推挽输出,程序代码设置一个10毫秒定时器,检测P32引脚电平,通过P3.1、P3.0驱动LED灯,可以看到LED交替熄灭点亮,示波器测量P3.3有类似锯齿波输出;
请问各位大咖这是啥原因啊?请详细讲解 谢谢!

测试电路只保留芯片使用说明书最基本元件


测试程序所有代码

#include "STC8H2K12U.h"
#define MAIN_Fosc                24000000L      //定义主时钟
bit B_10ms =0;
void Timer0_Init(void)      //Timer0初始化函数
{
      TMOD &= ~0x03      ;                              /* 16位自动重装      */ // T0工作于16位自动重装
      AUXR &= ~(1<<7);                /* Timer0 clodk = fo/12      12分频,      default      */
      TH0 = (65536UL-MAIN_Fosc/12 / 100) / 256; //10ms
      TL0 = (65536UL-MAIN_Fosc/12 / 100) % 256;
      TR0 = 1; // 打开定时器0
      TF0 = 0;                              //清除TF0标志
      ET0 = 1;// 允许ET0中断
}
void Timer0_Isr(void) interrupt 1
{
                B_10ms=1;
}
void main(void)
{
      P3M0 |= (0x03);                //P3.0,P3.1准双向口
      P3M1 &= ~(0x03);
      P3M1 |= (0x0C);                //P3.2,P3.3高阻
      P3M0 &= ~(0x0C);
      Timer0_Init();      // Timer0初始化函数
      EA =1;
      while (1)
      {
                if(B_10ms)                // 10ms时隙
                {
                        B_10ms = 0;
                        if (P32 ==1)
                              {
                                                P30 = 0;
                                                P31 = 1;
                              }
                        else
                              {
                                        P30 = 1;
                                        P31 = 0;
                              }
                }
      }
}


垂柳工作室 发表于 2024-12-31 11:14:37

手触摸P32引脚也能触发程序改变LED灯,这是啥问题怎么解决,请大咖赐教谢谢

Tank2535 发表于 2024-12-31 11:41:41

P3不要设置成高阻

梁工 发表于 2024-12-31 11:48:56

你P3.2、P3.3设置为高阻,外接什么信号?外部必须提供高低电平信号。

神农鼎 发表于 2024-12-31 13:34:49






垂柳工作室 发表于 2024-12-31 14:31:06

你P3.2、P3.3设置为高阻,外接什么信号?外部必须提供高低电平信号。P32就接行程开关,P33用着电压检测。没有提供高低电平信号。

垂柳工作室 发表于 2024-12-31 14:34:03

神***5#
答非所问!

垂柳工作室 发表于 2024-12-31 14:39:58

Tank***

STC8H2K12U SOP8,除了P54引脚外只剩余P30-P33四个端口,P54我用于输出PWM信号,P33测电压,P32当开关用,不设成高阻怎么用ADC?

垂柳工作室 发表于 2024-12-31 16:56:47

P32应该要加一个上拉电阻。模拟电路没学好。请论坛大佬或者STC大咖们出几期结合芯片应用电路设计要点辅导课。谢谢
页: [1]
查看完整版本: 8H2K12U芯片引脚输出电平的疑问