畢業(yè)設(shè)計(jì)(論文)-基于單線數(shù)字溫度傳感器的中央空調(diào)計(jì)費(fèi)系統(tǒng)_第1頁
畢業(yè)設(shè)計(jì)(論文)-基于單線數(shù)字溫度傳感器的中央空調(diào)計(jì)費(fèi)系統(tǒng)_第2頁
畢業(yè)設(shè)計(jì)(論文)-基于單線數(shù)字溫度傳感器的中央空調(diào)計(jì)費(fèi)系統(tǒng)_第3頁
畢業(yè)設(shè)計(jì)(論文)-基于單線數(shù)字溫度傳感器的中央空調(diào)計(jì)費(fèi)系統(tǒng)_第4頁
畢業(yè)設(shè)計(jì)(論文)-基于單線數(shù)字溫度傳感器的中央空調(diào)計(jì)費(fèi)系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單線數(shù)字溫度傳感器的中央空調(diào)計(jì)費(fèi)系統(tǒng)摘要通過對(duì)中央空調(diào)計(jì)費(fèi)現(xiàn)狀弊端的分析,提出了采用兩個(gè)單線數(shù)字溫度傳感器和單片機(jī)檢測(cè)用戶實(shí)際使用冷氣時(shí)間來測(cè)量用戶消費(fèi)能源的信息,并通過485總線將信息發(fā)送至系統(tǒng)主機(jī),從而實(shí)現(xiàn)中央空調(diào)消費(fèi)的合理收費(fèi),解決了物業(yè)管理部門和用戶的長(zhǎng)期爭(zhēng)端。本設(shè)計(jì)是根據(jù)空調(diào)用戶的使用檔位情況進(jìn)行計(jì)費(fèi),空調(diào)是簡(jiǎn)化了的模型,假設(shè)空調(diào)被簡(jiǎn)化為三個(gè)檔位,第一、二、三檔位分別對(duì)應(yīng)的相乘系數(shù)是1、2、3。把空調(diào)的三個(gè)檔位看作三路開關(guān)量信號(hào)AI1AI3分別對(duì)應(yīng)P0002口三路開關(guān)量信號(hào)AI1AI3分別對(duì)應(yīng)的系數(shù)是1、2、3;同時(shí)三路開關(guān)量要麼只有一個(gè)打開,要麼全部關(guān)閉,微處理器接收到任一路開關(guān)量對(duì)該開關(guān)量進(jìn)行計(jì)時(shí),當(dāng)該開關(guān)量結(jié)束后進(jìn)行運(yùn)算處理,即將時(shí)間值與系數(shù)相乘,并將結(jié)果儲(chǔ)存,如果其他開關(guān)量打開則繼續(xù)上述過程,同時(shí)將上次的結(jié)果累積,當(dāng)上位機(jī)(PC機(jī))查詢時(shí),通過串口將結(jié)果輸出,同時(shí)顯示該結(jié)果。附帶看門狗電路保證系統(tǒng)工作穩(wěn)定可靠,不會(huì)因?yàn)榕既皇录斐上到y(tǒng)死機(jī)而停止工作。按鍵包括對(duì)系統(tǒng)復(fù)位的復(fù)位鍵、兩個(gè)顯示按鍵(實(shí)時(shí)查看單片機(jī)記錄的數(shù)值并通過顯示器顯示,或顯示溫度)。關(guān)鍵詞單線數(shù)字傳感器中央空調(diào)計(jì)費(fèi)系統(tǒng)CHARGESYSTEMOFCENTRALAIRCONDITONERBASEDONONELINEDIGITALTEMPERATURESENSORSABSTRACTAFTERANALYSISTHEDEFECTOFCHARGEFORCENTRALAIRCONDITIONERSYSTEMOFTHISTIMEASYSTEMHASBEENDESIGNED,INWHICHTWOONELINEDIGITALTEMPERATURESENSORSANDSINGLECHIPCOMPUTERWEREUSEDTOMEASURETHEINFORMATIONOFENERGYCONSUMEDBYUSERS,ANDSENDEDTHISINFORMATIONTOCENTRALCOMPUTERBY485BUSTHUSREALIZEDFAIRCHARGING,SOLVEDTHELONGTIMEDISPUTEBETWEENTHECOMSUMERANDTHERUNNERSTHISDESIGNISCARRIESONTHECOSTACCORDINGTOTHEAIRCONDITIONINGUSERSUSEFILESPOSITIONSITUATION,THEAIRCONDITIONINGSIMPLIFIEDTHEMODEL,THESUPPOSITIONAIRCONDITIONINGBYTHESIMPLIFICATIONISTHREEFILESPOSITIONS,ONE,TWO,THREERESPECTIVELYCORRESPONDMULTIPLICATIONSTHECOEFFICIENTIS1,2,3REGARDSASTHREEWAYSWITCHQUANTITYSIGNALAI1AI3THEAIRCONDITIONINGTHREEFILESPOSITIONRESPECTIVELYTOCORRESPONDTHECOEFFICIENTWHICHP0002MOUTHTHREEWAYSWITCHQUANTITYSIGNALAI1AI3CORRESPONDSSEPARATELYIS1,2,3SIMULTANEOUSLYTHETHREEWAYSWITCHQUANTITYWANTSONLYTHENONETOOPEN,WANTSTOCLOSECOMPLETELY,THEMICROPROCESSORRECEIVEASSUMESTHEPOSTAGROUPSWITCHQUANTITYTOCARRYONTHETIMETOTHISSWITCHQUANTITY,AFTERTHISSWITCHQUANTITYHADENDEDCARRIESONOPERATIONPROCESSING,SOONTHETIMEVALUEANDTHECOEFFICIENTMULTIPLICATION,ANDFINALLYWILLSTOREUP,IFOTHERSWITCHQUANTITYWILLOPENCONTINUESTHEABOVEPROCESS,SIMULTANEOUSLYTHEPREVIOUSTIMERESULTACCUMULATION,WILLWORKASWHENTHEPOSITIONMACHINEPCMACHINEWILLINQUIRE,THROUGHTHESERIALPORTFINALLYOUTPUTS,SIMULTANEOUSLYWILLDEMONSTRATETHISRESULTSUPPLEMENTARYWATCHDOGELECTRICCIRCUITGUARANTEESYSTEMWORKSTABLERELIABLE,CANNOTBUTBECAUSETHEACCIDENTCREATESTHESYSTEMTODIEMACHINETHEKNOCKOFFTHEPRESSEDKEYINCLUDINGVALUEANDTHROUGHMONITORWHICHTOTHESYSTEMREPLACEMENTREPLACEMENTKEY,TWODEMONSTRATIONPRESSEDKEYSREALTIMEEXAMINATIONMONOLITHICINTEGRATEDCIRCUITRECORDSDEMONSTRATED,ORDEMONSTRATIONTEMPERATUREKEYWORDSONELINEDIGITALSENSORCENTRALAIRCONDITIONERCALCULATEFEESYSTEM目錄引言4第1章中央空調(diào)的計(jì)費(fèi)原理5第2章系統(tǒng)設(shè)計(jì)方案821信息采集機(jī)設(shè)計(jì)8211單片機(jī)模塊9212DS1820數(shù)字溫度傳感器1022MAX7219顯示驅(qū)動(dòng)器1423數(shù)碼管顯示16231動(dòng)態(tài)掃描顯示接口動(dòng)態(tài)掃描顯示接口17第3章信號(hào)傳輸2031RS232串行接口標(biāo)準(zhǔn)與RS485串行接口標(biāo)準(zhǔn)20311RS232串行接口標(biāo)準(zhǔn)20312RS485串行接口標(biāo)準(zhǔn)2132總線驅(qū)動(dòng)器芯片SN751762133MAX23222第4章上位機(jī)界面的建立24總結(jié)與體會(huì)35致謝36參考文獻(xiàn)37附錄38引言隨著建筑業(yè)的發(fā)展,中央空調(diào)的計(jì)費(fèi)問題成為投資者最為關(guān)注的事情。迄今為止,關(guān)于中央空調(diào)計(jì)費(fèi)問題,政府部門還沒有出臺(tái)相關(guān)規(guī)章制度來統(tǒng)一和衡量。各種高端酒店、寫字樓、商住樓日益增多,而同時(shí)人們的量化概念越來越強(qiáng)烈,在以往物管收費(fèi)的過程,類似電費(fèi)、水費(fèi)因?yàn)橛袚?jù)可依,故在收費(fèi)的過程中并未引起較大的爭(zhēng)端,但中央空調(diào)的使用費(fèi)用做為物管收取費(fèi)用中占據(jù)最大金額的費(fèi)用卻無法進(jìn)行有效合理的收取,為物管工作帶來諸多不利。以往中央空調(diào)的收費(fèi)是按面積分?jǐn)?,用戶交費(fèi)均為定值,與使用情況無關(guān),這就容易造成各用戶產(chǎn)生“用與不用一樣,用多用少一樣”“不用白不用,用了也白用”的消費(fèi)概念。以至于用戶很少關(guān)空調(diào),或開著窗戶使用空調(diào),不管是否需要,空調(diào)總在使用,形成“供多少用多少”的局面,而空調(diào)機(jī)組卻長(zhǎng)期處于滿負(fù)荷或超負(fù)荷的工作狀態(tài)下,造成運(yùn)營(yíng)費(fèi)用的升高同時(shí)造成管理利潤(rùn)降低。中央空調(diào)計(jì)費(fèi)系統(tǒng)的面世,使中央空調(diào)的使用發(fā)生了從“供多少用多少”到“用多少供多少”質(zhì)的轉(zhuǎn)變,體現(xiàn)了按需使用,按量收費(fèi)。這樣不僅可以使用戶在繳費(fèi)問題上有據(jù)可依,減輕物業(yè)管理工作量,提高物業(yè)管理公司的工作效率;同時(shí),提高計(jì)費(fèi)工作的準(zhǔn)確性、合理性,還可以引導(dǎo)用戶樹立正確的消費(fèi)觀念,促使用戶節(jié)約能源,減小中央空調(diào)系統(tǒng)的工作負(fù)荷,延長(zhǎng)設(shè)備的使用壽命,降低運(yùn)行費(fèi)用,達(dá)到減負(fù)增收的雙重效果。較好的解決了用戶與物業(yè)管理公司之間的收費(fèi)爭(zhēng)端,改善客、主之間的關(guān)系,樹立良好的企業(yè)形象。這樣不僅增加了物業(yè)管理公司的經(jīng)濟(jì)效益,社會(huì)效益也得到了很好的回報(bào)??呻S時(shí)通過生成報(bào)表查看、打印各溫控開關(guān)的實(shí)時(shí)狀態(tài)信息。每日通過生成報(bào)表來查看、打印各種日用量、日運(yùn)行信息。每月通過生成報(bào)表查看、打印各種月用量、費(fèi)用信息。計(jì)費(fèi)程序流程圖如圖1。圖1計(jì)費(fèi)程序流程圖第1章中央空調(diào)的計(jì)費(fèi)原理中央空調(diào)的制冷熱原理是通過水泵將冷凍水熱水送到各風(fēng)機(jī)盤管中,由風(fēng)機(jī)吹送冷熱風(fēng)達(dá)到降升溫的目的。中央空調(diào)的熱交換過程需考慮以下因素由于風(fēng)機(jī)盤管表冷器面積出廠后是一定值,因此換熱面積與風(fēng)速成正比。由于壓縮機(jī)組功率一定,正常使用時(shí)流過風(fēng)機(jī)盤管的水量不變,不用考慮流過風(fēng)機(jī)盤管的水量影響。熱交換耗能與用戶的使用空調(diào)時(shí)間即水流通時(shí)間T成正比。根據(jù)物質(zhì)的熱交換能量計(jì)算熱力學(xué)公式QMCT2一T1T1式中Q消耗的冷量或熱量,JC流體的比熱,JKGKM流體的質(zhì)量流量,KGST1、T2流體的進(jìn)口和出口溫度,KT熱交換時(shí)間,S綜上所述三點(diǎn)因素,我們可以看出,中央空調(diào)的進(jìn)口水溫是由主機(jī)的負(fù)荷能力決定的,同時(shí)對(duì)于一個(gè)處于正常工作狀態(tài)的風(fēng)機(jī)盤管,其表冷器管徑是定值,進(jìn)出口的水壓差近似為常數(shù),所以流過風(fēng)機(jī)盤管的冷或熱水流量也近似為一常數(shù)。因此,在式1中風(fēng)機(jī)盤管進(jìn)出口水溫差T2一T1與風(fēng)機(jī)風(fēng)速成正比,即T2一T1V。因此我們可將式1中的M,C,T2一T1綜合成一個(gè)關(guān)于風(fēng)速的中央空調(diào)用戶綜合系數(shù)X,在標(biāo)準(zhǔn)情況下X即表示為風(fēng)機(jī)盤管型號(hào)。則式1在中央空調(diào)的熱交換過程中可表示為QXVT2式中Q風(fēng)機(jī)盤管帶走的冷或熱量,JX風(fēng)機(jī)盤管關(guān)于風(fēng)速口的綜合系數(shù)即風(fēng)機(jī)盤管型號(hào)T使用空調(diào)時(shí)間即水流通時(shí)間因此,在風(fēng)機(jī)盤管型號(hào)確定的情況下,計(jì)費(fèi)系統(tǒng)所要測(cè)量的參數(shù)就是風(fēng)速T,和風(fēng)機(jī)盤管的有效工作時(shí)間T。我們的中央空調(diào)計(jì)費(fèi)系統(tǒng)就是基于這一方式進(jìn)行工作的通過累積電動(dòng)二通閥開啟的空調(diào)時(shí)間T以及同步檢測(cè)風(fēng)速口,結(jié)合風(fēng)機(jī)盤管型號(hào)系數(shù)X,從而計(jì)算出每一個(gè)風(fēng)機(jī)盤管在一段時(shí)間內(nèi)交換的冷或熱量累計(jì)值。該冷或熱量值與能量單價(jià)相乘,即可以計(jì)算出其空調(diào)使用費(fèi)3系統(tǒng)結(jié)構(gòu)該模塊原理框圖如下圖11所示圖11接入485總線至遠(yuǎn)端由此并結(jié)合我所查的芯片及器件資料,可以利用PROTEL99畫出原理圖,如下圖12參見附圖1圖12由此可生成PCB為下圖13A為上層,B為底層單片機(jī)開關(guān)量顯示器溫度傳感器按鍵485轉(zhuǎn)接看門狗AA頂層參見附圖2B底層(參見附圖3)上位機(jī)通過查詢知道當(dāng)前查看的是哪個(gè)用戶,并顯示該用戶的計(jì)數(shù)值。上位機(jī)和下位機(jī)通過RS485總線實(shí)現(xiàn)通信。RS485總線串行方案如下圖14RS485總線圖14RS485總線串行方案RS232RS485轉(zhuǎn)換1RS232RS485轉(zhuǎn)換2RS232RS485轉(zhuǎn)換NRS485轉(zhuǎn)換計(jì)數(shù)模塊1計(jì)數(shù)模塊2計(jì)數(shù)模塊N上位機(jī)第2章系統(tǒng)設(shè)計(jì)方案利用單片機(jī)采集用戶使用中央空調(diào)能源的信息冷氣閥的開/關(guān)狀態(tài)、冷凍水進(jìn)、出口處溫度,并將其傳送至中央控制室的系統(tǒng)主機(jī),便于計(jì)算費(fèi)用。隨INTERNET的發(fā)展和普及,對(duì)于用戶使用空調(diào)的信息進(jìn)行網(wǎng)上發(fā)布,如用戶使用費(fèi)、欠費(fèi)、當(dāng)月費(fèi)用等,并結(jié)合INTERNET技術(shù)發(fā)放費(fèi)用單、催費(fèi)單等。設(shè)計(jì)的系統(tǒng)框圖如圖21所示。圖21中央空調(diào)計(jì)費(fèi)系統(tǒng)圖圖21中的各信息采集機(jī)安裝在各住戶、寫字室等處,用于采集各用戶消費(fèi)中央空調(diào)的能源信息,并將其傳送到系統(tǒng)主機(jī),同時(shí)通過控制冷氣閥的開關(guān)來限制惡意欠費(fèi)消費(fèi)的用戶繼續(xù)使用資源。用戶消費(fèi)中央空調(diào)的能源信息由如下因素決定由用戶端的冷凍水入口溫度TL、出口溫度TH和冷氣閥開的時(shí)間T來決定,即ETHTLT。為費(fèi)率因子,在系統(tǒng)主機(jī)程序中由物管公司酌情確定。冷凍水入口溫度TL、出口溫度由信息采集機(jī)中的DS1820集成傳感器測(cè)量。冷氣閥開的時(shí)間T通過信息采集機(jī)檢測(cè)其開關(guān)狀態(tài)來決定,用戶空調(diào)在使用狀態(tài)下,室內(nèi)溫度的高低與用戶設(shè)定溫度決定冷氣閥的開關(guān)狀態(tài)。當(dāng)室內(nèi)溫度高于設(shè)定溫度時(shí),冷氣閥打開,只有這時(shí)用戶消費(fèi)了冷氣,公司才能收費(fèi)反之閥關(guān)閉,用戶只消費(fèi)了自己的電資源,而沒有消費(fèi)冷氣,不應(yīng)交費(fèi)。因此,冷氣閥的開關(guān)狀態(tài)是時(shí)開時(shí)關(guān)。信息采集機(jī)將閥開的時(shí)間進(jìn)行累加,在一定時(shí)間周期后將此信息和進(jìn)、出口溫度信息發(fā)送至系統(tǒng)主機(jī),進(jìn)行管理。因此,用戶同樣在使用空調(diào),而設(shè)定溫度不同,冷氣閥的開關(guān)狀態(tài)是不同的,收費(fèi)亦不同。本系統(tǒng)真正反映了多消費(fèi)多交費(fèi)的原則,是先進(jìn)的。21信息采集機(jī)設(shè)計(jì)本系統(tǒng)設(shè)計(jì)充分考慮安全可靠、實(shí)用價(jià)廉的原則。單片機(jī)采用AT89S52兩溫度的測(cè)量采用DALLAS公司生產(chǎn)的一種單線式數(shù)字溫度傳感器DS1820,它具有接口連線少,無須處理電路,測(cè)量精度較高,可靠性好等特點(diǎn)由于中央空調(diào)各用戶地理位置范圍較大,單片機(jī)的232接口通訊距離不能滿足信息傳輸要求,故系統(tǒng)采用一集成芯片將單片機(jī)的232轉(zhuǎn)換為485接口,從而來完成這一功能。信息采集機(jī)設(shè)計(jì)框圖和DS1820與單片機(jī)接口如圖22所示。圖22信息采集機(jī)框圖DS1820不斷檢測(cè)用戶空調(diào)的進(jìn)、出口溫度,并將它們之差存入單片機(jī)存儲(chǔ)器中單片機(jī)通過P11檢測(cè)冷氣閥的開關(guān)狀態(tài),并記錄各次開狀態(tài)下的時(shí)間。為了方便計(jì)算和管理,本系統(tǒng)在進(jìn)、出口溫度相差變化2內(nèi)的開狀態(tài)時(shí)間累積一次,并暫存或和溫度差信息一起發(fā)送至系統(tǒng)主機(jī)。系統(tǒng)主機(jī)采用VC高級(jí)語言編程。由于采集機(jī)中的DS1820傳感器具有新穎、通信協(xié)議特殊的特點(diǎn),以下就其特性和本系統(tǒng)中AT89S52對(duì)DS1820的編程進(jìn)行論211單片機(jī)模塊在本設(shè)計(jì)中,單片機(jī)使用AT89S52。之所以使用AT89S52,是因?yàn)樗腥缦滦阅?、與MCS51單片機(jī)產(chǎn)品兼容2、8K字節(jié)在系統(tǒng)可編程FLASH存儲(chǔ)器3、1000次擦寫周期4、全靜態(tài)操作0HZ33HZ5、三級(jí)加密程序存儲(chǔ)器6、32個(gè)可編程I/O口線7、三個(gè)16位定時(shí)器/計(jì)數(shù)器8、八個(gè)中斷源9、全雙工UART串行通道10、低功耗空閑和掉電模式11、掉電后中斷可喚醒12、看門狗定時(shí)器圖2313、雙數(shù)據(jù)指針14、掉電標(biāo)識(shí)符其封裝為圖23功能特性描述看門狗定時(shí)器WDT是一種需要軟件控制的復(fù)位方式。WDT由13位計(jì)數(shù)器和特殊功能寄存器中的看門狗定時(shí)器復(fù)位存儲(chǔ)器(WDTRST)構(gòu)成。WDT在默認(rèn)情況下無法工作;為了激活WDT,戶用必須往WDTRST中依次寫入01EH和0E1H。當(dāng)WDT激活后,晶振工作,WDT在每個(gè)機(jī)器周期都會(huì)增加。WDT計(jì)時(shí)周期依賴于外部時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒有辦法停止WDT工作。當(dāng)WDT溢出,它將驅(qū)動(dòng)RST引腳一個(gè)高電平輸出。當(dāng)WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT溢出。當(dāng)計(jì)數(shù)達(dá)到81911FFFH時(shí),13位計(jì)數(shù)器將會(huì)溢出,這將會(huì)復(fù)位器件。晶振正常工作、WDT激活后,每一個(gè)機(jī)器周期WDT都會(huì)增加。WDT計(jì)數(shù)器不能讀或?qū)憽.?dāng)WDT計(jì)數(shù)器溢出時(shí),將給RST引腳產(chǎn)生一個(gè)復(fù)位脈沖輸出,這個(gè)復(fù)位脈沖持續(xù)96個(gè)晶振周期(TOSC),其中TOSC1/FOSC。為了很好地使用WDT,應(yīng)該在一定時(shí)間內(nèi)周期性寫入那部分代碼,以避免WDT復(fù)位。在掉電模式下,晶振停止工作,這意味著WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開掉電模式硬件復(fù)位或通過一個(gè)激活的外部中斷。通過硬件復(fù)位退出掉電模式后,用戶就應(yīng)該給WDT喂狗,就如同通常AT89S52復(fù)位一樣。中斷應(yīng)持續(xù)拉低很長(zhǎng)一段時(shí)間,使得晶振穩(wěn)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時(shí)候復(fù)位器件,WDT直到中斷拉低后才開始工作。這就意味著WDT應(yīng)該在中斷服務(wù)程序中復(fù)位。為了確保在離開掉電模式最初的幾個(gè)狀態(tài)WDT不被溢出,最好在進(jìn)入掉電模式前就復(fù)位WDT。在進(jìn)入待機(jī)模式前,特殊寄存器AUXR的WDIDLE位用來決定WDT是否繼續(xù)計(jì)數(shù)。默認(rèn)狀態(tài)下,在待機(jī)模式下,WDIDLE0,WDT繼續(xù)計(jì)數(shù)。為了防止WDT在待機(jī)模式下復(fù)位AT89S52,用戶應(yīng)該建立一個(gè)定時(shí)器,定時(shí)離開待機(jī)模式,喂狗,再重新進(jìn)入待機(jī)模式。編程方法對(duì)AT89S52編程之前,需根據(jù)FLASH編程模式表,采用下列步驟對(duì)AT89S52編程1在地址線上輸入編程單元地址信號(hào)2在數(shù)據(jù)線上輸入正確的數(shù)據(jù)3激活相應(yīng)的控制信號(hào)4把EA/VPP升至12V5每給FLASH寫入一個(gè)字節(jié)或程序加密位時(shí),都要給ALE/PROG一次脈沖。字節(jié)寫周期時(shí)自身定制的,典型值僅僅50US。改變地址、數(shù)據(jù)重復(fù)第1步到第5步,直到全部文件結(jié)束212DS1820數(shù)字溫度傳感器DS1820是DALLAS公司研制的一線式數(shù)字集成溫度傳感器,它主要特性是檢測(cè)溫度范圍為55125,精度為05以9BIT的數(shù)字量來表示溫度溫度到數(shù)字量的轉(zhuǎn)換時(shí)間為200MS可以定義一個(gè)不變化的溫度設(shè)置為報(bào)警溫度不需要外部元器件可通過數(shù)據(jù)線供電一線完成通信等。它有PR35T和SSOP兩種封裝形式,管腳安排有所不同,但主要有三根線GND地、DQ數(shù)據(jù)輸入輸出、VDD電源,分別對(duì)應(yīng)于PR35T型的1、2、3管腳,SSOP型的9、8、7管腳。內(nèi)部結(jié)構(gòu)如圖24所示。圖24DS1820內(nèi)部結(jié)構(gòu)圖、DS1820內(nèi)部包括以下幾部分A、64位激光只讀存儲(chǔ)器。B、溫度傳感器。它采用半導(dǎo)體集成溫度傳感器將溫度轉(zhuǎn)化為數(shù)字量表示C、DS1820的存儲(chǔ)器。它由高速存儲(chǔ)器RAM和E2RAM組成。D、電源VDD。其封裝為下圖25圖25DS1820的封裝、DS1820采用了1WIREBUS技術(shù)。該技術(shù)采用單總線技術(shù)具有線路簡(jiǎn)單,硬件開銷少,成本低廉,便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制都有這根線完成。主機(jī)或從機(jī)通過一個(gè)漏級(jí)開關(guān)或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放總線,而讓其他設(shè)備使用總線。單總線通常要求外接一個(gè)約為47K的上拉電阻,這樣,當(dāng)總線閑置時(shí),其狀態(tài)為高電平。主機(jī)和從機(jī)之間的通信可通過3個(gè)步驟完成,分別為初始化1WIRE器件、識(shí)別1WIRE器件和交換數(shù)據(jù)。由于它們是主從結(jié)構(gòu),只有主機(jī)呼叫從機(jī)時(shí),從機(jī)才能應(yīng)答,因此主機(jī)訪問1WIRE器件都必須嚴(yán)格遵守單總線命令序列,即初始化、ROM、命令功能命令。如果出現(xiàn)序列混亂,1WIRE器件將不響應(yīng)主機(jī)。、DS1820的測(cè)溫原理下圖26圖26溫度檢測(cè)系統(tǒng)原理圖溫度檢測(cè)系統(tǒng)原理圖如圖26所示,采用寄生電源供電方式。無論是單點(diǎn)還是多點(diǎn)溫度檢測(cè),在系統(tǒng)安裝及工作之前,應(yīng)將主機(jī)逐個(gè)與DS1820掛接,讀出其序列號(hào)。其工作過程為主機(jī)TX發(fā)一個(gè)脈沖,待“”電平大于480S后,復(fù)位DS1820,待DS1820所發(fā)響應(yīng)脈沖由主機(jī)RX接收后,主機(jī)TX再發(fā)讀ROM命令代碼33H(低位在前),然后發(fā)一個(gè)脈沖(15S)并接著讀取DS1820序列號(hào)的一位。用同樣方法讀取序列號(hào)的56位。對(duì)于圖26系統(tǒng)的DS1820操作的總體流程圖如下圖27所示。它分三步完成系統(tǒng)通過反復(fù)操作,搜索DS1820序列號(hào);啟動(dòng)所有在線DS1820做溫度A/D變換;逐個(gè)讀出在線DS1820變換后的溫度數(shù)據(jù)。、AT89S52中對(duì)DS1820的編程系統(tǒng)中AT89S52的程序主要功能有工作指示燈點(diǎn)亮、檢測(cè)冷氣閥的開關(guān)狀態(tài)、串行口通信、進(jìn)出口溫度的測(cè)量對(duì)DS1820的編程。而對(duì)DS1820的編程則必須嚴(yán)格按照上述其時(shí)序步驟進(jìn)行,其源程序如下。AT89S52對(duì)DS1820編程的程序清單READTEQU0BEH讀溫度READSEQU0ECH讀狀態(tài)字STARTTEQU44H啟動(dòng)轉(zhuǎn)換INTFADDBITP10DS1820與89S52的接口地址STORETEQU30H存放從DS1820中讀得的數(shù)據(jù)PTEMACALLRSTM復(fù)位DS1820MOVA,STVCACALLWTEM寫啟動(dòng)轉(zhuǎn)換命令A(yù)CALLW1S延時(shí)1秒鐘PTT1ACALLRSTM復(fù)位DS1820MOVA,RDSTACALLWTEM圖27總體流程圖ACALLRTEM讀狀態(tài)字MOVA,STORETCJNEA,0FFH,PTT2AJMPPTT1PTT2JNBACC7,PTT1根據(jù)DONE判斷轉(zhuǎn)換是否結(jié)束ACALLRSTMMOVA,RDTMACALLWTEMACALLRTWM讀測(cè)得的溫度數(shù)值RET子程序復(fù)位DS1820RSTMCLRINTFADDMOVR0,0DJNZR0,DJNZR0,SETBINTFADDMOVR0,5DJNZR0,JBINTFADD,JNBINTFADD,RET寫數(shù)據(jù)到DS1820WTEMMOVR1,8WTERRCAJCWTE1CLRINTFADDMOVR0,50DJNZR0,SETBINTFADDAJMPWDR1WTE1CLRINTFADDMOVR0,4DJNZR0,SETBINTFADDMOVR0,50DJNZR0,WDR1DJNZR1,WTETET從到DS1820讀數(shù)據(jù)RTEMSETBINTFADDMOVR1,8RTECLRINTFADDNOPNOPNOPSETBINTFADDNOPJBINTFADD,RET1CLRCRRCAAJMPRDR1RTE1SETBCRRCARDR1SETBINTFADDMOVR0,50DJNZR0,DJNZR1,RTEMOVSTORET,ARETW1SMOVR2,2W05SMOVR1,0W1MSMOVR0,0DJNZR0,DJNZR0,DJNZR0,DJNZR1,W1MSDJNZR2,W05SRET程序處理是整個(gè)系統(tǒng)的關(guān)鍵,即簡(jiǎn)潔的硬件結(jié)構(gòu)是靠復(fù)雜的軟件來支持的。多個(gè)器件掛在一條總線上,為了識(shí)別不同的器件,在程序設(shè)計(jì)過程中一般有四個(gè)步驟初始化命令;傳送ROM命令;傳送RAM命令;數(shù)據(jù)交換命令。22MAX7219顯示驅(qū)動(dòng)器MAX7219芯片為MAXIM公司推出的串行輸入輸出共陰極顯示驅(qū)動(dòng)器,是用一個(gè)芯片實(shí)現(xiàn)以往用軟件完成的動(dòng)態(tài)顯示電路掃描工作的器件。每片可控制顯示8個(gè)七段LED數(shù)碼管、條形圖或64個(gè)發(fā)光二極管,控制字簡(jiǎn)單,可與各種微機(jī)接口。為24引腳芯片,除與顯示器連接外,與微機(jī)串行口為3線連接,芯片外部電路僅為一限制峰值段電流的電阻,線路簡(jiǎn)單,極大地方便了對(duì)顯示器件的控制。該芯片控制的顯示位數(shù)多、控制字少,可對(duì)全部或個(gè)別顯示位的數(shù)據(jù)進(jìn)行更新,并可方便地進(jìn)行多個(gè)芯片的級(jí)聯(lián),擴(kuò)展顯示容量。MAX7219有多種封裝形式,如窄式DIP封裝。其與單片機(jī)連接圖如圖28圖28MAX7219與單片機(jī)連接圖當(dāng)多片MAX7219級(jí)聯(lián)時(shí),可控制更多的LED。也可以將MAX7219的一部分用于數(shù)字顯示,一部分用于條圖顯示。顯示的數(shù)據(jù)通過單片機(jī)數(shù)據(jù)處理如量程標(biāo)定,線性化,漂移處理等后送至MAX7219,因而顯示結(jié)果更加準(zhǔn)確可信。MAX7219是共陰極顯示驅(qū)動(dòng)器,其SEGAG和SEGH為L(zhǎng)ED七段顯示器段和小數(shù)點(diǎn)驅(qū)動(dòng)端,DIG07為8位數(shù)字驅(qū)動(dòng)線,輸出位選信號(hào),DIN為串行數(shù)據(jù)輸入端,CLK為串行時(shí)鐘輸入端,DOUT為串行數(shù)據(jù)輸出端,在級(jí)聯(lián)時(shí)傳到下一片MAX7219的DIN端,LOAD為裝入數(shù)據(jù)控制端,ISET端通過一個(gè)電阻與電源相連,以提供給LED段的峰值電流。MAX7219主要包括移位寄存器、控制寄存器、譯碼器、數(shù)位與段驅(qū)動(dòng)器以及亮度調(diào)節(jié)和多路掃描電路等。MAX7219采用串行接口方式,只需LOAD、DIN、CLK三個(gè)管腳便可實(shí)現(xiàn)數(shù)據(jù)傳送。DIN管腳上的16位串行數(shù)據(jù)包不受LOAD狀態(tài)的影響,在每個(gè)CLK的上升沿被移入到內(nèi)部16位移位寄存器中。然后,在LOAD的上升沿?cái)?shù)據(jù)被鎖存到數(shù)字或控制寄存器中。LOAD必須在第16個(gè)時(shí)鐘下降沿或之后、但在下一個(gè)時(shí)鐘上升沿之前變高,否則數(shù)據(jù)將會(huì)丟失。DIN端的數(shù)據(jù)通過移位寄存器傳送,并在165個(gè)時(shí)鐘周期后出現(xiàn)在DOUT端,隨CLK的下降沿輸出。MAX7219有驅(qū)動(dòng)8個(gè)數(shù)碼管的能力,但實(shí)際應(yīng)用中不一定恰好是8個(gè)。掃描位數(shù)寄存器用于設(shè)置顯示器數(shù)碼管的實(shí)際掃描個(gè)數(shù),由掃描位數(shù)寄存器的D2D0設(shè)定,其數(shù)據(jù)為0H時(shí),表示僅掃描數(shù)位0,數(shù)據(jù)為01H時(shí),掃描數(shù)位0與數(shù)位1,如此類推,直至數(shù)據(jù)為7H,表示8個(gè)全掃描。8個(gè)全部掃描時(shí),掃描速率為800HZ,只掃描N個(gè)時(shí),掃描速率為8FOSC/N。應(yīng)注意掃描的位數(shù)變化對(duì)亮度有明顯影響。當(dāng)掃描的數(shù)碼管等于或少于3個(gè)時(shí),單個(gè)數(shù)位驅(qū)動(dòng)器將消耗較大的功率,因而必須依據(jù)使用的數(shù)碼管實(shí)際數(shù)量調(diào)整電阻RSET的大小,限制消耗的電流。23數(shù)碼管顯示數(shù)碼管實(shí)際上是由7個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。七段發(fā)光二極管(LED)顯示器,用七個(gè)發(fā)光二極管做成A、B、C、G七段,并分為共陰極與共陽極兩種。共陽極是將七個(gè)發(fā)光二極管的陽極接在一起并接在正電源上,陰極接到譯碼器的各輸出端,當(dāng)哪個(gè)發(fā)光二極管的陰極為低電平時(shí)哪一個(gè)發(fā)光管就亮。共陰極則與之相反。動(dòng)態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個(gè)筆劃段AH同名端連在一起,而每一個(gè)顯示器的公共極COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有顯示器接收到相同的字形碼,但究竟是那個(gè)顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以我們就可以自行決定何時(shí)顯示哪一位了。而所謂動(dòng)態(tài)掃描就是指我們采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1MS),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。圖210(A)是字段形式,圖210(B)是數(shù)字與字段的關(guān)系。圖210顯示數(shù)字于16進(jìn)制代碼之間的對(duì)應(yīng)關(guān)系如表21(0為點(diǎn)亮1為滅)顯示數(shù)字P07P06P05P04P03P02P01P0016進(jìn)制代碼00010100028H1011111107EH210100010A2H30110001062H40111010074H50110000161H60010000121H7011110107AH80010000020H90110000060HP05始終為1。因?yàn)樗釉谛?shù)點(diǎn)上,沒有用它而已。231動(dòng)態(tài)掃描顯示接口動(dòng)態(tài)掃描顯示接口控制程序設(shè)計(jì)本系統(tǒng)中單片機(jī)采用中斷方式對(duì)MAX7219進(jìn)行控制,傳送16位數(shù)據(jù)的地址位和數(shù)據(jù)位。在主程序中,包括串行方式的設(shè)置、顯示緩沖單元和各控制寄存器的地址碼及數(shù)據(jù)單元的分配、對(duì)MAX7219的初始化等。以下程序中,顯示緩沖區(qū)為RAM的30H37H單元,控制寄存器地址碼及數(shù)據(jù)單元為40H47H單元。要顯示的數(shù)據(jù)是程序執(zhí)行的運(yùn)算結(jié)果,以BCD碼數(shù)形式存放在顯示緩沖單元的數(shù)據(jù)字節(jié)中,用轉(zhuǎn)換子程序BSHIFT倒序后存回原處。單片機(jī)串行發(fā)送數(shù)據(jù)的啟動(dòng)在主程序中進(jìn)行,每發(fā)送兩個(gè)字節(jié)后,在中斷子程序中控制使MAX7219的LOAD引腳產(chǎn)生正跳變,把數(shù)據(jù)鎖存入相應(yīng)的寄存器中。該中斷子程序既可發(fā)送一個(gè)16位數(shù)據(jù),也可連續(xù)發(fā)送多個(gè),非常方便。由于MAX7219易受干擾影響,因此在程序執(zhí)行過程中應(yīng)經(jīng)常對(duì)顯示進(jìn)行更新。程序流程圖如圖211所示。主程序及發(fā)送中斷子程序、數(shù)據(jù)格式轉(zhuǎn)換子程序如下。;主程序;把數(shù)據(jù)格式轉(zhuǎn)換為7219的方式MOVR1,31HMOVR5,8LCALLBSHIFT;把8位數(shù)均轉(zhuǎn)換為7219方式;初始化7219MOVR2,8MOVR0,40HSETB;奇偶字節(jié)發(fā)送判斷標(biāo)志CLRP32MOVA,R0MOVSBUF,A;發(fā)送40H起內(nèi)容,初始化7219;發(fā)送8個(gè)要顯示的數(shù)據(jù)MOVR2,88;8個(gè)數(shù)據(jù)共16字節(jié)MOVR0,30H;30H為數(shù)據(jù)緩沖區(qū)首址SETBP32;準(zhǔn)備7219的LOAD電平MOVA,R0MOVSBUF,A;開始發(fā)送數(shù)據(jù);對(duì)7219的串行發(fā)送中斷子程序STINT1CLRTICPLF0JNBF0,ST13SETBP32;發(fā)完16位后產(chǎn)生LOAD脈沖CLRP32ST13CJNER2,0,STI1;判斷是否發(fā)送完SJMPSTI2STI1DECR2;沒送完INCR0;地址偏移MOVA,R0MOVSBUF,A;發(fā)下一字節(jié)STI2RETI;BCD碼轉(zhuǎn)換為7219數(shù)據(jù)形式子程序,轉(zhuǎn)換數(shù)據(jù)及結(jié)果由R1間址BSHIFTMOVA,R1ADDA,6MOVCA,APCMOVR1,AINCR1INCR1DJNZR5,BSHIFTRETDB0,80H,40H,0C0H,20H,0A0H,60H,0E0H,10H,90H圖211程序流程圖第3章信號(hào)傳輸31RS232串行接口標(biāo)準(zhǔn)與RS485串行接口標(biāo)準(zhǔn)計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。RS232與RS485都是串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是由電子工業(yè)協(xié)會(huì)(EIA)制訂并發(fā)布的311RS232串行接口標(biāo)準(zhǔn)目前RS232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS232采取不平衡傳輸方式,即所謂單端通訊,收、發(fā)端的數(shù)據(jù)信號(hào)是相對(duì)于信號(hào)地,如從DTE設(shè)備發(fā)出的數(shù)據(jù)在使用DB25連接器時(shí)是2腳相對(duì)7腳(信號(hào)地)的電平,DB25各引腳定義參見圖31。圖31典型的RS232信號(hào)在正負(fù)電平之間擺動(dòng),在發(fā)送數(shù)據(jù)時(shí),發(fā)送端驅(qū)動(dòng)器輸出正電平在515V之間,負(fù)電平在515V之間。當(dāng)無數(shù)據(jù)傳輸時(shí),線上為TTL,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS232電平再返回TTL電平。接收器典型的工作電平在312V與312V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20KB/S。RS232是為點(diǎn)對(duì)點(diǎn)(即只用一對(duì)收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(qū)動(dòng)器負(fù)載為37K。所以RS232適合本地設(shè)備之間的通信。312RS485串行接口標(biāo)準(zhǔn)針對(duì)RS232的不足,于是就不斷出現(xiàn)了一些新的接口標(biāo)準(zhǔn),RS485就是其中之一,它具有以下特點(diǎn)(1)RS485的電氣特性邏輯“1”以兩線間的電壓差為(26)V表示;邏輯“0”以兩線間的電壓差為(26)V表示。接口信號(hào)電平比RS232降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。(2)RS485的數(shù)據(jù)最高傳輸速率為10MBPS3RS485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干擾能力增強(qiáng),即抗噪聲干擾性好。4RS485接口的最大傳輸距離標(biāo)準(zhǔn)值為4000英尺,實(shí)際上可達(dá)3000米,另外RS232接口在總線上只允許連接1個(gè)收發(fā)器,即單站能力。而RS485接口在總線上是允許連接多達(dá)128個(gè)收發(fā)器,即具有多站能力,這樣用戶可以利用單一的RS485接口方便地建立起設(shè)備網(wǎng)絡(luò)。因RS485接口具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離和多站能力等上述優(yōu)點(diǎn),使其成為首選的串行接口。因?yàn)镽S485接口組成的半雙工網(wǎng)絡(luò)一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。RS485接口連接器采用DB9的9芯插頭座,與智能終端RS485接口采用DB9(孔),與鍵盤連接的鍵盤接口RS485采用DB9(針)。32總線驅(qū)動(dòng)器芯片SN7517633MAX232MAX232是一種雙組驅(qū)動(dòng)器接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器,在單5V電源供電時(shí)提供EIATIA232E電平,每個(gè)接收器將232電平輸入轉(zhuǎn)換為5VTTLCMOS電平。AT89S52的串行端口與MAX232相連,PTXDPRXD與PC機(jī)串行端口的讀寫相連,實(shí)現(xiàn)AT89S52的串行端口與PC機(jī)的通信圖34單片機(jī)串行端口與PC機(jī)通信的硬件電路DESCRIPTIONTHEMAX232DEVICEISADUALDRIVER/RECEIVERTHATINCLUDESACAPACITIVEVOLTAGEGENERATORTOSUPPLYEIA232VOLTAGELEVELSFROMASINGLE5VSUPPLYEACHRECEIVERCONVERTSEIA232INPUTSTO5VTTL/CMOSLEVELSTHESERECEIVERSHAVEATYPICALTHRESHOLDOF13VANDATYPICALHYSTERESISOF05V,ANDCANACCEPT30VINPUTSEACHDRIVERCONVERTSTTL/CMOSINPUTLEVELSINTOEIA232LEVELSTHEDRIVER,RECEIVER,ANDVOLTAGEGENERATORFUNCTIONSAREAVAILABLEASCELLSINTHETEXASINSTRUMENTSLINASICLIBRARYTHEMAX232ISCHARACTERIZEDFOROPERATIONFROM0TO70THEMAX232IISCHARACTERIZEDFOROPERATIONFROM40TO85MAX232的封裝和典型電路如下MAX232PINCONFIGURATIONANDTYPICALOPERATINGCIRCUITFAGUER35FAGURE35第4章上位機(jī)界面的建立上位機(jī)與下位機(jī)之間的關(guān)系是相互作用的,上位機(jī)通過輸入各項(xiàng)設(shè)置參數(shù)來改變下位機(jī)程序的工作方式,比如溫控時(shí)間等。下載后將保存到下位機(jī),這樣可以脫離PC機(jī)而獨(dú)立按此時(shí)的設(shè)置工作;上載則相反,它是從機(jī)器的各項(xiàng)設(shè)置調(diào)入到PC機(jī),便于查看它的各項(xiàng)設(shè)置情況和便于修改;實(shí)時(shí)監(jiān)控實(shí)際上也就是下位機(jī)時(shí)刻都在上傳到PC機(jī),比如我們看到的監(jiān)控界面報(bào)警,繼電器輸出,信號(hào)輸入等變化圖標(biāo)和數(shù)據(jù)的傳送等。數(shù)據(jù)轉(zhuǎn)發(fā)器將同一樓層區(qū)所有信號(hào)采集器采集到的用戶端風(fēng)機(jī)盤管的有效工作時(shí)間以及風(fēng)速信息收集起來,轉(zhuǎn)發(fā)到計(jì)費(fèi)工作站。計(jì)費(fèi)工作站安裝了中央空調(diào)計(jì)費(fèi)管理軟件,用于完成整個(gè)系統(tǒng)的數(shù)據(jù)管理、查詢及報(bào)表生成等,也管理系統(tǒng)中用戶、設(shè)備的添加、刪除及設(shè)置等。它通過數(shù)據(jù)轉(zhuǎn)發(fā)器與各個(gè)信號(hào)采集控制器進(jìn)行數(shù)據(jù)交換。其工作流程如(圖41)我的設(shè)計(jì)思路是可有兩種查詢途徑,其一,通過直接輸入所要查詢的房間號(hào),點(diǎn)擊發(fā)送按鈕,則即可從接收框中顯示出所要查詢的房間的計(jì)費(fèi)情況;其二,通過直接點(diǎn)擊所要查詢的房間號(hào),即可在接收框中顯示出所要查詢的房間的計(jì)費(fèi)情況。VISALC支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OPP),支持MFC類庫編程,有強(qiáng)大的集成開發(fā)環(huán)境DEVELOPERSTUDIO其中包括了程序自動(dòng)生成向?qū)PPWIZARD、類向?qū)LASSWIZARD和各種資源編輯器,以及功能強(qiáng)大的調(diào)試器等可視化和自動(dòng)編程輔導(dǎo)工具。VISALC可用來開發(fā)各種類型、不同規(guī)模和圖41VC是一種功能非常強(qiáng)大的編程語言,開發(fā)效率很高,生成的應(yīng)用軟件代碼品質(zhì)優(yōu)良。VC以其靈活、高效的特點(diǎn)倍受程序員們的青睞。在系統(tǒng)軟件、游戲軟件等要求速度較高的領(lǐng)域,VC有著不可替代的地位。關(guān)于上位機(jī)的界面的建立,我們要求直觀、美觀、有效、實(shí)用,遵循這些原則,我們的設(shè)計(jì)如下1、建立項(xiàng)目打開MICROSOFTVISUALVC60,出現(xiàn)一個(gè)當(dāng)時(shí)的提示對(duì)話框,點(diǎn)擊結(jié)束按鈕然后依次點(diǎn)擊文件新建點(diǎn)擊MFCAPPWIZARDEXE建立一個(gè)基于對(duì)話框的MFC應(yīng)用程序SCOMMTEST,在工程框中填入名字SCOMMTEST,點(diǎn)擊之后的瀏覽按鈕選擇存儲(chǔ)位置D點(diǎn)擊“確定”按鈕。出現(xiàn)MFCAPPWIZARDSTEP1對(duì)話框,選擇“基本對(duì)話框”。點(diǎn)擊“完成”“確定”2在項(xiàng)目中插入MSCOMM控件首先分別點(diǎn)擊確定、取消、TODO在這里設(shè)置對(duì)話控制,點(diǎn)擊DELETE鍵,刪除這幾項(xiàng)。選擇PROJECT菜單下ADDTOPROJECT子菜單中的COMPONENTSANDCONTROLS選項(xiàng),在彈出的對(duì)話框中雙擊REGISTEREDACTIVEXCONTROLS項(xiàng),選擇MICROSOFTCOMMUNICATIONSCONTROL,VERSION60,單擊INSERT按鈕將它插入到PROJECT中來,接受缺省的選項(xiàng)。這時(shí)在CLASSVIEW視窗中就可以看到CMSCOMM類了,并且在控件工具欄CONTROLS中出現(xiàn)了電話圖標(biāo),用鼠標(biāo)將此圖標(biāo)拖到對(duì)話框中,程序運(yùn)行后,這個(gè)圖標(biāo)是看不到的。3CLASSWIZARD定義CMSCOMM類控制對(duì)象點(diǎn)擊“查看”“建立類向?qū)А贝蜷_CLASSWIZARDMEMBERVIARIABLES選項(xiàng)卡,選擇CSCOMMTESTDLG類,為IDC_MSCOMM1添加控制變量M_CTRLCOMM,這時(shí),在對(duì)話框頭文件中自動(dòng)加入了/AFX_INCLUDESINCLUDE“MSCOMMH“/AFX_INCLUDES。4在對(duì)話框中添加控件向主對(duì)話框中添加三個(gè)編輯框,其中兩個(gè)用于接收顯示數(shù)據(jù)ID分別為IDC_EDIT_RXDATA1和IDC_EDIT_RXDATA2,另一個(gè)用于輸入發(fā)送數(shù)據(jù),ID為IDC_EDIT_TXDATA,再添加一個(gè)按鈕,功能是點(diǎn)擊該按鈕就把發(fā)送編輯框中的內(nèi)容發(fā)送出去,將其ID設(shè)為IDC_BUTTON_MANUALSEND。在接收編輯框的PROPERTIESSTYLES中把MILTILINE和VERTICALSCROLL屬性選上,發(fā)送編輯框也選上MILTILINE。再打開CLASSWIZARDMEMBERVIARIABLES選項(xiàng)卡,選擇CSCOMMTESTDLG類,為IDC_EDIT_RXDATA1和IDC_EDIT_RXDATA2依次添加CSTRING變量M_STRRXDATA1和M_STRRXDATA2,為IDC_EDIT_TXDATA添加CSTRING變量M_STRTXDATA。說明M_STRRXDATA1、M_STRRXDATA2和M_STRTXDATA分別用來放入接收和發(fā)送的字符數(shù)據(jù)。點(diǎn)擊STATICTEXT分別在放在發(fā)送框和接收框上方,并分別修改屬性的標(biāo)題對(duì)話框?yàn)槟繕?biāo)地址、計(jì)數(shù)值、溫度。這時(shí),可得到如下窗口圖415添加串口事件消息處理函數(shù)ONCOMM打開CLASSWIZARDMESSAGEMAPS,選擇類CSCOMMTESTDLG,選擇IDC_MSCOMM1,雙擊消息ONCOMM,將彈出的對(duì)話框中將函數(shù)名改為ONCOMM,這個(gè)函數(shù)是用來處理串口消息事件的,如每當(dāng)串口接收到數(shù)據(jù),就會(huì)產(chǎn)生一個(gè)串口接收數(shù)據(jù)緩沖區(qū)中有字符的消息事件,剛才添加的函數(shù)就會(huì)執(zhí)行,在ONCOMM函數(shù)加入相應(yīng)的處理代碼VOIDCSCOMMTESTDLGONCOMM/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREVARIANTVARIANT_INPCOLESAFEARRAYSAFEARRAY_INPLONGLEN,KBYTERXDATA2048/設(shè)置BYTE數(shù)組AN8BITINTEGERTHATISNOTSIGNEDCSTRINGSTRTEMPIFM_CTRLCOMMGETCOMMEVENT2/事件值為2表示接收緩沖區(qū)內(nèi)有字符/以下你可以根據(jù)自己的通信協(xié)議加入處理代碼VARIANT_INPM_CTRLCOMMGETINPUT/讀緩沖區(qū)SAFEARRAY_INPVARIANT_INP/VARIANT型變量轉(zhuǎn)換為COLESAFEARRAY型變量LENSAFEARRAY_INPGETONEDIMSIZE/得到有效數(shù)據(jù)長(zhǎng)度FORK0KMESSAGEMAPS,選擇類CSCOMMTESTDLG,選擇IDC_BUTTON_MANUALSEND,雙擊BN_CLICKED添加ONBUTTONMANUALSEND函數(shù),并在函數(shù)中添加如下代碼VOIDCSCOMMTESTDLGONBUTTONMANUALSEND/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)8、點(diǎn)擊BUTTON按鈕,在對(duì)話框中拖出一塊矩形區(qū)域,放開鼠標(biāo),會(huì)發(fā)現(xiàn)生成一個(gè)按鈕BUTTON1,為了使所有按鈕都大小相同,將BUTTON1復(fù)制七個(gè),并分別修改每個(gè)按鈕的屬性,右鍵點(diǎn)擊各個(gè)按鈕,點(diǎn)擊屬性,出現(xiàn)屬性對(duì)話框,將GENERAL項(xiàng)中的標(biāo)題分別修改為房間1、房間2、房間3、房間4、房間5、房間6、房間7、房間8。然后分別雙擊每個(gè)按鈕,將其加入函數(shù)ONBUTTON1、ONBUTTON2、ONBUTTON3、ONBUTTON4、ONBUTTON5、ONBUTTON6、ONBUTTON7、ONBUTTON8,然后雙擊每個(gè)按鈕為其添加函數(shù)然,并添加如下代碼/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA01AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON2/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA02AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON3/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA03AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON4/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA04AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON5/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA05AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON6/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA06AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON7/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA07AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STRTXDATA/發(fā)送數(shù)據(jù)VOIDCSCOMMTESTDLGONBUTTON8/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATATRUE/讀取編輯框內(nèi)容CSTRINGTXDDATA“55AA08AA55“M_CTRLCOMMSETOUTPUTCOLEVARIANTM_STR

溫馨提示

  • 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. 人人文庫網(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)論