亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ds18b20a.c

?? 數(shù)字溫度計,需要下載一個新的protel才能打開原理圖
?? C
字號:
//*************DS18B20數(shù)字溫度計*******************//
//*MCU:          AT892051                          //
//*MCU-crystal:  12M                               //
//*Version:      01                                //
//*Last Updata:  2007-6-9                          //
//*Author:       zhaojun                           //
//*Description:                                    //
//DS18B20的讀寫程序,數(shù)據(jù)腳P3.4                     //
//溫度傳感器18B20匯編程序,采用器件默認(rèn)的12位轉(zhuǎn)化   //
//最大轉(zhuǎn)化時間750微秒,顯示溫度-55到+125度,顯示精度 //
//為0.1度,顯示采用4位LED共陽顯示測溫值            //
//P1口為段碼輸入,P0~P3為位選                       //
//***************WAVE-E6000/T**********************//
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define Disdata  P1         // 段碼入口
sbit DQ=P3^4;               // 溫度輸入口
uint temp;                  // variable of temperature  定義一個變量
uchar flag1;                // 定義一個標(biāo)志,標(biāo)志溫度是負(fù)還是正,1為負(fù),0為正
sbit DIN=P1^7;              // 小數(shù)點控制 
uchar h;                    // 定義變量
//位選位定義
sbit DEC=P3^0;              // 小數(shù)
sbit POS=P3^1;              // 個位
sbit TEN=P3^2;              // 十位
sbit HUN=P3^3;              // 百位,符號位

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; 
//共陽數(shù)碼管段碼表           "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "滅"  "-"

unsigned char code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//帶小數(shù)點的編碼
//共陽數(shù)碼管帶小數(shù)點段碼表    "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" 

uchar data temp_data[2]={0x00,0x00};//讀出溫度暫放

uchar data Dis_play[5]={0x00,0x00,0x00,0x00,0x00};//顯示單元數(shù)據(jù),共4個數(shù)據(jù)和一個運算暫用

uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
//小數(shù)部分對應(yīng)十進(jìn)制   "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "A"  "B"  "C"  "D"  "E"  "F"

/***************************************/
/*        延時子程序                   */
/***************************************/
 void delay(uint i)      //delay   
   {
      while(i--);
   }

/************************************************/
/*          初始化ds18b2子函數(shù)*                 */
/************************************************/
 Init_DS18B20(void)
  {
     uchar x=0;
     DQ = 1;               //DQ復(fù)位
     delay(8);             //稍做延時
     DQ = 0;               //單片機(jī)將DQ拉低
     delay(80);            //精確延時 大于 480us
     DQ = 1;               //拉高總線
     delay(14);
     x=DQ;                 //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
     delay(20);
  }


/*************************************************/
/*              讀字節(jié)子函數(shù)                     */
/*************************************************/
 ReadOneChar(void)
  {
     uchar i = 0;
     uchar dat = 0;
   for (i=8;i>0;i--)
    {
      DQ = 0;              // 給脈沖信號
      dat>>=1;             // 數(shù)據(jù)右移一位
      DQ = 1;              // 給脈沖信號
      if(DQ)               // DQ為1
      dat|=0x80;          // 讀出數(shù)據(jù)
      delay(4);            // 延時
     }
   return(dat);
  }
/*************************************************/
/*               寫字節(jié)子函數(shù)                    */
/*************************************************/
 WriteOneChar(unsigned char dat)
  {
    uchar i = 0;
    for (i=8; i>0; i--)
     {
       DQ = 0;
       DQ = dat&0x01;   //寫入一位數(shù)據(jù)
       delay(5);
       DQ = 1;
       dat>>=1;        //右移一位數(shù)據(jù)
     }
  }

/*************************************************/
/*           DS18B20寫命令函數(shù)                   */
/*************************************************/
/*void tmpwritebyte(uchar dat)   // write a byte to ds18b20 
  {                              // 給溫度傳感器寫一個字節(jié)
    uint i;
    uchar j;
    bit testb;
    for(j=1;j<=8;j++)
     {
        testb=dat&0x01;
        dat=dat>>1;
        if(testb)     //寫入 1
          {
             DQ=0;
             i++;i++;
             DQ=1;
             i=8;while(i>0)i--; // 適當(dāng)延時
          }
        else          //寫入 0
          {
             DQ=0;       
             i=8;while(i>0)i--; // 適當(dāng)延時
             DQ=1;
             i++;i++;
          }
      }
  }*/

/******************************************/
/*         發(fā)送溫度轉(zhuǎn)換命令               */
/******************************************/
void tmpchange(void)          // DS18B20 begin change   
{
  Init_DS18B20();             // 初始化DS18B20
  delay(200);                 // 延時
  WriteOneChar(0xcc);         // 跳過序列號命令
  WriteOneChar(0x44);         // 發(fā)送溫度轉(zhuǎn)換命令
}
/******************************************/
/*            讀出溫度函數(shù)                */
/******************************************/
uint tmp()                    //get the temperature
{
//  float tt;
  Init_DS18B20();             // 初始化ds18b2子函數(shù) 
  delay(1);
  WriteOneChar(0xcc);         // 跳過ROM命令
  WriteOneChar(0xbe);         // 發(fā)送讀取數(shù)據(jù)命令
  temp_data[0]=ReadOneChar(); // 連續(xù)讀兩個字節(jié)數(shù)據(jù)
  temp_data[1]=ReadOneChar();
  temp=temp_data[1];
  temp<<=8;                                               
  temp=temp|temp_data[0];     // 兩字節(jié)合成一個整型變量。
//  tt=temp*0.0625;           // 得到真實十進(jìn)制溫度值,因為DS18B20
                              // 可以精確到0.0625度,所以讀回數(shù)據(jù)的最低位代表的是
                              // 0.0625度。
//  temp=tt*10+0.5;           // 放大十倍,這樣做的目的將小數(shù)點后第一位
                              // 也轉(zhuǎn)換為可顯示數(shù)字,同時進(jìn)行一個四舍五入操作。
  return temp;                // 返回溫度值
}
/******************************************/
/*        讀出序列號函數(shù)                  */
/******************************************/
/*void readrom()              // read the serial 讀取溫度傳感器的序列號
{                             // 本程序中沒有用到此函數(shù)
  uchar sn1,sn2;
  Init_DS18B20();             // DS18B20初始化
  delay(1);
  WriteOneChar(0x33);         // Read ROM
  sn1=ReadOneChar();          // 8位系列編碼
  sn2=ReadOneChar();          // 8位CRC碼
}*/
/******************************************/
/*           顯示延時函數(shù)                 */
/******************************************/
//延時時,主要時間的控制,否則會不斷閃爍
void delay_ms()   
  {
    uchar a,b;
    for(a=50;a>0;a--)
      for(b=40;b>0;b--);
   }
/******************************************/
/*       溫度數(shù)據(jù)顯示處理函數(shù)             */
/******************************************/
void tem_deal(uint tem)
  {
/*************溫度數(shù)據(jù)處理*****************/
   if(tem>6348)                       // 溫度值正負(fù)判斷
     {tem=65536-tem;flag1=1;}         // 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1
      Dis_play[4]=tem&0x0f;           // 取小數(shù)部分的值
	  Dis_play[0]=ditab[Dis_play[4]]; // 存入小數(shù)部分顯示值
      Dis_play[4]=tem>>4;             // 取中間八位,即整數(shù)部分的值
	  Dis_play[3]=Dis_play[4]/100;    // 取百位數(shù)據(jù)暫存
	  Dis_play[1]=Dis_play[4]%100;    // 取后兩位數(shù)據(jù)暫存
	  Dis_play[2]=Dis_play[1]/10;     // 取十位數(shù)據(jù)暫存
	  Dis_play[1]=Dis_play[1]%10;     // 取個位數(shù)據(jù)暫存

   if(!Dis_play[3])       // 最高位為0都不顯示
   {
      Dis_play[3]=0x0a;   // 先判斷百位是否為0
	   if(!Dis_play[2])
	  {
	    Dis_play[2]=0x0a; // 再判斷十位是否為0
	  }
   }

   if(flag1)
   {
      Dis_play[3]=0x0b;    // 為負(fù)數(shù)時,最高位顯示 "-"
   }
  }

/******************溫度數(shù)據(jù)顯示********************/
 void display()
  {
      Disdata=table[Dis_play[3]];   // 輸入百位顯示數(shù)據(jù)
      HUN=0;TEN=1;POS=1;DEC=1;      // 開百位,關(guān)其他位
      delay_ms();                   // 適當(dāng)延時

      Disdata=table[Dis_play[2]];   // 輸入十位顯示數(shù)據(jù)
      TEN=0;HUN=1;POS=1;DEC=1;      // 開十位,關(guān)其他位
      delay_ms();                   // 適當(dāng)延時

      Disdata=table1[Dis_play[1]];  // 輸入個位顯示數(shù)據(jù)
      POS=0;HUN=1;TEN=1;DEC=1;      // 開個位,關(guān)其他位
      delay_ms();                   // 適當(dāng)延時

      Disdata=table[Dis_play[0]];   // 輸入小數(shù)顯示數(shù)據(jù)
      DEC=0;HUN=1;TEN=1;POS=1;      // 開小數(shù)位,關(guān)其他位
 //     delay_ms();                   // 適當(dāng)延時
  }
/******************************************/
/*               主函數(shù)                   */
/******************************************/
 void main()
 {
  Disdata=0xff;   //端口初始化
  P3=0xff;
//開機(jī)顯示"888.8";這段程序可以不要.
    for(h=0; h<4; h++)
     {  
          Dis_play[h]=8;
     }
    for(h=0; h<50; h++) 
     {       
	      display();  //顯示數(shù)據(jù)
          delay_ms(); //延時
     }
//溫度顯示
   do
   {
     tmpchange();      //溫度轉(zhuǎn)換
     tem_deal(tmp());  //顯示溫度值
     display();
   }
     while(1);
 }


//*****************結(jié)束**********************//

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲国产美女国产盗摄| 久久精品无码一区二区三区| 欧美三级午夜理伦三级中视频| 99国产精品99久久久久久| 91久久久免费一区二区| 欧美日韩精品三区| 欧美日韩一区视频| 日韩一区二区在线观看视频| 久久精品视频在线看| 国产精品久久久久久亚洲伦| 亚洲综合丁香婷婷六月香| 国产欧美视频一区二区三区| 午夜精品影院在线观看| 五月综合激情网| 蜜臀精品一区二区三区在线观看 | 亚洲激情五月婷婷| 亚洲在线一区二区三区| 无码av中文一区二区三区桃花岛| 国产精品18久久久久久久久| 欧美专区日韩专区| 久久亚洲免费视频| 香蕉久久夜色精品国产使用方法| 国产成人精品三级| 亚洲三级电影全部在线观看高清| 石原莉奈在线亚洲二区| 92国产精品观看| 精品国产91洋老外米糕| 亚洲一区影音先锋| 国产99久久久精品| 日韩一区二区三区四区| 一区二区三区91| 盗摄精品av一区二区三区| 91精品中文字幕一区二区三区| 1000精品久久久久久久久| 精品综合久久久久久8888| 欧美又粗又大又爽| 中文字幕欧美国产| 精品美女一区二区| 一区二区三区四区蜜桃| 国产成人综合视频| 精品国产乱码久久久久久图片 | 欧美在线一区二区| 国产精品久久久久国产精品日日| 精品一区二区日韩| 欧美美女直播网站| 亚洲一区二区五区| 色就色 综合激情| 亚洲国产精品ⅴa在线观看| 久久精品久久99精品久久| 欧美午夜精品久久久| 亚洲图片另类小说| 国产91色综合久久免费分享| 精品国产免费一区二区三区四区 | 日韩精品在线看片z| 丝袜诱惑制服诱惑色一区在线观看 | 欧美在线观看一区二区| 中文字幕一区三区| 国产一区欧美一区| 欧美大白屁股肥臀xxxxxx| 午夜私人影院久久久久| 欧美日韩一区二区三区视频| 亚洲成年人网站在线观看| 成人h精品动漫一区二区三区| ww亚洲ww在线观看国产| 免费人成网站在线观看欧美高清| 欧美日韩激情一区二区三区| 亚洲尤物视频在线| 国产精品乱码妇女bbbb| 国产成人精品亚洲午夜麻豆| 久久精品一二三| 国产成人av网站| 欧美国产精品中文字幕| 国产电影一区二区三区| 中文字幕乱码日本亚洲一区二区| 国产精品中文字幕欧美| 国产日韩精品一区二区浪潮av| 国产高清精品久久久久| 亚洲国产电影在线观看| 成人午夜av电影| 日韩毛片视频在线看| 日本韩国欧美在线| 亚洲成人黄色影院| 91精品国产色综合久久ai换脸| 麻豆成人在线观看| 2022国产精品视频| 成人av电影在线观看| 亚洲精品伦理在线| 欧美日韩国产综合久久| 秋霞午夜av一区二区三区| 日韩天堂在线观看| 中文字幕欧美日韩一区| 成人app网站| 亚洲精品一二三| 欧美喷潮久久久xxxxx| 精品一区二区三区视频在线观看 | 日韩va亚洲va欧美va久久| 欧美xfplay| 波多野结衣中文字幕一区二区三区| 亚洲激情av在线| 欧美浪妇xxxx高跟鞋交| 久久国产精品免费| 国产精品久久久久久久久搜平片 | 日韩不卡在线观看日韩不卡视频| 日韩女优制服丝袜电影| 国产成人亚洲精品青草天美 | 在线观看亚洲精品| 奇米精品一区二区三区四区 | 91久久精品午夜一区二区| 日韩av一区二区三区四区| 国产拍揄自揄精品视频麻豆| 色婷婷av久久久久久久| 丰满少妇久久久久久久| 夜夜精品视频一区二区| 精品久久久久久久人人人人传媒 | 欧美私模裸体表演在线观看| 国产精品久久久久影院| 欧美优质美女网站| 久久99国产精品尤物| 亚洲色图制服丝袜| 日韩美女视频在线| 91影院在线免费观看| 人人爽香蕉精品| 亚洲欧洲精品天堂一级| 欧美一区二区三区四区五区 | 日韩一区中文字幕| 欧美一级理论片| 99精品国产一区二区三区不卡| 日韩不卡一区二区| 亚洲欧洲国产专区| 精品少妇一区二区三区视频免付费 | 欧美剧情电影在线观看完整版免费励志电影| 青青国产91久久久久久| 亚洲欧美在线高清| 欧美一级久久久| 色婷婷亚洲婷婷| 韩国av一区二区三区在线观看| 亚洲一区二区三区在线播放| 久久精品一区二区三区av| 制服丝袜中文字幕一区| 色综合久久综合网97色综合| 国产一区二区伦理片| 日韩专区中文字幕一区二区| 国产精品九色蝌蚪自拍| 中文字幕在线视频一区| 日韩一级二级三级| 欧美色偷偷大香| 97se狠狠狠综合亚洲狠狠| 国产精品18久久久久久久久久久久 | 国产成人av网站| 蜜桃免费网站一区二区三区| 亚洲国产精品一区二区久久| 国产精品久久久一本精品| 久久综合给合久久狠狠狠97色69| 欧美日韩视频第一区| 91亚洲精品久久久蜜桃网站 | 国产精品久久久久永久免费观看 | 成人av网在线| 国产精品一区二区在线观看不卡| 午夜精品福利一区二区蜜股av | 欧美日韩高清在线播放| 一本色道**综合亚洲精品蜜桃冫| 夫妻av一区二区| 精品一区二区三区在线观看| 日本三级亚洲精品| 偷偷要91色婷婷| 一区二区理论电影在线观看| 国产精品传媒入口麻豆| 国产欧美日韩不卡免费| 久久综合色播五月| 日韩欧美国产电影| 欧美一区二区女人| 欧美一区二区福利视频| 欧美一区二区三区在线| 欧美一区二区三区电影| 日韩一二三区视频| 欧美一卡2卡3卡4卡| 欧美一级黄色片| 91精品国产综合久久蜜臀| 欧美另类videos死尸| 欧美无砖专区一中文字| 欧美日韩精品专区| 欧美日韩电影一区| 欧美精品aⅴ在线视频| 欧美日韩国产一区| 91精品国产综合久久婷婷香蕉 | 久久97超碰国产精品超碰| 秋霞电影网一区二区| 久久精品国产亚洲高清剧情介绍| 免费看日韩精品| 激情另类小说区图片区视频区| 色乱码一区二区三区88| 欧美影院一区二区| 欧美一区二区在线播放| 精品久久国产老人久久综合| 国产丝袜欧美中文另类| 亚洲欧美怡红院| 亚洲国产日韩综合久久精品| 亚洲男女毛片无遮挡| 国产精品丝袜在线| 综合av第一页|