




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第幾教學(xué)課件人教版
- 針清教學(xué)課件
- 企業(yè)進(jìn)入資本市場(chǎng)的必要條件和案例分析
- 英語(yǔ)周報(bào)教學(xué)課件系列
- 計(jì)算機(jī)視覺(jué)技術(shù) 課件 2.4:OpenCV基本使用
- 教育法視頻課件教學(xué)
- DB23∕T 1453-2019 黑龍江省住宅小區(qū)有線數(shù)字電視工程技術(shù)規(guī)程
- iyb創(chuàng)業(yè)培訓(xùn)教學(xué)課件
- 無(wú)償打卡活動(dòng)方案
- 旅游公司品牌策劃方案
- 一次風(fēng)壓力控制系統(tǒng)
- 小組工作教案
- GB/T 21671-2018基于以太網(wǎng)技術(shù)的局域網(wǎng)(LAN)系統(tǒng)驗(yàn)收測(cè)試方法
- GB/T 11177-1989無(wú)機(jī)膠粘劑套接壓縮剪切強(qiáng)度試驗(yàn)方法
- 鈷領(lǐng)域:華友鈷業(yè)企業(yè)組織結(jié)構(gòu)及部門(mén)職責(zé)
- 內(nèi)容參考zipc教程
- FZ/T 43022-2011莨綢工藝飾品
- 基金投資管理系統(tǒng)O32用戶手冊(cè)-股指期貨套保系統(tǒng)
- 機(jī)械原理課程設(shè)計(jì)-自動(dòng)打印機(jī)設(shè)計(jì)說(shuō)明書(shū)
- 建設(shè)工程消防設(shè)計(jì)審查申報(bào)表
- 江西省中考語(yǔ)文備考及答題技巧——語(yǔ)文考點(diǎn)及答題策略-人教版初中九年級(jí)全冊(cè)語(yǔ)文素材
評(píng)論
0/150
提交評(píng)論