找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3598|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)寫的恒溫箱程序 可控硅0,1控制燈泡亮滅

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:416820 發(fā)表于 2019-3-24 11:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
具有按鍵設(shè)置,聲光報警,顯示,自動調(diào)節(jié)等功能
使用DS18B20測試箱內(nèi)溫度,可控硅0,1控制燈泡亮滅,由此控制溫度,具有LCD1602顯示,按鍵設(shè)置上下限,聲光報警功能。

單片機(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ù)
  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è)定溫度,可控硅打開
  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)閉,聲光報警
  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)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:775921 發(fā)表于 2020-6-11 10:30 | 只看該作者
優(yōu)秀,不錯
回復(fù)

使用道具 舉報

板凳
ID:68878 發(fā)表于 2022-2-1 09:28 | 只看該作者
謝謝分享 正需要謝謝樓主!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表