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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

溫度測量DSB1820 lcd1602液晶顯示

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年04月10日   【字體:

程序中要用到LCD1602display.h頭文件 可以在我的另一篇文章中取得: http://www.zg4o1577.cn/mcu/3292.html  為同一個文件
#include <reg52.h>
#include <intrins.h>
#include "LCD1602display.h"
sbit DQ=P2^0;    //ds18b20
uint wendu=0;
uchar num,num1;
uint temperature=0;
uchar code range[]="===TEMPERTURE===";
uchar code ASCII[]="0123456789.";
uchar code table0[]="ROME TEMP:00.0C ";
uchar code table1[]="    ERRO !!!    ";
uchar temp[3]={0,0,0};
//********************延時
void delay1ms(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=114;y>0;y--);
}
//*************************初始化
bit init_DS18B20()
{
 bit flag;     //儲存DS18B20是否存在的標志,flag=0,表示存在;flag=1,表示不存在
 DQ=1;
 _nop_();       //先拉高
 DQ=0;
 for(num=0;num<200;num++); //要求保持480~960us
 DQ=1;      //釋放數據線
 for(num=0;num<10;num++); //等待DS18B20響應
 flag=DQ;     // 響應
 for(num=0;num<200;num++); //延時足夠長時間(此延時函數為了防止收不到信號而進入死胡同)
 DQ=1;      //釋放數據線
 return (flag);    //返回檢測成功標志
}
//*******************************寫溫度數據
void DS18B20_WR_CHAR(uchar byte) // 先寫低位
{
 for(num1=0;num1<8;num1++)
 {  
  DQ=1;
  _nop_();
  DQ=0;  //將數據線從高拉低時即啟動寫時序
  for(num=0;num<5;num++);//等待15us
  DQ=byte&0x01;
  for(num=0;num<15;num++); //延時約45us,DS18B20在約15~45us期間從數據線上采樣
  byte>>=1;
  for(num=0;num<1;num++);//延時3us,兩個寫時序間至少需要1us的恢復期 
 }
 DQ=1;//釋放數據線 
}
//**********************************讀出溫度數據
uchar DS18B20_RD_CHAR() //先讀低位
{
 uchar byte=0;
 for(num1=0;num1<8;num1++)
 {
  DQ=1;  
  _nop_();
  DQ=0;  //給個低脈沖 
  _nop_();
  DQ=1;
  for(num=0;num<5;num++);  //延時約15us,使主機在15us內采樣 
  byte>>=1;
  if(DQ==1)
   byte|=0x80;
  else
   byte|=0x00;
  for(num=0;num<1;num++);//延時3us,兩個讀時序之間必須有大于1us的恢復期
 }
 return (byte);
}
//*********************************溫度計算
void DS18B20_WENDU()
{
 uchar temperaturel=0,temperatureh=0;
 if(init_DS18B20()==0)
 {
  DS18B20_WR_CHAR(0xcc);
  DS18B20_WR_CHAR(0x44);
  delay1ms(1000);
  if(init_DS18B20()==0)
  {
   DS18B20_WR_CHAR(0xcc);
   DS18B20_WR_CHAR(0xBE);
   _nop_();
   temperaturel=DS18B20_RD_CHAR();
   temperatureh=DS18B20_RD_CHAR();
   temperature=(temperatureh*256+temperaturel)*0.625;
   init_DS18B20();
  }
  //return (temperature);   
 }
}
//******************************溫度顯示
void display_DS18B20()  
{
 temp[2]=temperature/100%10;
 temp[1]=temperature%100/10;
 temp[0]=temperature%10;
 
 DisplayListChar(0, 1, table0);
 DisplayOneChar(10, 1, ASCII[ temp[2] ] );
 DisplayOneChar(11, 1, ASCII[ temp[1] ]  );
 DisplayOneChar(12, 1, ASCII[10] );
 DisplayOneChar(13, 1, ASCII[ temp[0] ] );
}
//*******************************主函數
main()
{
 InitLCM();
 DisplayListChar(0,0,range);
 DisplayListChar(0,1,table0);
 while(1)
 {
  if( init_DS18B20()==0)  
      { 
    DS18B20_WENDU();
    display_DS18B20();    
  }
 }
}
 

關閉窗口
主站蜘蛛池模板: 蜜桃传媒av| 中文字幕亚洲精品 | 羞羞网站免费 | 国产成人精品久久久 | 看片地址 | 91观看| 美女国产一区 | 欧美一级视频 | 亚洲大片一区 | 午夜激情一区 | 亚洲国产区 | 日日操av | 国产区一区二区三区 | 在线日韩视频 | 国产成人一区二区 | 日韩在线免费视频 | 99在线免费观看视频 | 97国产精品视频人人做人人爱 | 国产精品久久久亚洲 | 亚洲精品一区在线 | 国产激情在线 | 国产精品视频一二三区 | 亚洲成人免费观看 | 亚洲一区国产 | 一区二区三区国产好的精 | 我想看一级黄色毛片 | 国产精品高潮呻吟久久aⅴ码 | 精品99在线| 91麻豆精品国产91久久久更新资源速度超快 | 免费1区2区3区 | 国产精品高潮呻吟久久久久 | 一级黄色毛片免费 | 成人性视频在线 | 日本一区二区三区视频在线 | 欧美在线视频免费 | 国产精品美女久久久久 | 秋霞a级毛片在线看 | www视频在线观看 | 久久久黑人| 国产成人免费视频网站高清观看视频 | 成在线人视频免费视频 |