51单片机控制可控硅调温程序
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit S1=P3^4; //加
sbit S2=P3^5; //减
sbit SCR=P3^3; //可控硅触发信号
sbit bell=P3^0; //蜂鸣器void Delay10ms() //10ms软件延时
{uchar i, j;i = 117;j = 184;do{while (--j);} while (--i);
}void Delay600us(uint z) //600us软件延时
{
uchar x;
for(x=0;x<z;x++)
{
uchar i, j;i = 7;j = 254;do{while (--j);} while (--i);
}
}void chufa()///30us软件延时 提供可控硅触发信号
{
uchar k;
SCR=0;
for(k=0;k<30;k++){_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();}
SCR=1;
}uint z=12;
void Button () //按键
{if(S1==0) //加{Delay10ms();if(S1==0){bell=0; z--;if(z==0){z=12;}}while(!S1);}if(S2==0) //减{ Delay10ms();if(S2==0){bell=0; z++;if(z>=12){z=12;}}while(!S2);}
}void main()
{IT0=1; //下降沿触发
EX0=1; //允许外部中断0
EA=1; //打开总中断
while(1){ bell=1;Button ();
}}
void Int0(void) interrupt 0
{
Delay600us(z); //延时
chufa(); //触发可控硅
}
完整资料下载原理图和代码: 可控硅.zip: https://url83.ctfile.com/f/45573183-1344480743-e70a38?p=7526 (访问密码: 7526)