找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4461|回復(fù): 4
收起左側(cè)

18B20測(cè)溫LCD1602顯示Proteus仿真+單片機(jī)代碼

[復(fù)制鏈接]
ID:66287 發(fā)表于 2019-5-14 09:42 | 顯示全部樓層 |閱讀模式
12.png 0.png

單片機(jī)源程序如下:
  1. #include <REG52.H>
  2. #include "DS18B20.H"
  3. #include "LCD1602.H"

  4. #define uchar unsigned char
  5. #define uint  unsigned int   

  6. sbit keyu=P3^4; //加按鍵
  7. sbit keyl=P3^5; //減按鍵
  8. sbit keyh=P3^6; //調(diào)節(jié)尺度
  9. sbit keym=P3^7; //轉(zhuǎn)換模式

  10. sbit buzz=P2^1;//蜂鳴器接口

  11. void button() //報(bào)警蜂鳴器
  12. {
  13.   uchar k=2;
  14.   while(k--)
  15.   {
  16.    buzz=0;delay_50us(200);
  17.    buzz=1;delay_50us(200);
  18.   }
  19. }

  20. void key()                //按鍵加減標(biāo)尺
  21. { //尺度
  22.    if(keym==0)//判定
  23.    {
  24.      delay_50us(100);//延時(shí)
  25.      if(keym==0)
  26.      {       
  27.        y++;//轉(zhuǎn)換加減的數(shù)值
  28.            if(y>=3)y=0;
  29.            switch (y)
  30.            {
  31.            case 0:m=1;break;
  32.            case 1:m=5 ;break;
  33.            case 2:m=10 ;break;
  34.            }
  35.            while(keym==0);//自鎖
  36.      }
  37.    }
  38. ///換
  39.    if(keyh==0)//上下限轉(zhuǎn)換按鍵
  40.    {
  41.      delay_50us(100);
  42.      if(keyh==0)
  43.      {
  44.        o++;
  45.               if(o>=3)o=0;//1為上限選中,2為下限選中,0為隱藏
  46.              while(keyh==0);
  47.      }
  48.    }
  49. /////上限          
  50.    if(keyu==0&o==1)//上限加按鍵
  51.    {
  52.      delay_50us(100);
  53.      if(keyu==0&o==1)
  54.      {
  55.         u=u+m; while(keyu==0);
  56.      }
  57.    }
  58.    if(keyl==0&o==1) //上限減按鍵

  59.    {
  60.       delay_50us(100);
  61.       if(keyl==0&o==1)
  62.       {
  63.         u=u-m; while(keyl==0);
  64.       }
  65.    }
  66. //// 下限
  67.    if(keyu==0&o==2)//下限加按鍵
  68.    {
  69.       delay_50us(100);
  70.       if(keyu==0&o==2)
  71.       {
  72.          l=l+m;while(keyu==0);
  73.       }
  74.    }
  75.    if(keyl==0&o==2)//下限減按鍵
  76.    {
  77.       delay_50us(100);
  78.       if(keyl==0&o==2)
  79.       {
  80.         l=l-m;while(keyl==0);
  81.       }
  82.    }
  83. }

  84. void  BJ()//溫度報(bào)警子程序
  85. {
  86.           if(f==1)         //溫度大于0的溫度比較
  87.          {
  88.                 
  89.                 if(sdata>=u) //溫度大于上限,報(bào)警
  90.                 {
  91.                  display(sdata);        button();
  92.                 }
  93.                 else if(l>0&sdata<=l)        //溫度小于下限,報(bào)警
  94.                 {
  95.                  display(sdata);        button();
  96.                 }
  97.                 else          display(sdata);
  98.          }
  99.          else if(f==0)        //溫度小于0的溫度比較
  100.          {
  101.                     if(l>=0)
  102.                 {
  103.                   display(sdata);        button();
  104.                 }
  105.                 else if(l<0)       
  106.                 {
  107.                     if(sdata>=-l)  //溫度于下限,報(bào)警
  108.                                 {
  109.                                  display(sdata);        button();
  110.                                 }
  111.                                 else if(sdata<-l)  //溫度大于下限不報(bào)警
  112.                                 {
  113.                                  display(sdata);
  114.                                 }
  115.                 }
  116.                 else display(sdata);                         
  117.          }
  118. }

  119. void main()
  120. {
  121.   buzz=1;
  122.   display0(); //歡迎,
  123.   display1(); //框架
  124.   while(1)
  125.   {
  126.    display2(); //上下限,尺度
  127.    ReadTemperature();        //測(cè)溫程序
  128.    fuhao();//負(fù)號(hào)顯示程序
  129.    key();        //按鍵
  130.    BJ();        //報(bào)警程序
  131.   }

  132. }
復(fù)制代碼

所有資料51hei提供下載:
18B20測(cè)溫LCD顯示.rar (44.26 KB, 下載次數(shù): 75)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
51hei跑堂 + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2019-5-14 09:45 | 顯示全部樓層
11.png
回復(fù)

使用道具 舉報(bào)

ID:521983 發(fā)表于 2019-5-23 10:49 | 顯示全部樓層
不知上下限值是多少?
回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2019-5-28 08:02 | 顯示全部樓層
上下限值可以鍵盤手工改變
回復(fù)

使用道具 舉報(bào)

ID:821815 發(fā)表于 2021-1-28 11:39 | 顯示全部樓層
如果想控制兩路輸出,怎么修改
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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