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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p><b>  第1章引言1</b></p><p>  1.1傳感器的概述和應(yīng)用前景1</p><p>  1.2課題目的和意義2</p><p>  1.3課題的主要組成和設(shè)計(jì)要求3</p><p>

2、;  第2章方案比較與論證4</p><p>  2.1設(shè)計(jì)思路4</p><p>  2.2方案設(shè)計(jì)比較4</p><p>  2.3方案的確定7</p><p>  第3章硬件電路設(shè)計(jì)5</p><p>  3.1設(shè)計(jì)思路與方法5</p><p>  3.2基本功能

3、模塊電路6</p><p>  3.2.1溫度采集模塊6</p><p>  3.2.2系統(tǒng)控制模塊9</p><p>  3.2.3數(shù)據(jù)存儲(chǔ)模塊9</p><p>  3.2.4顯示模塊10</p><p>  3.2.5紅外發(fā)送與接收模塊12</p><p>  3.2

4、.6單片機(jī)引腳分配圖14</p><p>  第4章系統(tǒng)程序設(shè)計(jì)15</p><p>  第5章設(shè)計(jì)演示結(jié)果26</p><p>  5.1硬件演示效果27</p><p>  第6章結(jié)論與展望30</p><p><b>  6.1結(jié)論30</b></p>

5、<p>  6.2結(jié)束語30</p><p><b>  致謝31</b></p><p><b>  參考文獻(xiàn)32</b></p><p>  附錄一系統(tǒng)原理圖33</p><p>  附錄二程序清單34</p><p><b>  智能

6、空調(diào)節(jié)電控制器</b></p><p><b>  本文摘要</b></p><p>  本文設(shè)計(jì)了一種基于STC89C52單片機(jī)能學(xué)習(xí)各種32位空調(diào)遙控指令并自動(dòng)依據(jù)檢測(cè)到的溫度調(diào)節(jié)空調(diào)的運(yùn)行狀態(tài)的空調(diào)控制裝置的實(shí)現(xiàn)方案,以及硬件設(shè)計(jì)和軟件設(shè)計(jì)的方法。本設(shè)計(jì)充分利用了單片機(jī)價(jià)格低、功能強(qiáng)、抗干擾性能好等優(yōu)點(diǎn)。針對(duì)環(huán)境溫度檢測(cè)和空調(diào)紅外控制給出了實(shí)用的硬件

7、設(shè)計(jì)和軟件編程,成功實(shí)現(xiàn)了控制器對(duì)空調(diào)的智能控制。整個(gè)裝置采用DS18B20實(shí)時(shí)采集環(huán)境中的溫度,同時(shí)顯示在數(shù)碼管上;用紅外線發(fā)射與接收與空調(diào)進(jìn)行數(shù)據(jù)指令通信,將外部中斷撲捉到得指令信號(hào)存儲(chǔ)到掉電非易失性外部E2PROM存儲(chǔ)器中,單片機(jī)根據(jù)實(shí)時(shí)采集到的溫度向空調(diào)發(fā)送相應(yīng)的指令信號(hào)。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),DS18B20溫度采集,紅外通信,I2C總線通信</p><p>  I

8、ntelligent Air Conditioning Power Controller</p><p>  Abstract: This text has designed a Implementation Scheme, which is an air-conditioning control device based on STC89C52 micro-controller, it can learn al

9、l kinds of 32 bits air-conditioning remote control instructions and adjust the air-conditioning’s running automaticly according to the temperature detected. The design makes full use of low cost single chip, functional s

10、trength, and good anti-jamming, For infrared temperature detection and control of air conditioning gives practical hardware des</p><p>  Keywords: SCM, DS18B20 temperature acquisition, Infrared Communicati

11、on, I2C bus communication</p><p><b>  第1章引言</b></p><p>  隨著“信息時(shí)代”的到來,作為獲取信息的手段——傳感器技術(shù)得到了顯著的進(jìn)步,其應(yīng)用領(lǐng)域越來越廣泛,對(duì)其要求越來越高,需求越來越迫切。傳感器技術(shù)已成為衡量一個(gè)國(guó)家科學(xué)技術(shù)發(fā)展水平的重要標(biāo)志之一。因此,了解并掌握各類傳感器的基本結(jié)構(gòu)、工作原理及特性是非

12、常重要的。</p><p>  1.1傳感器的概述和應(yīng)用前景</p><p>  由于傳感器能將各種物理量、化學(xué)量和生物量等信號(hào)轉(zhuǎn)變?yōu)殡娦盘?hào),使得人們可以利用計(jì)算機(jī)實(shí)現(xiàn)自動(dòng)測(cè)量、信息處理和自動(dòng)控制,但是它們都不同程度地存在溫漂和非線性等影響因素。傳感器主要用于測(cè)量和控制系統(tǒng),它的性能好壞直接影響系統(tǒng)的性能。因此,不僅必須掌握各類傳感器的結(jié)構(gòu)、原理及其性能指標(biāo),還必須懂得傳感器經(jīng)過適當(dāng)?shù)慕?/p>

13、口電路調(diào)整才能滿足信號(hào)的處理、顯示和控制的要求,而且只有通過對(duì)傳感器應(yīng)用實(shí)例的原理和智能傳感器實(shí)例的分析了解,才能將傳感器和信息通信和信息處理結(jié)合起來,適應(yīng)傳感器的生產(chǎn)、研制、開發(fā)和應(yīng)用。另一方面,傳感器的被測(cè)信號(hào)來自于各個(gè)應(yīng)用領(lǐng)域,每個(gè)領(lǐng)域都為了改革生產(chǎn)力、提高工效和時(shí)效,各自都在開發(fā)研制適合應(yīng)用的傳感器,于是種類繁多的新型傳感器及傳感器系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類傳感器。其發(fā)展速度之快,以及其應(yīng)用之廣,并且還有很大潛力。

14、</p><p>  溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時(shí)測(cè)量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測(cè)量,因此研究溫度的測(cè)量方法和裝置具有重要的意義。測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:①傳統(tǒng)的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展。文章

15、將介紹智能集成溫度傳感器DS18B20的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器,AT89C52單片機(jī)為控制器構(gòu)成的溫度測(cè)量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。該裝置適用于人民的日常生活和工、農(nóng)業(yè)生產(chǎn)用于溫度測(cè)量。</p><p>  DS18B20介紹及優(yōu)點(diǎn)</p><p>  由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛

16、用于工業(yè)、民用、軍事等領(lǐng)域的溫度測(cè)量及控制儀器、測(cè)控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。 </p><p>  1.DS18B20性能特點(diǎn) </p><p>  DS18B20的性能特點(diǎn):①采用單總線專用技術(shù),既可通過串行口線,也可通過其它I/O口線與微機(jī)接口,無須經(jīng)過其它變換電路,直接輸出被測(cè)溫度值(9位二進(jìn)制數(shù),含符號(hào)位),②測(cè)溫范圍為-55℃-+125℃,測(cè)量

17、分辨率為0.0625℃, ③內(nèi)含64位經(jīng)過激光修正的只讀存儲(chǔ)器ROM,④適配各種單片機(jī)或系統(tǒng)機(jī),⑤用戶可分別設(shè)定各路溫度的上、下限,⑥內(nèi)含寄生電源。 </p><p>  2.DS18B20內(nèi)部結(jié)構(gòu) </p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。</p><p>  64位光

18、刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號(hào)。不同的器件地址序列號(hào)不同。 </p><p>  3. DS18B20控制方法 </p><p>  在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是Vcc接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,I

19、/O口線要接5KΩ左右的上拉電阻。</p><p>  CPU對(duì)DS18B20的訪問流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這

20、樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。</p><p>  1.2課題背景和意義</p><p>  現(xiàn)有辦公室的空調(diào)由于人為控制上下限的溫度值,有時(shí)候?yàn)榱藞D舒服將溫度設(shè)的很低,而且在無人的時(shí)候常常忘記關(guān)掉空調(diào),特別是在一些大型的公共場(chǎng)所,這不僅僅會(huì)造成電能的浪費(fèi),還會(huì)對(duì)人的身體健康不利,基于這種背景空調(diào)節(jié)電控制器就有它的用場(chǎng)了,它通過自動(dòng)實(shí)時(shí)監(jiān)測(cè)環(huán)境的溫度判斷是否達(dá)到上下限值從而自動(dòng)通

21、過發(fā)射學(xué)習(xí)到得紅外指令信號(hào)來控制空調(diào)的制冷、加熱和開關(guān)機(jī)來達(dá)到節(jié)能的目的。</p><p>  在傳統(tǒng)的溫度檢測(cè)系統(tǒng)中大都采用模擬溫度傳感器(例如AD590)一般經(jīng)前端放大、A/D變換和數(shù)據(jù)修正等過程。經(jīng)實(shí)踐應(yīng)用分析發(fā)現(xiàn):傳統(tǒng)電路設(shè)計(jì)上存在電源干擾、濾波不可靠,線路過于復(fù)雜、無屏蔽措施等不可靠因素。DS18B20在芯片的內(nèi)部自帶模擬和數(shù)字轉(zhuǎn)換電路的,使用起來非常的方便。它采用單線傳輸技術(shù),另外,溫度的分辨率可以選

22、擇9到12位的分辨率。因此采用單總線數(shù)字溫度傳感器DS18B20可將溫度直接轉(zhuǎn)化為串行數(shù)字信號(hào)供微機(jī)處理,而且在單總線上可以掛多片DS18B20,微機(jī)只需一根端口線就能與多片DS18B20進(jìn)行通信,而且由于它體積小的優(yōu)點(diǎn),因此占用的PCB板面積很小,電路也很好設(shè)計(jì)。因此,由單片機(jī)和DSI8B20構(gòu)成的分布式多點(diǎn)溫度檢測(cè)系統(tǒng)改變傳統(tǒng)的溫度采樣模式,具有可靠性高、線路簡(jiǎn)單、測(cè)量精度高、功能便于擴(kuò)展等優(yōu)點(diǎn)。</p><p&

23、gt;  本設(shè)計(jì)應(yīng)用性和實(shí)用性都比較強(qiáng),只要應(yīng)用不同的傳感器就可以用到不同的系統(tǒng)中,比如壓力監(jiān)測(cè)、風(fēng)速、濕度等等,并且通信采用的是紅外信號(hào),在使用時(shí)基本上不用改變?cè)械脑O(shè)備。并且在設(shè)計(jì)完了以后,控制器會(huì)根據(jù)編程自動(dòng)控制空調(diào)調(diào)節(jié)環(huán)境的溫度在設(shè)置的溫度范圍內(nèi),具有智能控制的功能。</p><p>  為了提高對(duì)傳感器和紅外信號(hào)發(fā)送和接收的認(rèn)識(shí)和了解,尤其是對(duì)紅外通信的深入研究以及其用法與用途,基于實(shí)用、廣泛和典型的原

24、則而設(shè)計(jì)了本器件。本文利用單片機(jī)結(jié)合傳感器技術(shù)以及紅外信號(hào)的使用而開發(fā)設(shè)計(jì)了這一控制器。文中傳感器理論、紅外通信技術(shù)、單片機(jī)實(shí)際應(yīng)用有機(jī)結(jié)合,詳細(xì)地講述了利用DS18B20傳感器探測(cè)環(huán)境溫度的過程以及紅外指令信號(hào)的發(fā)送與接收。</p><p>  1.3課題的主要組成和設(shè)計(jì)要求</p><p>  本設(shè)計(jì)系統(tǒng)包括溫度采集模塊,系統(tǒng)控制模塊,數(shù)據(jù)存儲(chǔ)模塊,顯示模塊,紅外信號(hào)撲捉與發(fā)送模塊五

25、個(gè)部分。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過程作了詳細(xì)介紹。整個(gè)系統(tǒng)的核心是進(jìn)行溫度監(jiān)測(cè)和紅外信號(hào)指令的撲捉與發(fā)送。</p><p><b>  設(shè)計(jì)要求如下:</b></p><p>  設(shè)計(jì)制作一個(gè)辦公室空調(diào)節(jié)電控制器來控制辦公室空調(diào)的電源。具體要求如下:</p><p>  14°~28°內(nèi)不能開啟空調(diào);</p>

26、<p>  低于14°時(shí)允許開啟制熱,達(dá)到18°時(shí)自動(dòng)關(guān)閉,自然降溫到14°時(shí)又允許開啟;</p><p>  高于28°時(shí)允許開啟制冷,達(dá)到24°時(shí)自動(dòng)關(guān)閉,自然升溫到28°時(shí)又允許開啟;</p><p>  第2章方案比較與論證</p><p><b>  2.1 設(shè)計(jì)思路<

27、;/b></p><p>  智能空調(diào)節(jié)電控制器是由微控制器獲取溫度傳感器數(shù)據(jù),并通過紅外通信技術(shù)對(duì)環(huán)境內(nèi)的空調(diào)進(jìn)行相應(yīng)的控制。</p><p>  在設(shè)計(jì)之時(shí)首先要對(duì)整體架構(gòu)要有個(gè)清晰地了解,針對(duì)控制現(xiàn)場(chǎng)的實(shí)時(shí)性和可靠性要求,應(yīng)著重考慮MCU的選型,時(shí)鐘頻率是否有特殊要求,內(nèi)存以及ROM的需求,內(nèi)部功能模塊的特殊功能等;其次是溫度傳感器的選擇,可以從兩個(gè)方面來考慮。第一,使用AD芯

28、片對(duì)溫度信號(hào)采樣,第二,直接使用數(shù)字溫度傳感器;為了滿足系統(tǒng)的多功能以及可視化要求,考慮采取何種自控顯示控制的方法;再者是考慮到與空調(diào)的通信方式的選擇,可以選擇數(shù)據(jù)線的通信方式或者紅外通信的方式。</p><p>  2.2 方案設(shè)計(jì)比較</p><p>  方案一:直接在空調(diào)的控制裝置中加入溫度傳感器的溫度檢測(cè)電路,同時(shí)加入相關(guān)的程序。</p><p>  這種

29、方案的硬件電路和相關(guān)的程序編寫是最簡(jiǎn)單的,但操作起來也是最麻煩的,因?yàn)樗痖_空調(diào),從新安裝電路,下載程序,這是最不實(shí)用的一種。</p><p>  方案二:采用獨(dú)立的模塊,用具有硬件I2C總線控制單元的單片機(jī)和溫度傳感器檢測(cè)電路構(gòu)成一個(gè)獨(dú)立的模塊,通過判斷檢測(cè)到的不同的溫度值來控制空調(diào)的運(yùn)行,而它們的連接采用數(shù)據(jù)線的方式,單片機(jī)上只要一個(gè)用來控制的I/O口就行。</p><p>  此方

30、案雖然在安裝上沒有方案一麻煩,但也要拆開空調(diào),采用數(shù)據(jù)線的控制方式能夠保證數(shù)據(jù)的傳輸?shù)姆€(wěn)定性和不被干擾,同時(shí)也省去了紅外指令學(xué)習(xí)的需要,但在位置上受到了限制,只能在一定的范圍內(nèi)安裝,如果需要遠(yuǎn)距離安裝,它的成本也會(huì)不低,同時(shí)具有硬件I2C總線控制單元的單片機(jī)本身成本就高一些。</p><p>  方案三:同樣采用獨(dú)立的模塊,直接用不具有硬件I2C總線控制單元的51單片機(jī)和溫度傳感器檢測(cè)電路構(gòu)成一個(gè)獨(dú)立的模塊,通過

31、判斷檢測(cè)到的不同的溫度值來控制空調(diào)的運(yùn)行,同時(shí)這次我們采用紅外通信的方式,這也就要求模塊能夠?qū)W習(xí)存儲(chǔ)不同紅外遙控器的指令,并且依據(jù)檢測(cè)到的溫度像空調(diào)發(fā)送不同的空調(diào)指令,因而在硬件電路上還要加上紅外接收和紅外發(fā)送的電路,以及外部的存儲(chǔ)器。</p><p>  方案三采用紅外通信的方式和單片機(jī)軟件模擬I2C總線,相對(duì)來說電路與編程是最復(fù)雜的一種,但是可操作性和可維護(hù)性是最好的,并且同樣能夠?qū)W習(xí)適用大部分的空調(diào),通過紅

32、外信號(hào)的傳輸控制方式對(duì)裝置的安裝也非常的方便,既不需要拆動(dòng)空調(diào),只要在紅外敏感的范圍內(nèi)對(duì)安裝的位置也沒要求,安裝的成本也不會(huì)提高,而51單片機(jī)也是目前市場(chǎng)上最成熟,最經(jīng)濟(jì)實(shí)惠的一款單片機(jī),對(duì)它的應(yīng)用也是最方便的。</p><p><b>  2.3方案的確定</b></p><p>  從上面方案的比較來看,方案三不但滿足功能要求,而且系統(tǒng)的實(shí)時(shí)性比較高,抗干擾能力

33、也較好,性價(jià)比較高。根據(jù)以上方案的對(duì)比,以及根據(jù)實(shí)驗(yàn)環(huán)境和設(shè)備的情況,綜合考慮后,最終選定第3套方案。</p><p>  第3章整體電路設(shè)計(jì)</p><p>  3.1設(shè)計(jì)思路與方法</p><p>  電路設(shè)計(jì)仿真軟件有很多種,像Multisim,Proteus,Protel等,我選擇用Protel dxp作為我的電路制圖軟件,因?yàn)椋?lt;/p>

34、<p>  1. Protel DXP是第一個(gè)將所有設(shè)計(jì)工具集于一身的板級(jí)設(shè)計(jì)系統(tǒng),電子設(shè)計(jì)者從最初的項(xiàng)目模塊規(guī)劃到最終形成生產(chǎn)數(shù)據(jù)都可以按照自己的設(shè)計(jì)方式實(shí)現(xiàn)。</p><p>  2. 通過設(shè)計(jì)輸入仿真、PCB繪制編輯、拓?fù)渥詣?dòng)布線、信號(hào)完整性分析和設(shè)計(jì)輸出等技術(shù)融合,Protel DXP為電路設(shè)計(jì)提供了全面的設(shè)計(jì)解決方案。</p><p>  3. Protel DXP不是

35、單純的PCB(印制電路板)設(shè)計(jì)工具,而是由多個(gè)模塊組成的系統(tǒng)工具,分別是SCH(原理圖)設(shè)計(jì)、SCH(原理圖)仿真、PCB(印制電路板)設(shè)計(jì)、Auto Router(自動(dòng)布線器)和FPGA設(shè)計(jì)等,覆蓋了以PCB為核心的整個(gè)物理設(shè)計(jì)。該軟件將項(xiàng)目管理方式、原理圖和PCB圖的雙向同步技術(shù)、多通道設(shè)計(jì)、拓樸自動(dòng)布線以及電路仿真等技術(shù)結(jié)合在一起,為電路設(shè)計(jì)提供了強(qiáng)大的支持。</p><p>  軟件選擇后,然后就是要對(duì)系

36、統(tǒng)功能模塊化,把系統(tǒng)分成若干不同功能的模塊,然后分別繪制所需的模塊。因此根據(jù)實(shí)際情況,可以將本系統(tǒng)分為如下幾個(gè)部分:溫度采集模塊,系統(tǒng)控制模塊,數(shù)據(jù)存儲(chǔ)模塊,數(shù)碼管顯示模塊,紅外接收模塊,紅外發(fā)送模塊。整個(gè)裝置的框架圖如圖3.1所示。</p><p><b>  、</b></p><p>  圖3.1 控制器框架圖</p><p>  根據(jù)各

37、基本模塊的設(shè)計(jì),設(shè)計(jì)了系統(tǒng)整體電路圖,系統(tǒng)原理圖請(qǐng)?jiān)斠姼戒汚。</p><p>  3.2基本功能模塊電路</p><p>  3.2.1溫度采集模塊</p><p>  1. DS18B20基本介紹</p><p>  該模塊使用DS18B20數(shù)字溫度傳感器,沒有采用傳統(tǒng)的熱敏電阻和AD轉(zhuǎn)換等方式進(jìn)行溫度采集,簡(jiǎn)化了電路結(jié)構(gòu),并且也提高

38、了可靠性和穩(wěn)定性。DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。外形圖如圖3.1所示。</p><p>  圖3.2 DS18B20外型圖</p><p>  DS28B20內(nèi)部存貯器(如圖3.3示)由一個(gè)高速暫存RAM和一個(gè)非易失性,電可擦除EERAM組成,后者存貯高低溫度和觸發(fā)器TH和TL。<

39、;/p><p>  圖3.3 DS18B20存貯器結(jié)構(gòu)圖</p><p>  每一DS18B20包括一個(gè)唯一的64位長(zhǎng)的ROM編碼,由于多個(gè)傳感器可以漏極開路的形式掛載在一根總線上,因此主機(jī)搜索不同的ROM編碼就可以找到不同的傳感器,ROM編碼格式如圖3.4所示。主機(jī)進(jìn)行ROM操作時(shí),必須提供五種操作命令之一:1)Read ROM(讀ROM),2)Match ROM(符合ROM),3)Sear

40、ch ROM(搜索ROM),4)Skip ROM(跳過ROM),Alarm Search(告警搜索)。</p><p>  MSB LSB MSB LSB MSB LSB</p><p>  (最高有效位) (最低有效位)</p><p>  圖3.4 ROM編碼格式</p><p&

41、gt;  溫度采集模塊最重要的是要弄清傳感器是怎樣把溫度進(jìn)行數(shù)字化的。在DS18B20內(nèi)部完成提供0.5℃的分辨率,溫度讀數(shù)以16位、符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供。數(shù)據(jù)在單線接口上串行發(fā)送。溫度是以1/2℃LSB(最低有效位)形式表示時(shí),產(chǎn)生以下9位格式,如圖3.5所示:</p><p>  圖3.5 DS18B20內(nèi)溫度數(shù)據(jù)格式</p><p>  為了達(dá)到更高的精度,則在對(duì)DS18

42、B20測(cè)溫原理進(jìn)行詳細(xì)分析的基礎(chǔ)上,采取直接讀DS18B20內(nèi)部暫存器的方法,將DS18B20的測(cè)溫分辨率提高到0.01~0.1℃。首先用讀暫存器指令(BEH),讀出0.5℃為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(LSB),得到所測(cè)實(shí)際溫度整數(shù)部分T1,然后用BEH指令讀取計(jì)數(shù)器1的計(jì)數(shù)剩余值M1和每度計(jì)數(shù)值M2??紤]到DS18B20測(cè)量溫度的整數(shù)部分是以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度T可以用下式計(jì)算得

43、到:</p><p>  T=(T1-O.25)+(M2-M1)/M2</p><p>  2. 溫度采集模塊電路</p><p>  根據(jù)DS18B20技術(shù)參數(shù),溫度采集模塊電路設(shè)計(jì)如圖3.6所示。DS18B20采用+5V電源供電,而不采用數(shù)據(jù)線供電的寄生電源供電形式,目的在于減少溫度轉(zhuǎn)換和數(shù)據(jù)讀取的時(shí)間,提高傳感器的工作效率。DS18B20數(shù)據(jù)傳輸端口漏極開路,

44、因此多個(gè)DS18B20可以進(jìn)行“線與”,掛載在同一條數(shù)據(jù)線上。數(shù)據(jù)線使用上拉電阻連接到VCC,以滿足電平轉(zhuǎn)換期間提供足夠的電流。其中數(shù)據(jù)端接單片機(jī)引腳P1.7。</p><p>  圖3.6 溫度采集電路</p><p>  3.2.2系統(tǒng)控制模塊</p><p>  1. 內(nèi)部時(shí)鐘電路。</p><p>  MCS-51芯片內(nèi)有一個(gè)高增益

45、反向放大器,XTAL1,XTAL2引腳分別為該反向放大器的輸入端和輸出端,在芯片的外部通過這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。如圖3.7所示。</p><p>  圖3.7 內(nèi)部時(shí)鐘電路</p><p>  電路中的電容C1、C2的取值對(duì)振蕩頻率輸出的頻率值、穩(wěn)定性及振蕩電路起振速度有少許影響,C1、C2可在20PF-100PF之間選擇,外接

46、陶瓷振蕩器時(shí)典型取值為47PF,取60PF-70PF時(shí)振蕩器有較高的頻率穩(wěn)定性。晶體振蕩頻率可在1.2M-12M之間選擇,根據(jù)實(shí)際情況,選擇11.0592MHZ。</p><p><b>  2. 系統(tǒng)復(fù)位電路</b></p><p>  MCS-51單片機(jī)的復(fù)位操作有兩種方式:上電復(fù)位和上電按鈕復(fù)位。通常因?yàn)橄到y(tǒng)運(yùn)行的需要,常常需要人工按鈕復(fù)位,復(fù)位電路如圖3.8所

47、示,只需要將一個(gè)常開按鈕開關(guān)并聯(lián)于上電復(fù)位電路,按下開關(guān)一定時(shí)間就能使RST引腳端為高電平,從而使單片機(jī)復(fù)位。</p><p>  圖3.8 系統(tǒng)復(fù)位電路</p><p>  3.2.3數(shù)據(jù)存儲(chǔ)模塊</p><p>  在此模塊中,使用24C02作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器,把DS18B20的ROM信息保存到里面。1. 24C02基本介紹</p><p&

48、gt;  24C02是一個(gè)2K存儲(chǔ)空間的COMS EEPROM,內(nèi)部含有256個(gè)8位字節(jié),16字節(jié)頁寫緩沖器。它支持IIC總線數(shù)據(jù)傳送協(xié)議,通過器件地址輸入端A0,A1和A2最多可以實(shí)現(xiàn)將8個(gè)24C02連接到總線上。對(duì)24C02進(jìn)行操作,必須嚴(yán)格掌握讀寫時(shí)序。</p><p>  2. IIC總線工作原理</p><p>  IIC總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào),他們分別是:開始信號(hào)

49、、結(jié)束信號(hào)和應(yīng)答信號(hào)。</p><p>  開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。  結(jié)束信號(hào):SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。   應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根

50、據(jù)實(shí)際情況做出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。</p><p>  I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為

51、高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。</p><p>  數(shù)據(jù)存儲(chǔ)模塊電路設(shè)計(jì)如圖3.9所示,SCK時(shí)鐘線和SDA數(shù)據(jù)線經(jīng)上拉電阻接+5V電源。</p><p>  圖3.9 數(shù)據(jù)存儲(chǔ)模塊</p><p>  3.2.4顯示模塊</p><p>  1. 溫度數(shù)據(jù)顯示部分</p><p>  圖3

52、.10所示模塊使用8位一體共陰極數(shù)碼顯示管作為顯示器,單片機(jī)輸出信號(hào)不能直接接入數(shù)碼管,因?yàn)榇藭r(shí)I/O口輸出電流并不能驅(qū)動(dòng)數(shù)碼管。因此必須在數(shù)碼管輸入端接驅(qū)動(dòng),驅(qū)動(dòng)的接法有多種,可以使用上面模塊電路中所使用的方法,直接經(jīng)上拉電阻接到電源,還有一種方式就是接驅(qū)動(dòng)芯片,滿足信號(hào)的電平轉(zhuǎn)換。此模塊中采用信號(hào)經(jīng)驅(qū)動(dòng)芯片74LS244輸出到數(shù)碼管。而單片機(jī)P0口輸出信號(hào)作為數(shù)碼管段選信號(hào),顯示數(shù)字或者字符,P2口輸出信號(hào)作為數(shù)碼管位選信號(hào),用來選

53、擇哪個(gè)數(shù)碼管亮或滅。其中后五位數(shù)碼管用來顯示溫度數(shù)據(jù),末尾兩位為小數(shù)顯示,第三位為帶小數(shù)點(diǎn)的整數(shù)顯示。第六位為負(fù)數(shù)字符“-”顯示。最高三位顯示DS18B20編號(hào),用來顯示當(dāng)前DS18B20的溫度數(shù)據(jù),如“no 1”等編號(hào)。</p><p>  圖3.10 顯示模塊</p><p><b>  工作狀態(tài)顯示部分</b></p><p>  圖3.

54、11 工作狀態(tài)提示電路</p><p>  如圖3.11示,發(fā)光二極管D1用來表示發(fā)送加熱指令后的狀態(tài),并配合揚(yáng)聲器LS1一聲提示;發(fā)光二極管D2表示發(fā)送制冷指令后的狀態(tài);發(fā)光二極管D3表示發(fā)送開關(guān)指令后的狀態(tài);并且每次成功發(fā)送指令后都會(huì)配合揚(yáng)聲器LS1一聲提示。</p><p>  3.2.5紅外發(fā)送與接收模塊</p><p><b>  1. 紅外發(fā)

55、送模塊</b></p><p>  考慮到成本的因素,我采用的是軟件調(diào)制發(fā)射的方法。 一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對(duì)38~40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。 當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms

56、、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”。 上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制,然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。一般電視遙控器的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼,用于核對(duì)數(shù)據(jù)是否接收準(zhǔn)確。 根據(jù)紅外編碼的格式,發(fā)送數(shù)據(jù)前需要先發(fā)送9ms的起始碼和4

57、.5ms的結(jié)果碼。</p><p>  遙控串行數(shù)據(jù)編碼波形如下圖所示:</p><p>  圖3.12 數(shù)據(jù)0和1的寬度</p><p>  圖3.13 紅外信號(hào)0和1的調(diào)制示意</p><p>  圖3.14 一條紅外信號(hào)的指令 </p><p><b>  2. 紅外接收模塊</b>

58、;</p><p>  接收電咱我們使用一化紅外接紅外接收管TL0038,不需要任何外接無件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作,實(shí)物如圖3.15所示:</p><p>  圖3.15 紅外一體化接收頭實(shí)物圖</p><p>  TL0038接收到38kHz紅外信號(hào)時(shí),輸出端輸出低電平,否則為高電平。從接收端出來的數(shù)據(jù)波形如圖3.16所示:&l

59、t;/p><p>  圖3.16 解調(diào)出來的指令信號(hào)</p><p>  整個(gè)紅外發(fā)送以及與單片機(jī)的接口原理圖如圖3.17:</p><p>  圖3.17 紅外發(fā)射與接收部分</p><p>  P3是TL0038的原理框圖,它的數(shù)據(jù)端直接接到單片機(jī)的P32外部中斷0口,發(fā)送端口則接到P31端,為增大發(fā)射功率加了一個(gè)三極管放大電流。</p

60、><p>  3.2.6 電源部分</p><p>  由于控制器是一個(gè)獨(dú)立的模塊,因此我們?cè)O(shè)計(jì)時(shí)采用了從220V市電獨(dú)立供電的方式,先用變壓器將交流電降到24V,再用二極管橋式整流,輸出的電壓輸入到三端線性穩(wěn)壓芯片7805輸出5V的系統(tǒng)所需電壓,電源部分的電路原理圖如圖3.18:</p><p>  圖3.18 電源模塊原理圖</p><p>

61、;  3.2.7單片機(jī)引腳分配圖</p><p>  圖3.19為單片機(jī)引腳分配圖。引腳分配說明如下:</p><p>  X1,X2分別接時(shí)鐘振蕩電路的輸入輸出;RST為復(fù)位信號(hào)輸入端;SCL,SDA為存儲(chǔ)器24C02的時(shí)鐘線,數(shù)據(jù)線;P2.5,P2.6,P2.7接綠、紅、藍(lán)發(fā)光二極管;P3.7接揚(yáng)聲器;P1.4為多路DS18B20數(shù)據(jù)輸入輸出及控制端口;P0為數(shù)碼管數(shù)據(jù)端口;P1.1

62、,P1.2,P1.3為數(shù)碼管位控制端;P3.1,P3.2為紅外信號(hào)接收和發(fā)送端口。</p><p>  圖3.19 單片機(jī)引腳分配</p><p>  上面5個(gè)模塊將下位機(jī)硬件分成了幾個(gè)部分,每個(gè)部分都對(duì)硬件做了較詳細(xì)的介紹,至于下位機(jī)整體的電路圖請(qǐng)?jiān)斠姼戒汚。</p><p>  第4章系統(tǒng)程序設(shè)計(jì)</p><p>  我把軟件分成了以下

63、幾個(gè)部分:紅外指令信號(hào)的撲捉識(shí)別、紅外指令信號(hào)的調(diào)制發(fā)射、E2PROM外部存儲(chǔ)器的存取、溫度傳感器的溫度的檢測(cè)及數(shù)碼管顯示和單片機(jī)的主程序。</p><p>  4.1 紅外指令信號(hào)的撲捉識(shí)別</p><p>  由于采用的是紅外一體化接收頭,它的輸出信號(hào)就是單片機(jī)能夠識(shí)別的TTL電平,因此我采用定時(shí)計(jì)數(shù)的方式來區(qū)別0和1,用下降沿的外部0中斷來撲捉紅外指令信號(hào)。首先檢測(cè)判斷是否是主遙控

64、器的指令信號(hào),繼而根據(jù)不同的指令可以學(xué)習(xí)存儲(chǔ)不同的遙控器的加熱、制冷和開關(guān)機(jī)指令,這樣在學(xué)習(xí)完指令后控制器就可以根據(jù)檢測(cè)到得不同的溫度值向空調(diào)發(fā)送不同的指令信號(hào),實(shí)現(xiàn)智能控制和節(jié)能的效果。</p><p>  紅外指令信號(hào)的撲捉識(shí)別的程序流程圖如圖4.1:</p><p>  圖4.1 紅外信號(hào)撲捉程序流程圖</p><p>  整個(gè)紅外指令信號(hào)的撲捉程序放在外部中

65、斷0的中斷服務(wù)程序中。</p><p>  4.2 紅外指令信號(hào)的調(diào)制發(fā)射</p><p>  當(dāng)單片機(jī)檢測(cè)到的溫度達(dá)到設(shè)定的臨界值時(shí),單片機(jī)就要通過紅外發(fā)送電路向空調(diào)發(fā)送已經(jīng)學(xué)習(xí)過的相應(yīng)的指令信號(hào)??紤]到成本的因素,我決定采用軟件調(diào)制發(fā)射的方式。</p><p>  由于我的主控遙控器是32位編碼,因此本控制器只能識(shí)別32的遙控器指令信號(hào),依據(jù)紅外一體化接收的

66、解調(diào)原理,發(fā)射時(shí)在低電平部分發(fā)射38K的脈沖信號(hào),高電平則不發(fā)信號(hào),發(fā)送38K的脈沖信號(hào)時(shí)采用定時(shí)器2定時(shí)26us。</p><p>  程序流程圖如4.2:</p><p>  圖4.2 紅外指令信號(hào)的調(diào)制發(fā)射流程圖</p><p>  4.3 溫度傳感器的溫度的檢測(cè)及數(shù)碼管顯示</p><p>  1. 溫度采集部分是系統(tǒng)的核心之一,

67、關(guān)于這一部分在硬件電路設(shè)計(jì)中有詳細(xì)的介紹。而DS18B20溫度傳感器的操作必須掌握嚴(yán)格的時(shí)序,這一點(diǎn)非常重要,當(dāng)初設(shè)計(jì)之時(shí)我就在這里下了很大功夫??刂坪脮r(shí)序就能編寫相應(yīng)功能的子函數(shù)對(duì)DS18B20進(jìn)行操作?! ∮捎贒S18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對(duì)DS18B20芯片的訪問。&

68、lt;/p><p>  由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命

69、令的傳輸都是低位在先。 DS18B20的復(fù)位時(shí)序如圖4.3所示:</p><p>  圖4.3 復(fù)位時(shí)序圖</p><p>  DS18B20的讀時(shí)序如圖4.4所示:  對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。  對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過程

70、,至少需要60us才能完成。</p><p><b>  圖4.4 讀時(shí)序圖</b></p><p>  DS18B20的寫時(shí)序如圖4.5所示:  對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程?! ?duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣

71、IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p><b>  圖4.5 寫時(shí)序圖</b></p><p>  在整個(gè)控制器程序的運(yùn)行過程中采用定時(shí)器0定時(shí),每隔1S實(shí)時(shí)采集一次環(huán)境的溫度值并用數(shù)碼管顯示,下面對(duì)幾個(gè)DS18B20重要的函數(shù)進(jìn)行介紹。</p><p>  void Write

72、OneChar(unsigned char dat); //寫一個(gè)字節(jié)數(shù)據(jù)到DS18B20</p><p>  unsigned char ReadOneChar(void); //讀取一個(gè)字節(jié)數(shù)據(jù)</p><p>  void Init_DS18B20(void); //初始化DS18B20</p><p>  un

73、signed char ReadTemperature(void) //獲取當(dāng)前溫度值,并計(jì)算 </p><p>  24C02-E2PROM外部存儲(chǔ)器的存取</p><p>  24C02采用的是I2C總線方式。</p><p>  4.4.1 I2C總線介紹</p><p>  I2C總線是由PHILIPS公司推出的一

74、種總線標(biāo)準(zhǔn),它是同步信號(hào)的一種特殊形式,具有接口線少、控制簡(jiǎn)單、器件封裝形式小、通信速率較高等優(yōu)點(diǎn)。在主從通信中,可以有多個(gè)I2C總線器件同時(shí)接到I2C總線上,所有與I2C兼容的器件都具有標(biāo)準(zhǔn)的接口,通過地址來識(shí)別通信對(duì)象,使他們可以經(jīng)由I2C總線自由通信。</p><p>  I2C總線由數(shù)據(jù)線SDA和時(shí)鐘線SCL兩條線構(gòu)成通信線路,既可發(fā)送數(shù)據(jù),又可接收數(shù)據(jù)。在CPU和被控IC之間,IC和IC之間都可進(jìn)行雙向

75、傳送,最高傳送速率為400kps,各種器件均并聯(lián)在總線上,但是每個(gè)器件均有唯一的地址,在信息傳輸過程中,I2C總線上并聯(lián)的每個(gè)器件既是被控器(或主控器),又是接收器(或發(fā)送器),這取決于它所完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和數(shù)據(jù)碼兩部分:地址碼用來選址,即接通需要控制的電路,數(shù)據(jù)碼是通信的內(nèi)容,這樣各IC電路雖然掛在同一條總線上,卻彼此獨(dú)立。</p><p>  I2C總線硬件結(jié)構(gòu)圖</p>

76、<p>  下圖為I2C總線硬件結(jié)構(gòu)圖,其中,SCL是時(shí)鐘線,SDA是數(shù)據(jù)線??偩€上各器件均采用漏極開路結(jié)構(gòu)與總線相接,因此SCL和SDA都需要上拉電阻,總線在空閑狀態(tài)下均保持高電平,連接到總線上的任意器件輸出的低電平,都將使總線的信號(hào)變低,即各器件的SDA和SCL都是線與的關(guān)系。</p><p>  圖4.6 I2C總線系統(tǒng)硬件結(jié)構(gòu)圖</p><p>  I2C總線支持多主

77、和主從的工作方式,通常為主從工作方式,在主從工作方式下,系統(tǒng)中只有一個(gè)主控制器(單片機(jī)),其他器件都是具有I2C總線的外圍從器件。在主從工作方式中,主控制器啟動(dòng)數(shù)據(jù)的發(fā)送,產(chǎn)生時(shí)鐘信號(hào),發(fā)出停止信號(hào)。</p><p>  4.4.3 I2C總線通信格式</p><p>  下圖為I2C總線上進(jìn)行一次數(shù)據(jù)傳輸?shù)耐ㄐ鸥袷?lt;/p><p>  圖4.7 I2C總線上進(jìn)行一

78、次數(shù)據(jù)傳輸?shù)耐ㄐ鸥袷?lt;/p><p>  4.4.4 數(shù)據(jù)位的有效性規(guī)定</p><p>  I2C總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘信號(hào)為低電平時(shí),數(shù)據(jù)線上的高電平或低電平的狀態(tài)才允許變化,如下圖所示:</p><p>  圖4.8 I2C總線數(shù)據(jù)位的有效性規(guī)定</p><p><b>

79、;  發(fā)送啟動(dòng)信號(hào)</b></p><p>  在利用I2C總線進(jìn)行數(shù)據(jù)傳送時(shí),首先由主機(jī)發(fā)出啟動(dòng)信號(hào),啟動(dòng)I2C總線。在SCL為高電平期間,SDA出現(xiàn)上升沿則為啟動(dòng)信號(hào)。此時(shí),具有I2C總線的從器件會(huì)檢測(cè)到該信號(hào),啟動(dòng)時(shí)序如下圖所示:</p><p>  圖4.9 I2C總線啟動(dòng)時(shí)序圖</p><p><b>  發(fā)送尋址信號(hào)</b&g

80、t;</p><p>  主機(jī)發(fā)送啟動(dòng)信號(hào)后,再發(fā)出尋址信號(hào)。器件地址有7位和10兩種,這里只介紹7位的地址尋址方式。尋址字節(jié)的位定義如下圖所示,尋址信號(hào)由一個(gè)字節(jié)構(gòu)成,高7位為地址位,最低位為方向位,用以表明主機(jī)與從器件的數(shù)據(jù)傳輸方向,方向位為0,表明主機(jī)接下來對(duì)從器件進(jìn)行寫操作;方向位為1,表明主機(jī)接下來對(duì)從器件進(jìn)行讀操作。</p><p>  圖4.10 尋址字節(jié)的位定義</

81、p><p>  主機(jī)發(fā)送地址時(shí),與主機(jī)連接的從機(jī)都將這7位地址碼與自己的地址比較,如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)R/W位將自己設(shè)定為發(fā)送器或接收器。</p><p>  從機(jī)的地址有固定部分和可編程部分組成。在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī),從機(jī)地址中可編程部分決定了可接入總線該類器件的最大數(shù)目,如一個(gè)從機(jī)的7位尋址位有4位為固定位,3位為可編程位,則只能尋址8個(gè)同類的器件,即可

82、以有8個(gè)同樣的器件接入到I2C總線中。</p><p><b>  應(yīng)答信號(hào)</b></p><p>  I2C總線協(xié)議規(guī)定,每傳送一個(gè)字節(jié)數(shù)據(jù)(含地址及命令字)后,都要有一個(gè)應(yīng)答信號(hào),以確定傳送的數(shù)據(jù)是否被對(duì)方收到。應(yīng)答信號(hào)由接收設(shè)備產(chǎn)生,在SCL為高電平期間,接收設(shè)備將SDA拉為低電平,表示數(shù)據(jù)傳送正確,產(chǎn)生應(yīng)答,時(shí)序圖如下所示:</p><p

83、><b>  數(shù)據(jù)傳輸</b></p><p>  圖4.11 I2C總線應(yīng)答時(shí)序圖</p><p>  主機(jī)發(fā)送尋址信號(hào)并得到從器件應(yīng)答后,便可以進(jìn)行數(shù)據(jù)傳輸,每次一個(gè)字節(jié),但每次傳輸都應(yīng)得到應(yīng)答信號(hào)后再傳輸下一個(gè)字節(jié)信號(hào)。</p><p><b>  非應(yīng)答信號(hào)</b></p><p> 

84、 當(dāng)主機(jī)為接收設(shè)備時(shí),主機(jī)對(duì)最后一個(gè)字節(jié)不應(yīng)答,以向發(fā)送設(shè)備表示數(shù)據(jù)傳輸結(jié)束。</p><p><b>  發(fā)送停止信號(hào)</b></p><p>  在全部數(shù)據(jù)傳輸完畢后,主機(jī)發(fā)送停止信號(hào),即在SCL為高電平期間,SDA上產(chǎn)生一上升沿信號(hào),停止時(shí)序圖如下:</p><p>  圖4.12 I2C總線停止時(shí)序圖</p><p&

85、gt;  目前市場(chǎng)上很多單片機(jī)都已經(jīng)具有硬件I2C總線控制單元,這類單片機(jī)工作時(shí),總線狀態(tài)由硬件監(jiān)測(cè),無須用戶介入,操作非常方便。但我使用的AT89C52單片機(jī)不具備I2C總線接口,因此需要通過軟件模擬I2C總線的工作時(shí)序,在使用時(shí),只需正確調(diào)用各個(gè)函數(shù)就能方便的擴(kuò)展I2C總線接口器件。</p><p>  在總線的一次數(shù)據(jù)傳送過程中,可以有以下幾種組合方式:</p><p>  主機(jī)向從

86、機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個(gè)傳送過程中不變;</p><p>  主機(jī)在第一個(gè)字節(jié)后立即從從機(jī)讀取數(shù)據(jù);</p><p>  在傳送過程中,當(dāng)需要改變方向時(shí),需將起始信號(hào)和從機(jī)地址各重復(fù)一次,而兩次讀寫方向位剛好相反。</p><p>  為了保證數(shù)據(jù)傳輸?shù)目煽啃?,?biāo)準(zhǔn)I2C總線的傳輸具有嚴(yán)格的時(shí)序要求。I2C總線的起始信號(hào)、終止信號(hào)、應(yīng)答或發(fā)送“0”、非應(yīng)答或發(fā)

87、送“1”的模擬時(shí)序如下:</p><p>  圖4..13 I2C總線模擬時(shí)序圖</p><p>  單片機(jī)在模擬I2C總線通信時(shí),需寫出如下幾個(gè)關(guān)鍵的程序:總線初始化、啟動(dòng)信號(hào)、應(yīng)答信號(hào)、停止信號(hào)、寫一個(gè)字節(jié)、讀一個(gè)字節(jié),本程序中I2C幾個(gè)主要程序表示如下:</p><p>  void init() //總線初始化</p><p> 

88、 void start() //起始信號(hào)</p><p>  void respons() //應(yīng)答信號(hào)</p><p>  void stop() //停止信號(hào)</p><p>  void writebyte(uchar date) //寫一個(gè)字節(jié)</p><p>  uchar readbyte(void) //讀一個(gè)字節(jié)<

89、/p><p>  void write_add(uchar address,uchar date) //任意一地址寫入一數(shù)據(jù)</p><p>  read_add(address) //任意地址讀一個(gè)數(shù)據(jù)</p><p><b>  單片機(jī)的主程序</b></p><p>  控制器的主程序是整個(gè)系統(tǒng)的主線程序,其他的程

90、序模塊都是圍繞著這個(gè)主程序而運(yùn)行的,我的主程序流程框圖如下:</p><p>  圖4.14 主程序流程框圖</p><p>  第5章設(shè)計(jì)演示結(jié)果</p><p>  按照前面模塊化系統(tǒng)功能的原則,經(jīng)過努力,各個(gè)硬件模塊已成功實(shí)現(xiàn)其基本功能。系統(tǒng)硬件功能包括溫度采集與數(shù)碼顯示,外部數(shù)據(jù)存儲(chǔ),紅外通信模塊,系統(tǒng)控制模塊</p><p>  

91、5.1硬件演示效果</p><p>  下面的圖片都是我用自己的51開發(fā)板實(shí)現(xiàn)的各個(gè)模塊的功能。</p><p>  5.1.1 溫度采集與數(shù)碼顯示</p><p>  上圖展示的還有單片機(jī)根據(jù)采集到得溫度而做出的反應(yīng),如圖所示溫度達(dá)到了25度,需要制冷,相應(yīng)的指示燈亮。</p><p>  5.1.2 E2PROM外部存儲(chǔ)器的測(cè)試<

92、/p><p>  這個(gè)部分我設(shè)計(jì)了一個(gè)秒表,每隔一秒將定時(shí)器的計(jì)數(shù)值存入外部E2PROM,同時(shí)在下次上電時(shí)從E2PROM中讀出上次的計(jì)數(shù),然后繼續(xù)加數(shù),因?yàn)槿绻挥肊2PROM則在斷電后,計(jì)數(shù)值是不會(huì)得到保存的,下次上電時(shí)會(huì)從0開始計(jì)數(shù)。</p><p><b>  秒表正在計(jì)數(shù)</b></p><p><b>  突然斷電</b&

93、gt;</p><p>  從新上電,可見單片機(jī)從上次斷電時(shí)的數(shù)據(jù)開始計(jì)數(shù),說明存儲(chǔ)成功。</p><p>  5.1.3 紅外發(fā)送與接收演示</p><p>  用紅外發(fā)光二極管在發(fā)送低電平時(shí)用38K的脈沖信號(hào)調(diào)制,高電平時(shí)不發(fā)送信號(hào),這樣解調(diào)出來的信號(hào)剛好是高低電平的脈沖信號(hào),送到一個(gè)發(fā)光二極管顯示。</p><p>  照片中的紅外發(fā)光

94、二極管處于熄滅狀態(tài)。</p><p>  紅外發(fā)光二級(jí)管處于亮的狀態(tài),發(fā)光二極管閃爍。</p><p>  這是我的紅外遙控器。</p><p><b>  第6章總結(jié)與展望</b></p><p><b>  6.1總結(jié)</b></p><p>  本文給出了智能空調(diào)節(jié)

95、電控制器的設(shè)計(jì)方案,將系統(tǒng)分為溫度采集與顯示、E2PROM存儲(chǔ)、紅外發(fā)送、紅外撲捉和單片機(jī)主控五個(gè)部分。通過硬件演示效果表明,系統(tǒng)能有效采集環(huán)境溫度數(shù)據(jù),并且能正確顯示,實(shí)時(shí)性也比較高,同時(shí)控制器也能有效撲捉到紅外指令信號(hào)和發(fā)送已學(xué)習(xí)的指令信號(hào)。該系統(tǒng)在實(shí)際應(yīng)用中能取得較好的效果,直接使用數(shù)字溫度傳感器DS18B20,提高了溫度采集系統(tǒng)的可靠性;采用紅外通信的方式更提高了控制器的市場(chǎng)實(shí)用性,且硬件電路簡(jiǎn)單、廉價(jià),抗干擾能力強(qiáng)、擴(kuò)展方便。

96、相對(duì)于傳統(tǒng)的大量需要節(jié)能控制的空調(diào),控制器具有良好的應(yīng)用前景。</p><p><b>  6.2結(jié)束語</b></p><p>  在本次設(shè)計(jì)中,發(fā)現(xiàn)了若干問題,一些問題更是聞所未聞,迷惑不解之時(shí)在網(wǎng)上苦苦尋找答案,通過和老師、同學(xué)交流后才把問題解決。理論≠實(shí)踐?,F(xiàn)在我更加堅(jiān)信這句話的深刻內(nèi)涵,很多問題當(dāng)我們說的再容易不過的時(shí)候,做起來卻非常棘手。發(fā)現(xiàn)了這么多問題

97、,我想,在以后的工作和學(xué)習(xí)中都將是我寶貴的經(jīng)驗(yàn)。</p><p>  特別是紅外通信和I2C存儲(chǔ)部分,以前接觸的比較少,通過本裝置的設(shè)計(jì),我完全掌握了它們的應(yīng)用,這也極大的提高了我的C編程能力,同時(shí)強(qiáng)化和提升了我的硬件設(shè)計(jì)能力。</p><p>  如今的社會(huì),到處都打著節(jié)能和智能化的旗號(hào),各種產(chǎn)品終端很多都具有自動(dòng)控制的功能。這一趨勢(shì)是以后發(fā)展的必然趨勢(shì)。而空調(diào)的節(jié)能控制還是一個(gè)市場(chǎng)的空

98、白,本裝置的設(shè)計(jì)成功則恰恰滿足這一要求,當(dāng)然本裝置還有很多需值得改進(jìn)的地方,比如只能識(shí)別32位的空調(diào)指令,不能進(jìn)行紅外人體感應(yīng)等,在以后的時(shí)間里我將進(jìn)一步逐漸實(shí)現(xiàn)這些功能。</p><p><b>  致謝</b></p><p>  在這里,非常感謝我的指導(dǎo)老師王永才老師對(duì)我的幫助,是他在百忙之中抽出時(shí)間為我排憂解難。在此次畢業(yè)設(shè)計(jì)過程中,我遇到了很多難以解決的問題

99、,這些問題涉及到硬件、軟件、論文等方面,每次遇到問題我都直接跑去他辦公室請(qǐng)教,看到我過來,他即刻停止手中的活,細(xì)心地為我講解,這些問題他都講的非常清晰透徹,聽完之后有種豁然開朗的感覺。</p><p>  在畢業(yè)設(shè)計(jì)中,還得謝謝身邊的一些老師,朋友和同學(xué),在與他們的討論過程中我收獲很多!</p><p><b>  參考文獻(xiàn)</b></p><p&

100、gt;  杜留峰,雷進(jìn)輝.基于單片機(jī)的紅外線數(shù)據(jù)通信系統(tǒng)設(shè)計(jì).河南科技學(xué)院機(jī)電學(xué)院</p><p>  樊慶偉,許鋒.紅外遙控器接收與單片機(jī)識(shí)別技術(shù). 信息技術(shù),2000年第5期</p><p>  趙健衡.基于單片機(jī)控制的紅外線遙控器設(shè)計(jì). 《電腦知識(shí)與技術(shù)》 2009年第22卷第1期</p><p>  丁彬成.空調(diào)遙控器的設(shè)計(jì)與生產(chǎn).《現(xiàn)代電子技術(shù)》2005年

101、第11期總第202期</p><p>  趙健衡,成偉.適于室內(nèi)電器控制的紅外線遙控器設(shè)計(jì)與實(shí)現(xiàn).常州工學(xué)院學(xué)報(bào),第21卷第6期</p><p>  何忠蛟.基于DS18B20的分布式溫度傳感系統(tǒng). 邵陽學(xué)院學(xué)報(bào)(自然科學(xué)版),第4卷,第1期,2007年3月</p><p>  蘇長(zhǎng)贊.紅外線與超聲波遙控.人們郵電出版社</p><p>  

102、趙亮,候國(guó)銳.單片機(jī)C語言編程與實(shí)例.人民郵電出版社</p><p>  求是科技.單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航.人民郵電出版社</p><p>  郭天祥.新概念51單片機(jī)C語言教程.電子工業(yè)出版社</p><p>  楊忠煌,黃博俊,李文昌.單芯片8051實(shí)務(wù)與應(yīng)用.中國(guó)水利水電出版社</p><p>  譚浩強(qiáng). C程序設(shè)計(jì)(第二版).清

103、華大學(xué)出版社</p><p>  沙占友,王彥朋,孟志永. 單片機(jī)外圍電路設(shè)計(jì).電子工業(yè)出版社</p><p>  楊恢先,黃輝先.單片機(jī)原理及應(yīng)用.人民郵電出版社</p><p>  何書森.實(shí)用遙控電路原理與設(shè)計(jì)速成. 福建科學(xué)技術(shù)出版社</p><p><b>  附錄一系統(tǒng)原理圖</b></p>

104、<p><b>  附錄二程序清單</b></p><p><b>  //頭文件部分</b></p><p>  #define uchar unsigned char </p><p>  #define uint unsigned int </p><p>  /*********

105、**************************************************************/</p><p>  //void delay1(uchar MS);</p><p>  void react(void);</p><p>  unsigned char ReadTemperature(void);</p>

106、<p>  void Init_DS18B20(void);</p><p>  unsigned char ReadOneChar(void);</p><p>  void WriteOneChar(unsigned char dat);</p><p>  void delay(unsigned int i);</p><p&g

107、t;  send_irdata(char p_irdata);</p><p>  //void initial();</p><p>  /************************************************************************/</p><p><b>  //i2c頭文件</b>&l

108、t;/p><p>  sbit wp=P1^5;//定義I2C的寫保護(hù)端</p><p>  sbit scl=P1^6;//定義時(shí)鐘端口</p><p>  sbit sda=P1^7;//定義數(shù)據(jù)端口</p><p>  uchar t=0;</p><p>  uchar sec=0,num=0;</p>

109、<p>  //uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  //18B20單線溫度檢測(cè)</p><p>  /****************************************************************************

110、*/</p><p>  sbit green=P2^5;</p><p>  uchar yy=0;</p><p>  uint i=0,j=0;</p><p>  sbit red=P2^6;</p><p>  sbit blue=P2^7;</p><p>  sbit speake

111、r=P3^7;//定義喇叭的端口,所有的deep換成speaker</p><p>  sbit seg1=P1^1;//數(shù)碼管位選</p><p>  sbit seg2=P1^2;</p><p>  sbit seg3=P1^3;</p><p>  sbit DQ=P1^4;//ds18b20 端口</p><p&

112、gt;  sfr dataled=0x80;//顯示數(shù)據(jù)端口</p><p>  /*****************************************************************************/ </p><p>  uchar temp;</p><p>  uchar flag_get,count0,num0,min

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論