久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開(kāi)始

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

基于51單片機(jī)的LCD1602+DS18B20溫度報(bào)警器Proteus仿真圖代碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
需要的可以自行下載(包括原理圖文件)


單片機(jī)源程序如下:
  1. #include <REGX51.H>

  2. #include "18b20.h"
  3. #include "LCD1602.h"
  4. #include <INTRINS.H>
  5. #include "Buzzer.h"

  6. sbit K1=P3^0;
  7. sbit K2=P3^1;
  8. sbit K3=P3^2;
  9. float T;
  10. unsigned flag=0;     //轉(zhuǎn)換上下限溫度設(shè)置

  11. main()
  12. {
  13.     int high=37,high1=37,low=0,low1=0;//警告溫度上下限,不能用unsigned
  14.         LCD_Init();                                   //lcd初始化
  15.         DS18B20_ConvertT();               //轉(zhuǎn)換溫度
  16.         delay(3000);               //等待轉(zhuǎn)換
  17.         
  18.         while(1)
  19.         {
  20. //===================非警告狀態(tài)顯示字符串、數(shù)字提示==============================
  21.      LCD_ShowString(2,10,"'C");
  22.          LCD_ShowString(1,1,"high");
  23.          LCD_ShowString(1,9,"low");
  24.          LCD_ShowString(2,1,"Temp");
  25.          LCD_ShowNum(1,6,high1,2);        
  26.          LCD_ShowNum(1,13,low1,2);               
  27.          delay(400);
  28.                
  29. //==================報(bào)警溫度上下限設(shè)置==============================
  30.         
  31.                 if(K1==0){delay(200);if(K1==0)flag++;}//上下限設(shè)置轉(zhuǎn)換
  32.                
  33.                 if(flag%2==0)                                                  //上限設(shè)置        
  34.                 {
  35.                 if(K2==0){delay(400);if(K2==0)high++;}
  36.                 if(K3==0){delay(400);if(K3==0)high--;}
  37.             }
  38.                 if(flag%2!=0)                                                  //下限設(shè)置
  39.                 {
  40.                 if(K2==0){delay(400);if(K2==0)low++;}
  41.                 if(K3==0){delay(400);if(K3==0)low--;}
  42.             }
  43.                
  44. //=================零下溫度處理=====================================
  45.                 if(high<0){high1=-high;LCD_ShowChar(1,5,'-');}
  46.           else high1=high;
  47.                 if(low<0){low1=-low;LCD_ShowChar(1,12,'-');}
  48.           else low1=low;
  49.                
  50. //===================判斷報(bào)警======================================               
  51.                 while(DS18B20_ReadT()<(float)low||DS18B20_ReadT()>(float)high)
  52.                 {
  53.                         DS18B20_ConvertT();        //轉(zhuǎn)換溫度,保證溫度回歸正常值后跳出報(bào)警
  54.                         Buzzer_Time(200);
  55.                         LCD_ShowString(2,3,"warning!!!");
  56.                         delay(400);
  57.                         LCD_WriteCommand(0x01);//清屏,一定要清屏                                
  58.                 }
  59.                
  60.             while(DS18B20_ReadT()<low||DS18B20_ReadT()>high)
  61.                 {
  62.                         DS18B20_ConvertT();        //轉(zhuǎn)換溫度,保證溫度回歸正常值后跳出報(bào)警
  63.                         Buzzer_Time(200);
  64.                         LCD_ShowString(2,3,"warning!!!");
  65.                         delay(400);
  66.                         LCD_WriteCommand(0x01);//清屏,一定要清屏                                
  67.                 }
  68.                
  69.                
  70. //=====================顯示溫度====================================
  71.                

  72.                 DS18B20_ConvertT();        //轉(zhuǎn)換溫度
  73.                 T=DS18B20_ReadT();        //讀取溫度
  74.                 delay(100);          //等待轉(zhuǎn)換,不能刪除
  75.                
  76.                 if(T<0)                                //如果溫度小于0
  77.                 {
  78.                         LCD_ShowChar(2,5,'-');        //顯示負(fù)號(hào)
  79.                         T=-T;                        //將溫度變?yōu)檎龜?shù)
  80.                 }
  81.                 else                                //如果溫度大于等于0
  82.                 {
  83.                         LCD_ShowChar(2,5,' ');        //顯示正號(hào)
  84.                 }
  85.                
  86.                 LCD_ShowNum(2,6,T,2);                //顯示溫度整數(shù)部分
  87.                 LCD_ShowChar(2,8,'.');                //顯示小數(shù)點(diǎn)
  88.                 LCD_ShowNum(2,9,(unsigned long)(T*10)%10,1);//顯示溫度小數(shù)部分        
  89.         }        
  90. }
復(fù)制代碼

Keil代碼與Proteus仿真下載:
18b20ccc.rar (183.14 KB, 下載次數(shù): 292)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:245820 發(fā)表于 2023-4-10 08:58 | 只看該作者
18b20和1602的結(jié)合。值得學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

板凳
ID:1125696 發(fā)表于 2024-6-18 11:33 | 只看該作者
求帖代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲性人人天天夜夜摸 | 激情视频中文字幕 | 久久精品网| 91免费观看视频 | 亚欧精品| 欧美一区二区三区四区视频 | 国产视频二区 | 九九色九九| 正在播放国产精品 | 国产精品美女视频 | 精品小视频 | 成人精品视频在线 | 成年人黄色一级毛片 | 精品视频一二区 | 中文字幕亚洲欧美 | 欧美二区三区 | 中文字幕免费在线 | 亚洲高清在线 | 日韩欧美在线视频 | 成人激情视频网 | av不卡一区 | 欧美精品综合在线 | 国产综合欧美 | 国产精品夜夜春夜夜爽久久电影 | 久久免费精品视频 | 成人妇女免费播放久久久 | 国内精品视频免费观看 | 欧美一级大片免费观看 | 久草在线 | 成人免费淫片aa视频免费 | 日韩高清在线观看 | 国产1区2区3区 | 一级特黄色毛片 | 国产精品99久久久久久久久 | 在线观看av网站永久 | 午夜噜噜噜 | av黄色片在线观看 | 欧美一区二不卡视频 | 精品一区二区三区在线播放 | 99re99| 超级乱淫av片免费播放 |