室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)說(shuō)明書(shū)設(shè)計(jì)名稱: 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì) 題 目: 室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì) 學(xué)生姓名: 專 業(yè): 電氣工程與自動(dòng)化 班 級(jí): 11自動(dòng)化(2) 學(xué) 號(hào): XXXXXXXXXXXX 指導(dǎo)教師: 陳廣義 日 期: 年 月 日 課程設(shè)計(jì)任務(wù)書(shū) 專業(yè) 年級(jí) 班 一、 設(shè)計(jì)題目室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì)二、 主要內(nèi)容 設(shè)計(jì)基于DS18B20的數(shù)字式室內(nèi)變電站溫度控制系統(tǒng),控制程序主要包括主程序、讀出溫度子程序、按鍵子程序、控制風(fēng)機(jī)子程序等。要求能檢測(cè)、顯示及通過(guò)控制排氣風(fēng)機(jī)來(lái)降低室內(nèi)溫度。三、 具體要求1 對(duì)室內(nèi)溫度進(jìn)行檢測(cè)及控制。溫度顯示范圍:00.0C+99.9C,精度誤差在0.1C以內(nèi)2

2、溫度控制范圍:室溫60C3 能設(shè)置溫度上限,下限,并可隨時(shí)修改4 LED數(shù)碼管直讀顯示實(shí)測(cè)溫度,設(shè)置溫度上限溫度,下限溫度(用鍵控制設(shè)定溫度)5 溫度等于上限時(shí),報(bào)警;根據(jù)所測(cè)溫度所在的界限控制三臺(tái)風(fēng)機(jī)的運(yùn)行狀態(tài)。6 溫度控制(風(fēng)機(jī))啟/停鍵控制系統(tǒng)的啟動(dòng)和停止四、 進(jìn)度安排第一周分組;查找資料;系統(tǒng)硬件電路設(shè)計(jì),編寫控制程序第二周程序調(diào)試,系統(tǒng)調(diào)試,撰寫課程設(shè)計(jì)報(bào)告,答辯五、 完成后應(yīng)上交的材料1 課程設(shè)計(jì)報(bào)告。2 程序清單(電子版)六、 總評(píng)成績(jī)指導(dǎo)教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日目 錄1、設(shè)計(jì)方案論述 11 簡(jiǎn)述 12 控制方法介紹 13 設(shè)計(jì)功能介紹2、控制系

3、統(tǒng)設(shè)計(jì) 21 系統(tǒng)硬件電路設(shè)計(jì) 221 電路圖、各部分的作用說(shuō)明 212 元件、器件介紹 22 系統(tǒng)軟件設(shè)計(jì) 221 流程圖 222 說(shuō)明3、系統(tǒng)調(diào)試 過(guò)程敘述4、總結(jié)5、參考文獻(xiàn)1、 設(shè)計(jì)方案論述11 簡(jiǎn)述本課題為室內(nèi)溫度報(bào)警控制系統(tǒng)設(shè)計(jì):由于控制對(duì)象為室內(nèi)空氣、有較大的流動(dòng)性,且對(duì)溫度控制的精度要求不高,所以利用簡(jiǎn)單開(kāi)關(guān)式溫度控制方法。該系統(tǒng)利用數(shù)字式溫度傳感器測(cè)溫,采用溫度開(kāi)關(guān)控制算法來(lái)控制三臺(tái)風(fēng)機(jī)的工作狀態(tài),來(lái)達(dá)到調(diào)節(jié)室內(nèi)溫度的目的。12 控制方法介紹簡(jiǎn)單的開(kāi)關(guān)式溫度控制:通過(guò)設(shè)定溫度上、下限溫度進(jìn)行簡(jiǎn)單的開(kāi)關(guān)報(bào)警與控制。這種方法的缺點(diǎn)是不能進(jìn)行溫度的精確控制,適合于要求不高的場(chǎng)合。1

4、3 設(shè)計(jì)功能介紹顯示功能:前三個(gè)數(shù)管在非設(shè)定狀態(tài)時(shí)顯示三臺(tái)風(fēng)機(jī)的運(yùn)行狀態(tài),第三個(gè)數(shù)碼管在設(shè)定狀態(tài)時(shí)用來(lái)指示現(xiàn)在修改的參數(shù)。后三個(gè)數(shù)碼管顯示測(cè)量溫度值并在設(shè)定狀態(tài)期間顯示上、中、下三個(gè)不同的溫度設(shè)定值。溫度設(shè)定功能:當(dāng)按鍵一第一次被按下就進(jìn)入溫度下限設(shè)定狀態(tài),第三個(gè)數(shù)碼管顯示最低一橫指示現(xiàn)在在修改下限。后三個(gè)數(shù)碼管則顯示當(dāng)前下限值。進(jìn)入設(shè)定狀態(tài)后,通過(guò)按第二、三個(gè)鍵就可以在允許的范圍內(nèi)設(shè)定下限或上限值。中限值由上下限之和除2產(chǎn)生。按鍵一第二次被按下則顯示中限溫度但不可進(jìn)行修改,第三個(gè)數(shù)碼管顯示中間一橫指示現(xiàn)在在顯示中限;按鍵一第三次被按下則顯示上限值,第三個(gè)數(shù)碼管顯示中間一橫指示當(dāng)前在修改上限。

5、溫度控制功能:溫度控制功能:本系統(tǒng)有三路繼電器輸出,分別控制三組電機(jī)的啟動(dòng)與關(guān)閉。測(cè)量溫度T與設(shè)定溫度T上、T中、T下以及電機(jī)工作狀態(tài)關(guān)系如下:當(dāng)T > T上時(shí),三臺(tái)電機(jī)同時(shí)工作。當(dāng)T中< T <T上時(shí),兩臺(tái)電機(jī)同時(shí)工作。當(dāng)T下< T < T中時(shí),一臺(tái)電機(jī)工作。當(dāng)T < T下時(shí),關(guān)閉全部電機(jī)。2323T上T中T下III0III0全部停機(jī),I1臺(tái)風(fēng)機(jī)工作,II2臺(tái)風(fēng)機(jī)工作,III3臺(tái)風(fēng)機(jī)工作。但為了防止風(fēng)機(jī)頻繁切換,所以當(dāng)溫度從一個(gè)界限降到另一個(gè)界限時(shí)并不立即關(guān)掉一臺(tái)風(fēng)機(jī),而是要降到下一個(gè)界限減一度的時(shí)候才關(guān)掉一臺(tái)風(fēng)機(jī)。2、 控制系統(tǒng)設(shè)計(jì)2. 1系統(tǒng)硬件電路設(shè)

6、計(jì)211 電路圖、各部分的作用說(shuō)明按鍵電路由四個(gè)按鍵組成用于溫度的設(shè)定、溫控系統(tǒng)的開(kāi)關(guān)。顯示電路由六個(gè)數(shù)碼管組成用于各種數(shù)據(jù)及狀態(tài)的顯示。而測(cè)溫電路主要由DS18B20組成。212 元件、器件介紹本電路的單片機(jī)采用Atmel公司的AT89S52單片機(jī)。最小系統(tǒng)該單片機(jī)、按鍵和顯示組成。而溫度傳感器采用的是DS18B20。DS18B20采用數(shù)字化技術(shù),能以數(shù)字形式直接輸出被測(cè)溫度值,具有測(cè)溫誤差小、分辨力高、抗干擾能力強(qiáng)、能夠遠(yuǎn)程傳輸數(shù)據(jù)、用戶可設(shè)定溫度上、下限、有越限自動(dòng)報(bào)警功能、自帶串行總線接口等優(yōu)點(diǎn),適配各種微控制器(MCU),含微處理器(uP)和單片機(jī)(uC),是研制和開(kāi)發(fā)具有高性價(jià)比的

7、新一代溫度測(cè)控系統(tǒng)所必不可少的核心器件。2.2系統(tǒng)軟件設(shè)計(jì)221 流程圖1、總流程圖2、溫控程序流程圖3、讀鍵程序流程圖4、按鍵判斷流程圖5、選擇鍵處理流程圖6、加鍵處理流程圖7、減鍵處理流程圖8、溫控控制鍵處理流程圖9、Time0 中斷服務(wù)程序流程圖222 說(shuō)明系統(tǒng)開(kāi)機(jī)首先要進(jìn)行初始化,包括個(gè)變量的初始化和中斷程序的初始化,最后開(kāi)系統(tǒng)中斷開(kāi)始工作。本系統(tǒng)的中斷服務(wù)程序的主要工作是更新各個(gè)時(shí)間標(biāo)志和調(diào)用顯示程序。根據(jù)設(shè)定是每1毫秒發(fā)生一次中斷。本系統(tǒng)的測(cè)溫間隔由DEF_CHECK_INTERVAL這個(gè)預(yù)定義設(shè)定。具體時(shí)間間隔是DEF_CHECK_INTERVAL*250毫秒。如果測(cè)溫時(shí)間間隔已

8、到相應(yīng)的標(biāo)志位flag_check_interval就要置位以便進(jìn)入測(cè)溫程序。而檢測(cè)按鍵的間隔則由flag_50ms這個(gè)為變量來(lái)控制。每當(dāng)這個(gè)標(biāo)志置1便可以進(jìn)入檢測(cè)按鍵程序。檢測(cè)按鍵程序采用了軟件去抖動(dòng),就是第一次檢測(cè)到有按鍵被按下后就保存該鍵值并開(kāi)始計(jì)時(shí)50毫秒,50毫秒已到就再次檢測(cè)按鍵,如果這次檢測(cè)到的按鍵與已保存的鍵值相等就確定該鍵值是用戶按下產(chǎn)生的。然后在把這個(gè)鍵值和上次有效鍵值比較,如果相等就是說(shuō)這個(gè)是重復(fù)鍵。為了預(yù)防用戶按下按鍵不放參數(shù)變化過(guò)快的現(xiàn)象,我們還要判斷100毫秒標(biāo)志位有沒(méi)有置位,如果100毫秒標(biāo)志為1則把這個(gè)鍵值傳送個(gè)按鍵判斷程序,如果為0則當(dāng)無(wú)效鍵處理。如果新建值和

9、上次有效鍵鍵值不相等,就是說(shuō)這個(gè)鍵是新鍵,馬上把這個(gè)鍵值傳送個(gè)按鍵判斷程序。按鍵判斷程序接收到鍵值就根據(jù)該鍵值調(diào)用相應(yīng)的按鍵處理程序。溫控程序則是以溫度和現(xiàn)在開(kāi)動(dòng)風(fēng)機(jī)的數(shù)量來(lái)控制三臺(tái)風(fēng)機(jī)的狀態(tài)。顯示程序負(fù)責(zé)人機(jī)對(duì)話。前三個(gè)數(shù)管在非設(shè)定狀態(tài)時(shí)顯示三臺(tái)風(fēng)機(jī)的運(yùn)行狀態(tài),第三個(gè)數(shù)碼管在設(shè)定狀態(tài)時(shí)用來(lái)指示現(xiàn)在修改的參數(shù)。后三個(gè)數(shù)碼管顯示測(cè)量溫度值并在設(shè)定狀態(tài)期間顯示上、中、下三個(gè)不同的溫度設(shè)定值。3、 系統(tǒng)調(diào)試在確定硬件能正常工作后系統(tǒng)調(diào)試工作主要就是軟件的調(diào)試了。我們首先調(diào)試顯示程序。從最簡(jiǎn)單的單個(gè)數(shù)碼管的顯示開(kāi)始,然后逐步向前。而不是把整個(gè)顯示程序?qū)懞迷谡{(diào)試。這樣可能會(huì)有很多錯(cuò)誤,一下子就被嚇得沒(méi)信

10、心了。顯示程序調(diào)試成功后我們接著就可以進(jìn)行按鍵程序的編寫及調(diào)試了。也是從最簡(jiǎn)單的工作做起,就是直接檢測(cè)有沒(méi)有按鍵,成功后再加軟件去抖動(dòng),然后再加重復(fù)鍵和新鍵的處理程序。一步一步,最后一個(gè)較完美的按鍵程序就完成了。做完按鍵我們就分開(kāi)兩路一些同學(xué)搞DS18B20的程序,另外一些同學(xué)則負(fù)責(zé)溫度控制程序。但是還沒(méi)有測(cè)出溫度是沒(méi)有溫度值的,所以溫控程序的開(kāi)發(fā)就用讀隨機(jī)的方法模擬“可變的溫度值”。在兩部分工作都搞完后我們就聯(lián)合調(diào)試了,大家都很高興的看到顯示結(jié)果但是顯示會(huì)隨機(jī)出現(xiàn)一些莫名其妙的數(shù)值。這個(gè)問(wèn)題困擾了我們很久。因?yàn)榉治龀绦蚨紱](méi)發(fā)現(xiàn)什么錯(cuò)誤會(huì)出現(xiàn)這種情況。最后我們決定逐步調(diào)試,先是去掉測(cè)溫程序發(fā)現(xiàn)

11、顯示正常,按鍵也正常。我們就懷疑是不是按鍵和測(cè)溫會(huì)有相撞。于是我們就加入測(cè)溫程序,撤去按鍵程序。發(fā)現(xiàn)顯示還是有問(wèn)題。我們就確定是測(cè)溫的問(wèn)題,但是無(wú)論怎樣分析都是發(fā)現(xiàn)測(cè)溫程序之正確無(wú)誤的。無(wú)奈!一些同學(xué)便亂試碰碰運(yùn)氣。最后發(fā)現(xiàn)把測(cè)溫程序移到中斷程序便不會(huì)發(fā)生錯(cuò)誤。惘然大悟。原來(lái)是中斷的問(wèn)題。因?yàn)槿绻跍y(cè)溫的過(guò)程中如果發(fā)生中斷,那就會(huì)破壞測(cè)溫程序。因?yàn)闇y(cè)溫程序?qū)r(shí)間的連續(xù)性要求非常嚴(yán)格。最后我們?cè)谶M(jìn)入測(cè)溫前禁止全局中斷,測(cè)溫完成后再開(kāi)中斷就解決了最大的問(wèn)題。4、 總結(jié)通過(guò)這次課程設(shè)計(jì),在老師的指導(dǎo)下,我基本上學(xué)會(huì)用C語(yǔ)言開(kāi)發(fā)單片機(jī)程序,發(fā)現(xiàn)用C語(yǔ)言編寫單片機(jī)程序很容易實(shí)現(xiàn)自己的想法,不用太顧及寄存

12、器的使用、中斷向量的編寫及免去了一些瑣碎的跳轉(zhuǎn)指令,而且C語(yǔ)言調(diào)試程序相當(dāng)方便。不過(guò)這些都需要有扎實(shí)的匯編基礎(chǔ),不然在寫短延時(shí)的時(shí)候就會(huì)束手無(wú)策。通過(guò)這次課程設(shè)計(jì)我進(jìn)一步學(xué)習(xí)了一個(gè)系統(tǒng)開(kāi)發(fā)的步驟,首先要把整個(gè)系統(tǒng)的硬件系統(tǒng)搞出來(lái),然后按照要求開(kāi)始做軟件的流程圖。在這之后就一步一步地按照流程圖編寫程序。最后就是體會(huì)到了用模塊化編程的好處。用模塊化編程可以把大問(wèn)題細(xì)分成一個(gè)個(gè)小問(wèn)題。各個(gè)模塊各司其職,然后合并成一個(gè)完整的程序。5、 參考6、 附錄(程序清單)/Cautions:/temp: temperature/sel: select/whc: which/con: content/disp:

13、display#include <reg52.h>#include <absacc.h>#include <stdlib.h>#define led_data XBYTE0xE000 #define led_sel XBYTE0xC000 #define key_add XBYTE0xA000#define disp_start_pos 3 /value from 0 to 3 are welcomed#define DEF_CHECK_INTERVAL 4#define MAX_TEMP_MAX 250#define MAX_TEMP_MIN 200#de

14、fine MIN_TEMP_MAX 150#define MIN_TEMP_MIN 100sbit DQ=P10;unsigned char code dot_temp16=0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9;/data_disp : led display arrayunsigned char data data_disp6 = 0x00,0x00,0x00,0x00,0x00,0x00; unsigned int data setting3 = 0x64,0x96,0x0C8;unsigned int cur_temp = 200;unsigned char d

15、ata count_50ms = 0;unsigned char data count_100ms = 0;unsigned char data count_250ms = 0;unsigned char data count_check_interval = 0;unsigned char data old_key_val = 0;unsigned char data working_fans = 0;/cur_pos : current displaying ledunsigned char data cur_pos = 0;/flash_cur_pos : just for flashi

16、ng led unsigned char data flash_cur_pos = 0;/cur_var : current modifying settingunsigned char data cur_var=0;/sys_statue : flags of the systemunsigned char bdata sys_statue = 0;/2ms reachedsbit flag_1ms = sys_statue0;/50ms reachedsbit flag_50ms = sys_statue1;/100ms reachedsbit flag_100ms = sys_statu

17、e2;/500ms reachedsbit flag_250ms = sys_statue3;/key pressed,system parameter is being modifyingsbit flag_modifying = sys_statue4;/for common usesbit flag_temp = sys_statue5;/for temperature check intervalsbit flag_check_interval = sys_statue6;/cooling systemp enabled or notsbit flag_sys_enabled = sy

18、s_statue7;void divide_con(unsigned int con_disp)unsigned char code tab10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;unsigned int temp = 0;/138/100=1temp = con_disp / 100;data_dispdisp_start_pos = tabtemp;/138-100*1=38con_disp = con_disp - 100 * temp;/38/10=3;temp = con_disp / 10;temp = tabtem

19、p;/display radix pointdata_dispdisp_start_pos+1 = temp | 0x80;/38%10=8temp=con_disp%10;data_dispdisp_start_pos+2 = tabtemp;void disp(void)/flashingled_data = 0x00;led_sel = 0xff;led_data = data_dispcur_pos;led_sel = (1<<cur_pos);if(cur_pos<6)+cur_pos;elsecur_pos=0;/*unsigned char update_dis

20、p(unsigned char whc_segment)*/*unsigned int read_temp(void)cur_temp += 20;if(cur_temp > 600)cur_temp = 200;return(cur_temp);*/unsigned char key_press(void)unsigned char data whc_key=0;led_data = 0x00;led_sel = 0xFE;whc_key = key_add;whc_key = whc_key;return(whc_key);void key2_process(void)if(cur_

21、var = 1)if(setting0 < MIN_TEMP_MAX)settingcur_var-1 = settingcur_var-1 + 10;divide_con(settingcur_var-1);else if(cur_var = 3)if(setting2 < MAX_TEMP_MAX)settingcur_var-1 = settingcur_var-1 + 10;divide_con(settingcur_var-1);setting1 = setting0 + setting2; setting1 = setting1 >> 1; / div 2v

22、oid key3_process(void)if(cur_var = 1)if(settingcur_var-1 > MIN_TEMP_MIN)settingcur_var-1 = settingcur_var-1 - 10;divide_con(settingcur_var-1);else if(cur_var = 3)if(settingcur_var-1 > MAX_TEMP_MIN)settingcur_var-1 = settingcur_var-1 - 10;divide_con(settingcur_var-1);setting1 = setting0 + setti

23、ng2; setting1 = setting1 >> 1; / div 2void key4_process(void)flag_sys_enabled = flag_sys_enabled;if(flag_sys_enabled)data_disp0 = 0x3F;data_disp1 = 0x3F;data_disp2 = 0x3F;void key_process(unsigned char key_kpval)/wait until release/ key1 pressd and now release/times cur_var_before cur_var_afte

24、r / 1 0 1/2 1 2/ 3 2 3 / 4 3 4if(key_kpval = 1)data_disp0 = 0x00;data_disp1 = 0x00;data_disp2 = 0x00;flag_modifying = 1;if(cur_var = 0)data_disp2 = 0x08;else if(cur_var = 1)data_disp2 = 0x40;else if(cur_var = 2)data_disp2 = 0x01;elsedata_disp2 = 0x00;divide_con(settingcur_var);+cur_var;if(cur_var =

25、4) flag_modifying = 0;cur_var = 0;return;else if(key_kpval = 8)key4_process();return;/ key2 pressd and now releaseif(flag_modifying)if(key_kpval = 2)key2_process();/ key3 pressd and now releaseif(key_kpval = 4)key3_process();unsigned char read_key(void)unsigned char data key_val = 0;key_val = key_pr

26、ess();if(key_val)/delay 100msflag_50ms = 0;count_50ms = 0;while(!flag_50ms);flag_50ms = 0;if(key_val = key_press() && key_val = old_key_val)/if(flag_100ms = 1)flag_100ms = 0;return(key_val);elsereturn(0);else if(key_val = key_press()old_key_val = key_val;flag_100ms = 0;count_100ms = 0;return

27、(key_val);elsereturn(0);/*void cooling_control(unsigned int cur_temp_b)unsigned char temp_logic = 0;temp_logic = cur_temp >= setting0 - 10 && working_fans = 1; if(cur_temp_b >= setting0 | temp_logic)working_fans = 1;temp_logic = cur_temp >= setting1 - 10 && working_fans = 2;

28、 if(cur_temp_b >= setting1 | temp_logic)working_fans = 2;temp_logic = cur_temp >= setting0 - 10 && working_fans = 3; if(cur_temp_b >= setting2 | temp_logic)working_fans = 3;elseworking_fans = 0;*/void cooling_control(unsigned int T) if(T<setting0) if(T<setting0-10|working_fans

29、=0) working_fans=0; else if(T>=setting0&&T<setting1) if(T<setting1-10|working_fans=1) working_fans=1; else if(T>=setting1&&T<setting2) if(T<setting2-10|working_fans=2) working_fans=2; else working_fans=3; void led_flashing(void)if(flag_modifying)if(working_fans = 3)

30、data_disp0 = (0x01 << flash_cur_pos);data_disp1 = data_disp0;data_disp2 = data_disp0;else if(working_fans = 2)data_disp0 = 0x3F;data_disp1 = (0x01 << flash_cur_pos);data_disp2 = data_disp1;else if(working_fans = 1)data_disp0 = 0x3F;data_disp1 = 0x3F;data_disp2 = (0x01 << flash_cur_

31、pos);else if(working_fans = 0)data_disp0 = 0x3F;data_disp1 = 0x3F;data_disp2 = 0x3F;+flash_cur_pos;if(flash_cur_pos = 6)flash_cur_pos = 0;/-/ DS18B20/-void delay(unsigned int t) for(;t>0;t-);/³õʼ»¯DS18B20void Init_DS18B20(void) /unsigned x; DQ=0; / Ö÷»

32、;ú·¢³öÒ»¸ö¸´Î»Âö³å delay(29); / ÑÓʱ´óÓÚ480 us DQ=1; delay(3); /µÈ´ýDS18B20ÏìÓ¦£¬¼ä¸ôÔ¼30us /x=

33、DQ; /Èç¹ûx=0,Ôò³õʼ»¯³É¹¦£¬x=1£¬Ôò³õʼ»¯Ê§°Ü£¬ÖØгõʼ»¯ delay(25); / return(x);

34、unsigned char ReadOneChar(void) unsigned char data i; unsigned char data byte=0; for(i=0;i<8;i+) byte>>=1; DQ=0; DQ=1; delay(1); if(DQ) byte|=0x80; delay(6); return(byte);void WriteOneChar(unsigned char byte) unsigned char i; for(i=0;i<8;i+) DQ=0; DQ=byte&0x01; delay(5); DQ=1; byte=b

35、yte/2; delay(5); unsigned int GetTemperature(void) unsigned char a=0,b=0,temp_float=0;unsigned int t=0; Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0x44); Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE); a=ReadOneChar(); b=ReadOneChar(); temp_float=a&0x0f;temp_float=dot_temptemp_float; a=a>>4; b=b<<4; t=b|a; t=t*10+te

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論