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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)ds18b20數(shù)字溫度計(jì)Proteus仿真代碼 可設(shè)上下限

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
仿真及程序在附件,僅供參考學(xué)習(xí)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


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

  5. //LED引腳定義
  6. sbit LED_LOW=P1^4;                //低溫度報(bào)警
  7. sbit LED_NORMAL=P1^5; //正常溫度
  8. sbit LED_HIGH=P1^6;   //高溫報(bào)警

  9. //按鍵引腳定義
  10. sbit k1=P3^4;        //模式切換(按鍵溫度上下限+或溫度上下限-)
  11. sbit k2=P3^2;        //設(shè)置溫度下限
  12. sbit k3=P3^3; //設(shè)置溫度上限

  13. //DS1302相關(guān)
  14. uchar  times[9];//保存時(shí)間
  15. uchar  date[11];//保存日期

  16. //溫度數(shù)據(jù)
  17. uchar HT=40;        //溫度上限
  18. uchar LT=15;        //溫度下限
  19. uchar WenduData[6]; //實(shí)時(shí)溫度
  20. uchar HTem[3],LTem[3];//溫度上下限

  21. //全局變量定義
  22. bit flag=0;//模式切換標(biāo)志位


  23. //主函數(shù)
  24. void main()
  25. {
  26.         EA=1;      //開總中斷
  27.         TCON=0x05; //外部中斷0,1設(shè)置為邊沿觸發(fā)
  28.         EX0=1;     //開外部中斷0
  29.         EX1=1;                 //開外部中斷1
  30.         //init_1302(time_1302);
  31.         ReadTemperature();//預(yù)讀取溫度并延時(shí)跳過默認(rèn)初始溫度顯示
  32.         Delay(50000);
  33.         Delay(50000);
  34.         LCD_init();//LCD初始化
  35.         while(1)
  36.         {        
  37.                 if(k1==0){ //按下KEY1時(shí),切換溫度上下限設(shè)置方向
  38.                         Delay(5);
  39.                         while(k1==0);
  40.                         flag=~flag;
  41.                 }
  42.                 Disp_Temperature();//顯示溫度
  43.                 Delay(500);
  44.                
  45.                 get_1302(time_1302);//獲取時(shí)間
  46.                 change(); //時(shí)間轉(zhuǎn)換
  47.                
  48.                 gotoxy(8,2);
  49.                 LCD_display(times);//顯示時(shí)間
  50.         }
  51. }

  52. //溫度轉(zhuǎn)換顯示函數(shù)
  53. void Disp_Temperature()     //顯示溫度
  54. {
  55.         uint a,b,c,d,e,m;  
  56.   e=ReadTemperature();  //獲取溫度值
  57.   a=e/1000;             //計(jì)算得到十位數(shù)
  58.   b=e/100-a*10;         //計(jì)算得到個(gè)位數(shù)字  
  59.   d=e%10;               //計(jì)算得到小數(shù)點(diǎn)后兩位
  60.   c=(e%100)/10;         //計(jì)算得到小數(shù)點(diǎn)后一位
  61.   m=e/100;  
  62.         
  63.         //溫度不在范圍內(nèi)報(bào)警
  64.         if( m<LT){ //溫度超過溫度上限
  65.                 LED_LOW=0;
  66.                 LED_HIGH=1;//黃燈亮
  67.                 LED_NORMAL=1;
  68.         }         
  69.         else if(m>HT){ //溫度低于溫度下限
  70.                 LED_LOW=1;
  71.                 LED_HIGH=0;//紅燈亮
  72.                 LED_NORMAL=1;
  73.         }
  74.         else{        //溫度處于正常范圍
  75.                 LED_LOW=1;
  76.                 LED_HIGH=1;
  77.                 LED_NORMAL=0;//綠燈亮
  78.         }
  79.         //LCD顯示溫度數(shù)據(jù)
  80.         WenduData[0] = a+'0';
  81.         WenduData[1] = b+'0';
  82.         WenduData[2] = '.';
  83.         WenduData[3] = c+'0';
  84.         WenduData[4] = d+'0';
  85.         WenduData[5] = '\0';
  86.         LTem[0] = LT/10+'0';
  87.         LTem[1] = LT%10+'0';
  88.         LTem[2] = '\0';
  89.         HTem[0] = HT/10+'0';
  90.         HTem[1] = HT%10+'0';
  91.         HTem[2] = '\0';
  92.         
  93.         gotoxy(1,1);
  94.         LCD_display("LT:");
  95.         gotoxy(4,1);
  96.         LCD_display(LTem);
  97.         gotoxy(1,2);
  98.         LCD_display("HT:");
  99.         gotoxy(4,2);
  100.         LCD_display(HTem);
  101.         gotoxy(8,1);
  102.         LCD_display("T:");
  103.         gotoxy(10,1);
  104.         LCD_display(WenduData);
  105. }

  106. //外部0中斷子函數(shù)
  107. void int0() interrupt 0
  108. {
  109.         if(k2==0) //按鍵KEY2按下
  110.         {
  111.                 Delay(5);
  112.                 while(k2==0);
  113.                 if(flag==0)
  114.                         LT++; //溫度下限+
  115.                 else
  116.                         LT--;//溫度下限-
  117.         }               
  118. }

  119. //外部1中斷子函數(shù)
  120. void int1() interrupt 2
  121. {
  122.         if(k3==0)
  123.         {
  124.                 Delay(5);
  125.                 while(k3==0);
  126.                 if(flag==0)
  127.                         HT++;//溫度上限+
  128.                 else
  129.                         HT--;//溫度上限-
  130.         }               
  131. }

  132. //DS1302數(shù)值轉(zhuǎn)換
  133. void change()
  134. {
  135. // 時(shí) 間 的 轉(zhuǎn) 換
  136.   times[0]=time_1302[2]/10+'0';
  137.   times[1]=time_1302[2]%10+'0';
  138.   times[2]=':';
  139.   times[3]=time_1302[1]/10+'0';
  140.   times[4]=time_1302[1]%10+'0';
  141.   times[5]=':';
  142.   times[6]=time_1302[0]/10+'0';
  143.   times[7]=time_1302[0]%10+'0';
  144.         times[8]='\0';
  145.   // 日 期 的 轉(zhuǎn) 換
  146.         date[0]='2';
  147.         date[1]='0';
  148.   date[2]=time_1302[6]/10+'0';
  149.   date[3]=time_1302[6]%10+'0';
  150.   date[4]='/';
  151.   date[5]=time_1302[4]/10+'0';
  152.   date[6]=time_1302[4]%10+'0';
  153.   date[7]='/';
  154.   date[8]=time_1302[3]/10+'0';
  155.   date[9]=time_1302[3]%10+'0';
  156.         date[10]='\0';
  157. }
復(fù)制代碼

Keil代碼與Proteus仿真下載:
ds18b20數(shù)字溫度計(jì).rar (148.36 KB, 下載次數(shù): 72)

評分

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

查看全部評分

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99re在线播放 | 91国内精精品久久久久久婷婷 | 在线国产一区二区 | 日韩在线视频一区二区三区 | 国产不卡在线观看 | 国产美女在线观看 | 成人影院在线 | 黄色一级免费看 | 久久在视频 | 波多野结衣先锋影音 | 色一情一乱一伦一区二区三区 | 亚洲毛片 | 91视频网址| 国产资源一区二区三区 | 香蕉婷婷 | 日产精品久久久一区二区福利 | 国产精品久久久久婷婷二区次 | 91视频.com | 国产精品国产精品 | 国产成人精品久久二区二区 | 两性午夜视频 | 亚洲免费在线观看av | 国产精品视频在线播放 | 91麻豆精品国产91久久久久久 | 欧美美女被c | 自拍第一页| 日韩福利片| 国产精品电影在线观看 | 成人精品免费视频 | 国产在线精品免费 | 91在线观看 | 五十女人一级毛片 | 91久久精品国产91久久性色tv | 亚洲欧美在线一区 | 中文字幕亚洲精品 | 国产99久久精品一区二区300 | 国户精品久久久久久久久久久不卡 | 国产一区二区三区精品久久久 | 久久91av | 成人啊啊啊 | 麻豆一区二区三区精品视频 |