AT89C51单片机温度控制系统

2019-07-16 06:43发布

大家帮个忙       帮忙设计一下程序还有电路图,温度控制在37到38度之间只要可以表达意思即可。                                            小弟在这先谢谢大家了。。。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
vbqwert
1楼-- · 2019-07-17 10:46
 精彩回答 2  元偷偷看……
sxl1971
2楼-- · 2019-07-17 16:41
void main (void)
{
AUXR=0x01;
WAP=1;
  _nop_;
  _nop_;
// WDT=0x35;
  AT24C04_ReadPage();
while(1)

{

   if(pm0==0&&m01==0)
   {
        DelayX0us(48);
        if(pm0==0&&m01==0)
        {
         m01=1;                                  
        m0++;
        }
        }
        if(pm0==1&&m01==1)
        {
         m01=0;
        }
        if(m0>=2)
        {
        m0=0;
   //        DS18B20_Reset();
   WAP=0;  
    _nop_;
   _nop_;             //设备复位        5k的上拉电阻 (4e) 写暂存器         (48)        暂存器考到e2里        (b8) e2到暂存器
            AT24C04_WritePage();
         }

         /*********************************************************************************/
   if(m0==0)
   {
        DS18B20_Reset();                //设备复位        5k的上拉电阻 (4e) 写暂存器         (48)        暂存器考到e2里        (b8) e2到暂存器
    DS18B20_WriteByte(0xCC);        //跳过ROM命令
    DS18B20_WriteByte(0x44);        //开始转换命令
    while (!DQ);                    //等待转换完成
   WDT=0x35;
    DS18B20_Reset();                //设备复位
    DS18B20_WriteByte(0xCC);        //跳过ROM命令
    DS18B20_WriteByte(0xBE);        //读暂存存储器命令
    TPL = DS18B20_ReadByte();       //读温度低字节
    TPH = DS18B20_ReadByte();       //读温度高字节
                temp=TPH;
        temp<<=8;
        temp=temp|TPL;
        wendu=temp*0.625;
         temp=wendu;
        // temp=temp*10;
          outputbyt74595 (wei[1],mad[(temp%100)/10]);
            outputbyt74595 (wei[2],ma[(temp%100)%10]);
                  outputbyt74595 (wei[0],ma[temp/100]);
         delay1(30);
         outputbyt74595 (0X00,0x00);
         if(temp>(BUF[0]*10))
         LED=1;
         if(temp<((BUF[0]*10)-10))
         LED=0;
           WDT=0x35;
   }

   if(m0==1)
   {
   LED=1;
          WDT=0x35;
          outputbyt74595 (wei[0],0x39);
                 outputbyt74595 (wei[1],ma[BUF[0]/10]);
                   outputbyt74595 (wei[2],ma[BUF[0]%10]);
                           outputbyt74595 (0x00,0x00);
                                         delay1(30);
                        if(ajj==0&&mj==0)
                        {
                 delay1(30);
                               if(ajj==0&&mj==0)
                           {
                                mj=1;
                                BUF[0]++;
                           }
                        }



                  if(ajj==1&&mj==1)
                  {
                   mj=0;
                  }
                if(BUF[0]>=99)
                BUF[0]=10;          
          }
}
}
sxl1971
3楼-- · 2019-07-17 20:24
BUF[0]里的值就是控制温度值

一周热门 更多>