單片機應用技術-基于STC15系列單片機 課件 6.1電子溫度計_第1頁
單片機應用技術-基于STC15系列單片機 課件 6.1電子溫度計_第2頁
單片機應用技術-基于STC15系列單片機 課件 6.1電子溫度計_第3頁
單片機應用技術-基于STC15系列單片機 課件 6.1電子溫度計_第4頁
單片機應用技術-基于STC15系列單片機 課件 6.1電子溫度計_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目智能測溫系統的實現智能測溫系統主要內容2液晶顯示系統的實現3多路測溫系統的實現4藍牙電子溫度計的實現1電子溫度計的實現電子溫度計任務演示任務分析電子溫度計程序包括溫度的采集、溫度數據的處理以及溫度值在數碼管的顯示等DS18B20的引腳功能測溫范圍為-55℃~125℃,輸出12位數字溫度值1-GND,地3-Vdd,外供電時為電源接入端,總線供電時接地2-DQ,數據輸入/輸出。數據傳輸端,“單總線”DS18B20的內部結構存儲器64位ROM64bit的ROM編碼是器件的身份標識非易失性存儲器E2PROM非易失性存儲器E2PROM共3字節,包括高溫觸發器TH、低溫觸發器TL和配置寄存器高溫觸發器TH低溫觸發器TL配置寄存器配置寄存器R1R0分辨率轉換時間00993ms0110187ms1011375ms1112750msTM是測試位,用戶不改動R1R0設置分辨率高速RAM序號高速存儲器RAM0溫度值低位1溫度值高位2高溫報警寄存器3低溫報警寄存器4配置寄存器5保留6保留7保留8CRC校驗字節輸出溫度值時先低8位,再高8位溫度值存放格式S為符號位,正溫度S=0,負溫度S=1溫度值以補碼形式存放,當測得的溫度是負數時,應作補碼到原碼的轉換20~26為7位整數部分2-1~2-4為4位小數部分復位時序和流程復位操作首先在t0時刻發出最短為480μs的低電平,在t1時刻釋放總線進入接收狀態,DS18B20檢測到總線變高后,等15~60μs,在t2時刻發出低電平信號表示響應DQ=1DQ=0讀DQ狀態:0表示成功;1表示失敗延時480~960usDQ=1延時15~60us延時240~480us復位函數bitreset(void) //復位DS18B20{biterr;DQ=0; //在數據線上產生600us的低電平delay1us(600); DQ=1; //數據線拉高delay1us(60); //延時60userr=DQ; //讀取數據線狀態,err=0:復位成功delay1us(540); //err=1:復位失敗return(err);}DQ=1DQ=0讀DQ狀態:0表示成功;1表示失敗延時480~960usDQ=1延時15~60usDQ=1保持240~480us寫時序和流程總線拉至低電平的t0時刻開始的15μs之內將要寫的數據位送到總線上,在t0后的15~60μs內若為低電平寫入的是0;若為高電平寫入的為1。連續寫2位之間的間隙應大于1μsDQ=1DQ=0DQ=1保持1us表示寫1位結束延時15usDQ=1或DQ=0延時15~60us寫函數DQ=0; //產生15us的低電平delay1us(15);DQ=dat0; //將需要寫的數據0或1送DQ線delay1us(15);//延時15usDQ=1;//數據線拉高,為寫入下一位做準備DQ=1DQ=0DQ=1保持1us表示寫1位結束延時15usDQ=1或DQ=0延時15~60us寫一個字節函數voidwrbyte(uchard) {uchari;dat=d;for(i=8;i>0;i--)//循環寫8位(先低位,后高位){DQ=0; delay1us(15);

DQ=dat0; dat=dat>>1;//將下一位要寫入的數據移到最低位 delay1us(15); //延時15us DQ=1;//數據線拉高,為寫入下一位做準備}}DQ=1DQ=0延時15usDQ=1或DQ=0延時15~60usDQ=1保持1us數據》1位寫字節數據存dat,以下操作重復8次讀時序和流程單片機在t0時刻將總線從高拉至低電平,幾個μs后的t1時刻釋放總線。DS18B20通過保持總線為高表示發送“1”,將總線拉低表示發送“0”,并在t2時刻釋放總線。單片機必須在t2之前讀取總線狀態。讀時序至少需要60μs,且兩次讀時序之間至少需要1μs的恢復時間DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結束讀函數DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結束DQ=0;//產生負脈沖delay1us(3);DQ=1; //數據總線拉高delay1us(3);//延時3usdat7=DQ; //讀取數據delay1us(60);//延時,為讀下一位做準備讀一個字節函數DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結束讀取字節數據dat=0,以下操作重復8次DQ=0延時幾usDQ=1延時幾us讀取DQ延時60usDQ=1表示讀結束ucharrdbyte(void) //從DS18B20讀取一個字節{uchari;dat=0; //讀出數據初值為0for(i=8;i>0;i--) //循環讀8位(先低位,后高位){dat=dat>>1; //讀出數據先右移一位DQ=0;delay1us(3);DQ=1; delay1us(3);//延時3usdat7=DQ; //讀取數據delay1us(60);} return(dat);}DS18B20的基本操作指令名稱代碼功能跳過ROM0XCC單片機可用這一命令同時訪問總線上的所有設備而不需送出ROM序列號信息讀ROM0X33單片機發該命令,要求從ROM讀出8個字節序列號匹配ROM0X55執行該命令后,單片機必須接著向DS18B20發送8個字節的產品序列號,以選中單總線上指定的DS18B20,只有完全匹配的DS18B20才能對隨后由單片機發出的讀暫存器操作命令進行響應溫度轉換0X44該命令開始一次溫度轉換讀暫存器0XBE用該命令可讀DS18B20中9個暫存器中由低到高的內容溫度的采集處理發送ROM命令0XCC,表示跳過ROM發送RAM命令0X44,要求傳感器轉換溫度發送ROM命令0XCC,表示跳過ROM發送RAM命令0XBE,要求從傳感器讀取溫度從傳感器讀取溫度值的低字節和高字節將高字節溫度值左移8位+低字節溫度值合并成一個16位二進制補碼形式的溫度值,以備后續顯示處理發送0X44命令延時發送0XCC命令發送0XBE命令讀溫度低字節讀溫度高字節發送0XCC命令高字節左移8位+低字節形成完整溫度值溫度的采集處理發送0X44命令延時發送0XCC命令發送0XBE命令讀溫度低字節讀溫度高字節發送0XCC命令高字節左移8位+低字節形成完整溫度值voidconvert(void)//啟動DS18B20開始溫度轉換{biterr;err=reset(); //復位傳感器wrbyte(0xcc);//跳過多傳感器識別wrbyte(0x44);//啟動溫度轉換}intreadt(void) //讀取DS18B20暫存器中的溫度值{ucharh,l;biterr;err=reset(); //復位傳感器wrbyte(0xcc); //跳過多傳感器識別wrbyte(0xbe); //讀暫存器指令l=rdbyte(); //讀溫度低位h=rdbyte(); //讀溫度高位return(h*256+l);}溫度值的顯示處理16位溫度值的補碼進行正負處理處理后數據右移4位就是實際溫度值的整數部分處理后數據中的低4位就是實際溫度值的小數部分t取反+1求補碼t右移4位得到整數部分,分離出百位、十位、個位并轉換成數碼管字形碼并處理顯示格式溫度值t>0?溫度正負標記zf=1是否溫度正負標記zf=0t&0X0F得到小數部分,轉換成數碼管字形碼并處理顯示格式溫度值的顯示處理溫度值的顯示處理t取反+1求補碼t右移4位得到整數部分,分離出百位、十位、個位并轉換成數碼管字形碼并處理顯示格式溫度值t>0?溫度正負標記zf=1是否溫度正負標記zf=0t&0X0F得到小數部分,轉換成數碼管字形碼并處理顯示格式voidformat(intt){bitzf; //正負標記,0:正數1:負數

zf=0; if(t<0) {zf=1; t=-t+1; }dbuf[0]=dp[t&0x0f]; //求出溫度的小數t=t>>4; dbuf[3]=t/100; //求出百位t=t%100;dbuf[2]=t/10; //求出十位dbuf[1]=t%10; //求出個位if(zf==1) //如果是負數{if(dbuf[2]==0) //如果十位為0{dbuf[3]=0x13;dbuf[2]=0x12; }//顯示格式為'-x.x'els

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論