版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 2009級(jí)電子信息工程</p><p> 基于單片機(jī)溫度控制電路課程設(shè)計(jì)報(bào)告</p><p><b> 目 錄 </b></p><p><b> 1引言1</b></p><p><b> 2 設(shè)計(jì)任務(wù)2</b></p>&l
2、t;p> 2.1 設(shè)計(jì)內(nèi)容2</p><p> 2.2 技術(shù)指標(biāo)2</p><p> 2.3 各部分的設(shè)計(jì)2</p><p> 3 方案的分析與選擇3</p><p> 3.1 方案的分析3</p><p> 3.2 方案的選擇3</p><p> 3.3 設(shè)計(jì)框
3、圖4</p><p> 4 硬件部分理論設(shè)計(jì)5</p><p> 4.1 AT89C51單片機(jī)的引腳功能說明5</p><p> 4.2 AT89C51單片機(jī)最小系統(tǒng)6</p><p> 4.3 LED顯示器接口原理7</p><p> 4.4按鍵部分的設(shè)計(jì)8</p><p&g
4、t; 4.5數(shù)字溫度傳感器DS18B20的發(fā)展9</p><p> 4.6 DS18B20的主要特性9</p><p> 4.7 DS18B20工作原理10</p><p> 4.8 DS18B20主要的數(shù)據(jù)部件11</p><p> 4.9高速暫存存儲(chǔ)器11</p><p> 4.10 本設(shè)計(jì)中
5、DS18B20使用中注意事項(xiàng)12</p><p> 4.11 固態(tài)繼電器的分析與選擇13</p><p><b> 4.12電源14</b></p><p> 5 軟件部分的理論設(shè)計(jì)15</p><p> 5.1 硬件的整合15</p><p> 5.2 軟件的設(shè)計(jì)
6、15</p><p><b> 參考文獻(xiàn)17</b></p><p><b> 致謝18</b></p><p><b> 摘 要</b></p><p> 本文是一個(gè)關(guān)于恒溫控制器的設(shè)計(jì),本文單片機(jī)控制部分采用AT89C51單片機(jī)為核心,單片機(jī)具有功能強(qiáng),體積小,
7、成本低等優(yōu)點(diǎn),設(shè)計(jì)采用DS18B20數(shù)字式溫度傳感器,溫度精度可以控制在1℃以內(nèi),采用軟件編程,使用C語言來編寫程序,用控制電爐的加熱來實(shí)現(xiàn)對水溫溫度的控制。適用于環(huán)境參數(shù)經(jīng)常變化的小型溫度控制電路。恒溫溫度控制在日常生活中有很重要的作用,尤其是水溫的溫度恒定,恒定的水溫對水產(chǎn)養(yǎng)殖,工廠污水的處理,家庭生活用水等有重要的意義。</p><p> 關(guān)鍵詞:恒溫控制器;AT89C51單片機(jī);DS18B20溫度傳感器
8、;C語言編程</p><p><b> Abstract</b></p><p> I use the AT89C51SCM design a constant temperature constant water temperature controller of control, the design of single-chip microcomputer
9、control AT89C51 microcontroller as the core, SCM has strong function, small volume, low cost, this design using digital temperature sensor DS18B20, temperature control precision of 1℃ in May, within the software programm
10、ing, using C language program, with the control of electric heating water temperature to realize the control of the temperature. Apply to e</p><p> Keyword: Constant temperature controller; AT89C51SCM; The
11、temperature sensor DS18B20; The C programming language. </p><p><b> 1引言</b></p><p> 溫度是工業(yè)對象中一個(gè)主要的被控參數(shù),它是一種常見的過程變量,因?yàn)樗苯佑绊懭紵?、化學(xué)反應(yīng)、發(fā)酵、烘烤、煅燒、蒸餾、濃度、擠壓成形,結(jié)晶以及空氣流動(dòng)等物理和化學(xué)過程。溫度控制不好就可能引起生產(chǎn)安
12、全,產(chǎn)品質(zhì)量和產(chǎn)量等一系列問題。溫度控制是許多設(shè)備的重要的構(gòu)成部分,它的功能是將溫度控制在所需要的溫度范圍內(nèi),以利于進(jìn)行工件的加工與處理。不論是在生活中還是在工業(yè)生產(chǎn)過程中,溫度的變化對生活、生產(chǎn)的某些細(xì)節(jié)環(huán)節(jié)都會(huì)造成不同程度的影響,所以適時(shí)地對溫度進(jìn)行控制具有重要的意義。</p><p> 溫度是日常生活中無時(shí)不在的物理量,溫度的控制在各個(gè)領(lǐng)域都有積極的意義。很多行業(yè)中都有大量的用電加熱設(shè)備,如用于熱處理的加
13、熱爐,用于融化金屬的坩鍋電阻爐及各種不同用途的溫度箱等,采用單片機(jī)對它們進(jìn)行控制不僅具有控制方便、簡單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量。因此,智能化溫度控制技術(shù)正被廣泛地采用。水溫控制在工業(yè)及日常生活中應(yīng)用廣泛,分類較多,不同水溫控制系統(tǒng)的控制方法也不盡相同,其中以PID控制法最為常見。單片機(jī)控制部分采用AT89C51單片機(jī)為核心,采用軟件編程,實(shí)現(xiàn)用PID算法來控制PWM波的產(chǎn)生,進(jìn)
14、而控制電爐的加熱來實(shí)現(xiàn)溫度控制。然而,單純的PID算法無法適應(yīng)不同的溫度環(huán)境,在某個(gè)特定場合運(yùn)行性能非常良好的溫度控制器,到了新環(huán)境往往無法很好勝任,甚至使系統(tǒng)變得不穩(wěn)定,需要重新改變 PID 調(diào)節(jié)參數(shù)值以取得佳性能。</p><p> 本文以MCS-51單片機(jī)為控制核心,采用DS18B20數(shù)字式溫度傳感器,以及恒定溫度的鍵盤設(shè)定,溫度的及時(shí)顯示,高于設(shè)定溫度時(shí)報(bào)警,系統(tǒng)復(fù)位功能,來達(dá)到控制電爐對水加熱的目的,
15、討論了控制水溫的恒定對人們的日常生活,以及工業(yè)生產(chǎn)的重要性。</p><p><b> 2 設(shè)計(jì)任務(wù)</b></p><p><b> 2.1 設(shè)計(jì)內(nèi)容</b></p><p> 本論文的內(nèi)容是基于單片機(jī)設(shè)計(jì)的一個(gè)電爐對水加熱的控制器。要求顯示實(shí)際溫度和設(shè)定的溫度,并且要求設(shè)定水溫可以由人工通過鍵盤來設(shè)定。電路可以通
16、過對實(shí)際溫度和設(shè)定溫度的差值的處理來控制繼電器的通斷,進(jìn)而控制電爐的開關(guān),從而對水溫進(jìn)行控制,使水溫保持在設(shè)定的溫度上。</p><p><b> 2.2 技術(shù)指標(biāo)</b></p><p><b> ?。?)基本要求</b></p><p> ?、僖詥纹瑱C(jī)為控制核心;②水溫控制范圍:40℃-100℃可調(diào);③誤差:<
17、2℃;</p><p> ?、軠仫@示:LED或LCD;⑤加熱部件:800W220V電熱管。</p><p><b> (2)發(fā)揮部分</b></p><p> ?、貾WM控制方式;水溫采樣記錄功能;PID調(diào)節(jié)控制;②自制穩(wěn)壓電壓。</p><p> 2.3 各部分的設(shè)計(jì)</p><p> ?、?/p>
18、電爐接上220V 交流電,由繼電器控制其開關(guān),對水進(jìn)行加熱;</p><p> ⑵DS18B20溫度傳感器對水溫進(jìn)行實(shí)時(shí)檢測,輸出溫度信號(hào)給單片機(jī);</p><p><b> ?、菃纹瑱C(jī)基本系統(tǒng) </b></p><p> a.要采集溫度傳感器傳過來的信號(hào),進(jìn)行相應(yīng)的處理,送往顯示部分;</p><p> b.接受
19、鍵盤輸入的信號(hào),進(jìn)行相應(yīng)的處理,送往顯示部分;</p><p> c.實(shí)測溫度與設(shè)定溫度比較由控制信號(hào)控制繼電器的通斷來控制電爐開關(guān);</p><p> ⑷顯示:由2個(gè)七段數(shù)碼管以及數(shù)碼管的驅(qū)動(dòng)電路組成,2位數(shù)碼管顯示出測量結(jié)果,2位數(shù)碼管顯示出設(shè)定的溫度;</p><p> ⑸按鍵與報(bào)警電路: 鍵入需要恒定的溫度,當(dāng)水的溫度高于設(shè)定的溫度時(shí),報(bào)警電路報(bào)警。&
20、lt;/p><p> 3 方案的分析與選擇</p><p><b> 3.1 方案的分析</b></p><p> 本方案是一個(gè)基于單片機(jī)的恒溫溫度控制之水溫控制電路,需要完成的功能是溫度的設(shè)定、檢測與顯示以及的溫度的控制和報(bào)警等。當(dāng)溫度小于設(shè)定溫度時(shí)電爐工作,當(dāng)溫度大于設(shè)定溫度時(shí)電爐不工作。 </p><p> 本
21、方案在軟、硬件功能劃分時(shí),電路功能的軟、硬件劃分往往是由應(yīng)用電路對控制速度的要求決定的,在沒有速度限制的情況下可以依靠軟件換取硬件電路的簡化,以求降低硬件成本。</p><p><b> 3.2 方案的選擇</b></p><p> 分析設(shè)計(jì)要求,要選擇一個(gè)CPU控制芯片。由于電路控制方案簡單,在運(yùn)行過程中需要存放的中間變量只有給定溫度、實(shí)測溫度、PI運(yùn)算中間結(jié)果
22、及輸出結(jié)果等十幾個(gè)變量,因此選用AT89C51微控制器作為電路的核心,由于AT89C51的片內(nèi)RAM已能滿足存放要求,可不必再擴(kuò)充外部RAM。</p><p> 分析設(shè)計(jì)要求,要選擇一個(gè)溫度敏感元件,它能夠很靈敏的根據(jù)溫度變化輸出一定的信號(hào)。這樣的器件種類很多,本設(shè)計(jì)選用的數(shù)字式集成溫度傳感器DS18B20。這是由于本設(shè)計(jì)中單片機(jī)除了要完成數(shù)據(jù)采集、處理、控制和顯示任務(wù)外,還要完成按鍵值得采集、處理。如果用常規(guī)
23、的數(shù)字加模擬電路實(shí)現(xiàn)就會(huì)相對困難一些。DS18B20是DALLAS半導(dǎo)體公司(現(xiàn)屬M(fèi)AXIM公司)設(shè)計(jì)生產(chǎn)的單總線數(shù)字溫度傳感器,其測量溫度范圍為-55℃~+128℃,在-10~+85℃時(shí)精度為±0.5℃,這個(gè)精度已可以滿足普通型的環(huán)境溫度控制或測溫類消費(fèi)產(chǎn)品的要求。這個(gè)傳感器最大的特點(diǎn)就是能夠從一根總線直接輸出二進(jìn)制的溫度信號(hào),不需要A/D轉(zhuǎn)換和信號(hào)放大。這樣的選擇使得整個(gè)電路的硬件設(shè)計(jì)更為簡化,節(jié)省了單片機(jī)的資源。<
24、/p><p> 設(shè)計(jì)顯示部分、按鍵部分和報(bào)警。顯示部分的設(shè)計(jì)考慮到在軟件設(shè)計(jì)過程中實(shí)際溫度和設(shè)定溫度之間會(huì)有影響,本設(shè)計(jì)采用實(shí)際溫度和門限溫度單獨(dú)顯示,共用一組I/O口。選用的是一組共陰極數(shù)碼管,采用一塊同相器74LS07集成塊來驅(qū)動(dòng)。動(dòng)態(tài)掃描顯示。按鍵部分的設(shè)計(jì)考慮到單片機(jī)I/O資源不足的緣故,本文采用四個(gè)按鍵分別用來設(shè)定和顯示溫度。設(shè)定的溫度在高于設(shè)定溫度時(shí)或在40℃至99℃范圍外就要報(bào)警。</p>
25、<p> 控制部分的設(shè)計(jì),這一部分主要就是繼電器的選擇。本設(shè)計(jì)選擇的是固態(tài)繼電器。固態(tài)繼電器(Solid state Relay-SSR)是近幾年發(fā)展起來的一種新型電子繼電器,其輸入控制電流小,容易驅(qū)動(dòng),其輸出利用晶體管或可控硅驅(qū)動(dòng),無觸點(diǎn)。與普通的電磁式繼電器和磁力開關(guān)相比,具有無機(jī)械噪聲、無抖動(dòng)和回跳、開關(guān)速度快、體積小質(zhì)量輕、壽命長、工作可靠等特點(diǎn),并且耐沖擊、抗潮濕、抗腐蝕,本設(shè)計(jì)采用固態(tài)繼電器。另外在選擇繼電器
26、時(shí)還要注意它的供電電壓和帶負(fù)載能力。本設(shè)計(jì)中繼電器是由單片機(jī)控制的所以它的供電電壓選擇5V直流電。繼電器所帶的負(fù)載為一個(gè)額定功率800W,接220V交流電的電爐。所以繼電器的要選用交流型(AC-SSR),耐壓在220V以上,電流為1 A以上。本設(shè)計(jì)選用的是5V供電,2A 250VAC的固態(tài)繼電器。 </p><p><b> 3.3 設(shè)計(jì)框圖</b></p>
27、;<p> 電路框圖如下圖所示:</p><p> 圖 3-1 水溫控制電路總體框圖</p><p> 4 硬件部分理論設(shè)計(jì)</p><p> 理論設(shè)計(jì)包括硬件部分的設(shè)計(jì)和軟件部分的設(shè)計(jì),硬件部分的設(shè)計(jì)包括AT89C51單片機(jī)引腳功能說明,AT89C51單片機(jī)最小系統(tǒng),包括單片機(jī)的基本供電、時(shí)鐘電路和復(fù)位電路,LED顯示器接口原理,按鍵部分的設(shè)
28、計(jì)與鍵盤接口技術(shù),數(shù)字溫度傳感器DS18B20的發(fā)展,DS18B20的主要特性,DS18B20的工作原理,DS18B20主要的數(shù)據(jù)部件,DS18B20的高速暫存存儲(chǔ)器,以及DS18B20的供電方式。本次設(shè)計(jì)中DS18B20使用中注意事項(xiàng),固態(tài)繼電器的分析與選擇,以及本次畢業(yè)論文設(shè)計(jì)的電源。</p><p> 4.1 AT89C51單片機(jī)的引腳功能說明</p><p> 圖4-1 AT
29、89C51引腳圖</p><p> 引腳功能說明,AT89C51是雙列制插封裝形式的器件,AT89C51的引腳P00~P07、P10~P17、P20~P27、P30~P37為四個(gè)8位并行輸入/輸出口,其中P3口、P0口、P2口為雙功能口,可以作為普通輸入/輸出口(第一功能),也可以作為特殊輸入/輸出口。RST為復(fù)位輸入線,ALE、、為系統(tǒng)擴(kuò)展控制線,XTAL1和XTAL2為時(shí)鐘電路輸入/輸出線, VCC、VSS
30、為電源輸入線,一般接+5V和地。</p><p> 4.2 AT89C51單片機(jī)最小系統(tǒng)</p><p> 時(shí)鐘和時(shí)鐘電路,時(shí)鐘電路是單片機(jī)的心臟,它控制著單片機(jī)的工作節(jié)奏。AT89C51單片允許的時(shí)鐘頻率的典型值12MHZ,也可以是6MHZ。本設(shè)計(jì)采用12MHZ。單片機(jī)時(shí)鐘電路圖如圖4-2 </p><p> 圖4-2 晶體振蕩電路</p>&
31、lt;p> 圖4-2中晶振頻率選擇12MHZ。接到晶振兩端的瓷片電容作用是使振蕩器起振和對f 微調(diào)補(bǔ)償,典型值為30PF,本設(shè)計(jì)中選用20PF瓷片電容。當(dāng)單片機(jī)加電以后延遲約10ms的時(shí)間振蕩器起振產(chǎn)生時(shí)鐘,不受軟件控制(XTAL2輸出幅度為3V左右的正弦波)。</p><p> 復(fù)位和復(fù)位電路,單片機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始
32、工作。單片機(jī)的復(fù)位引腳是RST,當(dāng)振蕩器起振后,該引腳上出現(xiàn)2個(gè)周期的高電平,是器件復(fù)位,只要RST保持高電平,單片機(jī)保持復(fù)位狀態(tài)。單片機(jī)復(fù)位方式有二種:上電復(fù)位(如圖4-3)、人工復(fù)位(如圖4-4)。</p><p> 圖4-3 上電自動(dòng)復(fù)位電路 圖4-4 上電及按鍵復(fù)位電路</p><p> RESET與VCC之間的那個(gè)電阻在NMOS型單片機(jī)種需要
33、接,但是在CMOS型單片機(jī)中不接。其中電容一般為10UF的電解電容。</p><p> 4.3 LED顯示器接口原理</p><p> LED(Light Emitting Diode)是發(fā)光二極管的縮寫。LED顯示器是由發(fā)光二極管構(gòu)成的。LED顯示器在單片機(jī)中的應(yīng)用非常普遍。常用的LED顯示器為8段(或7段,8段比7段多了一個(gè)小數(shù)點(diǎn)“dip”段)。每一個(gè)段對應(yīng)一個(gè)發(fā)光二極管。這種顯示
34、器有共陰極和共陽極兩種,共陰極LED顯示器的發(fā)光二極管的陰極連結(jié)在一起,通常此公共陰極接地。當(dāng)某個(gè)發(fā)光二極管的陽極為高電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。同樣,共陽極LED顯示器的發(fā)光二極管的陽極連結(jié)在一起,通常此公共陽極接正電壓,當(dāng)某個(gè)發(fā)光二極管的陽極為低電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。</p><p> LED顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。LED動(dòng)態(tài)顯示方式,所謂的動(dòng)態(tài)顯示,就是一位一
35、位地輪流點(diǎn)亮各位顯示器(掃描)。在多位LED顯示時(shí),為簡化硬件電路,節(jié)省I/O口資源,通常將所有位的段碼線相應(yīng)的并聯(lián)在一起,由一個(gè)8位I/O口控制,而各位的共陽極或共陰極分別由相應(yīng)的I/O線控制,形成各位的分時(shí)選通。如圖4-5用AT89C51單片機(jī)控制LED動(dòng)態(tài)顯示方式接口。</p><p> 圖4-5 AT89C51單片機(jī)控制LED動(dòng)態(tài)顯示電路</p><p> 其中8550是同相
36、器集成塊,它是用來驅(qū)動(dòng)共陰極數(shù)碼管的。</p><p> 圖4-6 顯示的位選電路</p><p> 在使用動(dòng)態(tài)顯示電路的時(shí)候,由于各位的段碼線并聯(lián),8位I/O口輸出的段碼對各個(gè)顯示位來說都是相同的。因此要在同一時(shí)刻,如果各位的位選線都處于選通狀態(tài)的話那兩位LED將顯示相同的字符。若要各位LED能夠同時(shí)顯示出與本位相應(yīng)的顯示字符,就必須采用動(dòng)態(tài)顯示方式,即在某一時(shí)刻,只讓某一位的位選線
37、處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),同時(shí),段碼線上輸出相應(yīng)位要顯示的字符的段碼。這樣在同一時(shí)刻2位LED中只有選通的那一位顯示出字符,而其它的LED則是熄滅的。同樣在下一時(shí)刻,只讓下一位的位選線處于選通狀態(tài)。也就是說在同一時(shí)刻只有選通位才能顯示出相應(yīng)的字符,而其它位是熄滅的。如此循環(huán)下去就可以使各位顯示出將要顯示的字符。雖然這些字符是不在同一時(shí)刻出現(xiàn)的,但由于LED顯示器的余輝和人眼的“視覺暫留”作用,只要每位顯示間隔足夠短,
38、則可以造成“多位同時(shí)亮”的假象,達(dá)到同時(shí)顯示的效果。這是用軟件來實(shí)現(xiàn)的。</p><p> 4.4按鍵部分的設(shè)計(jì)</p><p> 鍵盤是一組按鍵組合,它是最常用的單片機(jī)輸入設(shè)備。鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識(shí)別由專用的硬件譯碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼或鍵值的稱為編碼鍵盤??寇浖R(shí)別的稱為非編碼鍵盤。本設(shè)計(jì)使用非編碼鍵盤,下面主要介紹非編碼鍵盤的原理、接口技術(shù)和程序設(shè)計(jì)。&l
39、t;/p><p> 鍵盤工作原理:鍵盤中每個(gè)按鍵都是一個(gè)常開開關(guān)電路,如圖3-8所示。當(dāng)按鍵K未被按下時(shí),P1.0輸入高電平;當(dāng)K閉合時(shí),P1.0輸入低電平。通常按鍵所用的開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)端來、閉合時(shí),電壓信號(hào)波形如圖3-12所示。由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定的接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),如圖3-12所示。抖動(dòng)的時(shí)間的長短由按
40、鍵的機(jī)械特性決定,一般為5~10ms。按鍵穩(wěn)定閉合時(shí)間的長短則是由操作人員的按鍵動(dòng)作決定的,一般為零點(diǎn)幾秒。四個(gè)按鍵分別做為顯示設(shè)定溫度,設(shè)定溫度加,設(shè)定溫度減,顯示實(shí)際溫度。</p><p> 圖4-7 按鍵電路圖</p><p> 按鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次。為確保CPU對按鍵的一次閉合僅做一次處理,必須去除鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí),讀取鍵的狀態(tài),并且必須判別鍵號(hào);當(dāng)鍵釋放穩(wěn)定
41、后,再做處理。按鍵的抖動(dòng),可用硬件或軟件兩種方法消除。本設(shè)計(jì)使用的是軟件。如果按鍵較多,常用軟件方法去抖動(dòng),及檢測出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,產(chǎn)生5~10ms的延時(shí);讓前沿抖動(dòng)消失后,再一次檢測按鍵的狀態(tài),如果仍保持閉合狀態(tài)電平則確定真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要經(jīng)過5~10ms的延時(shí),待后沿抖動(dòng)消失后,才能轉(zhuǎn)入該鍵的處理程序。</p><p> 4.5數(shù)字溫度傳感器DS18B20的發(fā)展</p&g
42、t;<p> 美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持 "一線總線"接口的溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念?,F(xiàn)在,新一代的DS18B20體積更小、更經(jīng)濟(jì)、更靈活。使你可以充分發(fā)揮“一線總線”的優(yōu)點(diǎn)。目
43、前DS18B20批量采購價(jià)格僅10元左右。</p><p> 4.6 DS18B20的主要特性</p><p> 適應(yīng)電壓范圍更寬,電壓范圍:3.0V~5.5V,在寄生電源的方式下可由數(shù)據(jù)線供電。</p><p> 獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)
44、DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫。DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。溫度范圍-55℃~+128℃,在-10~+85℃時(shí)精度為±0.5℃。可編程的分辨率為9~12位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測溫。在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把
45、溫度值轉(zhuǎn)換為數(shù)字,速度更快。測量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。 </p><p> 4.7 DS18B20工作原理</p><p> DS18B20的讀寫時(shí)序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延
46、時(shí)時(shí)間由2s減為750ms。 DS18B20測溫原理如圖</p><p> 圖4-8 DS18B20測溫原理</p><p> 圖4-8中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信
47、號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。</p><p> 4.8 DS18B20主要的數(shù)據(jù)部件</p><p>
48、; 光刻ROM中的64位序列號(hào)是出廠前被光刻好的,他可以看作是該DS18B20的地址序列碼。64為光刻ROM的排列是:開始八位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:|<< <&l
49、t; < 1 2 3 4 5 6 7 8 9 10 > >> >>| 用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。DS18B20溫度傳感器的存儲(chǔ)器,DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。配置寄存器該字節(jié)各位的意義所示:低5位一直都是"
50、1",TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和R0用來設(shè)置分辨率。</p><p> 4.9高速暫存存儲(chǔ)器</p><p> 高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低
51、位在前,高位在后,DS18B20還有兩個(gè)用于儲(chǔ)存溫度的RAM,編號(hào)為0和1,1號(hào)儲(chǔ)存器用于存放溫度值的符號(hào),當(dāng)溫度為負(fù),則1號(hào)存儲(chǔ)器8位全為1,否則全為0,0號(hào)儲(chǔ)存器用于存放溫度值的補(bǔ)碼,LSB最低位的1表示0.5℃,將存儲(chǔ)器中的2進(jìn)制數(shù)求補(bǔ),再轉(zhuǎn)換成十進(jìn)制數(shù),并除以2就得到被測溫度值,數(shù)據(jù)格式如表1所示。對應(yīng)的溫度計(jì)算:DS18B20用12個(gè)字節(jié)存儲(chǔ)溫度,最高位為符號(hào)位S,S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)?/p>
52、原碼,再計(jì)算十進(jìn)制值。例如:0550H 最高位為0,按照DS18B20讀數(shù)方式直接轉(zhuǎn)換為十進(jìn)制溫度為85℃。</p><p> 根據(jù)DS18B20的通訊協(xié)議,
53、單片機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。</p><p> DS18B20寄生電源強(qiáng)上拉供電方
54、式電路如圖4-9,改進(jìn)的寄生電源供電方式如下面圖所示,為了使DS18B20在動(dòng)態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng),當(dāng)進(jìn)行溫度轉(zhuǎn)換或拷貝到E2存儲(chǔ)器操作時(shí),用MOSFET把I/O線直接拉到VCC就可提供足夠的電流,在發(fā)出任何涉及到拷貝到E2存儲(chǔ)器或啟動(dòng)溫度轉(zhuǎn)換的指令后,必須在最多10μS內(nèi)把I/O線轉(zhuǎn)換到強(qiáng)上拉狀態(tài)。在強(qiáng)上拉方式下可以解決電流供應(yīng)不走的問題,因此也適合于多點(diǎn)測溫應(yīng)用,缺點(diǎn)就是要多占用一根I/O口線進(jìn)行強(qiáng)上拉切換。在外部供電的方
55、式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度。</p><p> 圖4-9 DS18B20的外部電源供電方式</p><p> 4.10 本設(shè)計(jì)中DS18B20使用中注意事項(xiàng)</p><p> DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意一些問題,下面列出本設(shè)計(jì)中使用DS18B20應(yīng)注意的問題
56、,連接DS18B20的總線電纜是由長度限制的。當(dāng)采用普通型號(hào)電纜傳輸長度超過50m時(shí),讀取的測溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變造成的。因此,在用DS18B20進(jìn)行長距離測溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。在DS18B20測溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)
57、換命令后,程序總要等待DS1820的返回信號(hào),一旦某個(gè)DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時(shí),將沒有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。由于本設(shè)計(jì)要求不高,所以只采用了簡單的電源線。</p><p> 4.11 固態(tài)繼電器的分析與選擇<
58、;/p><p> 為了實(shí)現(xiàn)水溫的PID控制,電路的輸出不能是一個(gè)簡單的開關(guān)量,輸入電爐的功率必須連續(xù)可調(diào)。一般來說改變輸入電爐的電壓平均值就可以改變電爐的輸出功率,而較簡單的調(diào)壓方法有相位控制調(diào)壓和通斷控制調(diào)壓法。本設(shè)計(jì)采用的脈寬調(diào)制輸出控制電爐與電源的接通和斷開的比例,以通斷控制調(diào)壓法控制電爐的輸入功率。這種方法不僅十輸出通道省去了D/A轉(zhuǎn)換器和移向觸發(fā)電路,大大簡化了硬件系統(tǒng)。</p><p
59、> 在后向通道的控制中,一般采用繼電器、可控硅等開關(guān)器件。繼電器又有電磁繼電器和固態(tài)繼電器之分。一些常用的小型電磁繼電器,由于受電流大小的限制,只能控制功率較小的負(fù)載。在實(shí)際的工程項(xiàng)目設(shè)計(jì)中,由于繼電器控制的負(fù)載多為感性或容性負(fù)載(比如本設(shè)計(jì)中的電爐就是感性負(fù)載),如果電磁隔離不好,這些負(fù)載所產(chǎn)生的高次諧波信號(hào)便會(huì)串進(jìn)單片機(jī)控制電路產(chǎn)生各種干擾。這種干擾信號(hào)往往會(huì)導(dǎo)致系統(tǒng)的可靠性降低,具體表現(xiàn)有系統(tǒng)死機(jī)、CPU反復(fù)復(fù)位、控制失靈
60、等,也就是常說的“程序的跑飛”。因此對于大功率負(fù)載的控制,信號(hào)的隔離是電路設(shè)計(jì)中的一個(gè)非常重要的環(huán)節(jié)。我們可以采用光耦對電路進(jìn)行隔離。由于電磁繼電器啟動(dòng)瞬間會(huì)產(chǎn)生電磁火花干擾,所以在實(shí)際應(yīng)用中如本設(shè)計(jì)類似的控制一般都選用固態(tài)繼電器SSR。下面我就重點(diǎn)介紹一下固態(tài)繼電器。</p><p> 固態(tài)繼電器(Solid state Relay-SSR)是近幾年發(fā)展起來的一種新型電子繼電器,其輸入控制電流小,用TTL、H
61、TL、CMOS等集成電路或加簡單的輔助電路就可直接驅(qū)動(dòng),因此適宜于單片機(jī)測控系統(tǒng)中作為輸出通道的控制元件;其輸出利用晶體管或可控硅驅(qū)動(dòng),無觸點(diǎn)。與普通的電磁式繼電器和磁力開關(guān)相比,具有無機(jī)械噪聲、無抖動(dòng)和回跳、開關(guān)速度快、體積小質(zhì)量輕、壽命長、工作可靠等特點(diǎn),并且耐沖擊、抗潮濕、抗腐蝕,因此在單片機(jī)測控等領(lǐng)域中,已逐漸取代傳統(tǒng)的電磁式繼電器和磁力開關(guān)作為開關(guān)量輸出控制元件。</p><p> 由于固態(tài)繼電器的輸
62、出采用的光電耦合器對信號(hào)進(jìn)行了隔離,本設(shè)計(jì)無需再接光電耦合器了。接口驅(qū)動(dòng)本設(shè)計(jì)使用的是集成塊7407。具體連接如圖4-10所示。</p><p> 圖4-10 繼電器輸出控制電路</p><p> 本設(shè)計(jì)中繼電器是由單片機(jī)控制的所以它的供電電壓選擇5V直流電。繼電器所帶的負(fù)載為一個(gè)額定功率300W,接220V交流電的電爐。所以繼電器的要選用交流型(AC-SSR),耐壓在220V以上,電
63、流為1 A以上。本設(shè)計(jì)選用的是5V供電,2A 250VAC的固態(tài)繼電器。</p><p><b> 4.12電源</b></p><p> 電源電路如圖3-15所示,+5V的直流電源由220V的交流電經(jīng)EMI濾波器、變壓器、整流濾波電路、三端集成穩(wěn)壓器獲得。EMI濾波器能濾除從交流電網(wǎng)引入的噪聲干擾,改善系統(tǒng)的電磁兼容性;整流濾波電路將經(jīng)變壓器降壓后的
64、交流電變?yōu)閹Ъy波的直流電;三端穩(wěn)壓器7805可以產(chǎn)生穩(wěn)定的+5V直流電壓,給系統(tǒng)提供電能。</p><p> 5 軟件部分的理論設(shè)計(jì)</p><p><b> 5.1 硬件的整合</b></p><p> 水溫控制電路的原理圖見附錄,根據(jù)原理圖,實(shí)際水溫顯示的字型碼是由P0口送出,十位、個(gè)位分別由P2.0、P2.1選通;溫度傳感
65、器輸入到P1.6口,單片機(jī)的輸出控制信號(hào)由P3.0輸出。</p><p><b> 5.2 軟件的設(shè)計(jì)</b></p><p> 預(yù)置溫度非法報(bào)警程序流程圖如圖5-1</p><p> 圖5-1 預(yù)置溫度非法報(bào)警程序流程圖</p><p> 固態(tài)繼電器程序流程,當(dāng)溫度低于參考值時(shí),p3.0端口值低電位,導(dǎo)通。電熱
66、管加熱。當(dāng)所測溫度到達(dá)參考值時(shí),p3.0端口值高電平。達(dá)到自動(dòng)控制電熱管。</p><p><b> 6結(jié)束語</b></p><p> 本文結(jié)合實(shí)際應(yīng)用了單片機(jī)AT89C51實(shí)現(xiàn)了實(shí)驗(yàn)室恒溫控制設(shè)計(jì)的工作原理,以及軟硬件的設(shè)計(jì)方法及實(shí)現(xiàn)過程。本文重點(diǎn)論述了實(shí)驗(yàn)室恒溫控制系統(tǒng)電路的設(shè)計(jì),主要是硬件電路的設(shè)計(jì)及軟件程序的實(shí)現(xiàn)。對于單片機(jī)的應(yīng)用及控制領(lǐng)域,實(shí)現(xiàn)工業(yè)生產(chǎn)
67、過程的自動(dòng)化和管理現(xiàn)代化有一定的意義。在控制精確度方面,采用先進(jìn)的PID控制算法,對加熱時(shí)間進(jìn)行精確控制,提高準(zhǔn)確度。</p><p> 本設(shè)計(jì)采用了了市場上最先進(jìn)的電子器件,電路設(shè)計(jì)簡單,成本低,系統(tǒng)具有較小的超調(diào)量,控制精度高。在軟件方面使用模塊化編程,使程序簡潔、可移植性強(qiáng)。</p><p> 單片機(jī)是目前控制系統(tǒng)使用最多的器件和芯片,單片機(jī)廣泛的應(yīng)用及其產(chǎn)生的效率令人矚目,在將
68、來的各個(gè)領(lǐng)域有著廣闊的應(yīng)用前景。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]金發(fā)慶等編. 傳感器技術(shù)與應(yīng)用.北京機(jī)械工業(yè)出版社,2002</p><p> [2]楊旭編著. C語言程序設(shè)計(jì)案例教程. 人民郵電出版社,2005.1</p><p> [3]何力民編. 單片機(jī)高級(jí)教程. 北
69、京:北京航空大學(xué)出版社,2000</p><p> [4]曹巧媛主編. 單片機(jī)原理及應(yīng)用(第二版). 北京:電子工業(yè)出版社,2002</p><p> [5]王錦標(biāo),方崇智.過程計(jì)算機(jī)控制.清華大學(xué)出版社,1997,36~40.</p><p> [6]邵惠鶴.工業(yè)過程高級(jí)控制.上海交大出版社,1997;58—62,78—101</p><
70、p> [7]謝德芳. 數(shù)字信號(hào)處理, , 版本: 第1版, 科學(xué)出版社,2005</p><p> [8]王兢,王洪玉,數(shù)字電路與系統(tǒng), 版本: 第1版, 電子工業(yè)出版社,2007</p><p> [9]顧文郁編譯. 現(xiàn)代光電測試技術(shù).上??茖W(xué)技術(shù)文獻(xiàn)出版社, 1994</p><p> [10]何立民主編. 單片機(jī)應(yīng)用技術(shù)選編 7.北京航空航天大學(xué)
71、出版社, 1999</p><p> [11]全國大學(xué)生電子設(shè)計(jì)競賽組委會(huì)編.第五屆全國大學(xué)生電子設(shè)計(jì)競賽獲獎(jiǎng)作品選編(2001), 北京:北京理工大學(xué)出版社,2003</p><p> [12]耿德根、宋建國、馬潮、葉永建編著.AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版).北京航空航天大學(xué)出版社,2002.10</p><p><b> 致謝<
72、;/b></p><p> 衷心感謝許立志老師在論文的寫作過程中對我的悉心指導(dǎo),他嚴(yán)謹(jǐn)精細(xì)的治學(xué)態(tài)度,淵博的知識(shí),孜孜不倦的工作熱忱和誨人不倦的精神,我們將銘記在心!感謝工程技術(shù)學(xué)院的老師對我們成長的關(guān)心和幫助。</p><p> 附錄(含原理圖及實(shí)驗(yàn)軟件程序)</p><p><b> 原理圖:</b></p>&l
73、t;p><b> pcb:</b></p><p><b> 程序:</b></p><p> /********************************************************************</p><p> * 名稱 : 恒溫控制器</p><
74、p> ***********************************************************************/</p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned
75、 int</p><p> #define jump_ROM 0xCC</p><p> #define start 0x44</p><p> #define read_EEROM 0xBE</p><p> sbit KEY1 = P1^0; //獨(dú)立按鍵</p><p> sbit KEY2
76、 = P1^1; //獨(dú)立按鍵</p><p> sbit KEY3 = P1^2; //獨(dú)立按鍵</p><p> sbit KEY4=P1^3; //獨(dú)立按鍵</p><p> sbit P3_0=P3^0; //ssr控制端口</p><p> sbit P3_7=P3^7; //蜂鳴器端口&
77、lt;/p><p> sbit DQ = P1^6; //DS18B20數(shù)據(jù)口</p><p> uchar TMPH,TMPL; </p><p> uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p>
78、 uchar disbuff[2];</p><p> uchar cankao=40;</p><p> uchar ten[2]={0x02,0x01};</p><p> uchar X0=40,X1=100;</p><p> uchar D0,D1,D2,D3;</p><p> uchar fl
79、ag=0;</p><p> /********************************************************************</p><p> * 名稱 : delay()</p><p> * 功能 : 延時(shí),延時(shí)時(shí)間大概為140US。</p><p> /****************
80、*******************************************************/</p><p> void delay_1()</p><p><b> {</b></p><p><b> int i,j;</b></p><p> for(i=0; i&
81、lt;=10; i++)</p><p> for(j=0; j<=2; j++);</p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱
82、 : delay()</p><p> * 功能 : 延時(shí)函數(shù)</p><p><b> * 輸入 : 無</b></p><p><b> * 輸出 : 無</b></p><p> *****************************************************
83、******************/</p><p> void delay(uint N)</p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0; i<N; i++);</p><p><
84、;b> }</b></p><p> /********************************************************************</p><p> * 名稱 : Delay_1ms()</p><p> * 功能 : 延時(shí)子程序,延時(shí)時(shí)間為 1ms * x</p><p&g
85、t; ***********************************************************************/</p><p> void Delay_1ms(uint i)//1ms延時(shí)</p><p><b> {</b></p><p> uchar x,j;</p><
86、p> for(j=0;j<i;j++)</p><p> for(x=0;x<=148;x++);</p><p><b> }</b></p><p> /********************************************************************</p>
87、<p> * 名稱 : Reset()</p><p> * 功能 : 復(fù)位DS18B20</p><p> ***********************************************************************/</p><p> uchar Reset(void)</p><p>
88、<b> {</b></p><p> uchar deceive_ready;</p><p><b> DQ = 0;</b></p><p> delay(29);</p><p><b> DQ = 1;</b></p><p><
89、;b> delay(3);</b></p><p> deceive_ready = DQ;</p><p> delay(25);</p><p> return(deceive_ready);</p><p><b> }</b></p><p> /******
90、**************************************************************</p><p> * 名稱 : read_bit()</p><p> * 功能 : 從DS18B20讀一個(gè)位值</p><p> ****************************************************
91、*******************/</p><p> uchar read_bit(void)</p><p><b> {</b></p><p><b> uchar i;</b></p><p><b> DQ = 0;</b></p><
92、;p><b> DQ = 1;</b></p><p> for(i=0; i<3; i++);</p><p> return(DQ);</p><p><b> }</b></p><p> /****************************************
93、****************************</p><p> * 名稱 : write_bit()</p><p> * 功能 : 向DS18B20寫一位</p><p> ***********************************************************************/</p><
94、;p> void write_bit(uchar bitval)</p><p><b> {</b></p><p> DQ=0;if(bitval==1)</p><p><b> DQ=1;</b></p><p><b> delay(5);</b>&l
95、t;/p><p><b> DQ=1;</b></p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 : read_byte(
96、)</p><p> * 功能 : 從DS18B20讀一個(gè)字節(jié)</p><p> ***********************************************************************/</p><p> uchar read_byte(void)</p><p><b> {<
97、/b></p><p> uchar i,m,receive_data;</p><p><b> m = 1;</b></p><p> receive_data = 0;</p><p> for(i=0; i<8; i++)</p><p><b> {<
98、;/b></p><p> if(read_bit())</p><p><b> {</b></p><p> receive_data = receive_data + (m << i);</p><p><b> }</b></p><p>&
99、lt;b> delay(6);</b></p><p><b> }</b></p><p> return(receive_data);</p><p><b> }</b></p><p> /*************************************
100、*******************************</p><p> * 名稱 : write_byte()</p><p> * 功能 : 向DS18B20寫一個(gè)字節(jié)</p><p> ***********************************************************************/</p>
101、;<p> void write_byte(uchar val)</p><p><b> {</b></p><p> uchar i,temp;</p><p> for(i=0; i<8; i++)</p><p><b> {</b></p>&l
102、t;p> temp = val >> i;</p><p> temp = temp & 0x01;</p><p> write_bit(temp);</p><p><b> delay(5);</b></p><p><b> }</b></p>
103、<p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 : LED_W1()</p><p> * 功能 : 向disbuff[]輸入當(dāng)前溫度值</p>
104、<p> ***********************************************************************/</p><p> void LED_W1()</p><p><b> {</b></p><p> uint temp;</p><p>&l
105、t;b> Reset();</b></p><p> write_byte(jump_ROM);</p><p> write_byte(start);</p><p><b> Reset();</b></p><p> write_byte(jump_ROM);</p>&l
106、t;p> write_byte(read_EEROM);</p><p> TMPL = read_byte();</p><p> TMPH = read_byte();</p><p> temp = TMPL / 16 + TMPH * 16;</p><p> D0=temp/10%10;</p>&l
107、t;p> D1=temp%10;</p><p> disbuff[0]= table[temp/10%10];</p><p> disbuff[1]= table[temp%10]; </p><p><b> }</b></p><p> /*************************
108、*******************************************</p><p> * 名稱 : LED_W2()</p><p> * 功能 : 向disbuff[]輸入?yún)⒖紲囟戎?lt;/p><p> *********************************************************************
109、**/</p><p> void LED_W2() </p><p><b> {</b></p><p> D2=cankao/10;</p><p> D3=cankao%10;</p><p> disbuff[0]= table[cankao/10];</p>
110、<p> disbuff[1]= table[cankao%10];</p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 : display()</p
111、><p> * 功能 : 數(shù)碼管顯示</p><p> ***********************************************************************/</p><p> void display()</p><p><b> { </b></p><
112、;p><b> uchar i;</b></p><p> for(i=0;i<2;i++)</p><p><b> {</b></p><p> P0=disbuff[i];</p><p> P2=~(ten[i]) ;</p><p> De
113、lay_1ms(2); }</p><p><b> }</b></p><p> /********************************************************************</p><p> * 名稱 : display()</p><p> * 功能 : 獨(dú)立按
114、鍵的功能:當(dāng)前溫度值與參考值的切換、參考值得+、——</p><p> ***********************************************************************/</p><p> void KEY()</p><p><b> {</b></p><p>
115、; if(KEY1==0 )</p><p><b> {</b></p><p> Delay_1ms(20); //20毫秒軟件防抖</p><p> if(KEY1==0 )</p><p><b> {</b></p><p> LED_W
116、1();</p><p> flag=1; </p><p><b> } </b></p><p><b> }</b></p><p> if( KEY2==0 )</p><p><b> { </b
117、></p><p> Delay_1ms(20); //20毫秒軟件防抖</p><p> if(KEY2==0 )</p><p><b> {</b></p><p><b> LED_W2();</b></p><p> flag=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 恒溫控制課程設(shè)計(jì)---恒溫控制電路的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---水溫控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--水溫控制器設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒溫控制器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--溫度控制器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-恒溫控制模擬設(shè)計(jì)
- 基于單片機(jī)實(shí)現(xiàn)的溫度控制器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)控制的時(shí)鐘控制器
- 單片機(jī)控制技術(shù)課程設(shè)計(jì)--定時(shí)器控制電路
- 單片機(jī)課程設(shè)計(jì)----空調(diào)溫度控制器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的定時(shí)控制器設(shè)計(jì)
- 基于單片機(jī)水溫控制器的設(shè)計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的純水機(jī)控制電路板設(shè)計(jì)
- 恒溫控制電路設(shè)計(jì)
- 單片機(jī)數(shù)字傳感器課程設(shè)計(jì)-- 溫度控制器
- 單片機(jī)課程設(shè)計(jì)-時(shí)間控制器
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片計(jì)算機(jī)的溫度控制器
- 基于單片機(jī)的水溫控制器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論