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

正文內(nèi)容

基于51單片機(jī)及ds18b20溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì)-文庫(kù)吧

2025-06-09 16:40 本頁(yè)面


【正文】 該電路是由一個(gè)蜂鳴器和一個(gè)紅色的發(fā)光二極管組成,具體的電路如圖29所示。圖29 報(bào)警電路原理圖3 軟件設(shè)計(jì) DS18B20程序設(shè)計(jì) DS18B20傳感器操作流程根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:? 每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位操作? 復(fù)位成功后發(fā)送一條ROM指令? 最后發(fā)送RAM指令這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500μs,然后釋放,當(dāng)DS18B20收到信號(hào)后等待16~60μs左右,后發(fā)出60~240μs的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。DS18B20的操作流程如圖31所示。如圖31 DS18B20的操作流程 DS18B20傳感器的指令表DS18B20傳感器的操作指令如表31所示。傳感器復(fù)位后向傳感器寫相應(yīng)的命令才能實(shí)現(xiàn)相應(yīng)的功能。表31 DS18B20的指令表指 令指令代碼功 能讀ROM0x33讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合 ROM0x55發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問(wèn)單總線上與該編碼相對(duì)應(yīng)的 DS1820 使之作出響應(yīng),為下一步對(duì)該 DS1820 的讀寫作準(zhǔn)備。搜索 ROM0xF0用于確定掛接在同一總線上 DS1820 的個(gè)數(shù)和識(shí)別 64 位 ROM 地址。為操作各器件作好準(zhǔn)備。跳過(guò) ROM0xCC忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。適用于單片工作。告警搜索命令0xEC執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的片子才做出響應(yīng)。溫度變換0x44啟動(dòng)DS1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長(zhǎng)為750ms()。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀暫存器0xBE讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器0x4E發(fā)出向內(nèi)部RAM的4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。復(fù)制暫存器0x48將RAM中第3 、4字節(jié)的內(nèi)容復(fù)制到EEPROM中。重調(diào) EEPROM0xB8將EEPROM中內(nèi)容恢復(fù)到RAM中的第3 、4字節(jié)。讀供電方式0xB4讀DS1820的供電模式。寄生供電時(shí)DS1820發(fā)送“ 0 ”,外接電源供電 DS1820發(fā)送“ 1 ”。 DS18B20傳感器的初始化時(shí)序DS18B20傳感器為單總線結(jié)構(gòu)器件,在讀寫操作之前,傳感器芯片應(yīng)先進(jìn)性復(fù)位操作也就是初始化操作。DS18B20的初始化時(shí)序如圖32所示。首先控制器拉高數(shù)據(jù)總線,接著控制器給數(shù)據(jù)總線一低電平,延時(shí)480μs,控制器拉高數(shù)據(jù)總線,等待傳感器給數(shù)據(jù)線一個(gè)60240μs的低電平,接著上拉電阻將數(shù)據(jù)線拉高,這樣才初始化完成。圖32 DS18B20初始化時(shí)序 DS18B20傳感器的讀寫時(shí)序 DS18B20傳感器的讀寫操作是在傳感器初始化后進(jìn)行的。每次操作只能讀寫一位。當(dāng)主機(jī)把數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫時(shí)序。有兩種類型的寫時(shí)序:寫“0”時(shí)序,寫“1”時(shí)序。所有的時(shí)序必須有最短60μs的持續(xù)期,在各個(gè)寫周期之間必須有最短1μs的恢復(fù)期。在數(shù)據(jù)總線由高電平變?yōu)榈碗娖街?,DS18B20在15μs至60μs的時(shí)間間隙對(duì)總線采樣,如果為“1”則向DS18B20寫“1”, 如果為“0”則向DS18B20寫“0”。如圖32的上半部分。對(duì)于主機(jī)產(chǎn)生寫“1”時(shí)序時(shí),數(shù)據(jù)線必須先被拉至低電平,然后被釋放,使數(shù)據(jù)線在寫時(shí)序開始之后15μs內(nèi)拉至高電平。對(duì)于主機(jī)產(chǎn)生寫“1”時(shí)序時(shí),數(shù)據(jù)線必須先被拉至低電平,且至少保持低電平60μs。在數(shù)據(jù)總線由高電平變?yōu)榈碗娖街螅瑪?shù)據(jù)線至少應(yīng)保持低電平1μs,來(lái)自DS18B20的輸出的數(shù)據(jù)在下降沿15μs后有效,所以在數(shù)據(jù)線保持低電平1μs之后,主機(jī)將數(shù)據(jù)線拉高,等待來(lái)自DS18B20的數(shù)據(jù)變化,在下降沿15μs之后便可開始讀取DS18B20的輸出數(shù)據(jù)。整個(gè)讀時(shí)序必須有最短60μs的持續(xù)期。如圖32的下半部分。讀時(shí)序結(jié)束后數(shù)據(jù)線由上拉電阻拉至高電平。圖33 DS18B20傳感器的讀寫時(shí)序 DS18B20獲取溫度程序流程圖DS18B20的讀字節(jié),寫字節(jié),獲取溫度的程序流程圖如圖33所示。圖34 DS18B20程序流程圖 顯示程序設(shè)計(jì)顯示電路是由四位一體的數(shù)碼管來(lái)實(shí)現(xiàn)的。由于單片機(jī)的I/O口有限,所以數(shù)碼管采用動(dòng)態(tài)掃描的方式來(lái)進(jìn)行顯示。程序流程圖如圖34所示。圖35 顯示程序流程圖 按鍵程序設(shè)計(jì)按鍵是用來(lái)設(shè)定上下限報(bào)警溫度的。具體的程序流程圖如圖35所示。圖36 按鍵程序流程圖4實(shí)物制作及調(diào)試制作好的實(shí)物如圖41所示。圖41 數(shù)字溫度計(jì)實(shí)物正面圖在做實(shí)物時(shí)出現(xiàn)了不少問(wèn)題。比如本來(lái)是采用NPN型9013驅(qū)動(dòng)蜂鳴器,但是在實(shí)際調(diào)試中蜂鳴器驅(qū)動(dòng)不了,經(jīng)多次試驗(yàn),在三極管的基極電阻與單片機(jī)的接口處接一個(gè)2kΩ的上拉電阻就能驅(qū)動(dòng)了。但考慮到單片機(jī)的I/O口默認(rèn)狀態(tài)時(shí)為高電平,這樣一上電蜂鳴器就會(huì)響,所以將NPN型9013換成了PNP型的9012三極管,效果還不錯(cuò)。5電子綜合設(shè)計(jì)體會(huì)經(jīng)過(guò)將近一個(gè)月的設(shè)計(jì)、焊接、編程、調(diào)試,我們終于完成了數(shù)字溫度計(jì)的設(shè)計(jì),基本能夠達(dá)到設(shè)計(jì)要求,而且還設(shè)計(jì)了一些其他功能,比可以開啟或消除按鍵音功能,開機(jī)動(dòng)畫功能,查看報(bào)警上下限溫度功能。此次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我們所學(xué)到的知識(shí)運(yùn)用到實(shí)踐中去。在大學(xué)課堂的學(xué)習(xí)只是給我們灌輸專業(yè)知識(shí),而我們應(yīng)把所學(xué)的知識(shí)應(yīng)用到我們現(xiàn)實(shí)的生活中去。這次的設(shè)計(jì)不僅使我們將課堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合了起來(lái),而且使我們對(duì)電子電路、電子元器件、印制電路板等方面的知識(shí)有了更進(jìn)一步的認(rèn)識(shí),同時(shí)在軟件編程、焊板調(diào)試、相關(guān)調(diào)試儀器的使用等方面得到較全面的鍛煉和提高,為今后能夠獨(dú)立進(jìn)行某些單片機(jī)應(yīng)用系統(tǒng)的開發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。此次單片機(jī)設(shè)計(jì)也為我們以后進(jìn)行更復(fù)雜的單片機(jī)系統(tǒng)設(shè)計(jì)提供了寶貴的經(jīng)驗(yàn)。在本次設(shè)計(jì)的過(guò)程中,我們遇到不少的問(wèn)題,剛開始焊好的板子下不進(jìn)去程序,經(jīng)過(guò)一再仔細(xì)的檢查,才發(fā)現(xiàn)是在下載口處出了問(wèn)題,由于焊盤口比較小,排針插不進(jìn)去,最后使了很大力氣才插進(jìn)去,插進(jìn)去后才發(fā)現(xiàn)壞了,結(jié)果在去排針的時(shí)候把焊盤給去下來(lái)了,最后只能在旁邊將下載口引了出來(lái)。還有就是文章中提到的蜂鳴器驅(qū)動(dòng)問(wèn)題等等。經(jīng)過(guò)此次的硬件制作與調(diào)試,鍛煉了我們的動(dòng)手實(shí)踐能了。本次設(shè)計(jì)的另一個(gè)重點(diǎn)就是軟件程序的設(shè)計(jì),其中需要有很巧妙的程序算法,雖然以前寫過(guò)幾次程序,但我覺(jué)的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只學(xué)習(xí)理論,有些東西是很難理解的,更談不上掌握。通過(guò)此次的綜合設(shè)計(jì),我們初步掌握了單片機(jī)系統(tǒng)設(shè)計(jì)的基本原理。充分認(rèn)識(shí)到理論學(xué)習(xí)與實(shí)踐相結(jié)合的重要性,對(duì)于書本上的很多知識(shí),不但要學(xué)會(huì),更重要的是會(huì)運(yùn)用到實(shí)踐中去。在以后的學(xué)習(xí)中,我們會(huì)更加注重實(shí)踐方面的鍛煉,多提高自己的動(dòng)手實(shí)踐能力。參考文獻(xiàn)[1] (第三版).北京:清華大學(xué)出版社, [2] 余發(fā)山,:中國(guó)礦業(yè)大學(xué)出版社, [3] :人民郵電出版社, [4] :人民郵電出版社, [5] 于永,戴佳,(第2版).北京:電子工業(yè)出版社, 附1 源程序代碼/********************************************************************* 程序名。 基于DS18B20的測(cè)溫系統(tǒng)* 功 能: 實(shí)時(shí)測(cè)量溫度,超過(guò)上下限報(bào)警,報(bào)警溫度可手動(dòng)調(diào)整。K1是用來(lái)* 進(jìn)入上下限調(diào)節(jié)模式的,當(dāng)按一下K1進(jìn)入上限調(diào)節(jié)模式,再按一下進(jìn)入下限* 調(diào)節(jié)模式。在正常模式下,按一下K2進(jìn)入查看上限溫度模式,顯示1s左右自動(dòng)* 退出;按一下K3進(jìn)入查看下限溫度模式,顯示1s左右自動(dòng)退出;按一下K4消除* 按鍵音,再按一下啟動(dòng)按鍵音。在調(diào)節(jié)上下限溫度模式下,K2是實(shí)現(xiàn)加1功能,* K1是實(shí)現(xiàn)減1功能,K3是用來(lái)設(shè)定上下限溫度正負(fù)的。 * 編程者:zicreate* 編程時(shí)間:2009/10/2 *********************************************************************/include //include //(調(diào)用其中的_nop_()空操作函數(shù)延時(shí))define uint unsigned int //變量類型宏定義,用uint表示無(wú)符號(hào)整形(16位)define uchar unsigned char //變量類型宏定義,用uchar表示無(wú)符號(hào)字符型(8位)uchar max=0x00,min=0x00。 //max是上限報(bào)警溫度,min是下限報(bào)警溫度bit s=0。 //s是調(diào)整上下限溫度時(shí)溫度閃爍的標(biāo)志位,s=0不顯示200ms,s=1顯示1s左右bit s1=0。 //s1標(biāo)志位用于上下限查看時(shí)的顯示void display1(uint z)。 //聲明display1()函數(shù)include //include //include ///***********************主函數(shù)************************/void main(){ beer=1。 //關(guān)閉蜂鳴器 led=1。 //關(guān)閉LED燈 timer1_init(0)。 //初始化定時(shí)器1(未啟動(dòng)定時(shí)器1) get_temperature(1)。 //首次啟動(dòng)DS18B20獲取溫度(DS18B20上點(diǎn)后自動(dòng)將EEPROM中的上下限溫度復(fù)制到TH和TL寄存器) while(1) //主循環(huán) { keyscan()。 //按鍵掃面函數(shù) get_temperature(0)。 //獲取溫度函數(shù) keyscan()。 //按鍵掃面函數(shù) display(temp,temp_d*)。//顯示函數(shù) alarm()。 //報(bào)警函數(shù) keyscan()。 //按鍵掃面函數(shù) }} /********************************************************************* 程序名。 __ds18b20_h__* 功 能: DS18B20的c51編程頭文件 * 編程者:zicreate* 編程時(shí)間:2009/10/2 * 說(shuō) 明:用到的全局變量是:無(wú)符號(hào)字符型變量temp(測(cè)得的溫度整數(shù)部分),temp_d * (測(cè)得的溫度小數(shù)部分),標(biāo)志位f(測(cè)量溫度的標(biāo)志位‘0’表示“正溫度”‘1’表* 示“負(fù)溫度”),標(biāo)志位f_max(上限溫度的標(biāo)志位‘0’表示“正溫度”、‘1’表* 示“負(fù)溫度”),標(biāo)志位f_min(下限溫度的標(biāo)志位‘0’表示“正溫度”、‘1’表* 示“負(fù)溫度”),標(biāo)志位w(報(bào)警標(biāo)志位‘1’啟動(dòng)報(bào)警‘0’關(guān)閉報(bào)警)。 *********************************************************************/ifndef __ds18b20_h__ //定義頭文件define __ds18b20_h__define uint uns
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1