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

正文內(nèi)容

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

2025-06-06 08:55本頁面
  

【正文】 for(i=z。 //v1=1時定時1250ms時間到自動關(guān)閉報警上下限查看功能bit v2=0。 //K4按鍵雙功能選擇位,k4=0時K4按鍵選擇消按鍵音的功能,k4=1時K4按鍵選擇正負(fù)溫度設(shè)定功能bit v=0。 //定義全局變量i用于不同功能模式的選擇,‘0’正常模式,‘1’上限調(diào)節(jié)模式,‘2’下限調(diào)節(jié)模式uchar a=0。 //sbit key4=P3^3。 //可位尋址變量定義,sbit key2=P2^1。} //若測量值是正值時報警 } } }endif/*********************************************************************** 程序名。} //當(dāng)測量值小于最小值且大于最大值時不報警 } if(f==0){w=1。amp。TR1=1。} if((temp+temp_d*)min)//當(dāng)測量值小于最小值時不報警 {w=0。} } if(f==1) //若測量值是負(fù)值 { if((temp+temp_d*)=min)//當(dāng)測量值大于最小值時報警 {w=1。TR1=1。TR1=1。(temp+temp_d*)min) {w=0。} //當(dāng)測量值小于最小值或大于最大值時報警 if((temp+temp_d*)maxamp。 //向DS18B20發(fā)將RAM中3字節(jié)的內(nèi)容寫入EEPROM } //DS18B20上電后會自動將EEPROM中的上下限溫度拷貝到TH、TL暫存器/**************************溫度超限報警函數(shù)*************************/ void alarm() { //若上限值是正值 if(f_max==0) { if(f_min==0) //若下限值是正值 { if(f==0) //若測量值是正值 { if((temp+temp_d*)=min||(temp+temp_d*)=max) {w=1。 //DS18B20初始化 ds18b20_write(0xcc)。 //向暫存器TL(下限溫度暫存器)寫溫度 ds18b20_write(0xff)。 //向DS18B20發(fā)寫字節(jié)至?xí)捍嫫?和3(TH和TL)命令 ds18b20_write(max)。 //DS18B20初始化 ds18b20_write(0xcc)。 if(f_min==1) //若下限溫度為負(fù),將上限溫度轉(zhuǎn)換成有符號數(shù) min=min+0x80。 //小數(shù)部分 temp_d=a。 //整數(shù)部分 a=(aamp。 //負(fù)數(shù)的小數(shù)部分取反加1 b=~b。 //小數(shù)部分 } else { f=1。0x0f)。 //i為0,表示讀取的溫度是正溫度,設(shè)立正溫度標(biāo)記 temp=((a4)|(b4))。i=4。}//將下限溫度符號標(biāo)志位置‘1’表示負(fù)溫度,將下限溫度裝換成無符號數(shù)。0x80)==0x80)//若讀取的下限溫度的最高位(符號位)為‘1’表明是負(fù)溫度 {f_min=1。} //將上限溫度符號標(biāo)志位置‘1’表示負(fù)溫度,將上限溫度裝換成無符號數(shù)。0x80)==0x80) //若讀取的上限溫度的最高位(符號位)為‘1’表明是負(fù)溫度 {f_max=1。 //讀內(nèi)部RAM (TH) min=ds18b20_read()。 //讀內(nèi)部RAM (LSB) b=ds18b20_read()。 //向DS18B20發(fā)跳過讀ROM命令 ds18b20_write(0xbe)。 ds18b20_init()。 display1(1)。//向DS18B20發(fā)跳過讀ROM命令 ds18b20_write(0x44)。 ds18b20_init()。 }}/***************************獲取溫度函數(shù)****************************/ void get_temperature(bit f) { uchar a=0,b=0,c=0,d=0。 DQ=1。0x01。_nop_()。 _nop_()。i0。 //返回讀取的值}/*************************ds18b20字節(jié)寫函數(shù)**************************/void ds18b20_write(uchar d) // ds18b20字節(jié)寫{ uchar i。 ds18b20_delayus(10)。 DQ = 1。_nop_()。 //d左移一位,低位先發(fā); DQ = 0。i0。 //定義一個局部變量d DQ = 1。 //拉高數(shù)據(jù)線,準(zhǔn)備數(shù)據(jù)傳輸;}/***************************ds18b20字節(jié)讀函數(shù)************************/uchar ds18b20_read() //DS18B20 字節(jié)讀取{ uchar i。 //等待DS18B20拉低總線 ds18b20_delayus(20)。 //延時480μs左右 DQ=1。 //拉高數(shù)據(jù)線 DQ=0。j)。i) for(j=120。 for(i=t。 //報警標(biāo)志位‘1’啟動報警‘0’關(guān)閉報警)/*****************************延時子函數(shù)******************************/void ds18b20_delayus(uint t) //延時幾μs{ while(t)。 //上限溫度的標(biāo)志位‘0’表示“正溫度”‘1’表示“負(fù)溫度”)bit f_min=0。 //測量溫度的小數(shù)部bit f=0。 //uchar temp=0。 //可位尋址變量定義,sbit beer=P1^0。 __ds18b20_h__* 功 能: DS18B20的c51編程頭文件 * 編程者:zicreate* 編程時間:2009/10/2 * 說 明:用到的全局變量是:無符號字符型變量temp(測得的溫度整數(shù)部分),temp_d * (測得的溫度小數(shù)部分),標(biāo)志位f(測量溫度的標(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(報警標(biāo)志位‘1’啟動報警‘0’關(guān)閉報警)。 //報警函數(shù) keyscan()。 //按鍵掃面函數(shù) display(temp,temp_d*)。 //按鍵掃面函數(shù) get_temperature(0)。 //初始化定時器1(未啟動定時器1) get_temperature(1)。 //關(guān)閉蜂鳴器 led=1。 //s1標(biāo)志位用于上下限查看時的顯示void display1(uint z)。 //max是上限報警溫度,min是下限報警溫度bit s=0。在調(diào)節(jié)上下限溫度模式下,K2是實現(xiàn)加1功能,* K1是實現(xiàn)減1功能,K3是用來設(shè)定上下限溫度正負(fù)的。K1是用來* 進入上下限調(diào)節(jié)模式的,當(dāng)按一下K1進入上限調(diào)節(jié)模式,再按一下進入下限* 調(diào)節(jié)模式。參考文獻[1] (第三版).北京:清華大學(xué)出版社, [2] 余發(fā)山,:中國礦業(yè)大學(xué)出版社, [3] :人民郵電出版社, [4] :人民郵電出版社, [5] 于永,戴佳,(第2版).北京:電子工業(yè)出版社, 附1 源程序代碼/********************************************************************* 程序名。充分認(rèn)識到理論學(xué)習(xí)與實踐相結(jié)合的重要性,對于書本上的很多知識,不但要學(xué)會,更重要的是會運用到實踐中去。本次設(shè)計的另一個重點就是軟件程序的設(shè)計,其中需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只學(xué)習(xí)理論,有些東西是很難理解的,更談不上掌握。還有就是文章中提到的蜂鳴器驅(qū)動問題等等。此次單片機設(shè)計也為我們以后進行更復(fù)雜的單片機系統(tǒng)設(shè)計提供了寶貴的經(jīng)驗。在大學(xué)課堂的學(xué)習(xí)只是給我們灌輸專業(yè)知識,而我們應(yīng)把所學(xué)的知識應(yīng)用到我們現(xiàn)實的生活中去。5電子綜合設(shè)計體會經(jīng)過將近一個月的設(shè)計、焊接、編程、調(diào)試,我們終于完成了數(shù)字溫度計的設(shè)計,基本能夠達到設(shè)計要求,而且還設(shè)計了一些其他功能,比可以開啟或消除按鍵音功能,開機動畫功能,查看報警上下限溫度功能。比如本來是采用NPN型9013驅(qū)動蜂鳴器,但是在實際調(diào)試中蜂鳴器驅(qū)動不了,經(jīng)多次試驗,在三極管的基極電阻與單片機的接口處接一個2kΩ的上拉電阻就能驅(qū)動了。圖36 按鍵程序流程圖4實物制作及調(diào)試制作好的實物如圖41所示。圖35 顯示程序流程圖 按鍵程序設(shè)計按鍵是用來設(shè)定上下限報警溫度的。由于單片機的I/O口有限,所以數(shù)碼管采用動態(tài)掃描的方式來進行顯示。圖33 DS18B20傳感器的讀寫時序 DS18B20獲取溫度程序流程圖DS18B20的讀字節(jié),寫字節(jié),獲取溫度的程序流程圖如圖33所示。如圖32的下半部分。在數(shù)據(jù)總線由高電平變?yōu)榈碗娖街?,?shù)據(jù)線至少應(yīng)保持低電平1μs,來自DS18B20的輸出的數(shù)據(jù)在下降沿15μs后有效,所以在數(shù)據(jù)線保持低電平1μs之后,主機將數(shù)據(jù)線拉高,等待來自DS18B20的數(shù)據(jù)變化,在下降沿15μs之后便可開始讀取DS18B20的輸出數(shù)據(jù)。對于主機產(chǎn)生寫“1”時序時,數(shù)據(jù)線必須先被拉至低電平,然后被釋放,使數(shù)據(jù)線在寫時序開始之后15μs內(nèi)拉至高電平。在數(shù)據(jù)總線由高電平變?yōu)榈碗娖街?,DS18B20在15μs至60μs的時間間隙對總線采樣,如果為“1”則向DS18B20寫“1”, 如果為“0”則向DS18B20寫“0”。有兩種類型的寫時序:寫“0”時序,寫“1”時序。每次操作只能讀寫一位。首先控制器拉高數(shù)據(jù)總線,接著控制器給數(shù)據(jù)總線一低電平,延時480μs,控制器拉高數(shù)據(jù)總線,等待傳感器給數(shù)據(jù)線一個60240μs的低電平,接著上拉電阻將數(shù)據(jù)線拉高,這樣才初始化完成。 DS18B20傳感器的初始化時序DS18B20傳感器為單總線結(jié)構(gòu)器件,在讀寫操作之前,傳感器芯片應(yīng)先進性復(fù)位操作也就是初始化操作。讀供電方式0xB4讀DS1820的供電模式。復(fù)制暫存器0x48將RAM中第3 、4字節(jié)的內(nèi)容復(fù)制到EEPROM中。結(jié)果存
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1