![基于PC機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計和實現(xiàn) 電氣工程專業(yè)_第1頁](http://file4.renrendoc.com/view5/M00/26/19/wKhkGGZEI9qAJSn4AAE34f3PPAc209.jpg)
![基于PC機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計和實現(xiàn) 電氣工程專業(yè)_第2頁](http://file4.renrendoc.com/view5/M00/26/19/wKhkGGZEI9qAJSn4AAE34f3PPAc2092.jpg)
![基于PC機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計和實現(xiàn) 電氣工程專業(yè)_第3頁](http://file4.renrendoc.com/view5/M00/26/19/wKhkGGZEI9qAJSn4AAE34f3PPAc2093.jpg)
![基于PC機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計和實現(xiàn) 電氣工程專業(yè)_第4頁](http://file4.renrendoc.com/view5/M00/26/19/wKhkGGZEI9qAJSn4AAE34f3PPAc2094.jpg)
![基于PC機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計和實現(xiàn) 電氣工程專業(yè)_第5頁](http://file4.renrendoc.com/view5/M00/26/19/wKhkGGZEI9qAJSn4AAE34f3PPAc2095.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
[1]黃興琦.單片機(jī)與WINDOWS下PC機(jī)的串口通信研究[J].儀器儀表用戶,2007,14(4):79280.[2]肖金球,單片機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2004:1202159.[3]胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2004.[4]李長林.VisualBasic串口通信技術(shù)與典型實例[M].北京:清華大學(xué)出版社,2006.[5]求是科學(xué).8051單片機(jī)C程序設(shè)計完全手冊[M].北京:人民郵電出版社,2006.[6]周興華.單片機(jī)智能化產(chǎn)品C語言設(shè)計實例詳解[M].北京:北京航空航天大學(xué)出版社,2006.注:選題的根據(jù):1)說明本選題的理論、實際意義 2)綜述國內(nèi)外有關(guān)本選題的研究動態(tài)和自己的見解1)現(xiàn)代社會,使用大型空調(diào)的場合越來越多,比如公司,賓館,學(xué)校食堂等等。但都沒有一個統(tǒng)一的管理監(jiān)控系統(tǒng),因此大量的能源浪費(fèi)了。本系統(tǒng)設(shè)計一個基于PC機(jī)與單片機(jī)的多臺空調(diào)的監(jiān)控控制系統(tǒng),所有空調(diào)都在一個監(jiān)控室管理,管理員只要坐在電腦旁就可以對所有空調(diào)進(jìn)行控制,并具有自動監(jiān)控功能,不需要人干涉,因此大大提高了能源的節(jié)約。2)如今有的空調(diào)控制系統(tǒng)僅僅采用的是以單片機(jī)為主,采用鍵盤或遙控器進(jìn)行參數(shù)設(shè)置,外接報警等控制電路,不具備人性化,而且操作不方便,如果對多臺空調(diào)進(jìn)行控制更加顯得麻煩,增大了工作量。相比于本系統(tǒng)具有很大的缺陷性。主要內(nèi)容:主要參考資料:[1]黃興琦.單片機(jī)與WINDOWS下PC機(jī)的串口通信研究[J].儀器儀表用戶,2007,14(4):79280.[2]肖金球,單片機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2004:1202159.[3]胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2004.[4]李長林.VisualBasic串口通信技術(shù)與典型實例[M].北京:清華大學(xué)出版社,2006.[5]求是科學(xué).8051單片機(jī)C程序設(shè)計完全手冊[M].北京:人民郵電出版社,2006.[6]周興華.單片機(jī)智能化產(chǎn)品C語言設(shè)計實例詳解[M].北京:北京航空航天大學(xué)出版社,2006.指導(dǎo)教師意見:指導(dǎo)教師簽名:教研室意見:簽名:年月日開題報告會紀(jì)要時間2008年12月28日地點(diǎn)三教五樓會議室與會人員姓名職務(wù)(職稱)姓名職務(wù)(職稱)姓名職務(wù)(職稱)會議記錄摘要:我的課題規(guī)模比較大,涉及的知識點(diǎn)比較多,我想和同學(xué)分工做,行嗎?答:可以,你做PC機(jī)與單片機(jī)通信的部分,另外一個同學(xué)做控制器部分。2.老師,這個學(xué)期系里會組織答辯嗎?答:如果這個學(xué)期能夠按實際要求順利完成,通過導(dǎo)師的審批達(dá)到要求的話,系里會組織一次小規(guī)模的答辯,希望大家認(rèn)真對待,通過自己努力好好做畢業(yè)設(shè)計。3.老師,在實際設(shè)計過程中遇到了困難,可以請教你嗎?答:當(dāng)然可以,如果大家在設(shè)計過程中遇到了困難,可以隨時到辦公室找我,我們可以一起討論解決,我非常樂意和大家一起學(xué)習(xí)。但是大家千萬不要隨便抄襲網(wǎng)上的,可以參考別人相關(guān)的思路和思想,然后在用自己的思維方式寫出自己論文。會議主持人:記錄人: 年月日指導(dǎo)小組意見負(fù)責(zé)人簽名:年月日系部意見負(fù)責(zé)人簽名:年 月 日注:此表由學(xué)生本人填寫,一式三份,一份留系里存檔,指導(dǎo)老師和本人各保存一份畢業(yè)論文(設(shè)計)中期檢查表畢業(yè)論文(設(shè)計)題目學(xué)生姓名學(xué)號系別專業(yè)指導(dǎo)教師檢查日期指導(dǎo)教師檢查情況記載及修改意見:1)
軟件設(shè)計部分應(yīng)該給出幾個主要分模塊的設(shè)計流程圖和設(shè)計程序,介紹設(shè)計思路要盡量詳細(xì)一些.2)
分模塊的硬件設(shè)計,應(yīng)該多介紹以下電路的工作情況和在整個設(shè)計中的作用.3)
應(yīng)該介紹一下,現(xiàn)在空調(diào)機(jī)的控制工作過程,這樣一來可以更好的說明你的設(shè)計的合理性和實用性.4)結(jié)論部分要盡量詳細(xì)一些.5)參考文獻(xiàn)要20篇左右,要引用書和期刊資料.
簽名:注:此表用于指導(dǎo)教師緒論 22選題背景及目的 22國內(nèi)外研究狀況 22設(shè)計和研究方法 221方案比較與論證 232硬件設(shè)計 242.1系統(tǒng)框圖 252.2PC機(jī)串口 252.3電平轉(zhuǎn)換芯片MAX232 272.4單片機(jī)AT89S51概述及系統(tǒng)復(fù)位電路設(shè)計 282.5數(shù)字溫度傳感器DS18B20 283軟件設(shè)計 293.1串口通信控件MSCOMM 293.2MSCOMM控件的常用屬性 303.2.1.CommPort屬性 303.2.2.Input屬性 313.2.3.output屬性 313.2.4.PortOpen屬性 313.2.5.Settings屬性 313.2.6.Rthreshold屬性 313.3計時器Timer控件 323.4CommandButton控件 333.5TextBox控件 343.6單片機(jī)串口通信 363.6.151單片機(jī)串行口控制寄存器 363.6.2串口工作模式 363.6.3串口通信數(shù)據(jù)傳輸率 373.7通信協(xié)議 373.8DS18B20測溫程序 383.9下位機(jī)通信程序流程 384.系統(tǒng)原理圖 405.人機(jī)交互界面 41結(jié)論 41參考文獻(xiàn) 43附錄A(上位機(jī)VB程序) 44附錄B(下位機(jī)C51程序) 47致謝 51
TOC\t"05_圖題"\c圖1系統(tǒng)框圖 25TOC\t"05_圖題"\c圖2九針D型串口 26TOC\t"05_圖題"\c圖3MAX232芯片管腳及定義 28TOC\t"05_圖題"\c圖4AT89S51復(fù)位電路 28TOC\t"05_圖題"\c圖5DS18B20管腳圖 29TOC\t"05_圖題"\c圖6下位機(jī)通信流程圖 39TOC\t"05_圖題"\c圖7系統(tǒng)原理圖 40TOC\t"05_圖題"\c圖8人機(jī)控制界面 41TOC\t"06_表題"\c表1九針串口管腳定義 27TOC\t"06_表題"\c表2SCON寄存器比特位定義 36
摘要介紹了一種基于PC機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計,本系統(tǒng)采用的核心技術(shù)是PC機(jī)與單片機(jī)串口通信,PC機(jī)采用VB設(shè)計人機(jī)控制界面,管理員利用此界面實現(xiàn)對所有房間空調(diào)的控制與監(jiān)控。采用VB中的MScomm控件,利用MAX232電平轉(zhuǎn)換芯片實現(xiàn)PC機(jī)與單片機(jī)的數(shù)據(jù)交換。單片機(jī)負(fù)責(zé)采集房間內(nèi)的溫度并將其發(fā)送給PC機(jī)。當(dāng)空調(diào)工作在制冷方式時,如果房間溫度低于人體適宜溫度,PC將向該房間發(fā)送待機(jī)命令,相反則發(fā)送正常工作命令。當(dāng)空調(diào)工作在制熱方式時,如果房間溫度高于人體適宜溫度,PC機(jī)將向該房間發(fā)送待機(jī)命令,相反則發(fā)送正常工作命令。每臺空調(diào)的監(jiān)控時間間隔為一秒,因此可以在很短的時間內(nèi)對所有空調(diào)實現(xiàn)監(jiān)控,整個監(jiān)控過程不需要人為干涉,直到管理員選擇“關(guān)閉監(jiān)控”。該系統(tǒng)適合于大型企業(yè),醫(yī)院等需要數(shù)量較多空調(diào)的場所。管理員對所有空調(diào)實行統(tǒng)一管理,避免了大量能源的浪費(fèi)。更具科學(xué)性和實用性。【關(guān)鍵字】PC機(jī)單片機(jī)MAX232溫度傳感器VisualBasicDesignofdatecommunicationonair-conditioncontrolsystembasedonPCAbstractAdesignofdatecommunicationonair-conditioncontrolsystembasedonPCisintroducedinthispaper.ThecoretechnologyadoptedinthissystemisserialcommunicationbetweenPCsandMCU.thePCcontrolinterfaceisdesignedbyVBcontrols.Administratorcontrolandsupervisealloftheair-conditionsineveryroomonthisman-machineinterface.ThesoftwareistheMscommcontrolsprovidedbyVBandthehardwareisMAX232tocompletethedateexchangebetweenPCsandMCU.ThetemperatureintheroomiscollectedbyMCU,atthesameTimewhichissendedtothePCs.Whentheair-conditonworksinthemodeofcold,ifthetemperatureundertheinordertemperatureofpeople.Theorderabout”holdmachine”willbesendedbyPCs,oppsitelytheair-conditonworksasbefore.Ontheotherhand,whentheair-conditonworksinthemodeofwarm.ifthetemperatureexceedtheinordertemperatureofpeople.Theorderof“holdmachine”wassendedbyPCs.Oppsitelytheair-conditonworksasbefore.Thetimeintervalofeveryair-conditon’ssupervisalisabout1s.soallofair-conditons’supervisalarecompletedinveryshorttime.Withouthuman’sinterferenceinthewholeprocess.tilltheadministratorchoosethe“offsupervisal”.Thissystemcanbeadoptedinlargecompany,hospitalandsoon,whichneedthelargeamountsair-condition.Alloftheair-conditonaremanagedunitively.Lotsofpowerwastecanbeavoided.Ithasmuchmorepracticabilityandscience..【KeyWords】PCsMCUMAX232temperaturesensorVisualBasic緒論選題背景及目的隨著社會生活水平的提高和科學(xué)技術(shù)的發(fā)展,大型空調(diào)已經(jīng)廣泛應(yīng)用在各種場合,比如公司,醫(yī)院,車站等等。然而這些空調(diào)都沒有一個統(tǒng)一的管理和控制系統(tǒng),比如在一個公司,員工下班后大部分人都不會主動關(guān)閉空調(diào)就離開了工作房間,有些人特意將空調(diào)溫度設(shè)置的很低,因此造成大量的電能浪費(fèi),本系統(tǒng)旨在使家電趨向高效,節(jié)能,智能化方向發(fā)展,大大減少個人人為的任意操作,使其具有統(tǒng)一規(guī)范的控制管理系統(tǒng)。節(jié)約能源是全人類永恒的話題與使命,任何項目的研究和開發(fā)都必須充分考慮高效與節(jié)能,杜絕浪費(fèi)。自從八十年代后期,PC機(jī)市場開始快速發(fā)展,越來越多的PC機(jī)應(yīng)用得到開發(fā)。PC機(jī)的廣泛應(yīng)用不僅改變了我們的計算方式,對自動測試系統(tǒng)領(lǐng)域也帶來了革命性的變化。充分利用計算機(jī)豐富的軟硬件資源,大大突破了傳統(tǒng)測試系統(tǒng)在數(shù)據(jù)信號處理、顯示、傳送、存儲、打印等方面的限制。目前,隨著單片機(jī)及微機(jī)技術(shù)的不斷發(fā)展,單片機(jī)組網(wǎng)技術(shù)越來越成熟,集散測控系統(tǒng)應(yīng)用越來越廣泛。它既利用了單片機(jī)性價比高和面向控制等優(yōu)點(diǎn),又結(jié)合PC機(jī)具有豐富的軟硬件資源,特別是非常友好的人機(jī)界面等特點(diǎn)。在這種系統(tǒng)中,單片機(jī)主要進(jìn)行實時數(shù)據(jù)采集及預(yù)處理,然后通過串行口將數(shù)據(jù)傳送給PC機(jī),PC機(jī)對這些數(shù)據(jù)進(jìn)一步處理,基于PC機(jī)的測試系統(tǒng)與監(jiān)控系統(tǒng)正向著高速、高效,智能化、多功能化、多樣化發(fā)展。國內(nèi)外研究狀況如今有的空調(diào)控制系統(tǒng)僅僅采用的是以單片機(jī)為主,采用鍵盤或遙控器進(jìn)行參數(shù)設(shè)置,外接報警等控制電路,不具備人性化,而且操作不方便,如果對多臺空調(diào)進(jìn)行控制更加顯得麻煩,增大了工作量。相比于本系統(tǒng)具有很大的缺陷性。隨著單片機(jī)技術(shù)的發(fā)展,在各種單片機(jī)應(yīng)用系統(tǒng)的設(shè)計中,如智能儀器儀表、各類手持設(shè)備、GPS接收器等,常常需要PC機(jī)與外部設(shè)備進(jìn)行信息交換,即通信。串行通信已經(jīng)成為計算機(jī)與其他設(shè)備進(jìn)行數(shù)據(jù)交換的最廣泛的途徑之一。這也是當(dāng)今市場比較熱門的技術(shù),許多監(jiān)控系統(tǒng)都是基于PC機(jī)與單片機(jī)的串行通信來實現(xiàn)上位機(jī)對下位機(jī)的控制與監(jiān)控,管理員只需在監(jiān)控室的電腦上操作一個Windows環(huán)境下的人機(jī)界面就可以對所有要控制的設(shè)備進(jìn)行管理,這使得管理員的工作量大大減少,也提高了工作效率,更加具有現(xiàn)代化和人性化。設(shè)計和研究方法本系統(tǒng)設(shè)計方法采用的是PC機(jī)與多片單片機(jī)實現(xiàn)數(shù)據(jù)通信,利用PC機(jī)和單片機(jī)的串口實現(xiàn)數(shù)據(jù)通信,所謂串口通信是指按照逐位順序傳遞數(shù)據(jù)的通信方式,由于僅需三根傳輸線傳送信息且通信距離相對較遠(yuǎn),所以在控制領(lǐng)域的現(xiàn)場監(jiān)測、分布控制等場合有著重要的應(yīng)用價值。鑒于PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,單片機(jī)則具有快速以及容易控制的特點(diǎn),在數(shù)據(jù)量不大、傳輸要求不高的情況下,傳輸距離要求不遠(yuǎn)的情況下一般都采用給PC機(jī)配置的RS2232標(biāo)準(zhǔn)串行接口(如COM1,COM2)來實現(xiàn)應(yīng)用系統(tǒng)與PC機(jī)之間的數(shù)據(jù)交換,PC機(jī)可以與一片單片機(jī)實現(xiàn)點(diǎn)對點(diǎn)通信,也可與對片單片機(jī)實現(xiàn)多機(jī)通信。由于本系統(tǒng)是實行對多臺空調(diào)的同時監(jiān)控與控制,故采用PC機(jī)與單片機(jī)多機(jī)通信,每個房間的空調(diào)都安裝一個單片機(jī)系統(tǒng),實現(xiàn)對溫度的采集和發(fā)送,接受PC機(jī)發(fā)來的控制命令字,驅(qū)動控制器工作。上位PC機(jī)采用的是VisualBasic語言和它的MSCOMM控件來實現(xiàn)與單片機(jī)的串口通信,能任意發(fā)送命令給下位機(jī)并且也可以接收下位機(jī)發(fā)來的數(shù)據(jù),實現(xiàn)雙工通信。上位機(jī)定時對下位機(jī)采集的溫度數(shù)據(jù)進(jìn)行讀取,經(jīng)過判斷來決定要發(fā)送的控制命令。在PC機(jī)Windows環(huán)境下實現(xiàn)串行通信一般有4種方法:底層匯編操作;用某些高級語言(如C、PASCAL)提供的庫函數(shù);用Windows提供的API函數(shù);用串行通信控件MSCOMM;這幾種方法有各自的優(yōu)缺點(diǎn),使用局限性也各不相同。有些通信方法可直接對串行口地址位操作,在此方式中,可傳送一幀11位的信息:1位起始位,8位數(shù)據(jù)位,1位可作“地址幀”和“數(shù)據(jù)幀”的標(biāo)志位和1位停止位。這可很方便實現(xiàn)多機(jī)通信(單片機(jī)通信方式2、3),但其復(fù)雜化和專業(yè)化程度高。串行通信控件MSCOMM只發(fā)送一幀10位的信息,取8位數(shù)據(jù)位,1位起始位,1位停止位,這與單片機(jī)的串口工作方式1剛好相同。利用此特性,在通信協(xié)議中,每臺下位單片機(jī)都規(guī)定一個明確的地址,PC機(jī)發(fā)送出一個數(shù)據(jù)(地址或命令)給下位機(jī)后等待下位機(jī)的反應(yīng)。下位機(jī)接收到地址或命令后,比較確認(rèn),若為本機(jī)地址則繼續(xù)接受PC機(jī)發(fā)來的命令。利用這種查詢方法可方便實現(xiàn)PC機(jī)與多臺單片機(jī)的多機(jī)通信。1方案比較與論證方案一:采用單片機(jī)與單片機(jī)多機(jī)通信,選定其中任意一片單片機(jī)作為主機(jī),其余為從機(jī),分別安裝在每個房間控制每個房間的空調(diào)并采集每間房的溫度。單片機(jī)本身帶有串口,可與單片機(jī)實現(xiàn)多機(jī)通信,但由于作為主機(jī)那塊單片機(jī)需要管理與監(jiān)控多臺空調(diào),對參數(shù)的設(shè)置以及實時監(jiān)控帶來了不便,沒有一個很好的人機(jī)交互界面,不利于管理員的操作,不具備人性化的特點(diǎn)。故本設(shè)計沒有采納。方案二:采用PC機(jī)與單片機(jī)多機(jī)通信,由于PC機(jī)本身自帶有9針串口(如COM1,COM2),通過MAX232電平轉(zhuǎn)換芯片實現(xiàn)RS232電平邏輯向TTL電平邏輯的雙向轉(zhuǎn)換就可以很方便的實現(xiàn)PC機(jī)與下位單片機(jī)的串口通信,通過該芯片可以實現(xiàn)長達(dá)十多米的通信距離的數(shù)據(jù)傳輸,若適當(dāng)降低傳輸速率,可增加其通信距離,因此對于一個企業(yè)里,完全可以通過一臺PC機(jī),僅僅在一個人機(jī)交互界面上將所有房間的空調(diào)實行統(tǒng)一監(jiān)控與管理,取代人為對空調(diào)的任意控制,大大節(jié)約了電能。故本系統(tǒng)采用此方案。2硬件設(shè)計本系統(tǒng)主要是針對數(shù)據(jù)采集與通信進(jìn)行研究,故硬件電路比較少,上位機(jī)只需一臺普通的PC機(jī),下位機(jī)采用常用的AT89S51,中間僅僅只需一片MAX232電平轉(zhuǎn)換芯片,與下位機(jī)相連的溫度采集模塊,采用的是單總線制的DS18B20,它與單片機(jī)之間連接只需一根I/O口線,因此大大節(jié)省了單片機(jī)的I/O口,方便單片機(jī)與控制空調(diào)的控制器連接。而且其價格比較便宜,性價比高。
2.1系統(tǒng)框圖系統(tǒng)框圖如圖1所示圖SEQ圖表\*ARABIC1系統(tǒng)框圖模塊說明:PC機(jī)為普通的帶有串口的臺式機(jī),作用為:在其Windows界面上創(chuàng)建一個人機(jī)界面,控制每臺空調(diào)的工作并且實時監(jiān)控。MAX232為電平轉(zhuǎn)換芯片,由于PC機(jī)串口為RS232接口只能識別EIA電平,而單片機(jī)機(jī)只能識別普通的TTL電平,此芯片的作用就是將兩種電平進(jìn)行轉(zhuǎn)換,達(dá)到數(shù)據(jù)通信的目的。以單片機(jī)為核心的下位機(jī)系統(tǒng)主要作用是采集房間內(nèi)的溫度,供單片機(jī)來讀取并保存,當(dāng)上位機(jī)通知該下位機(jī)發(fā)送溫度時,單片機(jī)調(diào)用串口發(fā)送函數(shù),將當(dāng)前溫度發(fā)送給上位機(jī)。DS18B20為單線數(shù)字溫度傳感器,負(fù)責(zé)測量室內(nèi)溫度。2.2PC機(jī)串口臺式計算機(jī)一般至少帶有兩個串行口COM1和COM2,串行口不同于并行口之處在于它的數(shù)據(jù)和控制信息是一位接一位串行地傳送下午,這樣,雖然速度會慢一些,但傳送距離較并行口更長,因此對于距離較長的數(shù)據(jù)通信應(yīng)該使用串行接口。通常COM1使用的是9針D形連接器,而COM2有些使用的是老式的DB25針連接器,本系統(tǒng)采用的是常用的9針連接器。由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串口接口中,要由接收移位寄存器把串口方式轉(zhuǎn)換為并行方式,由發(fā)送移位寄存器把并行方式轉(zhuǎn)換成串行方式。完成這樣的轉(zhuǎn)換功能的電路,叫做通用異步收發(fā)器UART,該接口芯片已經(jīng)集成在串口接口中,典型的有Intel的8251A,NationalSemiconductor的8250,Motorola的6850等等。其中九針D形串口如圖2所示。圖SEQ圖表\*ARABIC2九針D型串口目前RS232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS232采用不平衡傳輸方式,即所謂單端通信。收,發(fā)端的數(shù)據(jù)信號是相對于信號地。其中9針串口引腳定義如表3所示,其中引腳2和引腳3分別為數(shù)據(jù)接收和發(fā)送端,這與單片機(jī)的RXD和TXD相類似,數(shù)據(jù)都是一位接著一位的發(fā)送。唯一不同的是兩者之間的電平不同。RS232是用正負(fù)電壓來表示邏輯狀態(tài),發(fā)送數(shù)據(jù)時,發(fā)送器典型的工作電壓是5V—15V和-5V15V,接收數(shù)據(jù)時,接受器典型工作電壓是+3V+12V和-3V-12V。而TTL是用電平高低表示邏輯狀態(tài)。RS-232C主要用來定義計算機(jī)系統(tǒng)的一些數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)電路終接設(shè)備(DCE)之間的電氣性能。例如CRT、打印機(jī)與CPU的通信大都采用RS-232C接口,MCS-51單片機(jī)與PC機(jī)的通信也是采用該種類型的接口。由于MCS-51系列單片機(jī)本身有一個全雙工的串行接口,因此該系列單片機(jī)用RS-232C串行接口總線非常方便。RS-232C串行接口總線適用于:設(shè)備之間的通信距離不大于15米,傳輸速率最大為20kB/s。表1九針串口管腳定義2.3電平轉(zhuǎn)換芯片MAX232MAX232是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口RS232電平是-12v+12v,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號電壓是TTL電平0+5v,MAX232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。主要特點(diǎn)1、單5V電源工作2、LinBiCMOSTM工藝技術(shù)3、兩個驅(qū)動器及兩個接收器4、±30V輸入電平5、低電源電流:典型值是8mA6、符合甚至優(yōu)于ANSI標(biāo)準(zhǔn)EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn)V.287、ESD保護(hù)大于MIL-STD-883(方法3015)標(biāo)準(zhǔn)的2000VMAX232芯片管腳及各管腳定義如圖3所示。其中標(biāo)號IN和OUT都是針對MAX232本身而言,即OUT腳接的是PC機(jī)或者單片機(jī)的RXD腳,同理IN腳接的是PC機(jī)或單片機(jī)的TXD腳利用此性質(zhì)可以很容易實現(xiàn)PC機(jī)與單片機(jī)的連接。由于它有兩組收發(fā)器,所以7,8腳和9,10腳配合為一組,11,12腳和13,14腳為一組。使用時人選一組即可。圖3MAX232芯片管腳及定義2.4單片機(jī)AT89S51概述及系統(tǒng)復(fù)位電路設(shè)計AT89S51是一個低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kB的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,功能強(qiáng)大的微型計算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。系統(tǒng)復(fù)位電路也就是單片機(jī)的復(fù)位電路,如圖4所示:圖4AT89S51復(fù)位電路當(dāng)按下復(fù)位鍵時,ESET瞬間為高平,然后電源與電容、電阻構(gòu)成回路,并對C1電容進(jìn)行充電,R1上的電壓逐漸下降,直至為低電平,系統(tǒng)處于正常工作狀態(tài)。2.5數(shù)字溫度傳感器DS18B20DS18B20是美國DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型單總線智能溫度傳感器,信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從處理器到DS18B20僅需一根線,讀,寫和完成溫度轉(zhuǎn)換所需電源可以由數(shù)據(jù)線本身提供,而不需要外部電源。DS18B20內(nèi)部主要由4部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,配置寄存器。DS18B20管腳圖如圖5所示DS18B20的特點(diǎn)如下:獨(dú)特的單線接口方式。DS18B20與處理器連接時僅需一根口線即可實現(xiàn)處理器與DS18B20的雙向通信。在使用中不需要任何外圍元件??捎脭?shù)據(jù)線供電,電壓范圍為+3.0~+5.5V。測溫范圍為-55~+125攝氏度,固有測溫分辨率為0.5度通過編程可實現(xiàn)9-12位的數(shù)字讀數(shù)方式。最高測溫精度可達(dá)0.0675度。最大轉(zhuǎn)換時間為200MS用戶可自設(shè)定非易失性的報警上下限值支持多點(diǎn)組網(wǎng)功能。多個DS18B20可用并聯(lián)在唯一的3線上,實現(xiàn)多點(diǎn)測溫。負(fù)壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。圖5DS18B20管腳圖3軟件設(shè)計本系統(tǒng)主要研究的是PC機(jī)與單片機(jī)的串口通信,所以大部分是通過軟件來實現(xiàn),上位機(jī)(PC)采用的是VB編程,利用MSCOMM控件實現(xiàn)PC機(jī)數(shù)據(jù)的接收與發(fā)送,下位機(jī)(單片機(jī))采用的是C51編程,C51具有可讀性強(qiáng),移植性強(qiáng)的特點(diǎn),因此被廣泛采用。為了達(dá)到上位機(jī)與下位機(jī)的通信的協(xié)調(diào)與匹配,因此雙方需要一套相同的通信協(xié)議,該協(xié)議是人為自己規(guī)定的。有了這套協(xié)議就可以順利實現(xiàn)雙工通信。3.1串口通信控件MSCOMMMSCOMM控件全稱為MicrosoftCommunicationControl,是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法,MSCOMM控件提供兩種處理通信的方式:事件驅(qū)動方式和查詢方式。事件驅(qū)動通信是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時需要得到通知,例如,在串口接受緩沖區(qū)中有字符,,可以利用MSCOMM控件的OnComm事件捕捉并處理這些通信事件。OnComm事件還可以檢查和處理通信錯誤。查詢方式實質(zhì)上還是事件驅(qū)動,但在有些情況下,這種方式顯得更為便捷。在程序的每個關(guān)鍵功能之后,可以通過檢查CommEvent屬性的值來查詢事件。事件驅(qū)動方式類似于單片機(jī)的中斷方式,當(dāng)事件發(fā)生了即中斷發(fā)生了,CPU進(jìn)入中斷處理程序,處理完就退出做其他工作并等待下一次中斷來臨,大大提高了CPU的工作效率。而查詢方式也是類似與單片機(jī)的中斷查詢方式,此方式關(guān)閉了中斷響應(yīng),CPU一直在查詢事件發(fā)生標(biāo)志,例如定時器溢出標(biāo)志,外部中斷標(biāo)志等等,事件發(fā)生了就開始進(jìn)入處理程序。此方法大大降低了CPU利用率。本系統(tǒng)設(shè)計采用的是事件驅(qū)動方式,當(dāng)下位機(jī)發(fā)送數(shù)據(jù)給PC機(jī)時,MSCOMM控件的OnComm事件將被觸發(fā),通過比較OnComm事件的CommEvReceive屬性將接收緩沖區(qū)里的數(shù)據(jù)讀回來并存儲,以供PC機(jī)判斷分析。其中PC機(jī)數(shù)據(jù)接收的代碼如下:DimtemperaturePrivateSubMSComm1_OnComm()SelectCaseMSComm1.CommEventCasecomEvReceivetemperature=MSComm1.InputCasecomEvSendCasecomEvCTSCasecomEvDSRCasecomEvCDCasecomEvEOFEndSelectEndSub3.2MSCOMM控件的常用屬性3.2.1.CommPort屬性設(shè)置并返回通信端口。CommPort屬性語法:Object.Commport=valueValue為整數(shù),說明端口。在設(shè)計時,value可以設(shè)置成從1到16的任何數(shù)(默認(rèn)值為1)。具體值根據(jù)PC機(jī)的有效端口而定。如果用PortOpen屬性打開一個并不存在的端口,MSCOMM控件會產(chǎn)生錯誤68(設(shè)備無效)。所以必須在打開端口之前設(shè)置CommPort屬性。3.2.2.Input屬性返回并刪除接受緩沖區(qū)中的數(shù)據(jù)流。該屬性在設(shè)計時無效,在運(yùn)行時為只讀。Input屬性語法:Object.input3.2.3.output屬性往發(fā)送緩沖區(qū)寫數(shù)據(jù)流。該屬性在設(shè)計時無效,在運(yùn)行時為只讀。Output屬性語法:Object.output=valueOutput屬性可以傳輸文本數(shù)據(jù)和二進(jìn)制數(shù)據(jù)。用output屬性傳輸文本數(shù)據(jù),必須定義一個包含一個字符串的variant。發(fā)送二進(jìn)制數(shù)據(jù),必須傳送一個包含字節(jié)數(shù)組的variant到output屬性。本系統(tǒng)發(fā)送的的是命令字,所以采用的是文本數(shù)據(jù)發(fā)送。3.2.4.PortOpen屬性設(shè)置并返回通信端口狀態(tài)(開或關(guān))。在設(shè)計時無效。PortOpen屬性語法:Object.PortOpen=valueValue為布爾表達(dá)式TURE和FALSE,說明端口的狀態(tài),分別為打開和關(guān)閉。當(dāng)應(yīng)用程序終止時,MSCOMM控件自動關(guān)閉串行端口。3.2.5.Settings屬性設(shè)置并返回波特率,奇偶較檢,數(shù)據(jù)位,停止位參數(shù)。Settings屬性語法:Object.Setting=valueValue為字符串表達(dá)式,說明通信端口的設(shè)置值。Value由四個設(shè)置值組成,格式如下:“BBBB,P,D,S”BBBB為波特率,P為奇偶校檢,D為數(shù)據(jù)位數(shù),S為停止位數(shù)。Value默認(rèn)值為“9600,N,8,1”。通常與下位機(jī)通信采用默認(rèn)值即可,因為單片機(jī)有效處理的數(shù)據(jù)位也是8位,波特率也可以設(shè)置為9600。3.2.6.Rthreshold屬性在MSComm控件設(shè)置CommEvent屬性為comEvReceive并產(chǎn)生OnComm之前,RThreshold屬性設(shè)置并返回的要接收的字符數(shù),即只有當(dāng)接收到了等于Rthreshold屬性值個數(shù)的字符才能產(chǎn)生OnComm事件。Rthreshold屬性值為0時,不產(chǎn)生OnComm事件。因此需將Rthreshold屬性值設(shè)置為有效的整數(shù)值。本系統(tǒng)僅僅只接受單片機(jī)發(fā)送的兩位數(shù)據(jù)溫度值,所以Rthreshold屬性值設(shè)置為2。3.3計時器Timer控件計時器控件可以每隔一個時間間隔自動觸發(fā)一個計時器事件,計時器控件在設(shè)計時顯示為一時鐘圖標(biāo),大小可變,運(yùn)行時不可見。由于本系統(tǒng)實現(xiàn)對空調(diào)的控制需發(fā)送一連串控制命令,故通過Timer控件定時發(fā)送,可以有效的提高數(shù)據(jù)發(fā)送的正確性,有利于和下位機(jī)接收速度相匹配。Timer控件有兩個重要屬性,分別為Enable屬性和interval屬性前者決定計時器是否開始計時,后者設(shè)置兩次計時器事件之間的時間間隔,以毫秒為單位,值的范圍是0~65536,當(dāng)internal屬性值為0時,計時器無效,若把internal屬性值設(shè)置為1000,則表示每秒鐘觸發(fā)一次計時器事件。由此可得,若想在一秒鐘內(nèi)執(zhí)行n此計時器事件,則必須將internal屬性值設(shè)置為1000/n才可實現(xiàn)。本系統(tǒng)用到了兩個Timer控件,一個作為發(fā)送命令字符串所用,當(dāng)命令發(fā)送完后由軟件關(guān)閉計時器。另一個作為對所有空調(diào)定時監(jiān)控,設(shè)置計時間隔為1S,每隔一秒換一臺空調(diào)進(jìn)行監(jiān)控,如此循環(huán)下去,直到用戶關(guān)閉監(jiān)控,即關(guān)閉計時器。兩個計時器運(yùn)行代碼如下:PrivateSubTimer2_Timer()/*****發(fā)送命令字符串*****/MSComm1.Output=Mid$(Text2.Text,i,1)i=i+1Ifi>=j+1ThenTimer2.Enabled=FalseEndIfEndSubPrivateSubTimer1_Timer()/*****對所有空調(diào)輪流監(jiān)控*****/MSComm1.Output=CStr(addr)addr=addr+1Ifaddr>2Thenaddr=1MSComm1.Output="S"Ifwindtype2="C"ThenIfVal(temperature)<=Val(temper)ThenMSComm1.Output="K"ElseMSComm1.Output="R"EndIfElseIfwindtype="C"ThenIfVal(temperature)<=Val(Text1.Text)ThenMSComm1.Output="K"ElseMSComm1.Output="R"EndIfElseIfwindtype2="H"ThenIfVal(temperature)>=Val(temper)ThenMSComm1.Output="K"ElseMSComm1.Output="R"EndIfElseIfVal(temperature)>=(Text1.Text)ThenMSComm1.Output="K"ElseMSComm1.Output="R"EndIfEndIfEndSub3.4CommandButton控件CommandButton控件在VB設(shè)計的人機(jī)交互界面中經(jīng)常用到,對于一些基本操作都必須通過CommandButton來完成。該控件最為重要的的一個事件就是Click事件,當(dāng)用戶按下Command就可以觸發(fā)該事件,完成相應(yīng)的操作。本設(shè)計用到了多個CommandButton控件,具體代碼如下:PrivateSubCommand1_Click()/***開啟計時器1開始對所有空調(diào)輪流監(jiān)控***/addr=1Timer1.Enabled=TrueEndSubPrivateSubCommand2_Click()/****關(guān)閉計時器1停止對對空調(diào)的監(jiān)控***/Timer1.Enabled=FalseEndSubPrivateSubCommand3_Click()/***開啟計時器2將控制命令字符串發(fā)送**/Text2.Text=list1.Text&controlcode&windtype&Text1.Texti=1j=Len(Text2.Text)Timer2.Enabled=TrueEndSubPrivateSubCommand4_Click()/***開啟所有空調(diào)使其正常工作***/Text2.Text="1"&"D"&windtype2&temperi=1j=Len(Text2.Text)Timer2.Enabled=TrueEndSubPrivateSubCommand5_Click()/***關(guān)閉所有空調(diào)停止工作***/Text2.Text="1"&"G"i=1j=Len(Text2.Text)Timer2.Enabled=TrueEndSubPrivateSubCommand6_Click()/***關(guān)閉通信串口退出控制界面***/MSComm1.PortOpen=FalseEndEndSub3.5TextBox控件TextBox控件用于顯示或者輸入文本信息,比如要輸入一串字符串就必須在TextBox文本框中輸入。VB串口通信的數(shù)據(jù)發(fā)送分為兩種,分別為文本數(shù)據(jù)發(fā)送和二進(jìn)制數(shù)據(jù)發(fā)送。若選擇文本數(shù)據(jù)發(fā)送,一般就要用到TextBox控件,將所發(fā)文本信息統(tǒng)一寫到文本框中,通過計時器定時依次發(fā)送出去。當(dāng)打開一個文本文件并需要顯示出來時就要用到TextBox控件。本系統(tǒng)用了兩個TextBox控件,一個為輸入溫度值文本框,另一個為存放控制命令字符串。具體代碼如下:Text2.Text=list1.Text&controlcode&windtype&Text1.TextMSComm1.Output=Mid$(Text2.Text,i,1)/**Text2.Text存放控制命令字符串**/
3.6單片機(jī)串口通信AT89S51芯片內(nèi)部有一個全雙工的串行口,與外部數(shù)據(jù)交換僅需兩根口現(xiàn),分別為RXD和TXD。RXD為讀數(shù)據(jù)口,TXD為寫數(shù)據(jù)口。串行通信一般分為同步和異步兩種方式,51單片機(jī)通常采用的是異步通信,它通常以字符或者字節(jié)為單位,組成字符幀來傳送,它不需要信號線來傳送數(shù)據(jù)的時鐘,通信雙方均使用自己的時鐘來控制數(shù)據(jù)的發(fā)送和接收,不是同步進(jìn)行的。換句話說,甲方開始發(fā)送一位,乙方并不是開始接受這一位,而是等甲方發(fā)送萬一幀數(shù)據(jù)后,乙方才開始接受。3.6.151單片機(jī)串行口控制寄存器51單片機(jī)的串行口由串行口控制寄存器SCON,PCON。發(fā)送接收緩沖器SBUF。其中SUBF的功能是:當(dāng)發(fā)送數(shù)據(jù)時,先將數(shù)據(jù)移到累加器ACC,然后在從ACC移到SBUF中,然后通過TXD腳一位位發(fā)送出去。當(dāng)接受數(shù)據(jù)時,則在接收中斷程序中把SBUF的數(shù)據(jù)取出,若采用查詢中斷標(biāo)志法時,則當(dāng)串口中斷標(biāo)志RI置位時,把SBUF的數(shù)據(jù)取出。SBUF雖然只有一個入口地址(99H)但實際上對SBUF的讀寫并不是一個寄存器,這樣才可以使單片機(jī)能夠同時進(jìn)行收發(fā)工作。PCON寄存器在串口通信中只用到了其最高位SMOD,它是數(shù)據(jù)傳輸率選擇位。在模式1,2,3中,串行通信數(shù)據(jù)傳輸率在SMOD為1時提高一倍。SCON寄存器是串口通信中最為重要的寄存器,其各個比特位的的定義如表2所示表2SCON寄存器比特位定義3.6.2串口工作模式51單片機(jī)串口有四種工作模式:模式0(SM0=0,SM1=0),表示為同步移位寄存器的工作方式;模式1(SM0=0,SM1=1)表示10位異步收發(fā)模式;模式2(SM0=1,SM1=0)表示11位異步收發(fā)模式;模式3(SM0=1,SM1=1)為11位異步收發(fā)模式。其中模式1常用于單機(jī)通信,即點(diǎn)對點(diǎn)通信。模式3用于多機(jī)通信,單片機(jī)多機(jī)通信或者PC機(jī)與單片機(jī)多機(jī)通信。本系統(tǒng)采用模式3,通過控制SM2來區(qū)別PC機(jī)發(fā)送的是地址還是數(shù)據(jù),以此來實現(xiàn)多機(jī)通信3.6.3串口通信數(shù)據(jù)傳輸率在模式0下,串口數(shù)據(jù)傳輸率是固定的,它的值為單片機(jī)晶振頻率的1/12。在模式2下,當(dāng)SMOD=0時,串口數(shù)據(jù)傳輸率為經(jīng)晶振頻率的1/64;SMOD=1時,數(shù)據(jù)傳輸率為晶振頻率的1/32。在模式1和模式3下,通信數(shù)據(jù)傳輸率是由定時器T1的溢出頻率來決定的,相應(yīng)的公式為:數(shù)據(jù)傳輸率=其中定時器T1在模式2工作,X為定時器T1的初值。本系統(tǒng)為了和上位機(jī)波特率相匹配,選用波特率為9600bit/s。此時X=250fosc=11.0592MHZ3.7通信協(xié)議通信雙方實現(xiàn)數(shù)據(jù)收發(fā),必須有統(tǒng)一規(guī)定的通信協(xié)議。本系統(tǒng)根據(jù)對空調(diào)的實際控制,規(guī)定的協(xié)議如下:波特率上位機(jī)與下位機(jī)都設(shè)置為9600bit/s。一幀有效數(shù)據(jù)傳輸位數(shù)為8位。下位機(jī)地址編號為1,2(假設(shè)只對兩臺空調(diào)控制)。D開啟電源命令字G關(guān)閉電源命令字H熱風(fēng)命令字C冷風(fēng)命令字K待機(jī)命令字R解除待機(jī)恢復(fù)工作命令字addr當(dāng)前下位機(jī)地址S提示下位機(jī)發(fā)送當(dāng)前溫度命令字以上控制命令字都是人為規(guī)定,只需通信雙方識別即可。3.8DS18B20測溫程序DS18B20采用單線制數(shù)據(jù)傳輸,其內(nèi)部數(shù)據(jù)采用兩字節(jié)存儲,其中高字節(jié)的低三位和低字節(jié)為溫度數(shù)值大小,高字節(jié)的高五位為符號位。其中從DS18B20讀出來的溫度值處理函數(shù)如下:a=ds1820rd();/**低字節(jié)**/b=ds1820rd();/**高字節(jié)**/tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tvalue=tvalue*(0.625);tempercode[0]=tvalue%1000/100+0x30;/***得到溫度值的十位數(shù)字**/tempercode[1]=tvalue%100/10+0x30;/***得到溫度值的個位數(shù)字**/3.9下位機(jī)通信程序流程下位機(jī)通信流程如圖6所示圖6下位機(jī)通信流程圖
4.系統(tǒng)原理圖本系統(tǒng)主要研究的是數(shù)據(jù)通信,沒有對具體控制空調(diào)的控制器進(jìn)行研究,所以原理圖比較簡單,系統(tǒng)原理圖如下圖7系統(tǒng)原理圖附:二極管在電路中起隔離作用,考慮到單片機(jī)向PC機(jī)傳送數(shù)據(jù)時不受其它的單片機(jī)的影響,就在每個單片機(jī)的TXD端串入一個二極管。5.人機(jī)交互界面圖8人機(jī)控制界面6.結(jié)論本次論文都是經(jīng)過自己親身體會,每個部分都是自己花時間和心思完成的。首先是確定設(shè)計方案,剛開始這個環(huán)節(jié)遇到了一些麻煩,因為設(shè)計一個控制界面要考慮好多可能的情況,而且要符合人為操作習(xí)慣,但又不能太過復(fù)雜和繁瑣。最大的問題就是:因為是上位機(jī)和下位機(jī)進(jìn)行通信,兩方的通信協(xié)議和規(guī)定也比較麻煩,考慮的因素也比較多,特別是在軟件的編寫上,要考慮統(tǒng)一性和規(guī)范性,換句話說就是寫的代碼必須能夠與在人機(jī)界面的所有操作相匹配,通過多次嘗試和調(diào)試?;旧辖鉀Q了這些問題。界面上的所有操作基本上符合人為習(xí)慣。包括的控制命令主要有:任意房間空調(diào)的選擇;空調(diào)基本的開啟與關(guān)閉;風(fēng)類的選擇;溫度的任意設(shè)定;對每臺空調(diào)實行自動監(jiān)控與控制從而達(dá)到節(jié)能的目的;對所有空調(diào)一次性開啟與關(guān)閉。這些都是空調(diào)最基本最常用的控制,對比如公司這種公家場所的空調(diào)控制還是比較適用的。本設(shè)計的主要思想是對每臺下位單片機(jī)都規(guī)定了明確的地址(編程時固定)。PC機(jī)發(fā)送出一個數(shù)據(jù)(地址或命令)給下位機(jī)后等待下位機(jī)確認(rèn)為本機(jī)地址才作出反應(yīng)并接收其他控制命令。該方法編程簡單、通信可靠,是一種有效的多機(jī)通信方法,但MSCOMM控件本身不能專門針對多機(jī)通信,所以此方法應(yīng)用還是有一定的范圍。對上位機(jī)的程序編寫采用的是VB。為此專門從圖書館借了兩邊相關(guān)類型的書。自己慢慢自學(xué),所以剛開始看不出一點(diǎn)效果,信心大減,但是想到自己的論文必須要用到這個知識,最后還是下決心堅持下去了,通過單片機(jī)開發(fā)板和電腦來進(jìn)行實驗。一步一步總結(jié)和調(diào)試,最后還是成功完成了。這也讓我看到了一點(diǎn):只要有信念,只要遇到的問題在你的能力范圍之內(nèi),你就一定可以解決。
7.參考文獻(xiàn)[1].張毅坤,陳善久,裘雪紅.單片機(jī)微型計算機(jī)原理及應(yīng)用[M].西安:電子科技大學(xué)出版社,1997.[2].夏路易.單片機(jī)技術(shù)基礎(chǔ)教程與實踐[M].北京:電子工業(yè)出版社.[3].張迎新.單片機(jī)應(yīng)用設(shè)計培訓(xùn)教程[M].北京:航空航天大學(xué)出版社,2007.[4].馮育長.單片機(jī)系統(tǒng)設(shè)計與實例分析[M].西安:電子科技大學(xué)出版社,2007.[5].李鴻.單片機(jī)原理及應(yīng)用[M].長沙:湖南大學(xué)出版社,2004.[6].求是科技.8051系列單片機(jī)C程序設(shè)計完全手冊[M].北京:人民郵電出版社,2006.[7].周學(xué)毛.新編C語言程序設(shè)計教程(第二版)[M].西安:電子科技大學(xué)出版社,2004.[8].王群.電氣信息類專業(yè)英語[M].北京:北京航空航天大學(xué)出版社,1993.[9].胡學(xué)海.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計[M].長沙:湖南大學(xué)出版社,2004.[10].周興華.單片機(jī)智能化產(chǎn)品C語言設(shè)計實例詳解[M].北京:北京航空航天大學(xué)出版社,2006.[11].白康生.VisualBasic程序設(shè)計.北京:清華大學(xué)出版社,2006.[12].李長林.VisualBasic串口通信技術(shù)與典型實例.北京:清華大學(xué)出版社,2006.[13].王永軍、從玉珍.數(shù)字邏輯與數(shù)字系統(tǒng)[M].北京:電子工業(yè)出版社,1999.[14].王松武,于鑫.電子創(chuàng)新設(shè)計與實踐[M].國防工業(yè)出版社,2005年1月第1版.[15].王忠民.微型計算機(jī)原理[M].西安:電子科技大學(xué)出版社,2007年6月第二版.[16].周毛學(xué).新編C語言程序設(shè)計教程[M].西安:電子科技大學(xué)出版社,2005年7月.[17].李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)[M].北京:北京航空航天大學(xué)出版設(shè),2000年9月.[18].樓然苗.51系列單片機(jī)設(shè)計實例[M].北京:北京航空航天大學(xué)出版設(shè),2003年4月.[19].張毅剛.新編MCS-51單片機(jī)應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003年2月.[20].求是科學(xué).單片機(jī)通信技術(shù)與工程實踐[M].北京:人民郵電出版社,2005年1月.[21].馬壯,吳錚,王永強(qiáng).基于VB的PC機(jī)與單片機(jī)串行通信系統(tǒng)研究與實現(xiàn)[J].唐山學(xué)院學(xué)報,2008,24(4):350-355.
附錄A(上位機(jī)VB程序)OptionExplicit’遇到未經(jīng)聲明的變量名提出警告Dimcontrolcode,windtype,windtype2’定義變量DimaddrAsInteger’定義下位機(jī)地址DimtemperatureAsString‘定義字符串變量,存儲下位機(jī)發(fā)來的溫度值Dimi,jDimtemperAsString‘定義字符串變量,表示PC機(jī)發(fā)給下位機(jī)的溫度值PrivateSubCommand1_Click()‘開啟計時器1對所有空調(diào)實行輪流監(jiān)控addr=1Timer1.Enabled=TrueEndSubPrivateSubCommand2_Click()‘關(guān)閉計時器停止監(jiān)控Timer1.Enabled=FalseEndSubPrivateSubCommand3_Click()‘開啟計時器2將控制選定空調(diào)的命令字符串發(fā)送Text2.Text=list1.Text&controlcode&windtype&Text1.Texti=1j=Len(Text2.Text)Timer2.Enabled=TrueEndSubPrivateSubCommand4_Click()‘設(shè)置好各參數(shù)通過計時器2將所有空調(diào)開啟Text2.Text="1"&"D"&windtype2&temperi=1j=Len(Text2.Text)Timer2.Enabled=TrueEndSubPrivateSubCommand5_Click()‘通過計時器2將所有空調(diào)關(guān)閉Text2.Text="1"&"G"i=1j=Len(Text2.Text)Timer2.Enabled=TrueEndSubPrivateSubCommand6_Click()‘關(guān)閉串口退出人機(jī)界面MSComm1.PortOpen=FalseEndEndSubPrivateSubForm_Load()‘打開界面時是有些內(nèi)容初始化MSComm1.CommPort=1‘選擇串口1MSComm1.PortOpen=True‘打開串口1MSComm1.Settings="9600,n,8,1"‘設(shè)置波特率等參數(shù)EndSubPrivateSubMSComm1_OnComm()‘通過MSCOMM的OnComm事件的CommEvent屬性來接收下位機(jī)發(fā)來的數(shù)據(jù)SelectCaseMSComm1.CommEventCasecomEvReceivetemperature=MSComm1.InputCasecomEvSendCasecomEvCTSCasecomEvDSRCasecomEvCDCasecomEvEOFEndSelectEndSubPrivateSubOption1_Click()‘點(diǎn)擊ON表示開啟空調(diào)controlcode="D"EndSubPrivateSubOption2_Click()‘點(diǎn)擊OFF表示關(guān)閉空調(diào)controlcode="G"EndSubPrivateSubOption3_Click()‘點(diǎn)擊”熱風(fēng)”表示選擇風(fēng)類為熱風(fēng)windtype="H"EndSubPrivateSubOption4_Click()‘點(diǎn)擊”冷風(fēng)”表示選擇風(fēng)類為冷風(fēng)windtype="C"EndSubPrivateSubOption5_Click()‘點(diǎn)擊”夏天”則風(fēng)類為冷風(fēng)并且室內(nèi)溫度規(guī)定為20度windtype2="C"temper="20"EndSub
PrivateSubOption6_Click()‘點(diǎn)擊”冬天”則風(fēng)類為熱風(fēng)并且室內(nèi)溫度規(guī)定為25度windtype2="H"temper="25"EndSubPrivateSubTimer1_Timer()‘使用timer1的timer事件輪流對每一臺空調(diào)實行監(jiān)控MSComm1.Output=CStr(addr)addr=addr+1Ifaddr>2Thenaddr=1MSComm1.Output="S"Ifwindtype2="C"ThenIfVal(temperature)<=Val(temper)ThenMSComm1.Output="K"‘當(dāng)選擇冷風(fēng)時,室內(nèi)溫度低于設(shè)置值就待機(jī)ElseMSComm1.Output="R"‘否則就正常工作EndIfElseIfwindtype="C"ThenIfVal(temperature)<=Val(Text1.Text)ThenMSComm1.Output="K"ElseMSComm1.Output="R"EndIfElseIfwindtype2="H"ThenIfVal(temperature)>=Val(temper)ThenMSComm1.Output="K"‘當(dāng)熱風(fēng)時,室內(nèi)溫度高于設(shè)置值就待機(jī)ElseMSComm1.Output="R"‘否則正常工作EndIfElseIfVal(temperature)>=Val(Text1.Text)ThenMSComm1.Output="K"ElseMSComm1.Output="R"EndIfEndIfEndSubPrivateSubTimer2_Timer()‘利用Timer2的Timer事件發(fā)送控制命令字符串MSComm1.Output=Mid$(Text2.Text,i,1)i=i+1Ifi>=j+1ThenTimer2.Enabled=FalseEndIfEndSub附錄B(下位機(jī)C51程序)#include<reg51.h>#defineucharunsignedchar#defineD0x44/*開啟電源命令字*/#defineG0x47/*關(guān)閉電源命令字*/#defineH0x48/*熱風(fēng)命令字*/#defineC0x43/*冷風(fēng)命令字*/#defineK0x4b/*待機(jī)命令字*/#defineR0x52/*解除待機(jī)恢復(fù)工作命令字*/#defineaddr0x31/*當(dāng)前下位機(jī)地址*/#defineS0x53/*提示下位機(jī)發(fā)送當(dāng)前溫度命令字*/#defineuintunsignedintsbitDQ=P1^4;sbitled1=P1^0;sbitled2=P1^1;sbitled3=P1^2;sbitled4=P1^3;uinttvalue;uchartempercode[]={0x00,0x00};/*存儲環(huán)境溫度緩沖區(qū)*/ucharreceivecode[]={0x00,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人車位出租合同樣本(2篇)
- 服裝公司辦公室裝修合同
- 商業(yè)地產(chǎn)租賃居間協(xié)議樣本
- 保健食品配送合同范本
- 2025年度信息安全保密技術(shù)合作開發(fā)合同
- 人工智能監(jiān)理居間合同
- 服裝批發(fā)市場物流合同
- 橡膠行業(yè)融資居間合同范例
- 2025年度安防產(chǎn)品區(qū)域代理及市場推廣合同
- 2025年度信息安全保密合作協(xié)議
- 游泳館安全隱患排查
- 《媒介社會學(xué)》課件
- 項目設(shè)計報告范文高中
- 成人手術(shù)后疼痛評估與護(hù)理團(tuán)體標(biāo)準(zhǔn)
- zemax-優(yōu)化函數(shù)說明書
- 2021年《民法典擔(dān)保制度司法解釋》適用解讀之擔(dān)保解釋的歷程
- 第02講 導(dǎo)數(shù)與函數(shù)的單調(diào)性(學(xué)生版)-2025版高中數(shù)學(xué)一輪復(fù)習(xí)考點(diǎn)幫
- 《醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項準(zhǔn)則》專題解讀
- 成立商會的可行性報告5則范文
- 湖南財政經(jīng)濟(jì)學(xué)院《常微分方程》2023-2024學(xué)年第一學(xué)期期末試卷
- 游戲賬號借用合同模板
評論
0/150
提交評論