標(biāo)題: 51單片機(jī)寫(xiě)的恒溫箱程序 可控硅0,1控制燈泡亮滅 [打印本頁(yè)]

作者: 王大鵬    時(shí)間: 2019-3-24 11:51
標(biāo)題: 51單片機(jī)寫(xiě)的恒溫箱程序 可控硅0,1控制燈泡亮滅
具有按鍵設(shè)置,聲光報(bào)警,顯示,自動(dòng)調(diào)節(jié)等功能
使用DS18B20測(cè)試箱內(nèi)溫度,可控硅0,1控制燈泡亮滅,由此控制溫度,具有LCD1602顯示,按鍵設(shè)置上下限,聲光報(bào)警功能。

單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include "temp.h"
  3. #include "lcd.h"

  4. #define uchar unsigned char
  5. #define uint unsigned int
  6.         
  7. sbit key1=P3^1;//+
  8. sbit key2=P3^0;//-
  9. sbit silicon=P2^1;    //可控硅
  10. sbit BZ=P1^5;         //蜂鳴器
  11. sbit LED=P2^0;        //led標(biāo)志位
  12.         
  13. uint temp,temps=26;//溫度緩存變量,設(shè)定溫度變量

  14. void delay(uint us)//延時(shí)函數(shù)
  15. {
  16.         for(;us>0;us--);
  17. }
  18. void keyson()                        //按鍵掃描程序
  19. {
  20.         if(!key1&&temps<60)
  21.         {
  22.                 delay(30);
  23.                 temps++;
  24.                 while(!key1);
  25.         }
  26.         if(!key2&&temps>0)
  27.         {
  28.                 delay(30);
  29.                 temps--;
  30.                 while(!key2);
  31.         }
  32. }
  33. void display()                //lcd1602顯示界面
  34. {
  35.     LcdWriteCom(0x85);//當(dāng)前溫度
  36.                 LcdWriteData('C');
  37.                 LcdWriteData(':');
  38.                 LcdWriteData(temp/10+0x30);
  39.                 LcdWriteData(temp%10+0x30);
  40.                 LcdWriteData(0xdf);
  41.                 LcdWriteData('C');
  42.                 LcdWriteCom(0x80+0x45);//設(shè)置溫度
  43.                 LcdWriteData('S');
  44.                 LcdWriteData(':');
  45.                 LcdWriteData(temps/10+0x30);
  46.                 LcdWriteData(temps%10+0x30);
  47.                 LcdWriteData(0xdf);
  48.                 LcdWriteData('C');
  49. }

  50. void beep()
  51. {
  52.         uchar k,g;
  53.         for (k=0;k<80;k++)
  54.         {
  55.                 BZ=~BZ;
  56.                 for(g=0;g<200;g++);
  57.         }
  58. }

  59. void main()
  60. {
  61.         uint i,j,flag=1,flag1;//標(biāo)志位
  62.         LcdInit();                                                                                                                        //lcd1602初始化
  63.         for(i=0;i<60;i++)
  64.         temp=(float)Ds18b20ReadTemp()*0.0625;
  65.         while(1)
  66.         {
  67.                 temp=(float)Ds18b20ReadTemp()*0.0625;               
  68.                 display();                                                                                                                //lcd1602顯示界面
  69.                 keyson();                                                                                                                        //按鍵掃描程序
  70.                 if(temp<temps)
  71.                 {
  72.                         silicon=0;                                                                         //低于設(shè)定溫度,可控硅打開(kāi)
  73.                         LED=0;
  74.                         flag=1;
  75.                 }
  76.                 if(temp>=temps)
  77.                 {
  78.                         silicon=1;
  79.                         if(flag==1)flag1=1,flag=0;
  80.                 }
  81.                 if(flag1==1)                                                                            //高于設(shè)定溫度,可控硅關(guān)閉,聲光報(bào)警
  82.                 {   
  83.                         LED=0;
  84. //                        BZ=0;
  85. //                        delay(40);
  86. //                        BZ=1;
  87.                         beep();
  88.                         delay(1);                                                           
  89.                         j++;
  90.                         if(j>35)flag1=0,j=0;
  91.                 }
  92.                 else        LED=1,BZ=1;                                       
  93.         }
  94. }
復(fù)制代碼

Keil代碼下載:
恒溫箱-.zip (55.74 KB, 下載次數(shù): 93)



作者: lljj555    時(shí)間: 2020-6-11 10:30
優(yōu)秀,不錯(cuò)
作者: wdi    時(shí)間: 2022-2-1 09:28
謝謝分享 正需要謝謝樓主��!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1