51单片机控制可控硅调温程序

cpp 复制代码
#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)

相关推荐
恒锐丰-罗生24 分钟前
宽压大电流同步降压优选|CN3906 DC-DC 电源芯片,车载 / 工控 / IoT 全能供电方案
嵌入式硬件·硬件工程
happygrilclh3 小时前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计5 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech6 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ6 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡7 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城9 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡9 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生10 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程
离凌寒10 小时前
一、对stm32mp157配置freertos后,任务挂掉无法启动问题总结
stm32·单片机·嵌入式硬件