小區(qū)交換站供熱系統(tǒng)數(shù)據(jù)采集模塊的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文_第1頁(yè)
小區(qū)交換站供熱系統(tǒng)數(shù)據(jù)采集模塊的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文_第2頁(yè)
小區(qū)交換站供熱系統(tǒng)數(shù)據(jù)采集模塊的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文_第3頁(yè)
小區(qū)交換站供熱系統(tǒng)數(shù)據(jù)采集模塊的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文_第4頁(yè)
小區(qū)交換站供熱系統(tǒng)數(shù)據(jù)采集模塊的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩52頁(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)介

本科畢業(yè)設(shè)計(jì)第55頁(yè)共55頁(yè)1引言1.1課題研究的意義和目的以往,我國(guó)北方大多采用分散供熱的方式。但是,隨著計(jì)算機(jī)技術(shù)的發(fā)展以及人們節(jié)能降耗和環(huán)保意識(shí)的增強(qiáng),分散供暖方式逐漸被集中供暖方式所取代。在供熱系統(tǒng)中,換熱站是連接熱源和用戶的樞紐,是數(shù)據(jù)監(jiān)測(cè)中心,目前大型熱電聯(lián)產(chǎn)系統(tǒng)大多采用間接連接的供熱方式。熱電廠提供的高溫過(guò)熱蒸汽經(jīng)電廠換熱站汽—水換熱器形成供暖熱水,由一次管網(wǎng)送至各換熱站,高溫?zé)崴儆砂迨綋Q熱器水—水換熱器形成供暖熱水由二次管網(wǎng)送至用戶。課題主要研究社區(qū)交換站供熱系統(tǒng)的數(shù)據(jù)采集模塊的設(shè)計(jì),通過(guò)對(duì)熱水管網(wǎng)溫度、壓力、流量等數(shù)據(jù)參數(shù)的采集,實(shí)現(xiàn)對(duì)供熱系統(tǒng)的實(shí)時(shí)監(jiān)測(cè)。同時(shí),分布于多個(gè)換熱站的該供暖換熱站運(yùn)行參數(shù)監(jiān)測(cè)裝置可采集多個(gè)換熱站的運(yùn)行參數(shù),并通過(guò)互聯(lián)網(wǎng)將換熱站的運(yùn)行參數(shù)傳送到供暖監(jiān)控中心,集中顯示和監(jiān)測(cè),可使供熱調(diào)度部門需要對(duì)分散在不同地理位置換熱站的溫度、壓力、流量、液位、設(shè)備狀態(tài)等許多參數(shù)進(jìn)行集中實(shí)時(shí)監(jiān)測(cè),有效的掌握系統(tǒng)各數(shù)據(jù)參數(shù)的變化和主要設(shè)備的運(yùn)行效率極其變化規(guī)律,從而減少各個(gè)換熱站的工作人員,實(shí)現(xiàn)各換熱站無(wú)人值守,達(dá)到了減員增效的目的,提高工作效率和管理水平,同時(shí)提高了供暖可靠性,保證供暖質(zhì)量,為社區(qū)交換站供熱系統(tǒng)的優(yōu)化運(yùn)行管理提供可靠的保證[1]。1.2國(guó)內(nèi)外發(fā)展?fàn)顩r數(shù)據(jù)采集系統(tǒng)起始于20世紀(jì)中期,在70年代初,原來(lái)由小規(guī)模集成的數(shù)字邏輯電路及硬件程控器組成的采集系統(tǒng)被微處理器控制的采集系統(tǒng)所代替。由微處理器去完成程控,數(shù)據(jù)處理及大部分邏輯操作,使系統(tǒng)的靈活性和可靠性大大地提高,系統(tǒng)硬件成本和系統(tǒng)的重建費(fèi)用大大地降低。近年來(lái),國(guó)外數(shù)據(jù)采集系統(tǒng)快速發(fā)展,占據(jù)著大量市場(chǎng),其結(jié)構(gòu)基本上都是與一定個(gè)人計(jì)算機(jī)配套使用的模塊化數(shù)采單元和系統(tǒng),無(wú)論在性能、工藝或裝潢方面都具有較強(qiáng)的競(jìng)爭(zhēng)力,并由專門的產(chǎn)業(yè)集團(tuán)公司研制和生產(chǎn),產(chǎn)品也在不斷更新?lián)Q代。比較典型的有美國(guó)的B+F公司、HP公司,英國(guó)輸力強(qiáng)公司,法國(guó)邁威公司的MOVILOG數(shù)據(jù)采集器等。我國(guó)的數(shù)據(jù)采集技術(shù)也已經(jīng)有了很大的提高,應(yīng)用于眾多領(lǐng)域。數(shù)據(jù)采集的效果,主要是看精度和速度。作為一個(gè)整體來(lái)說(shuō),數(shù)據(jù)采集系統(tǒng)的發(fā)展受到很多方面的限制,比如:軟件技術(shù)、網(wǎng)絡(luò)技術(shù)、測(cè)量技術(shù)、傳感器技術(shù),這些都影響了數(shù)據(jù)采集的發(fā)展。朱本坤在在其文獻(xiàn)中介紹了基于PC的單片機(jī)數(shù)據(jù)采集系統(tǒng),討論了PC機(jī)和單片機(jī)之間的通信原理和通訊方法,同時(shí)給出了VB通訊程序的設(shè)計(jì)要點(diǎn)。同時(shí),社區(qū)交換站供熱系統(tǒng)的數(shù)據(jù)采集與監(jiān)控也在不斷的提高,使我國(guó)城市的集中供熱的有效運(yùn)行更加可靠。例如,有的小區(qū)交換站的數(shù)據(jù)監(jiān)測(cè)模塊,采取了一種新型現(xiàn)代化監(jiān)控器,以保證安全生產(chǎn)和提高運(yùn)行效率。針對(duì)一些問(wèn)題,例如目前換熱站運(yùn)行依賴于人力,因此管理水平和運(yùn)營(yíng)效率都很低,因此設(shè)計(jì)了人機(jī)交互平臺(tái),從此實(shí)現(xiàn)了換熱站調(diào)度、管理、系統(tǒng)仿真的集成化,這對(duì)于供熱系統(tǒng)的現(xiàn)代化運(yùn)行和有效管理來(lái)說(shuō)是一個(gè)有利的工具[2]。我國(guó)現(xiàn)已實(shí)現(xiàn)集中供熱智能無(wú)人值守?fù)Q熱站自控系統(tǒng)的設(shè)計(jì),林舒宜與張炳偉在其文獻(xiàn)中闡述了通過(guò)對(duì)換熱站的數(shù)據(jù)參數(shù)進(jìn)行數(shù)據(jù)采集、集中管理,通過(guò)網(wǎng)絡(luò)把各個(gè)換熱站的信息匯總到服務(wù)器,增強(qiáng)自動(dòng)化管理。通過(guò)對(duì)曲線進(jìn)行對(duì)比、分析,可對(duì)換熱站進(jìn)行宏觀調(diào)控,動(dòng)態(tài)的修改控制參數(shù),最終達(dá)到控制供熱質(zhì)量,節(jié)約能源的作用。另外,王萌也在其論文中闡述了的供暖換熱站運(yùn)行參數(shù)監(jiān)測(cè)裝置,可采集多個(gè)換熱站的運(yùn)行參數(shù),并通過(guò)互聯(lián)網(wǎng)將換熱站的運(yùn)行參數(shù)傳送到供暖監(jiān)控中心,集中顯示和監(jiān)測(cè),從而減少各個(gè)換熱站的工作人員,實(shí)現(xiàn)各換熱站無(wú)人值守,達(dá)到了減員增效的目的,同時(shí)提高了供暖可靠性,保證供暖質(zhì)量[3]。由此可看出我國(guó)的城市的集中供暖,換熱站的數(shù)據(jù)采集與自動(dòng)監(jiān)控已經(jīng)取得了顯著的成果,實(shí)現(xiàn)了監(jiān)控管理自動(dòng)化,同時(shí)也可以根據(jù)監(jiān)控?cái)?shù)據(jù)隨時(shí)調(diào)整,達(dá)到有效供暖與節(jié)約能源雙管齊下。1.3論文主要任務(wù)本課題主要是完成小區(qū)交換站供熱系統(tǒng)數(shù)據(jù)采集模塊的設(shè)計(jì),以單片機(jī)為核心器件,達(dá)到數(shù)據(jù)采集、顯示、存儲(chǔ)以及通信等功能。課題從初步構(gòu)思到整體完成所包含的主要任務(wù)有:完成了數(shù)據(jù)采集模塊總體框圖的設(shè)計(jì);完成了器件的選型及硬件電路的設(shè)計(jì);完成了軟件程序的設(shè)計(jì);完成了硬軟件的調(diào)試;2課題方案設(shè)計(jì)2.1集中供熱系統(tǒng)的構(gòu)成城市集中供熱系統(tǒng)主要包括熱力站(或稱熱源廠)、熱水管網(wǎng)、換熱站、用戶(或稱居民社區(qū))等幾部分。

連接于熱源廠和熱用戶之間的供熱系統(tǒng)是整個(gè)集中供熱系統(tǒng)的重要組成部分,居民社區(qū)的供熱系統(tǒng)主要包括社區(qū)的熱水管網(wǎng)和熱力站,熱水管網(wǎng)分為一次網(wǎng)與二次網(wǎng),一次網(wǎng)是指連接于城市管網(wǎng)與熱力站之間的管網(wǎng),二次網(wǎng)是指連接于熱力站與熱用戶之的管網(wǎng),熱力站通過(guò)二次管網(wǎng)把熱量送到終端用戶。集中供熱系統(tǒng)的構(gòu)成如圖2.1所示。一次網(wǎng)供水一次網(wǎng)回水一次網(wǎng)供水一次網(wǎng)回水二次網(wǎng)供水圖2.1城市集中供熱系統(tǒng)的構(gòu)成補(bǔ)水泵二次網(wǎng)回水二次網(wǎng)回水用戶戶換熱站熱源源用戶戶換熱站熱源源循環(huán)泵循環(huán)泵本課題的研究設(shè)計(jì)主要是實(shí)現(xiàn)基于以單片機(jī)為核心的對(duì)供熱系統(tǒng)溫度、壓力、流量等模擬量及循環(huán)泵和補(bǔ)水泵啟??刂频乳_(kāi)關(guān)量的數(shù)據(jù)采集模塊的設(shè)計(jì),具體包括:1)、熱交換站一次側(cè)總管的供水溫度和回水溫度(兩路溫度信號(hào))

2)、熱交換站二次側(cè)總管的供水溫度和回水溫度(兩路溫度信號(hào))3)、熱交換站一次側(cè)供水總管壓力和回水總管壓力(兩路壓力信號(hào))4)、熱交換站二次側(cè)供水總管壓力和回水總管壓力(兩路壓力信號(hào))5)、熱力站補(bǔ)水管網(wǎng)的的流量(一路流量信號(hào))

6)、熱力站一次管網(wǎng)的流量(一路流量信號(hào))7)、循環(huán)泵和補(bǔ)水泵的啟停(開(kāi)關(guān)量信號(hào))2.2方案總體設(shè)計(jì)框圖根據(jù)本課題的設(shè)計(jì)要求,數(shù)據(jù)采集模塊包括單片機(jī)最小系統(tǒng)、電源電路、數(shù)據(jù)采集模塊、數(shù)據(jù)采集與輸入模塊、數(shù)據(jù)通信模塊、數(shù)據(jù)存儲(chǔ)模塊??傮w的方案原理圖設(shè)計(jì)如圖2.2所示。數(shù)據(jù)顯示A/D轉(zhuǎn)換器數(shù)據(jù)顯示A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器溫度檢測(cè)壓力檢測(cè)流量檢測(cè)鍵盤輸入通信電路循環(huán)泵,補(bǔ)水泵的啟停狀態(tài)存儲(chǔ)電路單片機(jī)電源圖2.2數(shù)據(jù)采集模塊的構(gòu)成2.3單片機(jī)的選擇本課題要求完成對(duì)溫度、壓力、流量等模擬量的采集,為了盡可能降低成本,簡(jiǎn)化電路,本課題采用自帶8路A/D轉(zhuǎn)換的單片機(jī)STC12C5A60S2。STC12C5A60S2是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換,針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合[5]。本課題采用40引腳封裝的單片機(jī)型號(hào):PDIP-40,單片機(jī)STC12C5A60S2芯片及引腳如圖2.3所示:圖2.3單片機(jī)STC12C5A60S2的引腳圖2.4傳感器的選擇1)溫度傳感器的選擇本設(shè)計(jì)中,要求水溫測(cè)量范圍0°C~120°C,誤差為±0.5°C。DS18B20單總線數(shù)字溫度傳感器的測(cè)溫范圍可達(dá)-55°C~+125°C,精度可達(dá)±0.5°C,完全可以滿足所要求的測(cè)量范圍和精度,因此,選擇DS18B20作為本次設(shè)計(jì)的溫度傳感器。DS18B20數(shù)字溫度計(jì)提供9~12位攝氏溫度測(cè)量而且有一個(gè)由高低電平觸發(fā)的可不因電源消失而改變的報(bào)警功能。DS18B20通過(guò)一個(gè)單線界面發(fā)送或接受信息,因此在中央處理器和DS18B20之間僅需一條連接線(加上地線),直接從單線通訊在線汲取能量,除去了對(duì)外部電源的需求。2)壓力傳感器的選擇考慮到工業(yè)實(shí)際環(huán)境和要求,壓力傳感器采用工業(yè)中的壓力變送器,它能夠接收氣體液體等壓力信號(hào)并將其轉(zhuǎn)換成電流信號(hào),以供記錄儀、報(bào)警儀等儀器進(jìn)行測(cè)量。本論文要求的壓力變送器需要輸出4~20mA的電流信號(hào),能夠測(cè)得0~20Mpa的壓力,供電電壓為24V,且量程可調(diào)。壓力變送器具有優(yōu)良的可靠性,廣泛的適應(yīng)性以及很強(qiáng)的適應(yīng)性和多樣性,可廣泛用于石油、化工、電力等領(lǐng)域。3)流量傳感器的選擇本課題采用電磁流量計(jì)測(cè)量一、二次管網(wǎng)的流量,電磁流量計(jì)是根據(jù)法拉第電磁感應(yīng)定律進(jìn)行流量測(cè)量的流量計(jì)。電磁流量計(jì)的優(yōu)點(diǎn)是壓損極小,可測(cè)流量范圍大。最大流量與最小流量的比值一般為20:1以上,適用的工業(yè)管徑范圍寬,最大可達(dá)3m,輸出信號(hào)和被測(cè)流量成線性,精確度較高,可測(cè)量電導(dǎo)率≥5μs/cm的酸、堿、鹽溶液、水、污水、腐蝕性液體以及泥漿、礦漿、紙漿等的流體流量。電磁流量計(jì)測(cè)量范圍度大,通常為20:1~50:1,可選流量范圍寬;電磁流量計(jì)的口徑范圍比其他品種流量?jī)x表寬,從幾毫米到3米;可測(cè)量正反雙向流量,也可測(cè)脈動(dòng)流量,只要脈動(dòng)頻率低于激磁頻率很多;儀表輸出本質(zhì)上是線性的;易于選擇與流體接觸件的材料品種,可應(yīng)用于腐蝕性流體等優(yōu)點(diǎn)。由于電磁流量計(jì)測(cè)量含有懸浮固體或污臟體的機(jī)會(huì)遠(yuǎn)比其他流量?jī)x表多,出現(xiàn)內(nèi)壁附著層產(chǎn)生的故障概率也就相對(duì)較高。若附著層電導(dǎo)率與液體電導(dǎo)率相近,儀表還能正常輸出信?;谝陨咸攸c(diǎn),本課題最終選用電磁流量計(jì)作為測(cè)量元件[6]。2.5顯示器的選擇本課題要求顯示4路溫度、四路壓力、兩路流量數(shù)據(jù),以及兩路開(kāi)關(guān)量,本課題采用LCD1602液晶顯示器進(jìn)行溫度、壓力、流量等數(shù)據(jù)顯示,用兩只二極管的亮滅分別代表循環(huán)泵和補(bǔ)水泵的啟停狀態(tài)等開(kāi)關(guān)量。LCD是液晶顯示器的簡(jiǎn)稱,具有功耗低、體積小、無(wú)電磁輻射、顯示量大、易于彩色化等一系列優(yōu)點(diǎn)。液晶顯示器的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部燈管構(gòu)成畫面。工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。1602采用標(biāo)準(zhǔn)的16腳界面,其引腳圖如圖2.5所示:圖2.5LCD1602引腳圖圖2.5LCD1602引腳圖3硬件電路的設(shè)計(jì)3.1單片機(jī)最小系統(tǒng)的設(shè)計(jì)單片機(jī)STC12C5A60S2外部晶振為12MHz,一個(gè)指令周期為1/12us,其最小系統(tǒng)包括復(fù)位電路和時(shí)鐘電路。時(shí)鐘電路用于產(chǎn)生單片機(jī)工作時(shí)所需的時(shí)鐘控制信號(hào),AT89C52單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘控制信號(hào)為基準(zhǔn)的,有條不紊的一拍一拍的工作,時(shí)鐘信號(hào)直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也可以直接影響單片機(jī)的系統(tǒng)穩(wěn)定性。常用的時(shí)鐘信號(hào)電路設(shè)計(jì)兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式,本設(shè)計(jì)從簡(jiǎn)化電路方面考慮,采用內(nèi)部時(shí)鐘方式。STC12C5A60S2單片機(jī)內(nèi)有一個(gè)用于構(gòu)成振蕩器的高增益的反相放大器,該高增益反相放大器的輸人端為芯片引腳(XTAL1),輸出端為芯片引腳(XTAL2),這兩個(gè)引腳接石英晶體振蕩器(簡(jiǎn)稱晶振)和微調(diào)電容,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。電路中電容C1和C2通常選擇30pF左右,電容的大小會(huì)影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶體振蕩器的頻率范圍通常是在1.2MHz~12MHz之間,晶振頻率越高,則系統(tǒng)的時(shí)鐘頻率就越高,單片機(jī)也就運(yùn)行更快[7]。復(fù)位電路單片機(jī)的初始化操作,可以初始化系統(tǒng),擺脫由于程序運(yùn)行出錯(cuò)和操作失誤造成的系統(tǒng)死鎖狀態(tài)。STC12C5A60S2單片機(jī)是通過(guò)外部復(fù)位電路實(shí)行復(fù)位功能的,復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。本課題采用手動(dòng)復(fù)位。單片機(jī)最小系統(tǒng)電路圖如圖3.1所示。圖3.1STC12C5A60S2的最小系統(tǒng)圖3.1STC12C5A60S2的最小系統(tǒng)3.2數(shù)據(jù)采集電路的設(shè)計(jì)1)溫度采集模塊的設(shè)計(jì)DS18B20有8引腳的SO封裝、8引腳μSOP封裝以及3引腳TO—92封裝3種形式。本設(shè)計(jì)采用的只有三引腳的DS18B20封裝形式,三個(gè)引腳分別是GND接地引腳,DQ數(shù)據(jù)輸入或者輸出引腳,VCC電源引腳或者工作在寄生電源時(shí)該引腳接地。接線圖如圖3.2所示。圖3.2DS18B20溫度傳感器與單片機(jī)連接圖2)壓力采集模塊的設(shè)計(jì)壓力變送器所采集的壓力范圍為0~20MPa,輸出的是4~20mA的直流信號(hào),因?yàn)閱纹瑱C(jī)具有A/D轉(zhuǎn)換功能的P1口輸入的模擬信號(hào)是1~5V的電壓信號(hào),因此,需要將壓力變送器輸出的4~20mA的電流經(jīng)250Ω的電阻變成1~5V的電壓,經(jīng)電容濾波后連接到自帶A/D轉(zhuǎn)換的單片機(jī)的P1口,其信號(hào)處理電路如圖3.3所示[8]。圖3.3壓力采集及其信號(hào)處理電路圖3.3壓力采集及其信號(hào)處理電路3)流量采集模塊的設(shè)計(jì)電磁流量計(jì)的測(cè)量范圍為1~10000(m3/h),輸出信號(hào)為4~20mA電流輸出,須經(jīng)250Ω電阻轉(zhuǎn)換成1~5V的電壓信號(hào),再經(jīng)電容濾波后送至單片機(jī)的P1口,其信號(hào)處理電路如圖3.4所示。圖3.4流量采集及其信號(hào)處理電路圖3.4流量采集及其信號(hào)處理電路4)開(kāi)關(guān)量采集模塊的設(shè)計(jì)光電耦合器亦稱光電隔離器,簡(jiǎn)稱光耦。光電耦合器以光為媒介傳輸電信號(hào)。它對(duì)輸入、輸出電信號(hào)有良好的隔離作用,光耦合器一般由三部分組成:光的發(fā)射、光的接收及信號(hào)放大。輸入的電信號(hào)驅(qū)動(dòng)發(fā)光二極管,使之發(fā)出一定波長(zhǎng)的光,被光探測(cè)器接收而產(chǎn)生光電流,再經(jīng)過(guò)進(jìn)一步放大后輸出。這就完成了電—光—電的轉(zhuǎn)換,從而起到輸入、輸出、隔離的作用。由于光耦合器輸入輸出間互相隔離,電信號(hào)傳輸具有單向性等特點(diǎn),因而具有良好的電絕緣能力和抗干擾能力[9]。圖3.5流量采集及其信號(hào)處理電路本課題須采集循環(huán)泵、補(bǔ)水泵啟停狀態(tài)等開(kāi)關(guān)量,設(shè)計(jì)電路為上電后分別用一個(gè)開(kāi)關(guān)代表控制兩個(gè)泵啟停的接觸器線圈的吸合狀態(tài),輸出的信號(hào)經(jīng)過(guò)光電耦合器傳送至單片機(jī),其電路圖如圖3.5所示。圖3.5流量采集及其信號(hào)處理電路3.3鍵盤與顯示電路的設(shè)計(jì)1)顯示電路LCD1602與單片機(jī)的連接圖如圖3.6所示:圖3.6LCD1602液晶界面2)鍵盤電路鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù)、傳送命令等功能,是人工干預(yù)單片機(jī)的主要手段。在一般情況下,鍵盤是由一組排列規(guī)則的按鍵組成的,但鍵盤實(shí)際上是一組按鍵開(kāi)關(guān)的集合。通常,鍵盤開(kāi)關(guān)利用了機(jī)械觸點(diǎn)的閉合和斷開(kāi)作用,一個(gè)電壓信號(hào)通過(guò)鍵盤開(kāi)關(guān)機(jī)械觸電的斷開(kāi)和閉合,輸出一個(gè)電壓波形。圖3.7鍵盤界面電路原理圖常用的鍵盤界面分為獨(dú)立式鍵盤界面和行列式鍵盤界面。由于本設(shè)計(jì)中只有兩個(gè)按鍵,故采用設(shè)計(jì)簡(jiǎn)便的獨(dú)立式鍵盤界面。獨(dú)立式界面鍵盤是最簡(jiǎn)單的鍵盤,各鍵相互獨(dú)立,直接用I/O口線的構(gòu)成單個(gè)按鍵電路,通過(guò)檢測(cè)輸入線的電平狀態(tài)就可以很容易的判斷出是哪個(gè)按鍵按下。本設(shè)計(jì)中的鍵盤界面電路如圖3.7所示。圖3.7鍵盤界面電路原理圖此鍵盤電路共2個(gè)按鍵,分別與單片機(jī)的P3.2、P3.3,兩個(gè)按鍵分別為開(kāi)始翻頁(yè)鍵K1和數(shù)據(jù)存儲(chǔ)鍵K2組成。當(dāng)按下K1時(shí),LCD液晶顯示器顯示不同的工程量;按下K2鍵,數(shù)據(jù)暫停與上位機(jī)進(jìn)行數(shù)據(jù)通信,開(kāi)始進(jìn)行數(shù)據(jù)存儲(chǔ)[10]。3.4通信模塊的設(shè)計(jì)本課題的通信模塊采用標(biāo)準(zhǔn)RS232串行通信標(biāo)準(zhǔn)進(jìn)行與上位機(jī)的數(shù)據(jù)通訊,RS-323C標(biāo)準(zhǔn)是美國(guó)EIA(電子工業(yè)聯(lián)合會(huì))與BELL等公司一起開(kāi)發(fā)的1969年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問(wèn)題,如信號(hào)線功能、電氣特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。圖3.8MAX232芯片的引腳圖目前大多數(shù)計(jì)算機(jī)的RS-232C通信接口都使用了DB9連接器,由于RS-232規(guī)定的電平和一般微處理器的邏輯電平不一致,必須進(jìn)行電平轉(zhuǎn)換,本課題采用MAX232芯片將TTL電平轉(zhuǎn)換成RS232標(biāo)準(zhǔn)串行通訊電信號(hào)[11]。MAX232是MAXIM公司生產(chǎn)的,包含兩路驅(qū)動(dòng)器和接收器的RS232轉(zhuǎn)換芯片。MAX232符合所有的RS-232C技術(shù)標(biāo)準(zhǔn);只需要單一+5V電源供電;功耗低,典型供電電流5mA;內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器;高集成度,片外最低只需4個(gè)電容即可工作;芯片內(nèi)部有一個(gè)電壓轉(zhuǎn)換器,片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-,將輸入的+5V電壓轉(zhuǎn)換為RS232接口所需的±10V電壓,尤其適用于沒(méi)有±12V的單電源系統(tǒng)?;谝陨咸攸c(diǎn),本課題最終選用MAX232芯片進(jìn)行電瓶的轉(zhuǎn)換,其引腳圖如圖3.8所示。圖3.8MAX232芯片的引腳圖第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+10v和-10v兩個(gè)電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從11引腳(T1IN)、10引腳(T2IN)輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從14腳(T1OUT)、7腳(T2OUT)送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從13引腳(R1IN)、8引腳(R2IN)輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從12引腳(R1OUT)、9引腳(R2OUT)輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。本課題采用第一數(shù)據(jù)通道,TTL/CMOS電平的T1IN引腳應(yīng)接STC12C5A60S2的串行發(fā)送引腳TXD,R1OUT接AT89C52的串行接收引腳RXD;與之對(duì)應(yīng),T1OUT、R1IN引腳接RS232電平。單片機(jī)與上位機(jī)進(jìn)行串行數(shù)據(jù)通信的電路如圖3.9所示:圖3.9TTL電平轉(zhuǎn)RS232電平的串口模塊電路圖3.5數(shù)據(jù)存儲(chǔ)模塊的設(shè)計(jì)本課題要求預(yù)留數(shù)據(jù)存儲(chǔ)功能,既可把單片機(jī)所采集的溫度、壓力、流量等模擬量的數(shù)據(jù)以及泵的啟停狀態(tài)等開(kāi)關(guān)量的數(shù)據(jù)進(jìn)行存儲(chǔ),要求可以寫入數(shù)據(jù)并可讀出數(shù)據(jù)。所以,就需要給單片機(jī)外加存儲(chǔ)器來(lái)存放所采集的數(shù)據(jù)量。本課題選用24C04存儲(chǔ)器,采用8引腳封裝形式,其中只用兩個(gè)引腳與單片機(jī)連接,分別是串行數(shù)據(jù)輸入/輸出端和串行時(shí)鐘端,其與均接高電平或低電平,具體與單片機(jī)的連接如圖3.10所示:圖3.10存儲(chǔ)器24C04與單片機(jī)的連接圖圖3.10存儲(chǔ)器24C04與單片機(jī)的連接圖3.6電源電路的設(shè)計(jì)1)5V電源電路本課題中的單片機(jī)及外圍電路的芯片均采用的是+5V直流電源供電,故設(shè)計(jì)了由220V電網(wǎng)電壓獲得5V直流電壓的電源變換電路。單相交流電須經(jīng)過(guò)電源變壓器、整流電路、濾波電路和穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電壓,具體電路圖如圖3.11所示:圖3.115V電源電路圖3.115V電源電路在上述電路圖中,220V的電網(wǎng)電壓經(jīng)降壓變壓器變成8V電壓,再進(jìn)行整流和電容濾波,其中LM78XX為集成穩(wěn)壓器,此處應(yīng)選用LM7805,在經(jīng)過(guò)電容濾波后得到直流5V電源。1)24V電源電路由于在本課題中壓力變送器及開(kāi)關(guān)量的上電電路都需用到24V電源,故設(shè)計(jì)了從220V電網(wǎng)電壓得到24V電壓的變換電路。與5V電源獲取電路相似,電網(wǎng)電壓須經(jīng)過(guò)變壓器降壓、整流電路、濾波電路和集成穩(wěn)壓電路得到24V直流電壓,但集成穩(wěn)壓器應(yīng)選用LM7824。具體電路圖如圖3.12所示:圖3.1224V電源電路圖3.1224V電源電路4軟件程序設(shè)計(jì)在完成系統(tǒng)的硬件電路后,下一步就要進(jìn)行軟件程序的設(shè)計(jì)。本課題采用模塊化的程序設(shè)計(jì),各模塊程序分別編寫及調(diào)試,這樣編程比較簡(jiǎn)單且易于修改[14]。4.1主程序模塊設(shè)計(jì)本課題主程序的主要任務(wù)是上電后對(duì)系統(tǒng)進(jìn)行初始化操作和構(gòu)建系統(tǒng)整體的軟件框架,初始化時(shí)候包括對(duì)單片機(jī)的初始化和對(duì)各個(gè)串口的初始化操作,然后調(diào)用各模塊子程序。主程序流程圖如圖4.1所示。開(kāi)始系統(tǒng)初始化調(diào)用溫度采集模塊子程序開(kāi)始系統(tǒng)初始化調(diào)用溫度采集模塊子程序調(diào)用A/D轉(zhuǎn)換模塊子程序調(diào)用A/D轉(zhuǎn)換模塊子程序調(diào)用開(kāi)關(guān)量輸入及輸出模塊子程序調(diào)用開(kāi)關(guān)量輸入及輸出模塊子程序調(diào)用通信模塊子程序調(diào)用通信模塊子程序調(diào)用顯示模塊子程序存儲(chǔ)按鍵是否按下?調(diào)用存儲(chǔ)模塊子程序圖4.1主程序流程圖NNYY4.2溫度采集模塊設(shè)計(jì)根據(jù)設(shè)計(jì)要求,需要采集四路溫度,每路用一個(gè)DS18B20數(shù)字溫度傳感器采集當(dāng)前溫度值,應(yīng)用單片機(jī)的P2.3~P2.6口與數(shù)字溫度傳感器DS18B20連接,對(duì)每個(gè)DS18B20溫度傳感器進(jìn)行編號(hào),并把每個(gè)傳感器測(cè)出來(lái)的溫度信號(hào)送入單片機(jī),交由單片機(jī)做出數(shù)據(jù)處理。溫度采集模塊設(shè)計(jì)流程圖如圖4.2所示。圖4.2圖4.2溫度采集模塊設(shè)計(jì)流程圖發(fā)跳過(guò)ROM命令初始化DS18B20入口讀取溫度到緩存區(qū)送入單片機(jī)處理溫度數(shù)據(jù)初始化DS18B20發(fā)跳過(guò)ROM命令等待轉(zhuǎn)換完成發(fā)溫度轉(zhuǎn)換命令結(jié)束4.3A/D轉(zhuǎn)換模塊設(shè)計(jì)本課題需要采集壓力、流量等模擬量,為了降低成本和簡(jiǎn)化電路,最終采用自帶A/D轉(zhuǎn)換的單片機(jī)STC12C5A60S2。其A/D轉(zhuǎn)換通道的流程圖如圖4.3所示。將處理后的數(shù)據(jù)存儲(chǔ)到RAM指定位置將處理后的數(shù)據(jù)存儲(chǔ)到RAM指定位置返回N將數(shù)據(jù)存到單片機(jī)寄存器指定地址判斷轉(zhuǎn)換結(jié)束?主機(jī)發(fā)送指令讀取存儲(chǔ)器數(shù)據(jù)對(duì)數(shù)據(jù)進(jìn)行平滑濾波Y初始化ADC啟動(dòng)6通道序列轉(zhuǎn)換配置ADCPSSI寄存器入口使能ADC模塊ADC轉(zhuǎn)換圖4.3A/D轉(zhuǎn)換通道流程圖YY4.4顯示模塊設(shè)計(jì)本設(shè)計(jì)根據(jù)設(shè)計(jì)要求,需要顯示四路溫度、四路壓力、兩路流量,所以采用了LCD顯示模塊,這樣各數(shù)據(jù)參數(shù)可以實(shí)時(shí)的顯示,方便人員觀測(cè)和記錄。LCD顯示數(shù)據(jù)時(shí)總共分為兩部分:第一部分是通道的序號(hào);第二部分是當(dāng)前數(shù)據(jù)值[15]。LCD顯示模塊流程圖如圖4.4所示。LCD1602初始化LCD1602初始化入口圖4.4LCD顯示模塊流程圖圖3.2LCD顯示模塊流程圖液晶屏上顯示第二個(gè)畫面數(shù)據(jù)變換寫命令函數(shù)寫數(shù)據(jù)函數(shù)液晶屏上顯示第一個(gè)畫面按下翻頁(yè)鍵返回4.5通信模塊設(shè)計(jì)本文采用的是標(biāo)準(zhǔn)RS232串行通信標(biāo)準(zhǔn)與上位機(jī)進(jìn)行數(shù)據(jù)通信,并通過(guò)MAX232芯片進(jìn)行電平轉(zhuǎn)換,串行通信模塊程序流程圖如圖4.5所示。NY圖4.5串行通信模塊流程圖NY圖4.5串行通信模塊流程圖圖3.2LCD顯示模塊流程圖返回初始化串口打開(kāi)串口上位機(jī)發(fā)送通信指令入口單片機(jī)應(yīng)答?單片機(jī)發(fā)送數(shù)據(jù)數(shù)據(jù)發(fā)送完?4.6存儲(chǔ)模塊設(shè)計(jì)本設(shè)計(jì)采用24C04存儲(chǔ)器進(jìn)行該模塊采集的數(shù)據(jù)存儲(chǔ),可以寫入數(shù)據(jù),同時(shí)也可從存儲(chǔ)器中讀出數(shù)據(jù),其程序流程圖如圖4.6所示:24C04初始化24C04初始化入口圖4.6存儲(chǔ)模塊流程圖圖3.2LCD顯示模塊流程圖將數(shù)據(jù)存入相應(yīng)地址返回是否讀取數(shù)據(jù)?YN將數(shù)據(jù)讀出到相應(yīng)地址5硬件及軟件調(diào)試在進(jìn)行硬件電路焊接前后,須對(duì)單片機(jī)以及外圍電路一些器件進(jìn)行調(diào)試,以確定器件的完好以及焊接的正確性與否。當(dāng)焊接完單片機(jī)最小系統(tǒng),LCD顯示以及DS18B20以后,便向單片機(jī)燒寫了溫度采集的程序,但是結(jié)果并沒(méi)有顯示溫度。后來(lái),對(duì)硬件電路進(jìn)行了仔細(xì)檢查,因?yàn)闉榱穗娐返拿烙^,LCD的引腳與單片機(jī)的鏈接并沒(méi)有直接用導(dǎo)線連接,而是自己焊接鏈接的,所以任何一處沒(méi)有焊接好都會(huì)出現(xiàn)無(wú)法正常顯示的問(wèn)題。接下來(lái)對(duì)自己每一處的焊接做了仔細(xì)檢查,發(fā)現(xiàn)硬件電路并沒(méi)有問(wèn)題,經(jīng)過(guò)查閱相關(guān)資料,終于找到了問(wèn)題所在,因?yàn)镾TC12C5A60S2單片機(jī)的運(yùn)行頻率比一般的51系列單片機(jī)的要高出12倍,所以在時(shí)序上出了問(wèn)題,找出問(wèn)題并作出修改之后便能成功的顯示溫度了,在這個(gè)階段初步完成了硬件電路的調(diào)試工作。軟件程序的調(diào)試可以說(shuō)是整個(gè)設(shè)計(jì)的一個(gè)重點(diǎn)及難點(diǎn),如何使編好的程序能夠成功的在硬件電路上發(fā)揮作用,并達(dá)到預(yù)期的效果是完成本課題的關(guān)鍵。本課題需采集的模擬量有溫度。壓力,流量,以及泵的啟停狀態(tài)等開(kāi)關(guān)量。采集溫度用的是DS18B20,壓力變送器和電磁流量計(jì)輸出的電流信號(hào)變換成電壓信號(hào)送至單片機(jī)具有A/D轉(zhuǎn)換功能的P1口,對(duì)應(yīng)在LCD上顯示變化范圍內(nèi)的工程量。由于本課題采用的模塊化的程序設(shè)計(jì),所以我分別編寫各模塊的程序,在進(jìn)行硬件電路調(diào)試時(shí)已經(jīng)調(diào)試出溫度采集及顯示的子程序。當(dāng)我編寫完壓力和流量的程序并調(diào)試成功后,需將DS18B20的程序合并進(jìn)來(lái),并設(shè)定用按鍵進(jìn)行翻頁(yè)顯示不同工程量。后來(lái)的程序調(diào)試并不是一兩次就能成功的,經(jīng)過(guò)反復(fù)修改,發(fā)現(xiàn)問(wèn)題,改正問(wèn)題,最終才能按照預(yù)期的要求顯示所采集的數(shù)據(jù)。總之,按照本課題的要求焊接出實(shí)物并不難,難點(diǎn)在于軟件程序的調(diào)試,這是一個(gè)復(fù)雜的過(guò)程,需要不斷修改程序,燒寫程序,沒(méi)有耐心的話是不能完成這項(xiàng)工作的。最終基本完成了本課題的要求,達(dá)到了數(shù)據(jù)采集的目的。在本次歷時(shí)三個(gè)多月的設(shè)計(jì)中,自己一步一步的努力,通過(guò)查閱相關(guān)文獻(xiàn)資料,從起初的毫無(wú)頭緒到今天的基本完成讓我收獲了很多,不僅是大學(xué)四年課本知識(shí)的理解運(yùn)用,更多的是自己拿到課題后如何去構(gòu)思,如何以一個(gè)正確的心態(tài)去對(duì)待本次設(shè)計(jì),然后努力完成課題的要求。雖然在做實(shí)物、調(diào)試程序過(guò)程中經(jīng)常出錯(cuò),如果沒(méi)有耐心或者消極面對(duì)這些問(wèn)題,那么最終結(jié)果可想而知。正是因?yàn)樽约撼38嬲]自己,以良好的心態(tài)面對(duì)問(wèn)題、解決問(wèn)題才能最終完成本次的課題。本課題數(shù)據(jù)采集模塊的正面展示圖如圖5.1所示:圖5.1數(shù)據(jù)采集模塊的正面展示圖本課題數(shù)據(jù)采集模塊的反面展示圖如圖5.2所示:圖5.2數(shù)據(jù)采集模塊的反面展示圖該數(shù)據(jù)采集模塊的溫度顯示圖如圖5.3所示:圖5.3數(shù)據(jù)采集模塊的溫度顯示圖該數(shù)據(jù)采集模塊的壓力和流量顯示圖如圖5.4所示:圖5.4數(shù)據(jù)采集模塊的壓力和流量顯示圖結(jié)論此課題主要對(duì)小區(qū)交換站供熱系統(tǒng)的數(shù)據(jù)采集模塊的設(shè)計(jì)進(jìn)行了研究,整個(gè)設(shè)計(jì)過(guò)程包括模塊方案設(shè)計(jì)、硬件電路設(shè)計(jì)、軟件程序設(shè)計(jì)、做實(shí)物以及軟硬件的調(diào)試。數(shù)據(jù)采集模塊主要采集了溫度、壓力、流量等模擬量以及泵的啟停狀態(tài)等開(kāi)關(guān)量,由于采集的模擬量較多,為簡(jiǎn)化電路和降低成本,課題采用了自帶A/D轉(zhuǎn)換的單片機(jī)STC12C5A60S2,其運(yùn)行速度是一般51系列單片機(jī)的12倍,也正是基于這個(gè)特點(diǎn),在編程時(shí)時(shí)序問(wèn)題成為了重點(diǎn)考慮的對(duì)象,但是經(jīng)過(guò)軟件調(diào)試,證明此單片機(jī)能夠滿足課題的要求,完成了預(yù)定的功能。此數(shù)據(jù)采集模塊采用了壓力變送器和電磁流量計(jì)分別采集壓力和流量信號(hào),其輸出均為標(biāo)準(zhǔn)的電流,經(jīng)過(guò)變換電路轉(zhuǎn)換成標(biāo)準(zhǔn)電壓信號(hào)送入單片機(jī)。課題的實(shí)物直接輸入的是電壓信號(hào),滑動(dòng)電阻器調(diào)節(jié)輸入電壓的范圍,通過(guò)反復(fù)調(diào)試,能夠使工程量在規(guī)定范圍內(nèi)變化,證明此模塊的模擬量采集及顯示是可行的。此數(shù)據(jù)采集模塊在設(shè)計(jì)思路上比較簡(jiǎn)單,難點(diǎn)在于程序的編寫及調(diào)試。課題采用了相對(duì)匯編語(yǔ)言比較簡(jiǎn)單的C語(yǔ)言進(jìn)行軟件程序設(shè)計(jì),同時(shí)采用模塊化的結(jié)構(gòu)進(jìn)行程序編寫,這種方法不但易于編寫,而且各模塊的程序可以分別調(diào)試、修改,對(duì)于初學(xué)者來(lái)說(shuō)比較易于掌握。在整個(gè)程序調(diào)試過(guò)程中,可以對(duì)單片機(jī)反復(fù)燒寫程序。經(jīng)過(guò)不斷修改,最終達(dá)到了數(shù)據(jù)在正常范圍內(nèi)顯示的功能,完成了數(shù)據(jù)的采集。經(jīng)過(guò)仿真調(diào)試,數(shù)據(jù)達(dá)到了采集和顯示的目的,證明此數(shù)據(jù)采集模塊的設(shè)計(jì)是可行的,能夠完成小區(qū)交換站供熱系統(tǒng)的數(shù)據(jù)監(jiān)測(cè),但這對(duì)于實(shí)現(xiàn)換熱站智能無(wú)人值守和供暖中心對(duì)換熱站的運(yùn)行參數(shù)進(jìn)行集中顯示等重大課題提供了基礎(chǔ)研究和有力支持。但是由于時(shí)間方面的限制,預(yù)留的與上位機(jī)進(jìn)行數(shù)據(jù)通信以及數(shù)據(jù)存儲(chǔ)等功能還不完善,尚需進(jìn)行進(jìn)一步的研究,以完備數(shù)據(jù)采集、顯示、通信、存儲(chǔ)一體化功能,并可在此基礎(chǔ)上進(jìn)一步研究基于計(jì)算機(jī)及自動(dòng)化技術(shù)的對(duì)換熱站的遠(yuǎn)程監(jiān)控技術(shù)。致謝本課題的研究工作是在郭英軍老師的悉心指導(dǎo)和親切關(guān)懷下完成的。大學(xué)四年的讀書(shū)和學(xué)習(xí)生活即將劃上一個(gè)完整的句號(hào),卻只是我的人生的一個(gè)逗號(hào),我人生征程的開(kāi)始。郭老師認(rèn)真負(fù)責(zé)、學(xué)識(shí)淵博、在學(xué)業(yè)上給予了精心的指導(dǎo),是我能夠順利的完成課題研究的根本保證。我非常感謝郭老師,敬佩郭老師,不僅是因?yàn)槔蠋熌軌驗(yàn)槲医獯鹆嗽O(shè)計(jì)上的問(wèn)題,更是因?yàn)槔蠋煂?duì)我的嚴(yán)格要求、認(rèn)真負(fù)責(zé)的態(tài)度,使我受益匪淺,受益終生,他將是我今后學(xué)習(xí)和工作的楷模。老師在課題開(kāi)題期間和論文寫作的過(guò)程中給予了我許多耐心的指導(dǎo),郭老師總是以認(rèn)真負(fù)責(zé)、一絲不茍的工作態(tài)度閱讀并修改文章中不足的地方,他優(yōu)良的作風(fēng)和嚴(yán)謹(jǐn)治學(xué)的態(tài)度同樣深深影響著我。在此論文完成之時(shí),特對(duì)恩師的辛勤培養(yǎng)致以崇高的敬意和衷心的感謝!同時(shí)感謝那些其他那些指點(diǎn)和無(wú)私幫助我的老師們,還有一起學(xué)習(xí)和工作過(guò)的同學(xué)等。感謝他們給我的無(wú)私的幫助和支持,使我得以順利完成學(xué)業(yè)。謝謝!謝謝參加本論文評(píng)審和答辯的所有老師!參考文獻(xiàn)1林舒宜,張炳偉.集中供熱智能無(wú)人值守?fù)Q熱站自控系統(tǒng)的設(shè)計(jì).自動(dòng)化與儀表,2013(09):50~532原賀新,馬衛(wèi)華,劉海英.熱網(wǎng)計(jì)算機(jī)監(jiān)控系統(tǒng).煤力與熱力,2000(02):123~1253劉曉萍.基于ARM的換熱站數(shù)據(jù)采集與控制系統(tǒng)研究,[學(xué)位論文],哈爾濱:哈爾濱工業(yè)大學(xué),20094王萌.供暖換熱站運(yùn)行參數(shù)監(jiān)測(cè)裝置設(shè)計(jì),[學(xué)位論文],太原:太原理工大學(xué),20055M.Michael.SpaceScienceStudiesCometotheInternet.AviationWeek&SpaceTechnology,1988(6):59~666M.Panti,L.Penserini.AP2PApproachtoLandWarriorsCoordination,InternationalSymp.OnCollaborativeTechnologiesandSystemsinconjunctionwiththe2003WesternMultiConferences,Orlando,Florida,KhrwerAcendemicPress,2003(1):109~1177AndrewChatha.TheFoundaionforFieldControlSuterm.ControlEngineering,,may199437~398田亞娟.基于單片機(jī)的數(shù)據(jù)采集控制.工業(yè)科技,2004(4):61~699許強(qiáng).基于8位單片機(jī)的數(shù)據(jù)采集系統(tǒng)的研究.湖南廣播電視大學(xué)學(xué)報(bào),2005(1):57~5810朱本坤.基于PC機(jī)的數(shù)據(jù)采集及其通信系統(tǒng).鎮(zhèn)江高專學(xué)報(bào),2004(1):32~3511楊鎮(zhèn)江.智能儀器與數(shù)據(jù)采集系統(tǒng)中的新器件及應(yīng)用.西安:西安電子科技大學(xué)出版社,2001(3):52~6812謝自美.電子線路設(shè)計(jì)(第二版).漢:華中科技大學(xué)出版社,200013何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,199614劉和平.單片機(jī)原理及應(yīng)用.重慶:重慶大學(xué)出版社,200215徐愛(ài)鈞.單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì).北京:電子工業(yè)出版社,2002附錄程序清單/*******************************頭文件**********************************/#include<STC12.H>#include<stdio.h>#include<string.h>#include<intrins.h>#include<LCD1602.h>#include<AD.h>#include<18b20.h>#include<absacc.h>***********************宏定義************************************/#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongsbitkey=P3^3;sbitJP1=P1^6;sbitJP2=P1^7;sbitLED1=P3^4;sbitLED2=P3^5;ucharnum=0;voidandis(){key==1; if(key==0) {delay(600) ; if(key==0) {num++;} } if(num==2) {num=0;} switch(num) { case0:LCD_Write_Char(3,0,'');LCD_Write_Char(4,0,''); LCD_Write_Char(0,0,'L'); LCD_Write_Char(1,0,'1'); LCD_Write_Char(0,1,'L');LCD_Write_Char(1,1,'2'); LCD_Write_Char(2,0,':');LCD_Write_Char(2,1,':'); caiyangP1n(0);display0();delay(5); caiyangP1n(4);display4();delay(5); LCD_Write_Char(13,0,'M');LCD_Write_Char(14,0,'P'); LCD_Write_Char(15,0,'a');LCD_Write_Char(12,1,'m'); LCD_Write_Char(13,1,'3');LCD_Write_Char(14,1,'/'); LCD_Write_Char(15,1,'h');break; case1: temdis();LCD_Write_Char(7,0,'');LCD_Write_Char(8,0,''); LCD_Write_Char(9,0,'');LCD_Write_Char(10,0,''); LCD_Write_Char(11,0,'');LCD_Write_Char(12,0,''); LCD_Write_Char(13,0,'');LCD_Write_Char(14,0,''); LCD_Write_Char(15,0,'');LCD_Write_Char(0,1,''); LCD_Write_Char(1,1,'');LCD_Write_Char(2,1,''); LCD_Write_Char(3,1,'');LCD_Write_Char(4,1,''); LCD_Write_Char(5,1,'');LCD_Write_Char(6,1,''); LCD_Write_Char(7,1,'');LCD_Write_Char(8,1,''); LCD_Write_Char(9,1,'');LCD_Write_Char(10,1,''); LCD_Write_Char(11,1,'');LCD_Write_Char(12,1,''); LCD_Write_Char(13,1,'');LCD_Write_Char(14,1,''); LCD_Write_Char(15,1,'');break; }}/********************************************************/以下是對(duì)液晶模塊的操作程序/********************************************************/ #include"LCD1602.h"#include<STC12.H>sbitRS=P2^0;sbitRW=P2^1;sbitEN=P2^2;//定義端口#defineRS_CLRRS=0#defineRS_SETRS=1#defineRW_CLRRW=0#defineRW_SETRW=1#defineEN_CLREN=0#defineEN_SETEN=1#defineDataPortP0voidDelayMs(unsignedintt){ unsignedcharj;unsignedinti; for(i=t;i>0;i--) { for(j=220;j>0;j--); }} /*判忙函數(shù)*/bitLCD_Check_Busy(){ DataPort=0xFF; RS_CLR; RW_SET; EN_CLR; _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); EN_SET; return(bit)(DataPort&0x80);} /*寫入命令函數(shù)*/voidLCD_Write_Com(unsignedcharcom){ while(LCD_Check_Busy());//忙則等待 RS_CLR; RW_CLR; EN_SET; DataPort=com;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); EN_CLR;}/*寫入數(shù)據(jù)函數(shù)*/voidLCD_Write_Data(unsignedcharData){ while(LCD_Check_Busy());//忙則等待 RS_SET; RW_CLR; EN_SET; DataPort=Data; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); EN_CLR;}/*清屏函數(shù)*//*voidLCD_Clear(){ LCD_Write_Com(0x01); DelayMs(20);} *//*寫入字符串函數(shù)*/voidLCD_Write_String(unsignedcharx,unsignedchary,unsignedchar*s){ if(y==0) { LCD_Write_Com(0x80+x);//表示第一行 } else { LCD_Write_Com(0xC0+x);//表示第二行 } while(*s) { LCD_Write_Data(*s); s++; }}/*寫入字符函數(shù)*/voidLCD_Write_Char(unsignedcharx,unsignedchary,unsignedcharData){if(y==0) { LCD_Write_Com(0x80+x); }else { LCD_Write_Com(0xC0+x); }LCD_Write_Data(Data);}/*初始化函數(shù)*/voidLCD_Init(){LCD_Write_Com(0x38);/*顯示模式設(shè)置*/DelayMs(20);LCD_Write_Com(0x38);DelayMs(20);LCD_Write_Com(0x38);DelayMs(20);LCD_Write_Com(0x38);LCD_Write_Com(0x08);/*顯示關(guān)閉*/LCD_Write_Com(0x01);/*顯示清屏*/LCD_Write_Com(0x06);/*顯示光標(biāo)移動(dòng)設(shè)置*/DelayMs(20);LCD_Write_Com(0x0C);/*顯示開(kāi)及光標(biāo)設(shè)置*/}}/********************************************************/以下是溫度采集模塊操作程序/********************************************************/#include<STC12C5A60S2.H> //器件配置文件#include<intrins.h>#include<LCD1602.h> sbitDQ=P2^3;//定義通信端口//#defineBusy0x80//用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)#defineucharunsignedchar#defineuintunsignedintunsignedcharcodeASCII[15]={'0','1','2','3','4','5','6','7','8','9','.'};static uintshi=0,ge=0,xiao1=0,temp,c=0;//ds18b20延時(shí)函數(shù)voidDelay11(intnum){while(num--);}//ds18b20初始化函數(shù)voidInit_DS18B20(void){DQ=1;//DQ復(fù)位Delay11(8);//稍做延時(shí)DQ=0;//單片機(jī)將DQ拉低Delay11(80);//精確延時(shí)大于480usDQ=1;//拉高總線Delay11(14);Delay11(20);}//讀一個(gè)字節(jié)函數(shù)unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號(hào)dat>>=1;DQ=1;//給脈沖信號(hào)if(DQ)dat|=0x80;Delay11(4);}return(dat);}//寫一個(gè)字節(jié)函數(shù)voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay11(5);DQ=1;dat>>=1;}}//讀取溫度函數(shù)unsignedintReadTemperature(void){unsignedchara=0;unsignedcharb=0;longunsignedinttvalue;//溫度值Init_DS18B20();WriteOneChar(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作WriteOneChar(0xBE);//讀取溫度寄存器a=ReadOneChar();//讀低8位b=ReadOneChar();//讀高8位tvalue=b;tvalue<<=8;tvalue=tvalue|a;//判斷溫度正負(fù)if((b&0xf8)==0xf8){tvalue=0xffff-tvalue;tvalue+=1;c=1;}tvalue=tvalue*0.0625*10;//讀取的數(shù)據(jù)保留到個(gè)位return(tvalue);}/*****************************************************/voiddisp(temp) {shi=temp%1000/100;ge=temp%100/10;xiao1=temp%10; LCD_Write_Char(0,0,'T'); LCD_Write_Char(1,0,':'); if(c==1) LCD_Write_Char(2,0,'-'); elseLCD_Write_Char(2,0,'+');LCD_Write_Char(3,0,ASCII[shi]);LCD_Write_Char(4,0,ASCII[ge]);LCD_Write_Char(5,0,ASCII[10]);LCD_Write_Char(6,0,ASCII[xiao1]); }/*********************************************************/voidtemdis(){ CLK_DIV=0X04; temp=ReadTemperature(); disp(temp); c=0; }/********************************************************/以下是模擬量進(jìn)行A/D轉(zhuǎn)換的操作程序/********************************************************/#include<STC12C5A60S2.H>#include<LCD1602.h>#defineuintunsignedint#defineucharunsignedcharunsignedinttemp1,sh1,ge1,n1,m1;unsignedcharad_result_data[10];//AD轉(zhuǎn)換高八位unsignedcharad_result_low2[10];//AD轉(zhuǎn)換低八位unsignedcharad_result_total[10];//AD轉(zhuǎn)換總十位unsignedcharad_average_result;//AD轉(zhuǎn)換十次的平均值unsignedcharAin,Vin;unsignedcharb,t,R;chartp=0;unsignedcharcodema1[6]={0xb5,0xe7,0xd1,0xb9,0xa1,0xc3};//電壓:unsignedcharcodema2[]={"."};ucharcodedisp1[]={"提示:按1鍵進(jìn)入"};ucharcodedisp2[]={"功能選擇界面."};unsignedcharcodenum0[]={0xa3,0xb0};unsignedcharcodenum1[]={0xa3,0xb1};unsignedcharcodenum2[]={0xa3,0xb2};unsignedcharcodenum3[]={0xa3,0xb3};unsignedcharcodenum4[]={0xa3,0xb4};unsignedcharcodenum5[]={0xa3,0xb5};unsignedcharcodenum6[]={0xa3,0xb6};unsignedcharcodenum7[]={0xa3,0xb7};unsignedcharcodenum8[]={0xa3,0xb8};unsignedcharcodenum9[]={0xa3,0xb9};//模塊延時(shí)程序1msvoiddelay1ms(uintdelay1ms)//STC11F60XE,22.1184M,延時(shí)1ms{uinti,j;for(;delay1ms>0;delay1ms--)for(i=0;i<7;i++)for(j=0;j<210;j++);}voiddelay(uintdelay)//STC11F60XE,22.1184M,延時(shí)170us{uinti,j;for(;delay>0;delay--)for(i=0;i<124;i++);for(j=0;j<124;j++);}/*******************************************************AD轉(zhuǎn)換程序*******************************************************/voidAD_initiate()//初始化函數(shù){ES=0;TMOD=0x21;//定時(shí)計(jì)數(shù)器方式控制寄存器,"自動(dòng)重裝,16位計(jì)數(shù)器".SCON=0x50;//串行控制寄存器,方便在串口助手那觀察TH1=0xfa;TL1=0xfa;TR1=1;}voidADC_Power_On()//AD轉(zhuǎn)換電{ADC_CONTR|=0x80;delay(5);//必要的延時(shí)}voidget_ad_result()//取AD結(jié)果函數(shù),它是十位AD轉(zhuǎn)換,每十次平均,最后取低八位作為AD采樣數(shù)據(jù){uinti,q=0;for(i=0;i<10;i++){tp=0;ADC_RES=0;//高八位數(shù)據(jù)清零,STC12C5A60S2AD數(shù)據(jù)寄存名與STC12C54××系列不同ADC_RESL=0;//低兩位清零ADC_CONTR|=0x08;//啟動(dòng)AD轉(zhuǎn)換while(!tp)//判斷AD轉(zhuǎn)換是否完成{tp=0x10;tp&=ADC_CONTR;}ADC_CONTR&=0xe7;ad_average_result=ADC_RES;q=q+ad_average_result;}ad_average_result=q/10;//ad_average_result=ad_average_result*4*5000/1024;}/************************AD轉(zhuǎn)換結(jié)束***********************/voidsend_ad_result()//取AD結(jié)果函數(shù)發(fā)送到串口,方便調(diào)試{SBUF=n1;while(TI==0);TI=0;delay1ms(100);//SBUF=R>>4;}//電壓采樣程序voidcaiyangP10()//測(cè)電壓{P1M0|=0x01;//設(shè)P1_0為開(kāi)漏模式如:P1_0=#00000000BP1M1|=0x01;ADC_CONTR=0xe0;//設(shè)置P1.0為輸入AD轉(zhuǎn)換口delay(2);get_ad_result();//取轉(zhuǎn)換數(shù)據(jù)Vin=ad_average_result;R=Vin;}voiddisplayP10(){floatad1;//unsignedinttemp1,sh1,ge1,n1,m1;//ucharcodedis2[]={0x01,0x02,0x00};//ad1=x*7.8125;//電壓修正uchari;ad1=Vin*3.9608;//具體線性參數(shù)由輸入電壓值調(diào)整,該值的測(cè)量范圍為0-10.00V,5V左右的測(cè)量比較準(zhǔn)確,//兩端的最大誤差為70mv,其他一般在40mv以內(nèi)temp1=(int)ad1;sh1=temp1/1000;//十位ge1=(temp1%1000)/100;//個(gè)位n1=((temp1%1000)%100)/10;//小數(shù)點(diǎn)后一位m1=((temp1%1000)%100)%10;//小數(shù)點(diǎn)后二位*///write_cmd(0x01);/*write_cmd(0x30);//基本指令操作方式lcd_pos(0,0);for(i=0;i<6;i++)write_dat(ma1[i]);lcd_pos(0,3);disp_number(sh1);lcd_pos(0,4);disp_number(ge1);lcd_pos(0,5);for(i=0;i<2;i++)write_dat(ma2[i]); lcd_pos(0,6);disp_number(n1);lcd_pos(0,7);disp_number(m1); */lCD_write_String(5,0,ma2);LCD_Write_String(7,0,ma2);//LCD_Write_String(9,0,temp1);LCD_Write_Char(5,0,sh1);LCD_Write_Char(6,0,ge1);LCD_Write_Char(7,0,ma2) ;LCD_Write_Char(8,0,n1);//voidLCD_Write_Char(unsignedcharx,unsignedchary,unsignedcharData);/*lcd_pos(2,0);disp_hanzi(disp1);lcd_pos(3,0);disp_hanzi(disp2);*/}/********************************************************/以下是與上位機(jī)進(jìn)行數(shù)據(jù)通信模塊的操作程序/********************************************************/#include"reg51.h"#include<absacc.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedintucharcodeshuju[]={'a','b','c'};ucharfhsj;#defineDataPortP0 //LCD1602數(shù)據(jù)端口sbitRS=P2^7; //LCD讀sbitRW=P2^6;sbitE=P2^5; //LCD寫uintbai=0,shi=0,ge=0,xiao1=0,xiao2=0,temp;ucharc=0;ucharcodetable3[]={'0','1','2','3','4','5','6','7','8','9','.'};//lcd1602延時(shí)函數(shù)voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)for(j=850;j>0;j--);}//寫命令函數(shù)voidlcd_wmc(uchardat){RS=0;RW=0;E=1;DataPort=dat;delayms(5);E=0;}//寫數(shù)據(jù)函數(shù)voidlcd_wmd(uchardat){RS=1;RW=0;E=1;DataPort=dat;delayms(5);E=0;}//lcd1602初始化函數(shù)voidlcd_init(){ lcd_wmc(0x38);/*顯示模式設(shè)置*/;lcd_wmc(0x08);/*顯示關(guān)閉*/lcd_wmc(0x06);/*顯示光標(biāo)移動(dòng)設(shè)置*/lcd_wmc(0x0c);/*顯示開(kāi)及光標(biāo)設(shè)置*/lcd_wmc(0x01);}/*//顯示字符串函數(shù)voidzi_fu_chuan(unsignedcharx,unsignedchary,unsignedchar*s){lcd_wmc(0x01); if(y==0) { lcd_wmc(0x80+x);//表示第一行 } else { lcd_wmc(0xC0+x);//表示第二行 } while(*s) { lcd_wmd(*s); s++; }}*///顯示數(shù)字函數(shù)函數(shù)voidlcd_write_char(ucharx,uchary,uchardat1){ if(y==0) { lcd_wmc(0x80+x);//表示第一行 } else { lcd_wmc(0xC0+x);//表示第二行 }lcd_wmd(dat1);}voidInit_Com(void){TMOD=0x20;//定時(shí)器工作方式2,初值自動(dòng)裝入PCON=0x00;//波特率不增倍SCON=0x40;//串行工作方式設(shè)定TH1=0xFd;//定時(shí)器初值高位TL1=0xFd;//定時(shí)器初值低位TR1=1;//啟動(dòng)定時(shí)器}//毫秒級(jí)延時(shí)函數(shù)voiddelay(unsignedintx){unsignedchari;while(x--){for(i=0;i<120;i++);}}//字符發(fā)送函數(shù)voidputchar(unsignedchardata1){SBUF=data1;//將待發(fā)送的字符送入發(fā)送緩沖器while(TI==0);//等待發(fā)送完成TI=0;//發(fā)送中斷標(biāo)志請(qǐng)0}unsignedcharReceive(void){unsignedchardat;while(RI==0)//只要接收中斷標(biāo)志位RI沒(méi)有被置“1”;//等待,直至接收完畢(RI=1)RI=0;//為了接收下一幀數(shù)據(jù),需將RI清0dat=SBUF;//將接收緩沖器中的數(shù)據(jù)存于datreturndat;}/********************************************************/以下是與上位機(jī)進(jìn)行數(shù)據(jù)通信模塊的操作程序/********************************************************/#include<STC12C5A60S2.H> //器件配置文件#include<intrins.h>串口初始化程序/********************************************************/#include"reg51.h"#include<absacc.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedintucharcodeshuju[]={'a','b','c'};ucharfhsj;TMOD=0x20;//定時(shí)器工作方式2,初值自動(dòng)裝入PCON=0x00;//波特率不增倍SCON=0x40;//串行工作方式設(shè)定TH1=0xFd;//定時(shí)器初值高位TL1=0xFd;//定時(shí)器初值低位TR1=1;//啟動(dòng)定時(shí)器}//毫秒級(jí)延時(shí)函數(shù)voiddelay(unsignedintx){unsignedchari;while(x--){for(i=0;i<120;i++);}}//字符發(fā)送函數(shù)voidputchar(unsignedchardata1){SBUF=data1;//將待發(fā)送的字符送入發(fā)送緩沖器while(TI==0);//等待發(fā)送完成TI=0;//發(fā)送中斷標(biāo)志請(qǐng)0}unsignedcharReceive(void){unsignedchardat;while(RI==0)//只要接收中斷標(biāo)志位RI沒(méi)有被置“1”;//等待,直至接收完畢(RI=1)RI=0;//為了接收下一幀數(shù)據(jù),需將RI清0dat=SBUF;//將接收緩沖器中的數(shù)據(jù)存于datreturndat;}/********************************************************/以下是數(shù)據(jù)存儲(chǔ)電路的操作程序/********************************************************/#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineAddWr0xa0#defineAddRd0xa1sbitSDA=P2^1;sbitSCL=P2^0;voidmDelay(ucharj){uinti;for(;j>0;j--){for(i=0;i<125;i--){;}}}//開(kāi)始信號(hào)voidiic_start(void){//EA=0;SDA=1;SCL=1;delayNOP();SDA=0;delayNOP();SCL=0;}//停止信號(hào)voidiic_stop(void){SDA=0;SCL=1;delayNOP();SDA=1;delayNOP();}voidiic_ack(void){SDA=0;delayNOP();SCL=1;delayNOP

溫馨提示

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