2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  1總體方案設(shè)計(jì)</b></p><p>  隨著人們生活水平的提高,人們對(duì)空調(diào)的舒適性和空氣品質(zhì)的要求越來(lái)越高,分體式空調(diào)已不能滿(mǎn)足人們的要求,戶(hù)式中央空調(diào)得到了迅猛的發(fā)展。就室內(nèi)居住環(huán)境而言,恒溫環(huán)境并非是衛(wèi)生和舒適的。因?yàn)槌藴囟韧猓€有濕度、空氣流速、空氣潔凈度等諸多因素影響到舒適的程度。而傳統(tǒng)的中央空調(diào)靠設(shè)置機(jī)械溫控開(kāi)關(guān)來(lái)實(shí)現(xiàn)房間的恒溫控制。這種控制方法

2、,一方面操作不方便;另一方面溫度波動(dòng)范圍大,不但影響人的舒適感,而且會(huì)造成一定的能量損耗。采用單片機(jī)溫度控制系統(tǒng)控制的戶(hù)式中央空調(diào)系統(tǒng),可以根據(jù)室內(nèi)的環(huán)境因素,調(diào)節(jié)風(fēng)機(jī)的轉(zhuǎn)速,為人們創(chuàng)造一個(gè)舒適的室內(nèi)環(huán)境,同時(shí)又節(jié)省電。</p><p>  隨著電子技術(shù)的發(fā)展,特別是隨著大規(guī)模集成電路的產(chǎn)生,給人們的生活帶來(lái)了根本性的變化,如果說(shuō)微型計(jì)算機(jī)的出現(xiàn)使現(xiàn)代的科學(xué)研究得到了質(zhì)的飛躍,那么單片機(jī)技術(shù)的出現(xiàn)則是給現(xiàn)代工業(yè)控

3、制測(cè)控領(lǐng)域帶來(lái)了一次新的革命。目前,單片機(jī)在工業(yè)控制系統(tǒng)諸多領(lǐng)域得到了極為廣泛的應(yīng)用。特別是其中的C51系列的單片機(jī)[3]的出現(xiàn),具有更好的穩(wěn)定性,更快和更準(zhǔn)確的運(yùn)算精度,推動(dòng)了工業(yè)生產(chǎn),影響著人們的工作和學(xué)習(xí)。而本次設(shè)計(jì)就是要通過(guò)以C51系列單片機(jī)為控制核心,實(shí)現(xiàn)空調(diào)機(jī)溫度控制系統(tǒng)的設(shè)計(jì)。</p><p><b>  1.1方案一</b></p><p>  選用A

4、T89C51單片機(jī)為中央處理器,通過(guò)溫度傳感器DS18B20對(duì)空氣進(jìn)行溫度采集,將采集到的溫度信號(hào)傳輸給單片機(jī),由單片機(jī)控制顯示器,并比較采集溫度與設(shè)定溫度是否一致,然后驅(qū)動(dòng)空調(diào)機(jī)的加熱或降溫系統(tǒng)對(duì)空氣進(jìn)行處理,從而模擬實(shí)現(xiàn)空調(diào)溫度控制單元的工作情況。在整個(gè)設(shè)計(jì)中,涉及到溫度檢測(cè)電路、驅(qū)動(dòng)控制電路、顯示電路、鍵盤(pán)電路以及電源的設(shè)計(jì)等電路。其中單片機(jī)的控制程序是起到各個(gè)電路之間的相互協(xié)調(diào),控制各個(gè)電路正常工作的至關(guān)重要的作用。其方框圖如下

5、:</p><p>  圖1-1 方案一設(shè)計(jì)圖框</p><p>  該圖控制簡(jiǎn)單,思路清晰,各單元模塊的相互銜接較簡(jiǎn)單,同時(shí)成本低廉,用的各種器件都是常用器件,更具有使用性。</p><p><b>  1.2方案二</b></p><p>  該方案采用的是AT89C51單片機(jī)為核心控制器件,用它來(lái)處理各個(gè)單元電路的

6、工作以及檢測(cè)其運(yùn)行情況。本方案中采用的是LM35DZ溫度傳感器,通過(guò)溫度采集電路采集相關(guān)溫度數(shù)值,再由ADC0809組成的A/D轉(zhuǎn)換電路進(jìn)行轉(zhuǎn)換,最終得到數(shù)字信號(hào),將其直接傳輸給單片機(jī),然后由單片機(jī)根據(jù)內(nèi)部程序判斷,執(zhí)行相關(guān)控制程序,驅(qū)動(dòng)各單元電路的工作。其方框圖如下:</p><p>  圖1-2 方案二設(shè)計(jì)圖框</p><p>  該方案容易控制,系統(tǒng)原理比較簡(jiǎn)單,電路可靠。但其中的溫

7、度測(cè)量電路、譯碼電路復(fù)雜,容易產(chǎn)生誤差和由電路復(fù)雜而導(dǎo)致的設(shè)備使用壽命低等一系列問(wèn)題。</p><p>  1.3總體方案選擇及實(shí)現(xiàn)</p><p>  1.3.1 方案選擇</p><p>  選擇方案一。控制簡(jiǎn)單,思路清晰,各單元模塊的相互連接較簡(jiǎn)單,同時(shí)成本低廉,用到的各種器件都是常用器件,更具有使用性。</p><p>  1.3.2

8、 具體的實(shí)現(xiàn)方案</p><p>  實(shí)現(xiàn)方案的技術(shù)線路為:用按鈕輸入標(biāo)準(zhǔn)溫度值,用LED實(shí)時(shí)顯示環(huán)境空氣溫度,用驅(qū)動(dòng)電路控制壓縮機(jī)完成加熱和制冷調(diào)節(jié),用ISIS軟件對(duì)設(shè)計(jì)進(jìn)行仿真,用C語(yǔ)言完成軟件編程。單片機(jī)AT89S51中央處理器如圖所示:</p><p>  圖1-3 單片機(jī)AT89C51</p><p>  Vcc、Vss:用于外接單片機(jī)的工作電源,電源電壓

9、為5V。XTAL1、XTALL2:用于外接晶振構(gòu)成振蕩電路或直接輸入時(shí)鐘信號(hào)。RST:復(fù)位信號(hào)輸入引腳,高電平有效。ALE:地址鎖存信號(hào)輸出引腳,固定輸出1/6振蕩頻率的脈沖,可作為脈沖信號(hào)源使用。/EA:片內(nèi)、片外程序存儲(chǔ)器選擇控制引腳。 </p><p>  輸入部分:AT89S51、A/D轉(zhuǎn)換 、驅(qū)動(dòng)控制、溫度控制器、加熱、制冷??諝怙@示部分:4/PSEN:片外程序存儲(chǔ)器讀允許控制器。P0.0~P0.7:P

10、0口I/O引腳,或數(shù)據(jù)線/低8位地址總線復(fù)用引腳。P1.0~P1.7:P1口I/O引腳。P2.0~P2.7:P2口I/O引腳,或高8位地址總線引腳。P3.0~P3.7:P3口I/O引腳,此外,每個(gè)引腳都有第二功能。</p><p><b>  2硬件設(shè)計(jì)</b></p><p>  2.1硬件各單元方案設(shè)計(jì)與選擇</p><p>  2.1.1

11、 溫度傳感部分</p><p>  要求對(duì)溫度和與溫度有關(guān)的參量進(jìn)行檢測(cè),應(yīng)該考慮用熱電阻傳感器。按照熱電阻的性質(zhì)可以分為半導(dǎo)體熱電阻和金屬熱電阻兩大類(lèi),前者通常稱(chēng)為熱敏電阻,后者稱(chēng)為熱電阻。</p><p>  半導(dǎo)體熱敏電阻是利用某些半導(dǎo)體材料的電阻值隨溫度的升高而減小(或升高)的特性制成的,大多數(shù)的半導(dǎo)體熱敏電阻具有負(fù)溫度系數(shù)。負(fù)溫度系數(shù)熱敏電阻器的特點(diǎn)是:在工作溫度范圍內(nèi)電阻阻值隨

12、溫度的升高而降低??蓾M(mǎn)足40℃~90℃測(cè)量范圍,具有靈敏度高,電阻值高,體積小,結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,化學(xué)穩(wěn)定性好,使用壽命長(zhǎng)等優(yōu)點(diǎn);但其互換性較差,而且線性度也很差,不能直接用于A/D轉(zhuǎn)換,應(yīng)該用硬件或軟件對(duì)其進(jìn)行線性化補(bǔ)償。</p><p>  金屬熱電阻中屬鉑電阻和銅電阻最為常用,這里以鉑電阻Pt1000為例。鉑熱電阻的物理化學(xué)性能在高溫和氧化性介質(zhì)中很穩(wěn)定,它能用作工業(yè)測(cè)溫元件,且此元件線性較好,在0℃~1

13、00℃時(shí),最大非線性偏差小于0.5℃。鉑熱電阻與溫度的關(guān)系是,Rt=R0(1+At+Bt×t);其中Rt是溫度為t攝氏度時(shí)的電阻,R0是溫度為0攝氏度時(shí)的電阻,t為任意溫度值,A、B為溫度系數(shù)。但其電阻與溫度為非線性關(guān)系,且成本太貴,不適合做普通設(shè)計(jì)。</p><p>  集成溫度傳感器是利用晶體管的PN結(jié)的電流電壓特性與溫度的關(guān)系,把敏感元件、放大電路和補(bǔ)償電路等部分集成化,并把它們封裝在同一殼體里的

14、一種一體化溫度檢測(cè)元件。它除了與半導(dǎo)體熱敏電阻一樣有體積小、反應(yīng)快的優(yōu)點(diǎn)外,還具有線性好、性能高、價(jià)格低等特點(diǎn),如DS18B20智能溫度控制器。單線數(shù)字溫度傳感器DS18B20簡(jiǎn)介:新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì)、數(shù)字化。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶(hù)可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。DS18B20“一線總線”數(shù)字化溫度傳感器,支持“一線總線”接口,測(cè)溫范圍為 -55℃~+125℃,現(xiàn)場(chǎng)溫度直接以

15、“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于各種環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等。DS18B20可以程序設(shè)定9~12位的分辨率,設(shè)定的報(bào)警溫度存儲(chǔ)在 EEPROM中,掉電后依然保存。DS18B20使電壓特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),并且應(yīng)用電路電但便于設(shè)計(jì)。</p><p>  在本設(shè)計(jì)中我采用的是集成溫度傳感器DS18B20

16、,其電路簡(jiǎn)單可靠,不需要A/D轉(zhuǎn)換,直接可以與單片機(jī)相連。</p><p>  2.1.2 數(shù)字顯示部分</p><p>  通常的LED顯示器有7段或8段和“米”字段之分。這種顯示器有共陽(yáng)極和共陰極兩種。共陰極LED顯示器的發(fā)光二極管的陰極連接在一起,通常此公共陰極接地,當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極為高電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。同樣,共陽(yáng)極LED顯示器的工作原理也一樣。LED顯示

17、器有兩種顯示方式:</p><p>  靜態(tài)顯示方式:在這種方式下,各位LED顯示器的共陰極(或共陽(yáng)極)連接在一起并接地(或電源正),每位的段選線分別與一個(gè)8位的鎖存器輸出相連,各個(gè)LED的顯示字符一經(jīng)確定,相應(yīng)鎖存器的輸出將維持不變,直到顯示另一個(gè)字符為止,正因?yàn)槿绱?,靜態(tài)顯示器的亮度都較高。若用I/O口接口,這需要占用N×8位I/O口(LED顯示器的個(gè)數(shù)為N)。這樣的話(huà),如果顯示器的個(gè)數(shù)較多,那使用

18、的I/O接口就更多,因此在顯示位數(shù)較多的情況下,一般都不用靜態(tài)顯示。</p><p>  動(dòng)態(tài)顯示方式:當(dāng)多位LED顯示時(shí),通常將所有位的段選線相應(yīng)的并聯(lián)在一起,由一個(gè)8位I/O口控制,形成段選線的多路復(fù)用。而各位的共陽(yáng)極或共陰極分別由相應(yīng)的I/O口控制,實(shí)現(xiàn)各位的分時(shí)選通。其中段選線占用一個(gè)8位I/O口,而位選線占用N個(gè)I/O口(N為L(zhǎng)ED顯示器的個(gè)數(shù))。由于各位的段選線并聯(lián),段碼的輸出對(duì)各位來(lái)說(shuō)都是相同的,因

19、此,同一時(shí)刻,如果各位選線都處于選通狀態(tài)的話(huà),那LED顯示器將顯示相同的字符。若要各位LED能顯示出與本位相應(yīng)的字符,就必須采用掃描顯示方式,即在某一時(shí)刻,只讓某一位的位選線處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),同時(shí),段選線上輸出相應(yīng)位要顯示字符的段碼。</p><p>  這種顯示方式占用的I/O口個(gè)數(shù)為8+N(N為L(zhǎng)ED顯示器的個(gè)數(shù)),相對(duì)靜態(tài)顯示少了很多,但需要占用大量的CPU資源,當(dāng)CPU處理別的

20、事情時(shí),顯示可能出現(xiàn)閃爍或者不顯示的情況。</p><p>  為了節(jié)約硬件資源,降低電路板的成本,本人采用的是節(jié)約硬件資源的動(dòng)態(tài)掃描顯示方式。</p><p>  2.1.3 加熱降溫驅(qū)動(dòng)控制電路</p><p>  采用開(kāi)關(guān)量控制,如繼電器、雙向可控硅、光耦等,控溫快速,但是雙向可控硅驅(qū)動(dòng)電路比較麻煩,調(diào)試也麻煩,若用現(xiàn)成的固態(tài)繼電器價(jià)格十分昂貴。用繼電器時(shí)要注

21、意其電感的反向電動(dòng)勢(shì),和開(kāi)關(guān)觸點(diǎn)對(duì)電源的影響,以及開(kāi)關(guān)脈沖對(duì)整個(gè)電路的影響等,應(yīng)該加入必要的防止干擾的措施。</p><p>  1、采用單向晶閘管,這是一種大功率半導(dǎo)體器件,它既有單向?qū)щ姷恼髯饔?,又有可以控制的開(kāi)關(guān)作用。利用它可以用較小的功率控制較大功率,在交、直流電動(dòng)機(jī)調(diào)速系統(tǒng)、調(diào)功系統(tǒng)、隨動(dòng)系統(tǒng)和無(wú)觸點(diǎn)開(kāi)關(guān)等方面均獲得了廣泛的應(yīng)用。</p><p>  這種晶閘管與二極管不同的是

22、,當(dāng)其兩端加上正向電壓而控制極不加電壓時(shí),晶閘管并不導(dǎo)通,其正向電流很小,處于正向阻斷狀態(tài);當(dāng)其兩端加上正向電壓、且控制極上(與陰極間)也加上一正向電壓時(shí),晶閘管便進(jìn)入導(dǎo)通狀態(tài),這時(shí)管壓降很小(1V左右)。這時(shí)即使控制電壓消失,仍然保持導(dǎo)通狀態(tài),所以控制電壓沒(méi)有必要一直存在,通常采用脈沖形式,以降低觸發(fā)功耗。它不具有自關(guān)斷能力,要切斷負(fù)載電流,只有使陽(yáng)極電流減小到維持電流以下,或加上反向電壓實(shí)現(xiàn)關(guān)斷。若在交流回路中應(yīng)用,當(dāng)電流過(guò)零和進(jìn)入

23、負(fù)半周時(shí),自動(dòng)關(guān)斷,為了使其再次導(dǎo)通,必須重加控制信號(hào)。</p><p>  2、采用光耦合雙向可控硅驅(qū)動(dòng)電路,這種器件是一種單片機(jī)輸出與雙向可控硅之間較理想的接口器件,它由輸入和輸出兩部分組成,輸入部分是一個(gè)砷化鎵發(fā)光二極管,該二極管在5mA~15mA正向電流作用下發(fā)出足夠強(qiáng)度的紅外光,觸發(fā)輸出部分。輸出部分是一個(gè)硅光敏雙向可控硅,在紅外線的作用下可雙向道通。</p><p>  光電耦

24、合器也常用于較遠(yuǎn)距離的信號(hào)隔離傳送。一方面光耦合器可以起到隔離兩個(gè)系統(tǒng)地線的作用,使兩個(gè)系統(tǒng)的電源相互獨(dú)立,消除地電位不同所產(chǎn)生的影響;另一方面,光電耦合器的發(fā)光二極管是電流驅(qū)動(dòng)器件,可以形成電流環(huán)路的傳送形式。由于電流環(huán)電路是低阻抗電路,對(duì)噪音的敏感度低,因此提高通訊系統(tǒng)的抗干擾能力,常用于有噪音干擾的環(huán)境里傳輸信號(hào)。</p><p>  達(dá)到同樣的加熱效果,開(kāi)關(guān)量控制容易,驅(qū)動(dòng)簡(jiǎn)單,驅(qū)動(dòng)電路的抗干擾能力強(qiáng)。所

25、以我采用的是光耦合雙向可控硅驅(qū)動(dòng)電路。</p><p><b>  2.2單元電路設(shè)計(jì)</b></p><p>  2.2.1 溫度采集電路</p><p>  本設(shè)計(jì)的溫度采集系統(tǒng)主要是數(shù)字溫度傳感器DS18B20,如圖2-1所示。</p><p>  本設(shè)計(jì)以DS18B20為傳感器,AT89C51單片機(jī)為控制核心組成

26、的溫度巡回檢測(cè)系統(tǒng),在圖2-1中,DS18B20的供電方式為外部電源,其I/O數(shù)據(jù)線與P3.4相連。在DS18B20接入系統(tǒng)之前,應(yīng)分別從激光ROM中讀出其序號(hào),然后分別賦予在系統(tǒng)中的編號(hào)1~n。該系統(tǒng)需要用鍵盤(pán)來(lái)設(shè)置溫度報(bào)警的門(mén)限值,并用七段LED顯示器顯示DS18B20的編號(hào)和測(cè)量的溫度值。 </p><p>  圖2-1溫度采集電路</p><p>  溫度檢測(cè)系統(tǒng)原理圖如圖2-1所

27、示,采用外接電源供電方式。為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,我們用一個(gè)電阻R30和89C51的一個(gè)I/O口(P3.4)來(lái)完成對(duì)DS18B20總線的上拉。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10μs。采用外接電源供電方式時(shí)Vcc接外部電源,GND接地,I/O與單片機(jī)的I/O線相連。</p><p>  在本設(shè)計(jì)中,我采用的是單個(gè)DS18

28、B20測(cè)室內(nèi)溫度,并把它直接與單片機(jī)的I/O口相連,將測(cè)得的溫度值送入CPU與鍵盤(pán)輸入的設(shè)定值進(jìn)行比較,然后通過(guò)CPU來(lái)控制負(fù)載電路的工作。一般來(lái)說(shuō)CPU 對(duì)DS18B20的訪問(wèn)流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器和數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議,如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)DS18B20的通信協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì) DS18

29、B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。</p><p>  2.2.2 LED顯示電路</p><p>  LED顯示電路如圖2-2所示,LED電路采用4只共陰極七段數(shù)碼管。顯示方式有動(dòng)態(tài)掃描和靜態(tài)掃描,兩種都可以實(shí)現(xiàn)顯示功能,但由于靜態(tài)掃描要用到多片串入并出芯片,考慮到電路板成本計(jì)算,本人采用節(jié)約硬件資源的動(dòng)態(tài)掃描顯示方

30、式。P2口的P2.0至P2.3接限流電阻作為段選控制,P2口的P2.4至P2.7經(jīng)三極管驅(qū)動(dòng)后作為位選控制,在10ms定時(shí)中斷服務(wù)程序中分別對(duì)顯示的各位進(jìn)行動(dòng)態(tài)掃描顯示。LED分別對(duì)室內(nèi)溫度和時(shí)間進(jìn)行動(dòng)態(tài)顯示,其相互顯示間隔設(shè)定為1分鐘,即顯示溫度時(shí)第一、二位為十位、個(gè)位,第三、四位為小數(shù)位;而顯示時(shí)間時(shí)第一、二位為小時(shí),第三、四位為分鐘,顯示數(shù)據(jù)由CD4511譯碼器輸出。 </p><p>  由4個(gè)共陰極的數(shù)

31、碼管組成溫度和時(shí)間交替顯示。P2口的四條數(shù)據(jù)線P2.0至P2.3分別與CD4511譯碼器的ABCD口相接,P2口的P2.4至P2.7分別通過(guò)電阻R6至R9與Q1至Q4的基極相連接。這樣通過(guò)P2口送出一個(gè)存儲(chǔ)單元的高位,低位BCD顯示代碼,通過(guò)P2口另幾位送出掃描選通代碼輪流點(diǎn)亮LED1至LED4,就會(huì)將要顯示的數(shù)據(jù)在數(shù)碼管中顯示出來(lái)。</p><p>  圖2-2 LED顯示電路</p><p

32、>  所謂LED靜態(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);其點(diǎn)亮和關(guān)閉由該I/O口來(lái)對(duì)其控制,互不干涉,對(duì)I/O驅(qū)動(dòng)能力弱的MCU,必須增加外部驅(qū)動(dòng)芯片或三極管等器件。此種設(shè)計(jì)一般應(yīng)用在單個(gè)LED的驅(qū)動(dòng)或LED數(shù)量較少,且所選的MCUI/O口比較充裕的情況下。由于每一個(gè)LED均由獨(dú)立的I/O口控制,因此優(yōu)點(diǎn)是軟件編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口

33、多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè) AT89C51單片機(jī)可用的I/O端口才32個(gè),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。</p><p>  LED的動(dòng)態(tài)顯示方式: 數(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"的同名端連在一起,另外為每

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

35、管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,卻能夠節(jié)省大量的I/O端口,而且功耗更低。 </p><p>  由于所有的 LED模塊共用了驅(qū)動(dòng)端,因此LED的驅(qū)動(dòng)不再像靜態(tài)法一樣為每個(gè)LED所獨(dú)享,因此其驅(qū)動(dòng)的設(shè)計(jì)方法也與靜態(tài)法完全不同,需要采用分時(shí)掃描方法來(lái)實(shí)現(xiàn)對(duì)所有LED的顯示驅(qū)動(dòng),其原理如下:<

36、;/p><p>  a.將A0設(shè)置為高電平,也即允許第一組LED顯示,同時(shí)將A2,A3,A4設(shè)置為低電平,也即關(guān)閉該陰極所對(duì)應(yīng)的LED組顯示;</p><p>  b.在P2口輸出A0組對(duì)應(yīng)的顯示數(shù)據(jù),如字符點(diǎn)陣數(shù)據(jù)、7段碼對(duì)應(yīng)的數(shù)字的數(shù)據(jù)等,該數(shù)據(jù)可以通過(guò)ROM表的形式預(yù)先定義;</p><p>  c.保持一定的時(shí)間T,該時(shí)間即為所設(shè)定的定時(shí)器的中斷時(shí)間;</

37、p><p>  d.將A0口設(shè)置為低電平,關(guān)閉A0組的LED顯示;</p><p>  e.將A1設(shè)置為高電平,其他幾個(gè)設(shè)置為低電平,開(kāi)啟A1組對(duì)應(yīng)的LED顯示;</p><p>  f.在P0口輸出A1組對(duì)應(yīng)的顯示數(shù)據(jù);</p><p>  g.重復(fù)以上步驟,直到所有組被掃描一遍,然后又從A0組開(kāi)始下一個(gè)循環(huán),如此周而復(fù)始,實(shí)現(xiàn)所有LED的動(dòng)態(tài)

38、顯示。</p><p>  該方法的原理利用了人眼對(duì)物體的視覺(jué)延遲來(lái)達(dá)到所有LED的同時(shí)顯示,實(shí)際應(yīng)用時(shí),在同一個(gè)時(shí)刻,只有一組LED處于顯示狀態(tài),而其他LED處于關(guān)閉狀態(tài)。理論上,若兩次顯示之間的時(shí)間間隔小于32ms時(shí),人眼既無(wú)法分辨,因此,為了達(dá)到此要求,LED的掃描頻率一般可以按照下式計(jì)算得出:f=32*N。式中,f為掃描的頻率,對(duì)應(yīng)為定時(shí)器的時(shí)間(T=1/ f);32則是由32ms換算而來(lái),32ms對(duì)應(yīng)的

39、頻率剛好為32Hz;N則時(shí)總的LED的組數(shù)(此例中N=4)。</p><p>  根據(jù)此式算出的掃描頻率f實(shí)際是LED驅(qū)動(dòng)掃描的最小頻率,若低于此頻率,則有可能導(dǎo)致LED的閃爍; f也不可能越高越好,掃描的頻率太高,每組LED的點(diǎn)亮?xí)r間就越短,因此有可能導(dǎo)致LED的亮度不夠或顯示效果不理想等一些問(wèn)題。當(dāng)然提高LED的驅(qū)動(dòng)電壓也可以補(bǔ)償由此造成的亮度不夠的問(wèn)題。</p><p>  數(shù)據(jù)與代

40、碼轉(zhuǎn)換。由前述可知,P2口的P2.0至P2.3輸出段選碼,P2口的P2.4至P2.7輸出位選碼,LED就會(huì)顯示出數(shù)字來(lái)。但P2口輸出的數(shù)據(jù)是BCD碼,各存儲(chǔ)器存儲(chǔ)的數(shù)據(jù)是二進(jìn)制,也就是和要顯示出的字符表達(dá)的含義是不一致的??梢?jiàn),將要顯示的存儲(chǔ)器單元的數(shù)據(jù)直接送到P2口去驅(qū)動(dòng)LED數(shù)碼管顯示是不能正確表達(dá)的,必須在系統(tǒng)內(nèi)部將要顯示的數(shù)據(jù)經(jīng)過(guò)BCD碼轉(zhuǎn)換后,將各個(gè)單元數(shù)據(jù)的段選代碼送入P2口,給CD4511譯碼后去驅(qū)動(dòng)數(shù)碼管顯示。具體轉(zhuǎn)換過(guò)

41、程如下:我們先將要顯示的數(shù)據(jù)裝入累加器A中,再將A中的數(shù)據(jù)轉(zhuǎn)換成高低兩位的BCD碼,再放回A中,然后將A中的值輸出。如:有一個(gè)單元存儲(chǔ)了45這樣一位數(shù),則需轉(zhuǎn)換成四位BCD碼(0100) (1001)然后放入A中,A中BCD碼,高四位代表4,低</p><p>  四位代表5,同時(shí)送給兩個(gè)譯碼器中,譯碼后45字就在兩個(gè)LED中顯示出來(lái)。</p><p>  2.2.3 電源電路</p

42、><p>  1.電源變壓器:將220V,50HZ的交流電壓轉(zhuǎn)換成5V直流電壓。</p><p>  2.濾波電路:利用電感和電容的阻抗特性,將整流后的單向脈動(dòng)電流中的交流分量濾去,使單向脈動(dòng)電流變換成平滑的直流電。</p><p>  3.穩(wěn)壓電路:當(dāng)電網(wǎng)電壓波動(dòng)或負(fù)載的變動(dòng)會(huì)導(dǎo)致負(fù)載上得到的直流電不穩(wěn)定,影響電子設(shè)備的性能,用穩(wěn)壓管,即采用一些負(fù)反饋方式的穩(wěn)壓電路,

43、使之自動(dòng)調(diào)節(jié)不穩(wěn)定因素,從而得到穩(wěn)定電壓。</p><p>  供電部分輸入220V、50HZ的交流電,輸出電壓+5V,供給整個(gè)電路電源,電流最大為400mA; LM17812和LM17805負(fù)載重,功率大,加裝了散熱片。</p><p>  本設(shè)計(jì)的電源電路設(shè)計(jì)圖如下:</p><p><b>  圖2-3電源電路</b></p>

44、<p>  2.2.4 外部晶振電路</p><p>  外部晶振電路由2個(gè)33pF的電容和一個(gè)12MHz的晶體振蕩器構(gòu)成。</p><p>  片內(nèi)電路與片外器件構(gòu)成一個(gè)時(shí)鐘產(chǎn)生電路,CPU的所有操作均在時(shí)鐘脈沖下同步進(jìn)行。片內(nèi)振蕩器的振蕩頻率非常接近晶振頻率,一般在1.2MHz~12MHz之間選取,C5,C6是反饋電容,起穩(wěn)定振蕩頻率,快速起振的作用,其值在5pF~33p

45、F之間選取,典型值為33pF。本電路選用的電容為33pF,晶振頻率為12MHz。</p><p>  在引腳XTAL1和XTAL2外接晶體振蕩器,就構(gòu)成了內(nèi)部震蕩方式,內(nèi)部震蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用較多。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生震蕩時(shí)鐘脈沖。內(nèi)部震蕩方式的外部電路如圖2-4所示:</p><p>  圖2-4外部晶振電

46、路</p><p>  外部振蕩信號(hào)由X2引入,X1和X2:片內(nèi)振蕩電路輸入、輸出引腳,這兩個(gè)端子用來(lái)外接石英晶體和微調(diào)電容。在石英晶體的兩個(gè)管腳加交變電場(chǎng)時(shí),它將會(huì)產(chǎn)生一定頻率的機(jī)械變形,而這種機(jī)械振蕩又會(huì)產(chǎn)生交變電場(chǎng),上述物理現(xiàn)象稱(chēng)為壓電效應(yīng)。一般情況下,無(wú)論是機(jī)械振動(dòng)的振幅,還是交變電場(chǎng)的振幅都非常小。但是,當(dāng)交變電場(chǎng)的頻率為某一特定值時(shí),振幅驟然增大,產(chǎn)生共振,稱(chēng)之為壓電振蕩。這一特定頻率就是石英晶體的固

47、有頻率,也稱(chēng)諧振頻率,即用來(lái)連接89C51片內(nèi)OSC的定時(shí)反饋回路。石英晶振起振后要能在X2線上輸出一個(gè)3V左右的正弦波,以便使MCS-51片內(nèi)的OSC電路按石英晶振相同頻率自激振蕩。通常OSC的輸出時(shí)鐘頻率fosc為0.5MHz~16 MHz,典型值為12 MHz或者11.0592 MHz。電容C5,C6可以幫助起振,典型值為33 pF,調(diào)節(jié)它們可以達(dá)到微調(diào)fosc的目的。</p><p><b> 

48、 3軟件設(shè)計(jì)</b></p><p>  3.1軟件設(shè)計(jì)原理及設(shè)計(jì)所用工具</p><p>  本設(shè)計(jì)中采用的處理器是AT89C51單片機(jī),由此可采用面向MCS-51的程序設(shè)計(jì)語(yǔ)言,包括ASM51匯言和C語(yǔ)言,這兩種語(yǔ)言各有特點(diǎn)。C語(yǔ)言更接近機(jī)器語(yǔ)言,常用來(lái)編制與系統(tǒng)硬件相關(guān)的程序,如訪問(wèn)I/O端口、中斷處理程序、實(shí)時(shí)控制程序、實(shí)時(shí)通信程序等;而數(shù)學(xué)運(yùn)算程序則適合用C51高級(jí)語(yǔ)

49、言編寫(xiě),因?yàn)橛酶呒?jí)語(yǔ)言編寫(xiě)運(yùn)算程序可提高編程效率和應(yīng)用程序的可靠性。 </p><p>  與以往的80C51單片機(jī)不同,AT89C51具有在線調(diào)試和下載功能,它由支持AT89C51的開(kāi)發(fā)工具包Keil uVersion2.0開(kāi)發(fā)系統(tǒng)來(lái)提供。也就是說(shuō),在用戶(hù)系統(tǒng)保留AT89C51的情況下,通過(guò)開(kāi)發(fā)系統(tǒng)與AT89C51的串行接口通信,直接對(duì)用戶(hù)系統(tǒng)進(jìn)行調(diào)試,并在調(diào)試完成后將調(diào)試好的程序下載到AT89C51中。Kei

50、l uVersion2.0開(kāi)發(fā)系統(tǒng)提供四項(xiàng)功能:編譯、下載、調(diào)試和模擬,分別由Keil uVersion2.0提供的編譯器、在線串行下載器、調(diào)試器和模擬器來(lái)實(shí)現(xiàn)。Keil uVersion2.0編譯器可在Windows操作系統(tǒng)下直接使用,編譯匯編源程序,并生成16進(jìn)制文件和列表文件。串行下載器是一個(gè)軟件程序,它允許通過(guò)標(biāo)準(zhǔn)PC機(jī)上的串口串行下載匯編程序到片內(nèi)8kB的閃速程序存儲(chǔ)器中。調(diào)試器采用Windows系統(tǒng),允許用戶(hù)使用AT89C5

51、1的UART串行接口在芯片上調(diào)試代碼執(zhí)行。在典型調(diào)試對(duì)話(huà)中,調(diào)試器提供對(duì)片內(nèi)所有外圍設(shè)備的訪問(wèn)、單步和設(shè)置斷點(diǎn)的代碼執(zhí)行控制方式。模擬器采用Windows系統(tǒng),能完全模擬AT89C51的所有功能。模擬器使用簡(jiǎn)單,結(jié)合了許多標(biāo)準(zhǔn)調(diào)試特征,</p><p>  主程序功能單一化,只對(duì)各子程序進(jìn)行控制、調(diào)動(dòng),使整個(gè)程序成為有機(jī)的整體。軟件主程序是系統(tǒng)的監(jiān)控程序,主要工作流程為:系統(tǒng)在上電以后進(jìn)入初始化狀態(tài),將系統(tǒng)中所有

52、的接口模式、狀態(tài)以及有關(guān)的存儲(chǔ)單元置位成初始狀態(tài),然后恢復(fù)AT89C51的P1口(控制輸出)的工作狀態(tài)。</p><p>  3.2部分程序的流程圖</p><p>  3.2.1 主程序流程圖</p><p>  本設(shè)計(jì)主程序流程如圖3-1所示。</p><p>  程序啟動(dòng)后,首先清理系統(tǒng)內(nèi)存,然后對(duì)溫度進(jìn)行采集,通過(guò)溫度采集芯片內(nèi)部轉(zhuǎn)換

53、后,傳輸?shù)絾纹瑱C(jī),由單片機(jī)控制顯示設(shè)備,顯示現(xiàn)在的溫度,然后系統(tǒng)進(jìn)入待機(jī)狀態(tài),等待鍵盤(pán)輸入設(shè)定溫度,系統(tǒng)將設(shè)定溫度與現(xiàn)在溫度進(jìn)行比較,得出結(jié)果,啟動(dòng)制冷系統(tǒng)或者加熱系統(tǒng)。</p><p>  圖3-1 主程序流程圖</p><p>  3.2.2 DS18B20的溫度采樣程序流程圖</p><p>  CPU對(duì)DS18B20的訪問(wèn)流程是:先對(duì)DS18B20初始化,再

54、進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器和數(shù)據(jù)進(jìn)行操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。DS18B20工作的流程如圖3-2。</p><p>  圖3-2 溫度采樣框&l

55、t;/p><p><b>  程序如下:</b></p><p>  float tt; </p><p>  Init_DS18B20(); // 初始化ds18b2子函數(shù) </p><p>  delay_MS(1); </p><p>  WriteOneChar(0x

56、cc); // 跳過(guò)ROM命令 </p><p>  WriteOneChar(0xbe); // 發(fā)送讀取數(shù)據(jù)命令 </p><p>  temp_data[0]=ReadOneChar(); // 連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) </p><p>  temp_data[1]=ReadOneChar(); </p><p&

57、gt;  temp1=temp_data[1]; </p><p>  temp1<<=8; </p><p>  temp1=temp1|temp_data[0]; // 兩字節(jié)合成一個(gè)整型變量。 </p><p>  return temp1;

58、 // 返回溫度值 </p><p><b>  } </b></p><p>  void tem_deal(uint tem) /* 溫度數(shù)據(jù)顯示處理函數(shù) */ </p><p><b>  { </b></p><p>  if

59、(tem>6348) // 溫度值正負(fù)判斷 </p><p><b>  {</b></p><p>  tem=65536-tem;</p><p><b>  flag1=1;</b></p><p>  } // 負(fù)溫度求補(bǔ)碼,

60、標(biāo)志位置1 </p><p>  else flag1=0;</p><p>  Dis_ram[0]=tem&0x0f; // 取小數(shù)部分的值 </p><p>  Dis_play[3]=Dis_ram[0]; // 存入小數(shù)部分顯示值 </p><p>  Dis_ram[0]=tem>&

61、gt;4; // 取中間八位,即整數(shù)部分的值 </p><p>  Dis_play[0]=Dis_ram[0]/100; // 取百位數(shù)據(jù)暫存 </p><p>  Dis_play[2]=Dis_ram[0]%100; // 取后兩位數(shù)據(jù)暫存 </p><p>  if(Dis_play[2]<=XX) <

62、;/p><p>  Dis_play[4]=1 ;</p><p><b>  else </b></p><p>  Dis_play[4]=0 ;</p><p>  if(Dis_play[2]>=SX) </p><p>  Dis_play[5]=1 ;</p&

63、gt;<p>  else Dis_play[5]=0 ;</p><p>  Dis_play[1]=Dis_play[2]/10; // 取十位數(shù)據(jù)暫存 </p><p>  Dis_play[2]=Dis_play[2]%10; // 取個(gè)位數(shù)據(jù)暫存 </p><p>  if(!Dis_play[0]) //

64、 最高位為0都不顯示 </p><p><b>  { </b></p><p>  Dis_play[0]=0x0a; // 先判斷百位是否為0 </p><p>  if(!Dis_play[1]) </p><p><b>  { </b></p><p>  Di

65、s_play[1]=0x0a; // 再判斷十位是否為0</p><p>  3.2.3 LED顯示部分程序流程圖</p><p>  LED軟件設(shè)計(jì)的主要功能是將DS18B20所測(cè)數(shù)據(jù)經(jīng)過(guò)模糊控制以后用LED顯示出來(lái)。其流程圖如圖3-3:</p><p>  圖3-3 LED顯示流程圖</p><p><b>  程序如下: &

66、lt;/b></p><p>  LED1=~LED1;</p><p><b>  {</b></p><p>  LED2=~LED2;</p><p><b>  }</b></p><p>  void display() /*****顯示溫度子程序***

67、**/</p><p><b>  { </b></p><p><b>  char k; </b></p><p>  for(k=0;k<4;k++) //4位LED掃描控制 </p><p><b>  { </b

68、></p><p>  if(table[Dis_play[k]] != 0)</p><p><b>  {</b></p><p>  Disdata=table[Dis_play[k]]; //數(shù)據(jù)顯示 </p><p><b>  }</b></p>

69、<p>  if (k==2){DIN=0;} //小數(shù)點(diǎn)顯示</p><p>  discan=scan_con[k+3]; //位選 </p><p>  delay_MS(90); //延時(shí) </

70、p><p>  discan=0x00; </p><p><b>  }</b></p><p>  discan=scan_con[7]; //位選</p><p>  Disdata=0xc6; //顯示C </p>

71、;<p>  delay_MS(90);</p><p>  discan=0x00;</p><p><b>  }</b></p><p>  /*****主函數(shù)*****/</p><p>  void main(void)</p><p><b>  {</b

72、></p><p>  EA=1; //允許INT0 中斷</p><p><b>  EX0=1;</b></p><p>  IT0=1; //下降沿觸發(fā)</p><p>

73、;<b>  do </b></p><p><b>  { </b></p><p>  tmpchange(); //溫度轉(zhuǎn)換 </p><p>  tem_deal(tmp()); //顯示溫度值 &l

74、t;/p><p>  display(); </p><p>  if(Dis_play[4]==1) shengwen();</p><p>  else LED1=1;</p><p>  if(Dis_play[5]==1) jiangwen();</p><p>  else LED2=1;</p&g

75、t;<p><b>  } </b></p><p>  while(1); </p><p><b>  }</b></p><p><b>  結(jié)束語(yǔ)</b></p><p>  作為一名應(yīng)用電子專(zhuān)業(yè)即將畢業(yè)的學(xué)生,我覺(jué)得做此次課程設(shè)計(jì)是十分必要的。幾周的課

76、程設(shè)計(jì)終于結(jié)束了,雖然很忙碌、很疲勞,但是收獲很大。這次我用單片機(jī)AT89C51作為控制器,實(shí)際了一個(gè)自動(dòng)控制室內(nèi)溫度的空調(diào)設(shè)備。每天的努力,喚來(lái)了我對(duì)課程設(shè)計(jì)的重新的認(rèn)識(shí),對(duì)51單片機(jī)和控制系統(tǒng)的深刻理解,實(shí)現(xiàn)了真正實(shí)踐的目的。在理論學(xué)習(xí)的過(guò)程中,我只是簡(jiǎn)單地學(xué)到了一些理論知識(shí),但是在實(shí)際的設(shè)計(jì)過(guò)程中才發(fā)現(xiàn)理論與實(shí)際的巨大差別。在課堂上,掌握的僅僅是專(zhuān)業(yè)基礎(chǔ)課的理論,如何把我們所學(xué)到的專(zhuān)業(yè)基礎(chǔ)理論知識(shí)用到實(shí)踐中去呢?如何去鍛煉我們的實(shí)

77、踐的一面?這次做課程設(shè)計(jì)就為我提供了一個(gè)課外學(xué)習(xí)的好平臺(tái)。在此期間我閱讀了大量的文獻(xiàn),并詳細(xì)的了解了單片機(jī)AT89C51在具體實(shí)際應(yīng)用中的作用及應(yīng)用技術(shù),同時(shí)我還閱讀了大量關(guān)于A/D轉(zhuǎn)換器、傳感器、轉(zhuǎn)換電路、繼電器、鍵盤(pán)、LED顯示等的相關(guān)知識(shí)。把課本的知識(shí)運(yùn)用到實(shí)際中,經(jīng)過(guò)我多次努力最終完成了此次課程設(shè)計(jì)。在次之前我也接觸過(guò)相關(guān)課程設(shè)計(jì)的實(shí)驗(yàn),為此次設(shè)計(jì)奠定了知識(shí)基礎(chǔ)。在此次設(shè)計(jì)中收獲最大的算是分析和解決問(wèn)題的能力。懂得了怎樣解決此類(lèi)

78、問(wèn)題,在設(shè)計(jì)過(guò)程中形成了設(shè)計(jì)理念和設(shè)計(jì)思維</p><p><b>  致謝</b></p><p>  能取得這次成功的突破,要感謝我的指導(dǎo)老師**對(duì)我的困難的幫助,給我設(shè)計(jì)思路的引導(dǎo),辛勤地給予畢業(yè)論文的修改,通過(guò)老師介紹的一些資料書(shū)及相關(guān)文件,讓我的畢業(yè)設(shè)計(jì)更加成功地完成。 再次,要感謝我的寢室好友是他們幫助我解決了程序上的偏差,有了他們的幫助才能夠及時(shí)解決問(wèn)

79、題,其中的無(wú)奈才有得解除。在此,我還要感謝在一起愉快的度過(guò)畢業(yè)設(shè)計(jì)的同學(xué)們,正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本文的順利完成。</p><p>  在論文即將完成之際,我的心情無(wú)法平靜,從開(kāi)始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!最后我還要感謝培養(yǎng)我長(zhǎng)大含辛茹苦的父母,謝謝你們。</p><p><

80、;b>  參考文獻(xiàn)</b></p><p>  [1] 沈紅工.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析[M].北京:北京航空航天大學(xué)出版社,2003.6</p><p>  [2] 胡毅剛、彭喜元、姜守達(dá)、喬立巖.新編MSC-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱: 哈爾濱工業(yè)大學(xué)出版社,2003.3</p><p>  [3] 李光飛、樓然苗、胡佳文、謝象佐.單

81、片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2004.3</p><p>  [4] 張大明. 單片微機(jī)控制應(yīng)用技術(shù)實(shí)操指導(dǎo)書(shū). 北京:機(jī)械工業(yè)出版社,2007.4</p><p>  [5] 馮根生、郭教之.微機(jī)控制技術(shù)[M].北京:中國(guó)科技大學(xué)出版社,2002.9</p><p>  [6] 康萬(wàn)新、謝維成、楊加國(guó). 畢業(yè)設(shè)計(jì)指導(dǎo)及案例剖析——應(yīng)用

82、電子技術(shù)方向. 北京:清華大學(xué)出版社,2007.5</p><p>  [7] 張毅剛. 《單片機(jī)原理及應(yīng)用》(第二版)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003.7</p><p>  [8] 余永權(quán). 單片機(jī)在控制系統(tǒng)中的應(yīng)用[M].北京:電子工業(yè)出版社,2002</p><p>  [9] 張希周. 自動(dòng)控制原理[M]. 重慶:重慶大學(xué)出版社,1996.6

83、</p><p>  [10] 周繼明、江世明. 傳感器技術(shù)與應(yīng)用[M]. 中南大學(xué)出版社,2005.3</p><p>  [11] 潘新民、王燕芳. 微型計(jì)算機(jī)控制技術(shù)實(shí)用教程. 北京:電子工業(yè)出版社,2006.1</p><p>  [12] 楊寧. 單片機(jī)與控制技術(shù). 北京:北京航空航天大學(xué)出版社,2005.2</p><p>  [

84、13] 侯志林.過(guò)程控制與自動(dòng)化儀表.北京:機(jī)械工業(yè)出版社,1999.11</p><p>  [14] 楊剛、周群.電子系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2004.6</p><p><b>  附錄A:電路原理圖</b></p><p><b>  附錄B:程序清單</b></p><p&

85、gt;  #include <reg52.h></p><p>  #include<intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit DQ=P3^6;

86、 // P3溫度輸入口 </p><p>  uint temp1; // 定義一個(gè)變量 </p><p>  uchar flag1; // 定義一個(gè)

87、標(biāo)志,溫度是負(fù)或正,1為負(fù),0為正 </p><p>  uchar data temp_data[2]={0x00,0x00}; //讀出溫度暫放 </p><p>  uchar data Dis_play[6]={0x00,0x00,0x00,0x00,0x0a,0x0c};//顯示單元數(shù)據(jù),共6個(gè)數(shù)據(jù)和一個(gè)運(yùn)算 第4個(gè)數(shù)據(jù)為空,第6個(gè)數(shù)據(jù)顯示C&

88、lt;/p><p>  uchar data Dis_ram[1]={0x00};</p><p>  uchar SX=38; //上限報(bào)警溫度,默認(rèn)值為38</p><p>  uchar XX=15; //下限報(bào)警溫度,默認(rèn)值

89、為15</p><p>  sbit SET = P3^2 ; //定義調(diào)整鍵</p><p>  sbit DEC = P3^1 ; //定義減少鍵</p><p>  sbit ADD = P3^0 ;

90、 //定義增加鍵</p><p>  //sbit KO= P3^3; //手動(dòng) 報(bào)警</p><p>  sbit LED1=P3^3;</p><p>  sbit LED2=P3^4;</p><p>  sb

91、it DIN = P0^7; //小數(shù)點(diǎn)</p><p>  #define Disdata P0 // 段碼入口 //P0 111</p><p>  #define discan P2

92、 // 數(shù)碼管位選掃描 //P2 111</p><p>  uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};</p><p>  uchar code scan_con[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,

93、0x80}; //列掃描控制字 </p><p>  void delay_MS(uint i) //delay 111 / 延時(shí)子程序 / </p><p><b>  { </b></p><p>  while(i--); </p>

94、<p><b>  } </b></p><p>  void delay1(uchar y)</p><p>  {uchar Y;</p><p>  for( ;y>0;y--)</p><p>  for(Y=0;Y<120;Y++);</p><p><b&

95、gt;  }</b></p><p>  void Init_DS18B20(void) /* 初始化ds18b2子函數(shù)* */</p><p><b>  { </b></p><p>  uchar x=0; </p><p>  DQ = 1;

96、 //DQ復(fù)位 </p><p>  delay_MS(8); //稍做延時(shí) </p><p>  DQ = 0; //單片機(jī)將DQ拉低 </p><p>  delay_MS(80); //精確延時(shí) 大于 480us </p><p>  DQ = 1;

97、 //拉高總線 </p><p>  delay_MS(14); </p><p>  x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 </p><p>  //(可在此處判斷傳感器是否正常)</p><p>  delay_MS(20); </p>

98、<p><b>  } </b></p><p>  /* 讀字節(jié)子函數(shù) */ </p><p>  ReadOneChar(void) </p><p><b>  { </b></p><p>  uchar i

99、= 0; </p><p>  uchar dat = 0; </p><p>  for (i=8;i>0;i--) </p><p><b>  { </b></p><p>  DQ = 0; // 給脈沖信號(hào) </p><p>  dat>>=1

100、; // 數(shù)據(jù)右移一位 </p><p>  DQ = 1; // 給脈沖信號(hào) </p><p>  if(DQ) // DQ為1 </p><p>  dat|=0x80; // 讀出數(shù)據(jù) </p><p>  delay_MS(4);

101、 // 延時(shí) </p><p><b>  } </b></p><p>  return(dat); </p><p><b>  } </b></p><p>  void WriteOneChar(unsigned char dat) // 寫(xiě)字節(jié)子函數(shù)<

102、;/p><p><b>  { </b></p><p>  uchar i = 0; </p><p>  for (i=8; i>0; i--) </p><p><b>  { </b></p><p><b>  DQ = 0; </b><

103、;/p><p>  DQ = dat&0x01; //寫(xiě)入一位數(shù)據(jù) </p><p>  delay_MS(5); </p><p><b>  DQ = 1; </b></p><p>  dat>>=1; //右移一位數(shù)據(jù) </p><p><b>

104、  } </b></p><p><b>  } </b></p><p>  void tmpchange(void) // DS18B20 begin change // 發(fā)送溫度轉(zhuǎn)換命令</p><p>  { </p><p>  Init

105、_DS18B20(); // 初始化DS18B20 </p><p>  delay_MS(200); // 延時(shí) </p><p>  WriteOneChar(0xcc); // 跳過(guò)序列號(hào)命令 </p><p>  WriteOneChar(0x44); // 發(fā)送溫度轉(zhuǎn)換

106、命令 </p><p><b>  } </b></p><p>  uint tmp() //get the temperature /* 讀出溫度函數(shù) */ </p><p>  { </p><

107、p>  // float tt; </p><p>  Init_DS18B20(); // 初始化ds18b2子函數(shù) </p><p>  delay_MS(1); </p><p>  WriteOneChar(0xcc); // 跳過(guò)ROM命令 </p><p>  WriteOneCh

108、ar(0xbe); // 發(fā)送讀取數(shù)據(jù)命令 </p><p>  temp_data[0]=ReadOneChar(); // 連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) </p><p>  temp_data[1]=ReadOneChar(); </p><p>  temp1=temp_data[1]; </p><p>  temp1<

109、<=8; </p><p>  temp1=temp1|temp_data[0]; // 兩字節(jié)合成一個(gè)整型變量。 </p><p>  return temp1; // 返回溫度值 </p><p><b>  } &

110、lt;/b></p><p>  void tem_deal(uint tem) /* 溫度數(shù)據(jù)顯示處理函數(shù) */ </p><p><b>  { </b></p><p>  if(tem>6348) // 溫度值正負(fù)判斷 </p>

111、<p><b>  {</b></p><p>  tem=65536-tem;</p><p><b>  flag1=1;</b></p><p>  } // 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1 </p><p>  else flag1=0;</p><

112、;p>  Dis_ram[0]=tem&0x0f; // 取小數(shù)部分的值 </p><p>  Dis_play[3]=Dis_ram[0]; // 存入小數(shù)部分顯示值 </p><p>  Dis_ram[0]=tem>>4; // 取中間八位,即整數(shù)部分的值 </p><p> 

113、 Dis_play[0]=Dis_ram[0]/100; // 取百位數(shù)據(jù)暫存 </p><p>  Dis_play[2]=Dis_ram[0]%100; // 取后兩位數(shù)據(jù)暫存 </p><p>  if(Dis_play[2]<=XX) </p><p>  Dis_play[4]=1 ;</p><p>&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論