2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(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、<p><b>  學(xué)位論文</b></p><p>  空調(diào)機(jī)溫度控制系統(tǒng)的設(shè)計(jì)</p><p> 論文作者姓名:</p><p> 申請(qǐng)學(xué)位專業(yè):電子信息工程</p><p> 申請(qǐng)學(xué)位類別:工學(xué)學(xué)士</p><p> 指導(dǎo)教師姓名(職稱):</p><p>

2、 論文提交日期:</p><p>  空調(diào)機(jī)溫度控制系統(tǒng)的設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  隨著社會(huì)的進(jìn)步,人們對(duì)電子產(chǎn)品的要求越來(lái)越高。電子技術(shù)的進(jìn)步給人們的生活帶來(lái)了根本性的變化。如果說(shuō)微型計(jì)算機(jī)的出現(xiàn)使現(xiàn)代的科學(xué)研究得到了質(zhì)的飛躍,那么單片機(jī)技術(shù)的出現(xiàn)則是給現(xiàn)代控制測(cè)控領(lǐng)域帶來(lái)了一次新的革命。目前,單片

3、機(jī)在工業(yè)控制系統(tǒng)諸多領(lǐng)域得到了極為廣泛的應(yīng)用。特別是其中的C51、S52系列單片機(jī)的出現(xiàn),具有更好的穩(wěn)定性,更快和更準(zhǔn)確的運(yùn)算精度,推動(dòng)了工業(yè)生產(chǎn),影響著人們的工作和學(xué)習(xí)。</p><p>  在現(xiàn)代社會(huì)中,溫度控制不僅應(yīng)用在工廠生產(chǎn)方面,其作用也體現(xiàn)到了各個(gè)方面,隨著人們生活水平的提高,酒店廠房及家庭生活中都會(huì)見(jiàn)到溫度控制的影子,溫度控制將會(huì)更好的服務(wù)于社會(huì)。而今,空調(diào)等家用電器隨著生產(chǎn)技術(shù)的發(fā)展和生活水平的提

4、高越來(lái)越普及,一個(gè)簡(jiǎn)單穩(wěn)定的溫度控制系統(tǒng)能更好的適應(yīng)市場(chǎng)。</p><p>  而本次設(shè)計(jì)就是以S52系列單片機(jī)為核心,實(shí)現(xiàn)了根據(jù)室溫變化,智能控制空氣壓縮機(jī),以達(dá)到調(diào)節(jié)室溫的目的。整個(gè)系統(tǒng)硬件部分包括AD590溫度采集電路,A/D轉(zhuǎn)換電路,按鍵電路,LED數(shù)碼顯示電路。在配合軟件實(shí)現(xiàn)空調(diào)溫度智能控制的基本功能。</p><p>  關(guān)鍵詞:AT89S52單片機(jī);ADC0804;AD590

5、溫度傳感器;LED數(shù)碼顯示</p><p>  Design of an Air Conditioning Temperature Control System</p><p><b>  Abstract</b></p><p>  Along with social progress, people have become increasi

6、ngly demanding electronic products. Advances in electronic technology has brought to people's lives radically changed. If the emergence of micro-computer modern scientific research has been a qualitative leap, then t

7、he emergence of SCM technology is brought to the field of modern control monitoring a new revolution. At present, the MCU in many fields of industrial control systems have been very widely used. In particular the C51, S5

8、2 MCU app</p><p>  In modern society, the temperature control is not only used in factory production, its role is also reflected to each side, with the improvement of living standards, the hotel plant and fa

9、mily life will see the shadow of temperature control, temperature control will be better service to the community. Today, air conditioners and other appliances with the production technology development and improvement o

10、f living standards is becoming increasingly popular, a simple and stable temperature control</p><p>  This time the design is to S52 MCU core, implemented changes based on room temperature, intelligent contr

11、ol air compressors, in order to achieve the purpose of regulating room temperature. The entire system including the AD590 temperature acquisition hardware circuit, A / D converter circuit, the key circuit, LED digital di

12、splay circuit. Air temperature in line with the intelligent control software's basic functions.朗讀</p><p>  顯示對(duì)應(yīng)的拉丁字符的拼音</p><p><b>  字典</b></p><p>  Key words: AT89S5

13、2 microcontroller; ADC0804; AD590 Temperature sensor; LED digital display</p><p><b>  引言</b></p><p><b>  1.1 課題背景</b></p><p>  近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,

14、同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異地更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,根據(jù)具體硬件結(jié)構(gòu)以及具體應(yīng)用對(duì)象的特點(diǎn),與軟件相結(jié)合,加以完善,單片機(jī)之所以在工業(yè)控制有大量的應(yīng)用,就在于它有獨(dú)特的定時(shí)、計(jì)數(shù)功能。這種方案能實(shí)現(xiàn)對(duì)溫控器的狀態(tài)進(jìn)行實(shí)時(shí)控制,控制靈活、可靠,精度高[1],可滿足對(duì)系統(tǒng)的各項(xiàng)要求。</p><p>  1.2 國(guó)內(nèi)外研究現(xiàn)狀 </p>&

15、lt;p>  這些年來(lái),因?yàn)闇囟瓤刂破鳝h(huán)節(jié)已經(jīng)被納入為分布式控制系統(tǒng),個(gè)人電腦和可編程邏輯控制器,全球工業(yè)電子溫度控制器市場(chǎng)增長(zhǎng)緩慢。隋卓我國(guó)電子溫度控制器市場(chǎng)的迅猛發(fā)展,與之相關(guān)的核心生產(chǎn)技術(shù)應(yīng)用與研發(fā)必將成為業(yè)內(nèi)企業(yè)關(guān)注的焦點(diǎn),尤其是溫度控制器被廣泛用于工農(nóng)業(yè)生產(chǎn)[2],科學(xué)研究和生活領(lǐng)域,數(shù)量日漸上升。了解鬼內(nèi)外電子溫度控制器生產(chǎn)核心技術(shù)研發(fā)動(dòng)向,工藝設(shè)備,技術(shù)應(yīng)用及趨勢(shì)對(duì)于企業(yè)提升產(chǎn)品技術(shù)規(guī)格,提高市場(chǎng)競(jìng)爭(zhēng)力十分關(guān)鍵。&l

16、t;/p><p>  就目前情況而定,只能電子式溫度控制器必將在短時(shí)間內(nèi)全面取代機(jī)械式溫度控制器。此外,溫度控制器還將在精度、功能、可靠性及安全性等方面迅速發(fā)展,以后全面智能化的溫度控制器使用將更加方便,功能將更加強(qiáng)大,且更可靠,更安全。目前各界研究的溫度控制器目的大致相同,但方法技術(shù)各具一格,各有千秋。故有綜各界之成果設(shè)計(jì)新型溫度控制器的想發(fā)。目前面臨的問(wèn)題就是如何才能做到取長(zhǎng)補(bǔ)短,從而來(lái)設(shè)計(jì)出新型的溫度控制器。&

17、lt;/p><p>  1.3 本課題研究的意義</p><p>  溫度控制器是基于單片機(jī)開(kāi)發(fā)的溫度控制裝置,其主要功能是,根據(jù)用戶設(shè)定溫度與實(shí)際溫度的差值來(lái)控制壓縮機(jī)執(zhí)行機(jī)構(gòu),從而改變溫度至用戶所需。</p><p>  中央空調(diào)目前在國(guó)內(nèi)已普遍使用,傳統(tǒng)中央空調(diào)的控制方式有一定的滯后,造成室內(nèi)溫度波動(dòng)性較大,影響空調(diào)的溫度控制精度[3]和空調(diào)環(huán)境的舒適性;同時(shí)傳

18、統(tǒng)空調(diào)對(duì)溫度的調(diào)節(jié)是一種斷續(xù)變化過(guò)程,不能根據(jù)環(huán)境溫度變化及時(shí)調(diào)整空調(diào)器工作狀態(tài),因此不能實(shí)現(xiàn)完全自動(dòng)控制、耗電量大。在今天人們追求舒適環(huán)境同時(shí)能源緊張的情況下研究新型中央空調(diào)的控制方法,解決存在的問(wèn)題,具有重要的理論意義和實(shí)用價(jià)值。</p><p>  1.4 課題內(nèi)容 </p><p>  本設(shè)計(jì)溫度信號(hào)通過(guò)AD590溫度傳感器采集,通過(guò)ADC0804將采集的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)傳

19、送給單片機(jī)[4]。利用單片機(jī)實(shí)現(xiàn)對(duì)溫度物理量控制的目的。 根據(jù)比較當(dāng)前室溫和設(shè)定溫度,由單片機(jī)發(fā)出信號(hào)控制風(fēng)扇轉(zhuǎn)動(dòng)達(dá)或停止。并且要求數(shù)碼管能顯示當(dāng)前溫度達(dá)四位,且有設(shè)定溫度模式??梢詫?duì)設(shè)定溫度進(jìn)行加減。</p><p><b>  2 系統(tǒng)硬件設(shè)計(jì)</b></p><p>  2.1 系統(tǒng)總體方案圖以及實(shí)現(xiàn)的功能</p><p>  

20、用單片機(jī)做主控芯片[5],編程實(shí)現(xiàn)風(fēng)扇的轉(zhuǎn)動(dòng)與停止。AD590每隔100ms采集一次此時(shí)室內(nèi)溫度,再將AD590輸出的模擬信號(hào)通過(guò)LM324進(jìn)行調(diào)整放大,轉(zhuǎn)換成電壓后將此電壓傳送至ADC0804構(gòu)成的模數(shù)轉(zhuǎn)換電路,將該模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),再傳送給單片機(jī)進(jìn)行比較,若實(shí)時(shí)溫度比設(shè)定溫度高,則單片機(jī)發(fā)出信號(hào)使風(fēng)扇轉(zhuǎn)動(dòng)進(jìn)行降溫。本設(shè)計(jì)中風(fēng)扇部分由LED發(fā)光二極管代替。但系統(tǒng)上電是,數(shù)碼管顯示OFF,表示此時(shí)溫控系統(tǒng)處于待機(jī)狀態(tài),按下開(kāi)關(guān)鍵后

21、,系統(tǒng)開(kāi)始工作并在LED數(shù)碼管上顯示出此時(shí)室內(nèi)溫度。按下溫度加鍵或是溫度減鍵,則顯示系統(tǒng)默認(rèn)的設(shè)定溫度25CC,表示此時(shí)可以對(duì)設(shè)定溫度進(jìn)行加或減。若五秒內(nèi)沒(méi)有操作,系統(tǒng)則返回初始界面,顯示此時(shí)室內(nèi)溫度??傮w設(shè)計(jì)方案如圖2-1所示。</p><p><b>  圖2-1總體方案圖</b></p><p>  2.2 單片機(jī)簡(jiǎn)介以及外圍電路</p><

22、;p>  2.2.1 單片機(jī)簡(jiǎn)介</p><p>  本次設(shè)計(jì)采用STC89C52單片機(jī),STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-Flash Programable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)[6]。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出

23、管腳相兼容。</p><p>  STC89C52具體介紹如下:</p><p> ?、?主電源引腳(2根)</p><p>  VCC(Pin40):電源輸入,接+5V電源</p><p>  GND(Pin20):接地線</p><p> ?、谕饨泳д褚_(2根)</p><p>  XTA

24、L1(Pin19):片內(nèi)振蕩電路的輸入端</p><p>  XTAL2(Pin20):片內(nèi)振蕩電路的輸出端</p><p><b> ?、劭刂埔_(4根)</b></p><p>  RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p>  ALE/PROG(Pin30)

25、:地址鎖存允許信號(hào)</p><p>  PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)</p><p>  EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。</p><p> ?、芸删幊梯斎?輸出引腳(32根)</p><p>  STC89C52單片機(jī)有4組8位的可編程

26、I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p>  PO口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7</p><p>  P1口(Pin1~Pin8):8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7 </p><p>  P2口(Pin21~Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.

27、0~P2.7 </p><p>  P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7</p><p>  STC89C52主要功能如表2-1所示。</p><p>  表2-1 STC89C52主要功能</p><p>  2.2.2 外圍電路</p><p><b>  

28、(1)時(shí)鐘電路</b></p><p>  STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路如圖2-2(a) 所示,在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩[7]。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值

29、在5~30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。</p><p>  外部方式的時(shí)鐘電路如圖2-2(b)所示,RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。</p><p> ?。╝)內(nèi)部方式時(shí)鐘電路

30、 (b)外部方式時(shí)鐘電路</p><p><b>  圖2-2 時(shí)鐘電路</b></p><p><b> ?。?)復(fù)位操作</b></p><p>  復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于

31、死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。</p><p>  除PC之外,復(fù)位操作還對(duì)其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表2-2所示。</p><p>  表2-2 一些寄存器的復(fù)位狀態(tài)</p><p> ?。?)復(fù)位信號(hào)及其產(chǎn)生</p><p>  RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期

32、(即二個(gè)機(jī)器周期)以上。若使用頗率為6MHz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖2-3所示:</p><p>  圖2-3 復(fù)位信號(hào)的電路邏輯圖</p><p>  整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作

33、所需要的信號(hào)。</p><p>  復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式[8]。</p><p>  上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的,其電路如圖2-4(a)所示。這佯,只要電源Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。</p><p>  按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位

34、是通過(guò)使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,其電路如圖2-4(b)所示;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的,</p><p>  其電路如圖2-4(c)所示:</p><p> ?。╝)上電復(fù)位 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位</p><p><b>  圖2-4 復(fù)位電路</b

35、></p><p>  上述電路圖中的電阻、電容參數(shù)適用于6MHz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。本系統(tǒng)的復(fù)位電路采用圖2-4(a)上電復(fù)位方式。本設(shè)計(jì)中單片機(jī)外圍電路如圖2-5所示。</p><p>  圖2-5 單片機(jī)外圍電路</p><p>  2.3 AD590溫度采集電路</p><p>  2.3.1

36、 AD590溫度傳感器簡(jiǎn)介</p><p>  AD590是美國(guó)模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。AD590是電流型溫度傳感器,通過(guò)對(duì)電流的測(cè)量可得到所需要的溫度值。在被測(cè)溫度一定時(shí),AD590相當(dāng)于一個(gè)恒流源,AD590溫度感測(cè)器是一種已經(jīng)IC化的溫度感測(cè)器,它會(huì)將溫度轉(zhuǎn)換為電流,由于此信號(hào)為模擬信號(hào),因此,要進(jìn)行進(jìn)一步的控制及數(shù)碼顯示,還需將此信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。無(wú)需附加的線性化電路來(lái)校準(zhǔn)熱敏電阻

37、的非線性。當(dāng)要求電壓(或電流)與溫度之間呈線性關(guān)系時(shí),它是迄今為止的最佳選擇。雖然新的數(shù)字輸出溫度傳感器已經(jīng)在許多應(yīng)用中取代了模擬輸出溫度傳感器,但是模擬輸出溫度傳感器在那些無(wú)需數(shù)字化輸出的應(yīng)用場(chǎng)合仍然能夠找到其用武之地。AD590電流輸出溫度傳感器在許多應(yīng)用領(lǐng)域一直是很有活力的產(chǎn)品。因?yàn)槠涓咦杩闺娏鬏敵鍪顾鼘?duì)長(zhǎng)線傳輸?shù)碾妷航德洳幻舾?,這種器件經(jīng)常用于遠(yuǎn)程溫度檢測(cè)。因?yàn)樗軌驒z測(cè) - 55℃~150℃的溫度,并且具有+ 4 V~30 V

38、寬電壓工作范圍,它能用于多種多樣的溫度檢測(cè)。具體設(shè)汁時(shí),可依據(jù)其特性參數(shù)選用。</p><p><b>  它的主要特性如下:</b></p><p> ?。?)流過(guò)器件的電流(mA)等于器件所處環(huán)境的熱力學(xué)溫度(開(kāi)爾文)度數(shù);即:</p><p> ?。?-1) </p>

39、<p>  Ir—流過(guò)器件(AD590)的電流,單位為mA;T—熱力學(xué)溫度,單位為K。 </p><p> ?。?)AD590的測(cè)溫范圍為-55℃~+150℃;</p><p> ?。?)電源電壓范圍4 ~ 30 V,當(dāng)電源電壓在5 ~10V之間,電壓穩(wěn)定度為l %時(shí),所產(chǎn)生的誤差只有±0.01℃;</p><p>  (4)線性電流輸出lA

40、/ K;</p><p> ?。?)線性度好,滿刻度范圍為±0 .3℃;</p><p> ?。?)電阻采用激光修刻工藝,使在+ 25℃ ( 298.2K) 時(shí),器件輸出298.2A:</p><p><b> ?。?)功率損耗低。</b></p><p>  AD590溫度與電流關(guān)系如表2-3所示。</

41、p><p>  表2-3 AD590溫度與電流關(guān)系</p><p>  AD590實(shí)物外觀圖如圖2-6所示。</p><p>  圖2-6 AD590實(shí)物外觀圖</p><p>  在本設(shè)計(jì)中AD590外圍電路如圖2-7所示。</p><p>  圖2-7 AD590外圍電路</p><p> 

42、 2.3.2 LM324運(yùn)放簡(jiǎn)介</p><p>  LM324系列器件為價(jià)格便宜的帶有真差動(dòng)輸入的四運(yùn)算放大器。與單電源應(yīng)用場(chǎng)合的標(biāo)準(zhǔn)運(yùn)算放大器相比,它們有一些顯著優(yōu)點(diǎn)。該四放大器可以工作在低到3.0伏或者高到32伏的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一。共模輸入范圍包括負(fù)電源,因而消除了在許多應(yīng)用場(chǎng)合中采用外部偏置元件的必要性。每一組運(yùn)算放大器它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)輸入

43、端,“V+”、“V-”為正、負(fù)電源端,“Vo”為輸出端。兩個(gè)信號(hào)輸入端中,Vi-(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的位相反;Vi+(+)為同相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相同。LM324的引腳[9]排列見(jiàn)圖2-8。</p><p>  圖2-8 LM324引腳排列圖</p><p>  本設(shè)計(jì)由LM324運(yùn)放組成的電路有兩種,一是電壓跟隨器,二是減法

44、電路。為了將電壓量測(cè)出來(lái)又要使輸出電流I不分流出來(lái),我們使用電壓追隨器其輸出電壓V2等于輸入電壓V。使用電壓跟隨器就可以進(jìn)一步減小誤差。電壓跟隨器電路如圖2-9所示。</p><p><b>  圖2-9電壓跟隨器</b></p><p>  輸出電壓與同相輸入端信號(hào)電壓極性相同,與反相端輸入信號(hào)電壓極性相反,因而如果多個(gè)信號(hào)同時(shí)用于兩個(gè)輸入端時(shí),那么必然可以實(shí)現(xiàn)加減

45、運(yùn)算。若電路只有兩個(gè)輸入,且參數(shù)對(duì)稱。則Uo=Rf/R(U2-U1) ,實(shí)現(xiàn)了對(duì)輸入差模信號(hào)的比例運(yùn)算。減法放大電路如圖2-10所示。</p><p>  圖2-10 減法放大電路</p><p>  2.3.3 溫度采樣工作原理 </p><p>  因?yàn)锳D590是將溫度轉(zhuǎn)換為電流,而單片機(jī)對(duì)電壓信號(hào)更好測(cè)量,所以要將電流轉(zhuǎn)化為電壓,同時(shí)對(duì)電壓信號(hào)進(jìn)行放大后

46、輸入A/D轉(zhuǎn)換ADC0804的VIN(+)端口。 其輸出電流是以絕對(duì)溫度零度(-273℃)為基準(zhǔn),每增加1℃,它會(huì)增加1μA輸出電流, 因此在室溫25℃時(shí),輸出電路為Io=(273+25)=298μA。因此量測(cè)的電壓V為(273+T)μA ×10K= (2.73+T/100)V。為了將電壓量測(cè)出來(lái)又要使輸出電流I不分流出來(lái),我們使用電壓追隨器其輸出電壓V2等于輸入電壓V。再利用可變電阻分壓,其輸出電壓V1需調(diào)整至2.73V。接

47、下來(lái)我們使用差動(dòng)放大器其輸出Vo為 (100K/10K)×(V2-V1)=T/10V。如果現(xiàn)在為25℃,輸出電壓為2.5V。 溫度采樣原理圖如圖2-11所示。</p><p>  圖2-11 溫度采集原理圖</p><p>  2.4 ADC0804模數(shù)轉(zhuǎn)換電路</p><p>  2.4.1 ADC0804模數(shù)轉(zhuǎn)換原理簡(jiǎn)介</p>

48、<p>  ADC0804的管腳圖[9]如圖2-12所示。</p><p>  圖2-12 ADC0804管腳圖</p><p>  它的主要電氣特性如下:</p><p>  工作電壓:+5V,即VCC=+5V。</p><p>  模擬輸入電壓范圍:0~+5V,即0≤Vin≤+5V。</p><p>  

49、分辨率:8位,即分辨率為1/28=1/256,轉(zhuǎn)換值介于0~255之間。</p><p>  轉(zhuǎn)換時(shí)間:100us(fCK=640KHz時(shí))。</p><p>  轉(zhuǎn)換誤差:±1LSB。</p><p>  參考電壓:2.5V,即Vref=2.5V。</p><p>  ADC0804是屬于連續(xù)漸進(jìn)式(Successive Appr

50、oximation Method)的A/D轉(zhuǎn)換器,這類型的A/D轉(zhuǎn)換器除了轉(zhuǎn)換速度快(幾十至幾百us)、分辨率高外,還有價(jià)錢便宜的優(yōu)點(diǎn),普遍被應(yīng)用于微電腦的接口設(shè)計(jì)上。</p><p>  以輸出8位的ADC0804動(dòng)作來(lái)說(shuō)明“連續(xù)漸進(jìn)式A/D轉(zhuǎn)換器”的轉(zhuǎn)換原理,動(dòng)作步驟如下表示(原則上先從左側(cè)最高位尋起)。</p><p>  第一次尋找結(jié)果:10000000 (若假設(shè)值≤輸入值,則尋

51、找位=假設(shè)位=1)</p><p>  第二次尋找結(jié)果:11000000 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位=1)</p><p>  第三次尋找結(jié)果:11000000 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位=0)</p><p>  第四次尋找結(jié)果:11010000 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位=1)</p><p>  第五

52、次尋找結(jié)果:11010000 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位=0)</p><p>  第六次尋找結(jié)果:11010100 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位=1)</p><p>  第七次尋找結(jié)果:11010110 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位=1)</p><p>  第八次尋找結(jié)果:11010110 (若假設(shè)值≤輸入值,則尋找位=假設(shè)位

53、=0)</p><p>  這樣使用二分法的尋找方式,8位的A/D轉(zhuǎn)換器只要8次尋找,12位的A/D轉(zhuǎn)換器只要12次尋找,就能完成轉(zhuǎn)換動(dòng)作,其中的輸入值代表模擬輸入電壓Vin(+)。對(duì)8位ADC0804而言,它的輸出準(zhǔn)位共有28=256種,即它的分辨率是1/256,假設(shè)輸入信號(hào)Vin為0 ~ 5V電壓范圍,則它的最小輸出電壓是5V/256=0.01953V,這就代表ADC0804所能轉(zhuǎn)換的最小電壓值。至于內(nèi)部的轉(zhuǎn)

54、換頻率Fck是由CLKR、CLIN所連接的電阻R,以及電容C來(lái)決定的。頻率計(jì)算公式是:Fck=1/(1.1*R*C)。</p><p>  2.4.2 A/D模數(shù)轉(zhuǎn)換原理圖</p><p>  ADC0804的A/D轉(zhuǎn)換結(jié)果輸出端DB0—DB7與89c52的P1.0-P1.7相連,CS、RD、WR、INTR分別與單片機(jī)的INT0、RD、WR、INT1口相連,INTR端用于給出A/D轉(zhuǎn)換

55、完成信號(hào),所以通過(guò)查詢P3.3便可以獲知A/D轉(zhuǎn)換是否完成。Vin+與運(yùn)放的輸出端相連,輸入所測(cè)電壓。AGND、DGND、VIN-接地。(低電平有效)A/D轉(zhuǎn)換原理圖如圖2-13所示。</p><p>  圖2-13 A/D轉(zhuǎn)換原理圖</p><p>  2.5 LED四聯(lián)數(shù)碼管顯示電路</p><p>  本設(shè)計(jì)采用四聯(lián)共陰數(shù)碼管顯示溫度。溫度采集系統(tǒng)輸出模擬

56、信號(hào),通過(guò)ADC0804轉(zhuǎn)換成數(shù)字信號(hào),再傳送給單片機(jī)處理,通過(guò)BCD轉(zhuǎn)換傳送至數(shù)碼管顯示。數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。</p><p>  (1)靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜

57、態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 ?。?)動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連

58、在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間</p

59、><p>  圖2-14共陰數(shù)碼管管腳圖</p><p>  本設(shè)計(jì)用的是動(dòng)態(tài)顯示驅(qū)動(dòng),動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。缺點(diǎn)是編程比靜態(tài)顯示驅(qū)動(dòng)稍微復(fù)雜一點(diǎn)。數(shù)碼管顯示模塊如圖2-15所示。</p><p>  圖2-15 數(shù)碼管顯示模塊</p><p>  2.6 固態(tài)繼電器控制風(fēng)扇降溫模塊</

60、p><p>  固態(tài)繼電器英文名稱為Solid State Relay,簡(jiǎn)稱SSR。它是半導(dǎo)體代替?zhèn)鹘y(tǒng)電接點(diǎn)作為切換裝置的具有繼電器的無(wú)觸點(diǎn)開(kāi)關(guān)器件,單相SSR為四端有源器件,其中兩個(gè)輸入控制,兩個(gè)輸出端,輸入輸出間為光隔離,輸入端加上直流或脈沖信號(hào)到一定電流值后,輸出端就能從斷態(tài)轉(zhuǎn)變成通態(tài)。固態(tài)繼電器分為過(guò)零型和隨機(jī)型[10]。在本設(shè)計(jì)中固態(tài)繼電器起到開(kāi)關(guān)的作用,因此選用過(guò)零型SSR。固態(tài)繼電器不是直接接溫度控制器

61、,溫控器僅是一個(gè)傳感元件,相應(yīng)的還得有電源和其它輔助電路。</p><p>  壓縮機(jī)驅(qū)動(dòng)控制,89c52的RXD的引腳與7404的引腳相連接,從RXD發(fā)出的控制信號(hào)經(jīng)7404和ULN2003到達(dá)壓縮機(jī),驅(qū)動(dòng)壓縮機(jī)的運(yùn)行和停止。</p><p>  ULN2003是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的

62、系統(tǒng)。ULN2003是由7個(gè)NPN具有用共陰二極管夾緊來(lái)轉(zhuǎn)換電感負(fù)載的高壓輸出特征的達(dá)林頓晶體管組成。當(dāng)前一對(duì)單精度型的額定電流為500mA,有比較高的電流容量,它的應(yīng)用軟件包括繼電器驅(qū)動(dòng)器、顯示驅(qū)動(dòng)器,線驅(qū)動(dòng)器和邏輯緩沖器等。在本驅(qū)動(dòng)電路中的作用是增大電流驅(qū)動(dòng)能力。該芯片采用16腳的DIP 封裝,其中第9為公共輸出端COM,有一個(gè)輸出端為高電平,COM就為高電平。其風(fēng)扇控制原理圖如圖2-16所示。</p><p&g

63、t;  圖2-16 風(fēng)扇控制原理圖</p><p>  由于風(fēng)扇不便于攜帶,在本次設(shè)計(jì)中風(fēng)扇由發(fā)光二極管代替。將發(fā)光二極管的一端通過(guò)一個(gè)330Ω的電阻與單片機(jī)的p2.3相連。當(dāng)室溫比設(shè)定溫度高時(shí),由單片機(jī)發(fā)出一個(gè)低電平信號(hào),將發(fā)光二極管點(diǎn)亮。發(fā)光二極管代替原理圖如圖2-17所示。</p><p>  圖2-17 發(fā)光二極管代替原理圖</p><p><b>

64、;  2.7 按鍵模塊</b></p><p>  本設(shè)計(jì)有三個(gè)按鍵,他們分別的功能是開(kāi)/關(guān)、溫度加、溫度減。相連于單片機(jī)p2.2、p2.0、p2.1。沒(méi)有按鍵操作的時(shí)候單片機(jī)的三個(gè)引腳處于高電平狀態(tài)[11],當(dāng)有按鍵操作時(shí),單片機(jī)的三個(gè)引腳接地。開(kāi)/關(guān)鍵的主要作用是當(dāng)系統(tǒng)上電后,數(shù)碼管顯示OFF,此時(shí)處于待機(jī)狀態(tài)。按下開(kāi)關(guān)鍵后溫控器打開(kāi),此時(shí)顯示的溫度為室內(nèi)溫度,若室內(nèi)溫度比設(shè)定溫度高,則單片機(jī)給

65、予p2.3口一個(gè)低電平,將發(fā)光二極管點(diǎn)亮,即開(kāi)始降溫。溫度加鍵和溫度減鍵用來(lái)加減設(shè)定溫度。系統(tǒng)默認(rèn)的設(shè)定溫度是25℃,當(dāng)按下溫度加或者溫度減鍵則顯示25CC。表示此時(shí)可以對(duì)設(shè)定溫度進(jìn)行加減操作。若五秒內(nèi)沒(méi)有操作,則返回顯示此時(shí)室內(nèi)溫度。按鍵原理圖如圖2-18所示。</p><p>  圖2-18 按鍵原理圖</p><p>  2.8 系統(tǒng)實(shí)物圖</p><p>

66、  系統(tǒng)實(shí)物圖見(jiàn)附錄一。</p><p><b>  3 系統(tǒng)軟件設(shè)計(jì)</b></p><p>  3.1 軟件設(shè)計(jì)思路</p><p>  軟件設(shè)計(jì)的任務(wù)包括啟動(dòng)A/D轉(zhuǎn)換、讀A/D轉(zhuǎn)換結(jié)果、送顯、設(shè)置溫度、溫度控制等,其中啟動(dòng)A/D轉(zhuǎn)換、讀A/D轉(zhuǎn)換結(jié)果、設(shè)置溫度等工作在主程序中完成,溫度控制在中斷服務(wù)程序[12]中完成,即每隔一段時(shí)間

67、對(duì)比測(cè)量溫度與設(shè)定溫度之間的大小關(guān)系,根據(jù)對(duì)比結(jié)果給出控制信號(hào),令壓縮機(jī)的運(yùn)行或停止,實(shí)現(xiàn)溫度調(diào)控。</p><p>  3.2 程序流程圖</p><p>  主程序流程圖如圖3-1所示。</p><p>  中斷服務(wù)程序流程圖3-2所示。</p><p>  圖3-1 主程序流程圖</p><p>  圖3-2中

68、斷服務(wù)程序流程圖</p><p><b>  3.3 程序代碼</b></p><p>  #include <reg52.h></p><p>  #include <stdio.h></p><p>  #include <intrins.h></p><p&

69、gt;  #include <math.h></p><p>  typedef unsigned int uint;</p><p>  typedef unsigned char uchar;</p><p>  sbit Dianji=P2^3;//壓縮機(jī)控制端口定義,當(dāng)Dianji=0時(shí)壓縮機(jī)啟動(dòng),當(dāng)Dianji=1時(shí)//壓縮機(jī)停止</p&

70、gt;<p>  /*ADC0804相關(guān)控制端口定義*/</p><p>  sbit CS_0804=P3^2;</p><p>  sbit INTR_0804=P3^3;</p><p>  sbit WR_0804=P3^6;</p><p>  sbit RD_0804=P3^7;</p><p&g

71、t;  uchar code LED_CODE[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,</p><p>  0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //數(shù)碼管顯示編碼</p><p>  uchar code a[4]={0x77,0xB7,0xD7,0xE7};</p><p&

72、gt;  uchar data LED[4],x,Sys_Flag,Set_Flag; //4位數(shù)碼管顯示緩存,x數(shù)碼管位指</p><p>  //針,Sys_Flag系統(tǒng)工作狀態(tài)標(biāo)志(0表示系統(tǒng)關(guān)閉,1表示系統(tǒng)工作)</p><p>  uint data Key_time,time_count; //Key_time按鍵超時(shí)計(jì)時(shí)變量,time_count</p><

73、;p>  //用于100ms計(jì)時(shí)</p><p>  uint wendu,wendu_temp,wendu_set; </p><p>  void delay(uint z); //延時(shí)子程序</p><p>  uchar key_scan(void);//按鍵掃描程序</p><p>  uchar read_0804(void

74、);//0804讀取數(shù)據(jù)子函數(shù)</p><p>  void main(void)</p><p>  { uchar Key_number;</p><p>  Sys_Flag=0; //初始化溫控系統(tǒng)處于關(guān)閉狀態(tài),等待開(kāi)啟</p><p>  Set_Flag=0;//初始化處于非設(shè)定溫度狀態(tài)</p><p> 

75、 Dianji=1;//初始化壓縮機(jī)停止運(yùn)轉(zhuǎn)</p><p>  Key_time=0; //初始化按鍵超時(shí)變量</p><p>  time_count=0;</p><p>  wendu_set=25; //初始化設(shè)定溫度為25度</p><p>  LED[0]=0x00;</p><p>  LED[1]=L

76、ED_CODE[0];</p><p>  LED[2]=LED_CODE[15];</p><p>  LED[3]=LED_CODE[15];</p><p><b>  x=0;</b></p><p>  P2=a[x]|(P2&0x08);</p><p>  P0=LED[x]

77、;</p><p><b>  x++;</b></p><p>  TMOD=0x01; //初始化定時(shí)器0為工作方式1</p><p>  TH0=0xF8; //定時(shí)器T0初值載入,中斷時(shí)間為2ms</p><p><b>  TL0=0x30;</b></p><p&

78、gt;<b>  ET0=1; </b></p><p><b>  EA=1;</b></p><p><b>  TR0=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b>

79、;</p><p>  L1:Key_number=key_scan();</p><p>  if(Key_number==1) //按下開(kāi)關(guān)/復(fù)位鍵</p><p><b>  {</b></p><p>  Sys_Flag=1; //將溫控系統(tǒng)狀態(tài)標(biāo)志改為啟動(dòng)</p><p>  wen

80、du=(read_0804()*50)/2.55;</p><p>  wendu_temp=wendu;</p><p>  LED[0]=LED_CODE[(wendu_temp/1000)];</p><p>  wendu_temp=wendu_temp%1000;</p><p>  LED[1]=LED_CODE[(wendu_t

81、emp/100)]|0x80;</p><p>  wendu_temp=wendu_temp%100;</p><p>  LED[2]=LED_CODE[wendu_temp/10];</p><p>  LED[3]=LED_CODE[wendu_temp%10];</p><p><b>  while(1)</b&g

82、t;</p><p><b>  {</b></p><p>  L2: Key_number=key_scan();</p><p>  if(Key_number==1) //關(guān)閉溫控系統(tǒng)</p><p><b>  {</b></p><p>  Sys_Fl

83、ag=0; //將溫控系統(tǒng)狀態(tài)標(biāo)志改為停止</p><p>  Dianji=1; //停止壓縮機(jī)</p><p>  LED[0]=0x00;//溫控系統(tǒng)關(guān)閉狀態(tài)下,數(shù)碼管顯示OFF</p><p>  LED[1]=LED_CODE[0];</p><p>  LED[2]=LED_CODE[15];</p><p&g

84、t;  LED[3]=LED_CODE[15];</p><p><b>  goto L1;</b></p><p><b>  }</b></p><p>  else if((Key_number==2)||(Key_number==3))//按下溫度加或者溫度</p><p>  //減鍵進(jìn)

85、入設(shè)定模式</p><p><b>  {</b></p><p>  Set_Flag=1; //更改系統(tǒng)狀態(tài)處于設(shè)定狀態(tài)</p><p>  LED[0]=LED_CODE[wendu_set/10]; //溫度設(shè)定時(shí),數(shù)碼管前兩位</p><p>  //顯示當(dāng)前的設(shè)定溫度,后兩位顯示字符'C'&l

86、t;/p><p>  LED[1]=LED_CODE[wendu_set%10];</p><p>  LED[2]=LED_CODE[12];</p><p>  LED[3]=LED_CODE[12];</p><p>  Key_time=2500; //設(shè)定按鍵超時(shí)為5s時(shí)間,若5s之內(nèi)沒(méi)有按鍵操</p><p>

87、  //作,則退出設(shè)定模式返回主菜單,數(shù)碼管顯示實(shí)測(cè)溫度</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(!Key_time) //按鍵超時(shí)的處理</p><p><b>  {</b></p>

88、<p>  Set_Flag=0;//退出設(shè)定模式,更改系統(tǒng)狀態(tài)處于非設(shè)定狀</p><p><b>  //態(tài)</b></p><p><b>  goto L2;</b></p><p><b>  }</b></p><p>  Key_number=key

89、_scan();</p><p>  if(Key_number==1) //按下開(kāi)關(guān)/復(fù)位鍵將設(shè)定溫度復(fù)位成默</p><p><b>  //認(rèn)25度</b></p><p><b>  {</b></p><p>  wendu_set=25;</p><p>  LE

90、D[0]=LED_CODE[wendu_set/10]; //溫度設(shè)定時(shí),數(shù)碼管</p><p>  //前兩位顯示當(dāng)前的設(shè)定溫度,后兩位顯示字符'C'</p><p>  LED[1]=LED_CODE[wendu_set%10];</p><p>  LED[2]=LED_CODE[12];</p><p>  LED[3

91、]=LED_CODE[12];</p><p>  Key_time=2500; //設(shè)定按鍵超時(shí)為5s時(shí)間,若5s之內(nèi)沒(méi)有</p><p>  //按鍵操作,則退出設(shè)定模式返回主菜單,數(shù)碼管顯示實(shí)測(cè)溫度</p><p><b>  }</b></p><p>  else if(Key_number==2)//按下溫度

92、減鍵,將設(shè)定溫度減少1</p><p><b>  //度</b></p><p><b>  {</b></p><p>  wendu_set--;</p><p>  LED[0]=LED_CODE[wendu_set/10]; //溫度設(shè)定時(shí),數(shù)碼管</p><p>

93、  //前兩位顯示當(dāng)前的設(shè)定溫度,后兩位顯示字符'C'</p><p>  LED[1]=LED_CODE[wendu_set%10];</p><p>  LED[2]=LED_CODE[12];</p><p>  LED[3]=LED_CODE[12]; </p><p>  Key_time=2500; //設(shè)定按鍵

94、超時(shí)為5s時(shí)間,若5s之內(nèi)沒(méi)有</p><p>  //按鍵操作,則退出設(shè)定模式返回主菜單,數(shù)碼管顯示實(shí)測(cè)溫度</p><p><b>  }</b></p><p>  else if(Key_number==3)//按下溫度加鍵,將設(shè)定溫度增加1</p><p><b>  //度</b><

95、;/p><p><b>  {</b></p><p>  wendu_set++;</p><p>  LED[0]=LED_CODE[wendu_set/10]; //溫度設(shè)定時(shí),數(shù)碼管</p><p>  //前兩位顯示當(dāng)前的設(shè)定溫度,后兩位顯示字符'C'</p><p>  L

96、ED[1]=LED_CODE[wendu_set%10];</p><p>  LED[2]=LED_CODE[12];</p><p>  LED[3]=LED_CODE[12]; </p><p>  Key_time=2500; //設(shè)定按鍵超時(shí)為5s時(shí)間,若5s之內(nèi)沒(méi)有</p><p>  //按鍵操作,則退出設(shè)定模式返回主菜單,數(shù)碼

97、管顯示實(shí)測(cè)溫度</p><p><b>  }</b></p><p><b>  else ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else

98、 ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*延時(shí)子程序 Zms *

99、/</p><p>  void delay(uint z) </p><p><b>  {</b></p><p>  unsigned int x,y;</p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p

100、><p><b>  }</b></p><p>  /*按鍵掃描子程序,用于主程序不斷讀取按鍵值,</p><p>  鍵按下則返回鍵值1~3,若沒(méi)有鍵按下則返回0 */</p><p>  uchar key_scan(void)</p><p><b>  {</b><

101、;/p><p>  uchar temp_i,i;</p><p>  temp_i=0x04;</p><p>  if((P2&0x07)!=0x07) //表示有鍵按下</p><p><b>  {</b></p><p>  delay(10); //延時(shí)消抖</p>

102、<p>  if((P2&0x07)!=0x07)</p><p><b>  {</b></p><p>  for(i=0;i<3;i++)</p><p>  if(!(P2&(temp_i>>i)))</p><p><b>  {</b>&l

103、t;/p><p>  while(!(P2&(temp_i>>i))); //等待按鍵釋放</p><p>  return (i+1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  else retur

104、n 0;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  /*0804讀取數(shù)據(jù)

105、子函數(shù)*/</p><p>  uchar read_0804(void)</p><p><b>  {</b></p><p><b>  uchar a;</b></p><p><b>  P1=0xFF;</b></p><p>  CS_08

106、04=0; //啟動(dòng)一次轉(zhuǎn)換</p><p><b>  _nop_();</b></p><p>  WR_0804=0; </p><p><b>  _nop_();</b></p><p>  WR_0804=1;</p><p><b>  _nop_()

107、;</b></p><p>  CS_0804=1;</p><p><b>  _nop_();</b></p><p><b>  delay(1);</b></p><p>  CS_0804=0;</p><p><b>  _nop_();&l

108、t;/b></p><p>  RD_0804=0;</p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  a=P1;</b></p><p><b>  

109、_nop_();</b></p><p>  RD_0804=1;</p><p><b>  _nop_();</b></p><p>  CS_0804=1;</p><p>  return(a);</p><p><b>  }</b></p>

110、<p>  /*定時(shí)器中斷0*/</p><p>  void intt0(void) interrupt 1</p><p><b>  {</b></p><p>  TH0=0xF8; //定時(shí)器T0初值重新載入,中斷時(shí)間為2ms</p><p><b>  TL0=0x30;</b

111、></p><p>  if(Key_time) Key_time--; //如果設(shè)定了按鍵超時(shí)不為0,則每次減少2ms直</p><p><b>  //至到超時(shí)為0</b></p><p>  if(Sys_Flag)</p><p><b>  {</b></p><

112、p>  time_count++;</p><p>  if(time_count>=50) //100ms計(jì)時(shí)到</p><p><b>  {</b></p><p>  time_count=0;</p><p>  wendu=(read_0804()*50)/2.55;</p><

113、;p>  wendu_temp=wendu;</p><p>  if(!Set_Flag)</p><p><b>  {</b></p><p>  LED[0]=LED_CODE[(wendu_temp/1000)];</p><p>  wendu_temp=wendu_temp%1000;</p&g

114、t;<p>  LED[1]=LED_CODE[(wendu_temp/100)]|0x80;</p><p>  wendu_temp=wendu_temp%100;</p><p>  LED[2]=LED_CODE[wendu_temp/10];</p><p>  LED[3]=LED_CODE[wendu_temp%10];</p>

115、;<p><b>  }</b></p><p>  if(wendu>(wendu_set*100)) Dianji=0; //實(shí)測(cè)溫度超過(guò)設(shè)定溫度,啟動(dòng)</p><p><b>  //壓縮機(jī),降溫</b></p><p>  else Dianji=1; //實(shí)測(cè)溫度小于設(shè)定溫度,停止壓縮機(jī)&

116、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  P2=a[x]|(P2&0x08);</p><p>  P0=LED[x];</p><p><b>  x++;</b></p>

117、<p>  if(x>3) x=0;</p><p><b>  }</b></p><p><b>  4 系統(tǒng)仿真</b></p><p>  系統(tǒng)仿真主要由Proteus軟件和Keil 軟件完成。將該系統(tǒng)的程序代碼輸入Keil軟件,經(jīng)編譯、連接、運(yùn)行后產(chǎn)生.hex文件。再在Proteus中搭建仿真

118、電路,載入.hex文件運(yùn)行。系統(tǒng)仿真圖見(jiàn)附錄二。</p><p><b>  5 系統(tǒng)調(diào)試</b></p><p>  在硬件調(diào)試之前,一定得要確認(rèn)硬件電路的正確性。以及檢查電路板的線路是否有連接,焊接是否有虛焊。上電之前一定要檢查電源和地是否短路。</p><p>  本設(shè)計(jì)在硬件調(diào)試時(shí),遇到如下問(wèn)題:</p><p&g

119、t;  軟硬聯(lián)調(diào)時(shí),數(shù)碼管顯示亂碼。經(jīng)檢查發(fā)現(xiàn)在Proteus仿真中,數(shù)碼管選用的是共陽(yáng)數(shù)碼管,因此數(shù)碼管的七段編碼是適用于共陽(yáng)數(shù)碼管[13]。而在實(shí)際電路中選用的是共陰數(shù)碼管,所以顯示不正確。修改程序中的數(shù)碼管七段編碼后,顯示正常。</p><p>  溫度采集模塊,由第三個(gè)運(yùn)放組成的差分比例運(yùn)算電路的放大倍數(shù)不對(duì)。設(shè)計(jì)時(shí)根據(jù)比例輸出應(yīng)該放大十倍,然而實(shí)際才放大五倍。經(jīng)檢查發(fā)現(xiàn),運(yùn)放兩端的輸入電阻本應(yīng)該為10K

120、Ω,而實(shí)際電路誤接了20KΩ。換電阻后,工作恢復(fù)正常。</p><p>  首先將LM324三腳輸入電壓即基準(zhǔn)電壓通過(guò)改變電位器阻值調(diào)至2.73V。</p><p>  LM324各個(gè)引腳實(shí)測(cè)電壓如下:</p><p>  一腳輸出2.73V,即六腳輸入電壓V1=2.73V;十腳輸入2.98V;八腳輸出2.98V,即五腳輸入電壓V2=2.98V;經(jīng)過(guò)減法放大電路后,

121、七腳的輸出為1.27V,即ADC0804第六腳Vin(+)的輸入電壓為1.27V。由公式(100K/10K)×(V2-V1)=T/10V計(jì)算得:T/10=2.5V,即經(jīng)過(guò)減法放大電路放大十倍后,七腳的輸出應(yīng)為2.5V才對(duì)。而實(shí)測(cè)電壓卻為1.27V。1.27/(2.98-2.73) ≈5,即減法放大電路才將電壓放大五倍。經(jīng)過(guò)檢查減法放大電路,發(fā)現(xiàn)Rf=100KΩ,R=20 KΩ,即放大倍數(shù)為Rf/R=100/20=5。由于原理圖

溫馨提示

  • 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ù)僅提供信息存儲(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)論