切换到宽版
  • 515阅读
  • 5回复

[C51]帮我修改一下STC15F104E的代码 ,谢谢 [复制链接]

上一主题 下一主题
离线wencs
 
发帖
1
M币
-493
专家
0
粉丝
2
求大神帮忙加个stc15f104E的代码
问题:以下代码在通电时P3.3 会有短暂的信号输出,继电器会滴答一下,用来控制电器的,这样会对电器造成冲击容易损害电器
要求:把通电时P3.3 短暂的输出信号去掉


#include<reg52.h>        
#include <intrins.H>
#define uchar unsigned char
#define uint unsigned int  

sbit  OUT1=P3^3;
sbit  IN1=P3^4;
uchar keycnt=0;
uint a=1;


uint tcnt;
uint b;

void KEY()
{

  if(IN1==1)
{
      keycnt=0;
  OUT1=0;  
   b=0;
}
  else if(IN1==0)
  {
   if(b>=600)    
      OUT1=1;

  }
}

void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
  tcnt=0;
  b++;

  if(b>=2500) b=0;


}
}

void main()
{
OUT1=1;

TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;

while(1)
{
  KEY();

}
}  

在线flishmen

发帖
48
M币
576
专家
0
粉丝
1
只看该作者 1楼 发表于: 06-12
单片机默认上电会输出高电平,软件上应该无法解决。改一下硬件吧,改成低电平继电器吸合,应该有很多方式的。
离线bosschen0827
发帖
15
M币
-483
专家
0
粉丝
0
只看该作者 2楼 发表于: 06-12
楼主,程序不能解决的,外围电路改改吧!
离线彭鹏
发帖
248
M币
17
专家
3
粉丝
8
只看该作者 3楼 发表于: 06-12
改外围电路吧,一般是把继电器的驱动管从NPN换成PNP的,然后将驱动电平从高电平改为低电平。单片机硬件设计,复位时IO高电平上电,与程序无关。
离线wpppmlah

发帖
161
M币
174
专家
6
粉丝
17
只看该作者 4楼 发表于: 06-13


STC15F104E的P3.3引脚上电后初始状态为低电平,代码中对此引脚进行了置位OUT1=1;
没有原理图,判断楼主使用了PNP的三极管导致了此问题的出现,所以如果使用此引脚的话,建议使用NPN型的三极管,就不会出现开机动作的问题!

使用器件前最好详细读一下器件的手册!!

建议大家提问题时附带提供原理图,否则只是通过代码来分析,就不能全面,只能猜想了。。

本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线jmkl128

发帖
687
M币
1071
专家
5
粉丝
36
只看该作者 5楼 发表于: 06-13
楼上正解。字数少蜀山
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个