DS18b20溫度采集,液晶1602顯示.doc_第1頁
DS18b20溫度采集,液晶1602顯示.doc_第2頁
DS18b20溫度采集,液晶1602顯示.doc_第3頁
DS18b20溫度采集,液晶1602顯示.doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系網(wǎng)站刪除/*Happy Everyday!*/DS18B20溫度采集,可以讓液晶1602顯示出來!呵呵呵!/DS18B20溫度采集,LCD1602顯示#include#define uchar unsigned char#define uint unsigned intuchar table= temp:;uchar table1=www.E3_;/*IO引腳定義*/sbit rs=P10;sbit rw=P11;sbit en=P12;sbit dq=P32;sbit beep=P15;uchar num;uint tempwarn,d=0,h=0;void delay(uint n)/延時程序while(n0)n-;void write_com(uchar com) /液晶寫命令程序rs=0;/等0輸入命令en=0;/液晶使能信號初始化P0=com;/把com參數(shù),液晶的命令值送到P0口delay(100);/延時,按照液晶的時序圖的要求en=1;/使能信號,0到1表示上升沿打開可以寫命令數(shù)據(jù)到液晶里delay(100);en=0;/使能信號回復(fù)void write_data(uchar date) /液晶寫數(shù)據(jù)程序rs=1; /等1表示輸入數(shù)據(jù)en=0;P0=date; /把date參數(shù),液晶的數(shù)據(jù)送到P0口delay(100);en=1;delay(100);en=0;void init()/液晶初始化程序en=0;write_com(0x38);/設(shè)置16X2顯示,5X7點陣,8位數(shù)據(jù)口write_com(0x0c);/設(shè)置開顯示,不顯示光標(biāo)write_com(0x06);/寫一個字符后地址指針加1write_com(0x01);/顯示清0,數(shù)據(jù)指針清0void Writebyte(uchar dat)/DS18B20溫度芯片的寫字節(jié)程序uchar j;for(j=0;j=1;uchar Readbyte(void)/DS18B20溫度芯片讀字節(jié)程序uchar i,dat=0;for(i=0;i=1;dq=1;if(dq=1)dat|=0x80;delay(4);return dat;void initds18b20(void)/溫度芯片初始化程序uchar x=0;dq=1;delay(8);dq=0;delay(80);dq=1;delay(14);x=dq;delay(20);void Readtemp(void)/讀溫度程序initds18b20();Writebyte(0xcc);Writebyte(0x44);initds18b20();Writebyte(0xcc);Writebyte(0xbe);d=Readbyte();/溫度信號的低8位數(shù)據(jù)函數(shù)h=Readbyte();/溫度信號的高8位數(shù)據(jù)函數(shù)convert() /溫度信號處理程序,把溫度信號數(shù)據(jù)值轉(zhuǎn)換為液晶顯示uint temp,tmp;float tt;tmp=d; /低8位數(shù)據(jù)給tmptemp=h; /高8位數(shù)據(jù)給temptemp=4;table8=(temp/100)+0;/液晶第9位字符為溫度的百位數(shù),例如120度的1table9=(temp/10)%10+0;/液晶第10位字符為溫度的十位數(shù),例如120度的2table10=(temp%10)+0;/液晶第9位字符為溫度的個位數(shù),例如120度的0tmp=tmp&0x0f; /低位溫度提取小數(shù)數(shù)據(jù)tt=tmp*0.0625; /小數(shù)部分?jǐn)?shù)據(jù)轉(zhuǎn)換table11=.; /顯示小數(shù)點table12=(uchar)(tt*10)%10+0;/小數(shù)點后面的小數(shù)數(shù)字tempwarn=temp;return tempwarn;/溫度值返回void warn(uint tempwarn)/溫度報警程序if(tempwarn=25)/如果溫度大于25度并且啟動報警beep=0;delay(5000);beep=1;delay(50000);void main()rw=0; /rw直接置0,應(yīng)該在液晶初始化前,否則斷電后再通電就不能顯示,切記!init(); /液晶初始化函數(shù)write_com(0x80+0x40); /0x80+0x40表示液晶的第二行開始顯示for(num=0;num15;num+)/num16,16表示顯示16位write_data(table1num);/液晶顯示需要的內(nèi)容,調(diào)用寫液晶數(shù)據(jù)函數(shù),這行顯示拼音dengtianmingwhile(1)/大循環(huán),不斷檢測和更新溫度 Readtemp(); convert(); warn(tempwarn); write_com(0x80); /液晶的第一行開始地址

溫馨提示

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

評論

0/150

提交評論