欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4371|回復: 2
打印 上一主題 下一主題
收起左側

單片機P0口接LCD1602顯示環境溫度,溫度檢測通過DS18B20實現。

[復制鏈接]
跳轉到指定樓層
樓主
下面是模塊化程序:需要私我。


keilC51代碼:
  1. #include <reg51.h>
  2. #include<intrins.h>
  3. #include "18B20.h"
  4. #include "delay.h"
  5. #include "LCD1602.h"
  6. float TM;            //讀一個溫度時的溫度轉換中間     
  7. int tvalue;          //溫度值
  8. unsigned char tflag;    //溫度正負標志
  9. unsigned char data disdata[5];      //溫度字型顯示中間變量

  10. void delay_18B20(unsigned int i)//延時1微秒
  11. {
  12.          while(i--);
  13. }

  14. void ds1820rst()     /*ds1820復位*/
  15. {  
  16.          unsigned char x=0;
  17.          DQ = 1;          //DQ復位
  18.          delay_18B20(4);  //延時
  19.          DQ = 0;          //DQ拉低
  20.          delay_18B20(80); //精確延時大于480us   540us
  21.          DQ = 1;          //拉高總線   15-60us
  22.          delay_18B20(20);
  23.    x=DQ;          //讀總線狀態   為0復位成功,1復位不成功
  24.    delay(30);
  25.    DQ=1;      //釋放總線         
  26. }  

  27. unsigned char ds1820rd()  /*讀數據*/
  28.   {
  29.                 unsigned char i=0;
  30.           unsigned char dat = 0;
  31.           for (i=8;i>0;i--)
  32.           {   
  33.                         DQ = 0; //給脈沖信號
  34.                   dat>>=1;
  35.                   DQ = 1; //給脈沖信號
  36.                   if(DQ)
  37.                   dat|=0x80;     //dat和0x80做“或”運算(最高位1,其他位保持不變)
  38.                   delay_18B20(10);
  39.           }
  40.            return(dat);
  41.   }

  42. void ds1820wr(unsigned char wdata) /*寫數據*/
  43. {
  44.                 unsigned char i=0;
  45.     for (i=8; i>0; i--)
  46.     {
  47.                         DQ = 0;
  48.       DQ = wdata&0x01;      //
  49.       delay_18B20(10);
  50.       DQ = 1;
  51.       wdata>>=1;
  52.     }
  53. }
  54.         
  55. read_temp()/*讀取溫度值并轉換*/
  56. {
  57.         unsigned char a,b;
  58.   ds1820rst();   
  59.   ds1820wr(0xcc);//*跳過讀序列號*/
  60.   ds1820wr(0x44);//*啟動溫度轉換*/
  61.   ds1820rst();   
  62.   ds1820wr(0xcc);//*跳過讀序列號*/
  63.   ds1820wr(0xbe);//*讀取溫度*/
  64.   a=ds1820rd();
  65.   b=ds1820rd();
  66.   tvalue=b;
  67.   tvalue<<=8;
  68.   tvalue=tvalue|a;
  69.         TM=tvalue*0.625;
  70.         tvalue=TM*1+0.5;
  71.   /*
  72.     if(tvalue<0x0FFF)
  73.     tflag=0;
  74.     else
  75.    {tvalue=~tvalue+1;
  76.          tflag=1;
  77.    }
  78.     tvalue=tvalue*(0.425);//溫度值擴大10倍,精確到1位小數  */
  79.         return(tvalue);        
  80.   }

  81. void ds1820disp()//溫度值顯示
  82.         {
  83.                 unsigned char flagdat;
  84.           disdata[0]=tvalue/1000+0x30;//百位數
  85.     disdata[1]=tvalue%1000/100+0x30;//十位數
  86.     disdata[2]=tvalue%100/10+0x30;//個位數
  87.     disdata[3]=tvalue%10+0x30;//小數位
  88.    
  89.     if(tflag==0)
  90.             flagdat=0x20;//正溫度不顯示符號
  91.     else
  92.        flagdat=0x2d;//負溫度顯示負號:-

  93.     if(disdata[0]==0x30)
  94.           {disdata[0]=0x20;//如果百位為0,不顯示
  95.                 if(disdata[1]==0x30)
  96.                 {disdata[1]=0x20;//如果百位為0,十位為0也不顯示
  97.                 }
  98.                 }

  99.            write_com(0x80+0x40);
  100.            write_date(flagdat);//顯示符號位
  101.            write_com(0x80+0x41);
  102.            write_date(disdata[0]);//顯示百位
  103.            write_com(0x80+0x42);
  104.            write_date(disdata[1]);//顯示十位         
  105.            write_com(0x80+0x43);
  106.            write_date(disdata[2]);//顯示個位         
  107.            write_com(0x80+0x44);
  108.            write_date(0x2e);//顯示小數點         
  109.            write_com(0x80+0x45);
  110.            write_date(disdata[3]);//顯示小數位
  111.            write_com(0x80+0x46);
  112.            write_date('C');
  113.    }
復制代碼

下載:http://www.raoushi.com/bbs/dpj-143026-1.html

新手,大佬誤噴。

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:524762 發表于 2019-4-29 21:10 | 只看該作者
為什么我的運行有錯呢
回復

使用道具 舉報

板凳
ID:118488 發表于 2021-7-30 13:46 | 只看該作者
xiexie,xuexi~~~~~~~~~~
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表