




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選文檔/按下K1顯示序列碼,按下K2顯示實(shí)時(shí)溫度(本實(shí)驗(yàn)適合初學(xué)者調(diào)試?yán)斫?8B20用, )#include <reg52.h>/52單片機(jī)#define uchar unsigned char#define uint unsigned int /uint 無(wú)符號(hào)整數(shù)sbit DQ=P22; /單總線(與自己的開(kāi)發(fā)板相匹配) uint temp; /溫度uchar flag1; /符號(hào) sbit rs = P10; / 控制LCD (與自己的開(kāi)發(fā)板相匹配) sbit rw = P11; / 控制LCD (與自己的開(kāi)發(fā)板相匹配) sbit lcden = P25; /led使能端(
2、與自己的開(kāi)發(fā)板相匹配)sbit K1=P34; /獨(dú)立按鍵k1(與自己的開(kāi)發(fā)板相匹配)sbit K2=P35; /獨(dú)立按鍵k2 (與自己的開(kāi)發(fā)板相匹配)sbit du=P26;/位選(防LED燈亂閃)(與自己的開(kāi)發(fā)板相匹配)sbit we=P27; /段選(防LED燈亂閃) (與自己的開(kāi)發(fā)板相匹配)uchar a,b,c,d,e,f,g,h,A1,A2,A2t,A3,A4,A5;/寫(xiě)在LCD上的字符,具體在程序中看 void delay(uint count) /延遲程序 (200*count)/8 毫秒 uint i; while(count) i=200; while(i>0) i-
3、; count-; void DQreset(void) /初始化,主機(jī)將DQ拉高 (上升沿) (從機(jī)檢測(cè)到上升沿后延時(shí)15到60毫秒,從機(jī)拉低總線60到240毫秒表示“我”在線) /從機(jī)的工作是自動(dòng)完成的 uint i; DQ=0; i=103; while(i>0)i-; DQ=1; i=4; while(i>0)i-; bit tmpreadbit() /從18b20讀1位 uint i; bit dat; DQ=0;i+; DQ=1;i+;i+; dat=DQ; i=8;while(i>0)i-; return (dat); /返回datuchar tmpread()
4、 /從18b20讀1字節(jié) uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit(); dat=(j<<7)|(dat>>1); return(dat);void tmpwritebyte(uchar dat) /18b20寫(xiě)1bit (只能用于寫(xiě)命令) uint i; uchar j; bit testb; for(j=1;j<=8;j+) /一位一位地傳 testb=dat&0x01; dat=dat>>1; if(testb) DQ=0; i+;i+; DQ=1; i=8;while(
5、i>0)i-; else DQ=0; i=8;while(i>0)i-; DQ=1; i+;i+; void tmpchange(void) /溫度轉(zhuǎn)換子程序 DQreset(); delay(1); tmpwritebyte(0xcc); /CCH跳過(guò)ROM tmpwritebyte(0x44); /44H溫度轉(zhuǎn)換uint tmp() /讀取溫度子程序 float tt; uchar a,b; DQreset(); /無(wú)論什么命令, 首先都要發(fā)起初始化 delay(1); tmpwritebyte(0xcc); /跳過(guò)ROM(本實(shí)驗(yàn)中實(shí)驗(yàn)板上只連接一塊18B20) tmpwrit
6、ebyte(0xbe); /讀便簽存儲(chǔ)器(溫度以二進(jìn)制儲(chǔ)存于BEH) a=tmpread();/a為低八位 b=tmpread();/b為高八位 temp=b; temp<<=8; temp=temp|a; tt=temp*0.0625; /二進(jìn)制乘0.0625為十進(jìn)制 temp=tt*1000; /精度為0.001 return temp;void LCD_WriteCom(uchar com)/LCD寫(xiě)入命令 rs = 0;rw = 0; P0 = com; delay(5); lcden = 0; delay(5); lcden = 1; delay(5); lcden =
7、0; void LCD_WriteData(uchar dat)/LCD寫(xiě)入數(shù)據(jù) rs = 1; rw = 0; lcden = 0; P0 = dat; delay(5); lcden = 1; delay(5); lcden = 0; delay(5);void LCD_Init() /LCD初始化 LCD_WriteCom(0x38); delay(15); LCD_WriteCom(0x08); delay(3); LCD_WriteCom(0x01); delay(3); LCD_WriteCom(0x06); delay(3); LCD_WriteCom(0x0c); void D
8、isplay18B20Rom(char Rom) /display rom uchar h,l; l = Rom & 0x0f; h = Rom & 0xf0; h >>= 4; if( ( h >= 0x00 )&&( h <= 0x09 ) ) LCD_WriteData(h+0x30); else LCD_WriteData(h+0x37); if( ( l >= 0x00 )&&( l <= 0x09 ) ) LCD_WriteData(l+0x30); else LCD_WriteData(l+0x3
9、7); void temshow() /溫度顯示/LCD_WriteCom(0x01); 寫(xiě)命令不能放在此位置DQreset(); /無(wú)論什么命令, 首先都要發(fā)起初始化tmpchange(); /溫度轉(zhuǎn)換(相當(dāng)于讀溫度前的初始化)temp=tmp();/讀溫度A1=temp/10000;A2=(temp%10000)/1000;A3=(temp%10000)%1000)/100;A4=(temp%10000)%1000)%100)/10;A5=(temp%10000)%1000)%100)%10;LCD_WriteCom(0x80);LCD_WriteData('t') ;LC
10、D_WriteData('e');LCD_WriteData('m') ;LCD_WriteData('p') ;LCD_WriteData(':');LCD_WriteCom(0x80+0x40);LCD_WriteData('+') ;LCD_WriteData('0'+A1);LCD_WriteData('0'+A2) ;LCD_WriteData('.') ;LCD_WriteData('0'+A3);LCD_WriteData('0&
11、#39;+A4);LCD_WriteData('0'+A5);void romshow()/序列碼顯示LCD_Init();rw = 0;DQreset();/無(wú)論什么命令, 首先都要發(fā)起初始化delay(1);tmpwritebyte(0x33);/讀ROM,允許主機(jī)讀出DS18B20的64為二進(jìn)制序列碼(僅限于總線上存在單只DS18B20) delay(1); a = tmpread(); b = tmpread(); c = tmpread(); d = tmpread(); e = tmpread(); f = tmpread(); g = tmpread(); h =
12、 tmpread(); LCD_WriteCom(0x80);/LCD第一行開(kāi)始LCD_WriteData('n');LCD_WriteData('u');LCD_WriteData('m');LCD_WriteData('b');LCD_WriteData('e');LCD_WriteData('r'); LCD_WriteCom(0x80+0x40);/lCD第二行開(kāi)始 Display18B20Rom(a); Display18B20Rom(b); Display18B20Rom(c); Display18B20Rom(d); Display18B20Rom(e); Display18B20Rom(f); Display18B20Rom(g); Displa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司股東股份合同
- 聚焦關(guān)鍵 航空維修執(zhí)照試題及答案
- 飛機(jī)內(nèi)飾維護(hù)標(biāo)準(zhǔn)試題及答案
- 護(hù)理數(shù)據(jù)解讀試題及答案訓(xùn)練
- 醫(yī)療數(shù)據(jù)挖掘技術(shù)在臨床研究中的應(yīng)用
- 安全生產(chǎn)領(lǐng)域的外語(yǔ)知識(shí)點(diǎn)總結(jié)試題及答案
- 一級(jí)消防考試綜合能力測(cè)試試題及答案
- 2025年初中地理學(xué)業(yè)水平考試模擬試卷及答案:鄉(xiāng)土地理特色考點(diǎn)梳理試題
- 2025年建造師考試發(fā)展趨勢(shì)展望試題及答案
- 2025年注冊(cè)會(huì)計(jì)師《會(huì)計(jì)》所得稅會(huì)計(jì)模擬試題全解析及答案
- GB/T 5276-2015緊固件螺栓、螺釘、螺柱及螺母尺寸代號(hào)和標(biāo)注
- GB/T 31929-2015船舶用不銹鋼焊接鋼管
- GB/T 11379-2008金屬覆蓋層工程用鉻電鍍層
- GB 28375-2012混凝土結(jié)構(gòu)防火涂料
- 靜脈溶栓路徑和知情同意書(shū)
- 地鐵站裝修報(bào)價(jià)
- 《寄冰》-完整版課件
- 內(nèi)科學(xué)-骨髓增生異常綜合征(MDS)
- 八年級(jí)下冊(cè)英語(yǔ)七選五專項(xiàng)講練一
- ISO31000風(fēng)險(xiǎn)管理標(biāo)準(zhǔn)中文版
- 《S7-1200-PLC-編程及應(yīng)用技術(shù)》試題試卷及答案2套
評(píng)論
0/150
提交評(píng)論