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

正文內(nèi)容

基于51單片機(jī)及ds18b20溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì)-在線瀏覽

2024-08-04 16:40本頁面
  

【正文】 進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位s=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表22是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。調(diào)節(jié)模塊是由四個(gè)按鍵接地后直接接單片機(jī)的I/O口完成的。程序設(shè)計(jì)為低電平觸發(fā)。報(bào)警時(shí)蜂鳴器間歇性報(bào)警,發(fā)光二極管閃爍。原理圖如圖24所示。電源供電方式如圖27,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。采用寄生電源供電方式時(shí)VDD端接地。 顯示電路設(shè)計(jì)顯示電路是由四位一體的共陰數(shù)碼管進(jìn)行顯示的,數(shù)碼管由三極管9013驅(qū)動(dòng)。圖25 四位一體的共陰數(shù)碼管管腳分布圖顯示電路的總體設(shè)計(jì)如圖26所示。電路原理圖如圖210所示。該電路是由一個(gè)蜂鳴器和一個(gè)紅色的發(fā)光二極管組成,具體的電路如圖29所示。復(fù)位要求主CPU將數(shù)據(jù)線下拉500μs,然后釋放,當(dāng)DS18B20收到信號(hào)后等待16~60μs左右,后發(fā)出60~240μs的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。如圖31 DS18B20的操作流程 DS18B20傳感器的指令表DS18B20傳感器的操作指令如表31所示。表31 DS18B20的指令表指 令指令代碼功 能讀ROM0x33讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合 ROM0x55發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對(duì)應(yīng)的 DS1820 使之作出響應(yīng),為下一步對(duì)該 DS1820 的讀寫作準(zhǔn)備。為操作各器件作好準(zhǔn)備。適用于單片工作。溫度變換0x44啟動(dòng)DS1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長(zhǎng)為750ms()。讀暫存器0xBE讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器0x4E發(fā)出向內(nèi)部RAM的4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。重調(diào) EEPROM0xB8將EEPROM中內(nèi)容恢復(fù)到RAM中的第3 、4字節(jié)。寄生供電時(shí)DS1820發(fā)送“ 0 ”,外接電源供電 DS1820發(fā)送“ 1 ”。DS18B20的初始化時(shí)序如圖32所示。圖32 DS18B20初始化時(shí)序 DS18B20傳感器的讀寫時(shí)序 DS18B20傳感器的讀寫操作是在傳感器初始化后進(jìn)行的。當(dāng)主機(jī)把數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫時(shí)序。所有的時(shí)序必須有最短60μs的持續(xù)期,在各個(gè)寫周期之間必須有最短1μs的恢復(fù)期。如圖32的上半部分。對(duì)于主機(jī)產(chǎn)生寫“1”時(shí)序時(shí),數(shù)據(jù)線必須先被拉至低電平,且至少保持低電平60μs。整個(gè)讀時(shí)序必須有最短60μs的持續(xù)期。讀時(shí)序結(jié)束后數(shù)據(jù)線由上拉電阻拉至高電平。圖34 DS18B20程序流程圖 顯示程序設(shè)計(jì)顯示電路是由四位一體的數(shù)碼管來實(shí)現(xiàn)的。程序流程圖如圖34所示。具體的程序流程圖如圖35所示。圖41 數(shù)字溫度計(jì)實(shí)物正面圖在做實(shí)物時(shí)出現(xiàn)了不少問題。但考慮到單片機(jī)的I/O口默認(rèn)狀態(tài)時(shí)為高電平,這樣一上電蜂鳴器就會(huì)響,所以將NPN型9013換成了PNP型的9012三極管,效果還不錯(cuò)。此次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我們所學(xué)到的知識(shí)運(yùn)用到實(shí)踐中去。這次的設(shè)計(jì)不僅使我們將課堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合了起來,而且使我們對(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ǔ)。在本次設(shè)計(jì)的過程中,我們遇到不少的問題,剛開始焊好的板子下不進(jìn)去程序,經(jīng)過一再仔細(xì)的檢查,才發(fā)現(xiàn)是在下載口處出了問題,由于焊盤口比較小,排針插不進(jìn)去,最后使了很大力氣才插進(jìn)去,插進(jìn)去后才發(fā)現(xiàn)壞了,結(jié)果在去排針的時(shí)候把焊盤給去下來了,最后只能在旁邊將下載口引了出來。經(jīng)過此次的硬件制作與調(diào)試,鍛煉了我們的動(dòng)手實(shí)踐能了。通過此次的綜合設(shè)計(jì),我們初步掌握了單片機(jī)系統(tǒng)設(shè)計(jì)的基本原理。在以后的學(xué)習(xí)中,我們會(huì)更加注重實(shí)踐方面的鍛煉,多提高自己的動(dòng)手實(shí)踐能力。 基于DS18B20的測(cè)溫系統(tǒng)* 功 能: 實(shí)時(shí)測(cè)量溫度,超過上下限報(bào)警,報(bào)警溫度可手動(dòng)調(diào)整。在正常模式下,按一下K2進(jìn)入查看上限溫度模式,顯示1s左右自動(dòng)* 退出;按一下K3進(jìn)入查看下限溫度模式,顯示1s左右自動(dòng)退出;按一下K4消除* 按鍵音,再按一下啟動(dòng)按鍵音。 * 編程者:zicreate* 編程時(shí)間:2009/10/2 *********************************************************************/include //include //(調(diào)用其中的_nop_()空操作函數(shù)延時(shí))define uint unsigned int //變量類型宏定義,用uint表示無符號(hào)整形(16位)define uchar unsigned char //變量類型宏定義,用uchar表示無符號(hào)字符型(8位)uchar max=0x00,min=0x00。 //s是調(diào)整上下限溫度時(shí)溫度閃爍的標(biāo)志位,s=0不顯示200ms,s=1顯示1s左右bit s1=0。 //聲明display1()函數(shù)include //include //include ///***********************主函數(shù)************************/void main(){ beer=1。 //關(guān)閉LED燈 timer1_init(0)。 //首次啟動(dòng)DS18B20獲取溫度(DS18B20上點(diǎn)后自動(dòng)將EEPROM中的上下限溫度復(fù)制到TH和TL寄存器) while(1) //主循環(huán) { keyscan()。 //獲取溫度函數(shù) keyscan()。//顯示函數(shù) alarm()。 //按鍵掃面函數(shù) }} /********************************************************************* 程序名。 *********************************************************************/ifndef __ds18b20_h__ //定義頭文件define __ds18b20_h__define uint unsigned int //變量類型宏定義,用uint表示無符號(hào)整形(16位)define uchar unsigned char //變量類型宏定義,用uchar表示無符號(hào)字符型(8位)sbit DQ= P2^3。 //sbit led=P1^1。 //測(cè)量溫度的整數(shù)部分uchar temp_d=0。 //測(cè)量溫度的標(biāo)志位,0’表示“正溫度”‘1’表示“負(fù)溫度”)bit f_max=0。 //下限溫度的標(biāo)志位‘0’表示“正溫度”、‘1’表示“負(fù)溫度”)bit w=0。}void ds18b20_delayms(uint t) //延時(shí)1ms左右{ uint i,j。i0。j0。}/**************************ds18b20初始化函數(shù)*************************/void ds18b20_init() // DS18B20初始化{ DQ=1。 //控制器向DS18B20發(fā)低電平脈沖 ds18b20_delayus(30)。 //控制器拉高總線, while(DQ)。 //延時(shí),等待上拉電阻拉高總線 DQ=1。 //定義一個(gè)局部變量i(局部變量只在本函數(shù)中有效) uchar d = 0。 //準(zhǔn)備讀; for(i=8。i) //一位一位的讀,循環(huán)8次 { d = 1。 _nop_()。_nop_()。 //必須寫1,否則讀出來的將是不預(yù)期的數(shù)據(jù); if(DQ) //在12us處讀取數(shù)據(jù),送給d的最高位 d |= 0x80。 } return d。 for(i=8。i) //一位一位的寫 { DQ=0。 _nop_()。 DQ=damp。 //寫數(shù)據(jù) ds18b20_delayus(5)。 d = 1。 uint i。 //DS18B20初始化 ds18b20_write(0xcc)。//寫啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換命令,轉(zhuǎn)換結(jié)果存入內(nèi)部RAM if(f==1) { //首次啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換需要500ms,若轉(zhuǎn)換時(shí)間不夠就出錯(cuò),讀出的是85度的錯(cuò)誤值。 //用開機(jī)動(dòng)畫耗時(shí) } else ds18b20_delayms(1)。 //DS18B20初始化 ds18b20_write(0xcc)。 //寫讀內(nèi)部RAM中9字節(jié)的內(nèi)容命令 a=ds18b20_read()。 //讀內(nèi)部RAM (MSB) if(f==1) //局部位變量f=1時(shí)讀上下線報(bào)警溫度 { max=ds18b20_read()。 //讀內(nèi)部RAM (Tl) } if((maxamp。max=(max0x80)。 if((minamp。min=(min0x80)。 i=b。 if (i==0) { f=0。 //整數(shù)部分 a=(aamp。 temp_d=a。 //i為1,表示讀取的溫度是負(fù)溫度,設(shè)立負(fù)溫度標(biāo)記 a=~a+1。 //負(fù)數(shù)的整數(shù)部分取反 temp=((a4)|(b4))。0x0f)。 }}/*************************存儲(chǔ)極限溫度函數(shù)***************************/ void store_t() { if(f_max==1) //若上限溫度為負(fù),將上限溫度轉(zhuǎn)換成有符號(hào)數(shù)(最高1是負(fù),0是正) max=max+0x80。 ds18b20_init()。 //向DS18B20發(fā)跳過讀ROM命令 ds18b20_write(0x4e)。 //向暫存器TH(上限溫度暫存器)寫溫度 ds18b20_write(min)。 //向配置寄存器寫命令,進(jìn)行溫度值分辨率設(shè)置 ds18b20_init()。 //向DS18B20發(fā)跳過讀ROM命令 ds18b20_write(0x48)。TR1=1。amp。} //當(dāng)測(cè)量值大于最小值且小于最大值時(shí)不報(bào)警 } if(f==1){w=1。} //若測(cè)量值是負(fù)值時(shí)報(bào)警 } if(f_min==1) //若下限值是負(fù)值 { if(f==0) //若測(cè)量值是正值 { if((temp+temp_d*)=max)//當(dāng)測(cè)量值大
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1