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)

相关推荐
LCG元5 小时前
STM32实战:基于STM32F103的Bootloader设计与IAP在线升级
javascript·stm32·嵌入式硬件
不怕犯错,就怕不做6 小时前
Linux-Sensor驱动移植与调试(转载)
linux·驱动开发·嵌入式硬件
LCMICRO-133108477466 小时前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
STC_USB_CAN_80517 小时前
菜单学习,科学计算器使用【TFT240*320彩屏+实际键盘】@Ai8051U,ST7789
单片机·学习·51单片机
FreakStudio7 小时前
无硬件学LVGL—定时器篇:基于Web模拟器+MicroPython速通GUI开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
异方辰电子9 小时前
8.原理图为什么看不到具体的电路(比如STM32的晶振等)
stm32·单片机·嵌入式硬件
richxu2025100111 小时前
嵌入式学习之路->stm32篇->(11)SPI通信(下)
stm32·嵌入式硬件·学习
电子科技圈11 小时前
从进迭时空K3看RISC-V CPU与Imagination GPU协同:如何构建高性能SoC能力
大数据·图像处理·人工智能·嵌入式硬件·边缘计算·智能硬件·risc-v
W.W.H.11 小时前
FreeRTOS移植(保姆级教程)
经验分享·单片机·操作系统·freertos·rtos
LCG元12 小时前
STM32实战:基于STM32F103的智能消防报警联动系统
stm32·单片机·嵌入式硬件