freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

汪海波-基于ds18b20智能溫度控制器設(shè)計(jì)(參考版)

2025-06-08 05:04本頁面
  

【正文】 在此謹(jǐn)向他們表示我最衷心的感謝! 特別要感謝我的導(dǎo)師戴潤梁老師,由于我已參加工作,遠(yuǎn)在東莞,在學(xué)校停 留時間較少,但戴老師常常通過電話,通過郵件指導(dǎo)我如何寫好論文,循循善誘 的教導(dǎo)我,他嚴(yán)謹(jǐn)治學(xué)、認(rèn)真負(fù)責(zé)的作風(fēng)是我今后工作和學(xué)習(xí)的榜樣! 本次畢業(yè)設(shè)計(jì)是自己人生歷程上的又一升華,從選題到定稿,再走向答辯, 既是一次知識技能上的挑戰(zhàn),又是一次加快我理解知識,運(yùn)用知識的成功實(shí)踐, 更重要的是看見自己設(shè)計(jì)的溫度智能控制器能測出環(huán)境溫度,能報(bào)警,能控制繼 電器時覺得非常有成就感。 29 致謝 時光飛逝,四年的大學(xué)學(xué)習(xí)生活即將過去。本文只是初步的設(shè) 計(jì)了智能溫度控制器的核心部件,如溫度采集、處 理、顯示、蜂鳴器的報(bào)警以及繼電器的控制等。 } else RELAY=1。 //顯示溫度的整數(shù)部分 //顯示溫度的小數(shù)部分 //延時 10ms 27 if(TN80) { //初始化時防止初始溫度 度干擾 if(TNLtemp||TN=Htemp) 語句 { RELAY=0。 display_temP3(TD)。 //實(shí)際溫度值 =(TH*256+TL)/16,即 TH*16+TL/16 //這樣得出的是溫度的整數(shù)部分 ,小數(shù)部分被丟棄 TD=(TL%16)*10/16。 TH=ReadOneChar()。 while(1) { ReadyReadTemp()。 display_dot()。 display_explain()。 delaynms(5)。 unsigned char TD。 unsigned char TH。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 Init_DS18B20()。time100。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 } /***************************************************** 函數(shù)功能:做 好 讀 溫 度的 準(zhǔn) 備 ***************************************************/ void ReadyReadTemp(void) { Init_DS18B20()。 //寫顯示地址 ,將在第 2 行第 11 列開始顯示 WriteData(digit[x])。 delaynms(50)。 WriteData(digit[k])。 //取十位 //取個位 //寫顯示地址 ,將在第 2 行第 7 列開始顯示 //將百位數(shù)字的字符常量寫入 LCD //將十位數(shù)字的字符常量寫入 LCD //將個位數(shù)字的字符常量寫入 LCD //延時 1ms 給硬件一點(diǎn)反應(yīng)時間 WriteAddress(0x46)。 //j,k,l 分別儲存溫度的百位、十位和個位 //取百位 25 //寫顯示地址,將在第 2 行第 10 列開始顯示 //將小數(shù)點(diǎn)的字符常量寫入 LCD //延時 1ms 給硬件一點(diǎn)反應(yīng)時間 //寫顯示地址,將在第 2 行第 12 列開始顯示 //從第一個字符開始顯示 //只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫 //將字符常量寫入 LCD //指向下一個字符 //延時 1ms 給硬件一點(diǎn)反應(yīng)時間 k=(x%100)/10。 } } /***************************************************** 函數(shù)功能:顯示溫度的整數(shù)部分 入 口 參 數(shù) : x ***************************************************/ void display_temp1(unsigned char x) { unsigned char j,k,l。 i++。\039。 i = 0。 } /***************************************************** 函數(shù)功能:顯示溫度的單位(Cent) ***************************************************/ void display_cent(void) { unsigned char i。)。 WriteData(39。 delaynms(50)。) { WriteData(Temp[i])。 while(Temp[i] != 39。 WriteAddress(0x40)。 delaynms(100)。) { WriteData(Str[i])。 while(Str[i] != 39。 WriteAddress(0x00)。 delaynms(100)。) { WriteData(Error[i])。 while(Error[i] != 39。 WriteAddress(0x00)。time++)。 } for(time=0。time++)。 //釋放數(shù)據(jù)線 for(time=0。time++)。 // 先將數(shù)據(jù)線拉高 //等待一個機(jī)器周期 //將數(shù)據(jù)線從高拉低時即啟動寫時序 //利用與運(yùn)算取出要寫的某位二進(jìn)制數(shù)據(jù) , //并將其送到數(shù)據(jù) 線上等待 DS18B20 采樣 22 //如果讀到的數(shù)據(jù)是 1,則將 1 存入 dat //延時 3us,兩個讀時序之間必須有大于 1us //返回讀出的十進(jìn)制數(shù)據(jù) for(time=0。 DQ=datamp。 _nop_()。 i8。 } /***************************************************** 函數(shù)功能:向 DS18B20 寫入一個字節(jié)數(shù)據(jù) 入口參數(shù): dat ***************************************************/ WriteOneChar(unsigned char dat) { unsigned char i=0。time++)。//如果讀到的數(shù)據(jù)是 0,則將 0 存入 dat //將單片機(jī)檢測到的電平信號 DQ 存入 r[i] for(time=0。time++); //延時約 6us 使主機(jī)在 15us 內(nèi)采樣 if(DQ==1) dat|=0x80。 備 //單片機(jī)從 DS18B20 讀書據(jù)時 ,將數(shù)據(jù)線從高拉低即啟動讀時序 //等待一個機(jī)器周期 //將數(shù)據(jù)線 人為 拉高 ,為單片機(jī)檢測 DS18B20 的輸出電平作準(zhǔn) for(time=0。 _nop_()。 // 先將數(shù)據(jù)線拉高 //等待一個機(jī)器周期 21 //返回檢測成功標(biāo)志 //儲存讀出的一個字節(jié)數(shù)據(jù) DQ = 0。i++) { DQ =1。 for (i=0。 } /***************************************************** 函數(shù)功能:從 DS18B20 讀取一個字節(jié)數(shù)據(jù) 出口參數(shù): dat ***************************************************/ unsigned char ReadOneChar(void) { unsigned char i=0。time++) 。 //讓單片機(jī)檢測是否輸出了存在脈沖( DQ=0 表示存在) for(time=0。time++)。 //釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) //延時約 30us (釋放總線后需等待 15~60us 讓 for(time=0。time++)。 //再將數(shù)據(jù) 線從高拉低,要求保持 480~960us //略微延時約 600 微秒 for(time=0。time++) 。 //先將數(shù)據(jù)線拉高 //儲存 DS18B20 是否存在的標(biāo)志, flag=0, 表示存在; flag=1, for(time=0。 //設(shè)置全局變量,專門用于嚴(yán)格延時 //延時 5ms ,給硬件一點(diǎn)反應(yīng)時間 //清屏幕指令,將以前的顯示內(nèi)容清除 //延時 5ms ,給硬件一點(diǎn)反應(yīng)時間 /***************************************************** 函數(shù)功能:將 DS18B20 傳感器初始化,讀取應(yīng)答信號 20 出 口 參 數(shù) : flag ***************************************************/ bit Init_DS18B20(void) { bit flag。 } /********************************************************** 以下是 DS18B20 的操作程序 *****************************************************/ sbit DQ=P2^7。 WriteInstruction(0x01)。 //延時 5ms ,給硬件一點(diǎn)反應(yīng)時間 //延時 5ms ,給硬件一點(diǎn)反應(yīng)時間 //顯示模式設(shè)置: 16 2 顯示, 5 7 點(diǎn)陣, 8 位數(shù) //延時 15ms,首次寫指令時應(yīng)給 LCD 一段較長的反應(yīng)時 //連續(xù)三次,確保初始化成功 //延時 5ms ,給硬件一點(diǎn)反應(yīng)時間 //顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍 //延時 5ms ,給硬件一點(diǎn)反應(yīng)時間 WriteInstruction(0x06)。 WriteInstruction(0x0c)。 WriteInstruction(0x38)。 WriteInstruction(0x38)。 間 WriteInstruction(0x38)。 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 19 //將數(shù)據(jù)送入 P0 口,即將數(shù)據(jù)寫入液晶模塊 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 //E 置高電平 E=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //E 置低電平 (寫指令時, E 為高脈沖,就是讓 E 從 0 到 1 發(fā)生 //RS 為高電平, RW 為低電平時,可以寫入數(shù)據(jù) 正跳變,所以應(yīng)先置 0 P0=y。 RW=0。 //顯示位置的確定方法規(guī)定為 80H+地址碼 x } /***************************************************** 函數(shù)功能:將數(shù)據(jù) (字符的標(biāo)準(zhǔn) ASCII 碼 )寫入液晶模塊 入口參數(shù): y(為字符常量 ) ***************************************************/ void WriteData(unsigned char y) { while(BusyTest()==1)。 E=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 P0=dictate。 //E 置低電平 (寫指令時, E 為高脈沖,就是讓 E 從 0 到 1 發(fā)生正 //如果忙就等待 //根據(jù)規(guī)定, RS 和 R/W 同時為低電平時,可以寫入指令 跳變,所以應(yīng)先置 0 _nop_()。 RW=0。 } /***************************************************** 函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊 入口參數(shù): dictate ***************************************************/ void WriteInstruction (unsigned cha
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1