版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機溫度采集程序用一片DS18B20構成測溫系統(tǒng),測量的溫度精度達到度,測量的溫度的范圍在一20度到+100度之間,用8位數碼管顯示出來。由于DS18B20是在一根]X)線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。DS18B20的讀時序對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內就得釋放單總線,以讓DS18B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣D總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內就得釋放單總線。本程序實現溫度的采集并且實時在數碼管上顯示出來。具體程序如下:A 名稱:18B20溫度傳感器日期:修改:無內容:18B20單線溫度檢測的應用樣例程序 ,請將18b20插緊,然后在數碼管可以顯示, C表示攝氏度,如顯示表示當前溫度度 */#hchde<>//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義hchdeOhchdeO#defheucharuns^nedchar#defheuintunsignedint;A 定義端口 */sbitsegl二P2P;sbitseg2=P2*l;sbitseg3=P2*2;sbitDQ二P「3#isl8b20端口sfrdatafed=0x80^ 顯示數據端口A 全局變量 */utittemp;ucharfJag_getcount;num,mhute,second;ucharcodetabD=4)x3f0x06,0x5b,0x4^0x66,0x6d,0x7d,0x07,0x7£0x6^;力 段數碼管段碼表共陽ucharstr[6];A函數聲明*/voiddelavl(ucharMS);unsignedhtReadTemperaUiie(void);voidiiit_DS18B20^oid);unsignedcharReadOneChar(void);voidWriteOneChar(uns^nedchardat);voiddelayUnsignedint》;A 主函數 */mah0{unsignedcharTempH,TempL;TMOD=0x01〃定時器設置THO二Oxef;TLO二Oxfi);IE二0x82;TRO二1;P2=0x00;count=0;whi]e(1){str[5>0x39; // 顯示C符號strLl]=tab[TempH/100];〃 十位溫度strdUtab[(TempH%100)40];H 十位溫度str[3]=tabL(TempH%100)%10]|0x80;〃 個位溫度,帶小數點str[4]=1ab[TempL];if(fhg_getF=l)H 定時讀取當前溫度{femp=ReadTempexatuie0;if(femp&0x8000){strOrOx/;〃 負號標志femp=^temp;H 取反加1■femp+二1;}elsestrfO^O;TempH=temp>>4;TempL=temp&OxOF;TempL二TempL郴/10'J/小數近似處理flag_get=O;}}}A 定時器中斷 */voidtin&oid)htemipt1using1/7 中斷,用于數碼管掃描和溫度檢測間隔THO二Oxef;〃定時器重裝值TLO=OxfD;num++;if(num二二50)hum二0;flag_getFl;〃標志位有效second++;if(second〉二60){second=0;mhute++;}}count+-+;iffcount==l)P2二0;dataJed=str[0];}/7 數碼管掃描iffcount==2)P2二1;da-taled=str[i];}iffcount==3){P2=2;dataled=str[2];}iffcount==4){P2二3;dataled=str[3];}iffcount==5){P2二4;dataled二strEl];}iffcount==6){P2=5;dataled=str[5];count=0;}}A 延時函數 */voiddebydns冠nedinti// 延旳?函數{while(H;}A 初始化 */
voidhiLDS18B20(void)unsignedcharx=0;DQ二1;加Q復位dehy(B)dehy(B);//DQ二0; 〃deby?0);〃DQ二1; //單片機將DQ拉低精確延時大于480us拉高總線dehvQO);稍做延時后如果x=0則初始化成功x=1則初始化失敗dehy(5);*/A 讀一個字節(jié)*/unsignedcharReadOneChar(void){unsignedcharf0;unsignedchardat二0;for(F8;£>0;r-){DQ=O;〃 給脈沖信號da€>>=l;DQ二1;〃 給脈沖信號if0Q)dat|=0x80;deby(5);}letuin^dat);}*寫一個字節(jié)*/voidWriteOneChar(nns^nedchardat){unsignedcharf0;for(f8;£>0;H{DQ二0;DQ二da1&0x0l;dehy(5);
DQ二1;dat>>=l;}dehy(5);}A讀取溫度*/unsignedintReadTempeiatLiie(void){unsignedchara=0:unsignedintb=0;unsignedhttFO;IniLDS18B2O0;跳過讀序號列號的操作WriteOneChar(0x44);HdehyGOO);]niLDS18B2O0;WriteOneChar(0xCC);〃WriteOneChar(0xBE);//a=ReadOneCharO;跳過讀序號列號的操作WriteOneChar(0x44);HdehyGOO);]niLDS18B2O0;WriteOneChar(0xCC);〃WriteOneChar(0xBE);//a=Re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度WPS合同云服務及數據安全合作協議
- 2024年院校合作辦學實施合同版B版
- 2024年企業(yè)員工績效獎金補貼協議范本模板3篇
- 2025版金融投資法律風險評估與咨詢服務合同協議書3篇
- 2024渣土外運保險服務合作協議
- 二零二五年度企業(yè)定制化定向采購協議書創(chuàng)新合作模式3篇
- 2024年環(huán)保產品研發(fā)與應用協議
- 2024民間借貸合同債權保護與債務人權益保障3篇
- 2024年項目風險管理合同3篇
- 2024年門窗安裝服務外部合作協議
- 兒童涂色畫空白填色圖(100張文本打印版)
- 猩紅熱ppt幻燈片課件
- 輸配電線路基礎知識
- 2015年日歷表(超清晰A4打印版)
- 剪式汽車舉升機設計
- 跌落測試(中文版)-ISTA-2A-2006
- 健康證體檢表
- 右心導管檢查及心血管造影ppt課件
- 大氣課程設計---袋式除塵器
- 市政橋梁工程施工
- 長線法節(jié)段梁預制施工方案wgm
評論
0/150
提交評論