标题: 求助~~~~~~~~我想控制实验板上面的可控硅~ [打印本页]

作者: 华林    时间: 2011-5-29 22:23
标题: 求助~~~~~~~~我想控制实验板上面的可控硅~

 这是我写的程序~ 我用它来控制一个继电器~但是继电器老是接通状态~~只是我将P3_2接通是跳一下~求助怎么处理

#include "at89x51.h"

 unsigned char deng;
sbit SJ=P1^4;
void delay10ms(void)
{
  unsigned char i,j;
  for(i=20;i>0;i--)
  for(j=248;j>0;j--);
    }
void delay2s (void)
{unsigned char i;
for (i=10;i>0;i--)
delay10ms();}
void delay20s (void)
{ unsigned int i;
 for (i=100;i<0;i--);
 delay2s();}
  void main(void)
   { 
   P2_7=1;
  P0=0xff;
 P2_7=0;  //关数码管
   do{ 
if(P3_2==0)
 {delay10ms();
if(P3_2==0)
 deng=1;}
 if(P3_4==0)
 {delay10ms();
 if (P3_4==0)
 deng=2;}
 if (P3_6==0)
 {delay10ms();
 if (P3_6==0)
 deng=3;}
 if(deng==1)
{  
SJ=0;
P0=0xfe;
P2_1=0;
delay20s();
P0=~P0;

delay2s();
  
}
 if(deng==2){
 SJ=0;
 P0=0x00;
 P2_1=1;
 delay2s();
 P0=0x18;
 delay2s();
 P0=0x3c;
delay2s();
 P0=0x7e;
delay2s();
 P0=0xff;
delay2s();
 P0=0x7e;
delay2s();
 P0=0x3c;
delay2s();
 P0=0x18;
delay2s();
 P0=0xff;
delay2s();
 P0=0xff;
 delay2s();
 P0=0x7f;
 delay2s();
 P0=0x3f;
delay2s();
 P0=0x1f;
delay2s();
 P0=0x0f;
delay2s();
 P0=0x07;
delay2s();
 P0=0x03;
delay2s();
 P0=0x01;
delay2s();
 P0=0x00;
delay20s();
 P0=0xff;
 }
 if (deng==3)
 {P0=0x00;}
 }
while(1); 
}    


作者: admin    时间: 2011-5-29 22:30
P2^1 是51hei开发板的可控硅端口,而且要把跳线帽j8插上, P2^1=1的情况下可控硅会导通的  P2^1=0 则会截止
[此贴子已经被作者于2011-5-29 22:31:01编辑过]

作者: 华林    时间: 2011-5-29 22:35

j8 我插上了~ 我按P3_2的时候继电器会跳一下 后有接通了


作者: admin    时间: 2011-5-29 22:36
你要达到什么样的效果?
作者: 华林    时间: 2011-5-29 22:43
 按P3_2的时候断开  按P3_4的时候接通  可控硅我就想这样
作者: admin    时间: 2011-5-29 23:16

那你的程序没必要这么长啊  几行就够了

if(P3_2==0)
P2_1=0;

if(P3_2==0)
P2_1=1;

 

然后循环执行就可以了.


作者: 华林    时间: 2011-5-29 23:39
我是用其它程序改的
作者: 广电老王    时间: 2014-3-18 20:59
admin 发表于 2011-5-29 22:30
P2^1 是51hei开发板的可控硅端口,而且要把跳线帽j8插上, P2^1=1的情况下可控硅会导通的&nbsp; P2^1=0 则 ...

我的开发板可控硅怎么控制不了呢?我控制的是直流,有问题吗?
作者: admin    时间: 2014-3-19 14:35
直流也可以,检查一下跳线电路看看。
作者: xiaojuan    时间: 2014-8-7 23:29
如果是控制直流,那控制可控硅就和控制继电器一样,给一个低电平就行了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1