基于溫采集的單片機(jī)和Visual C串口通信帶電腦端程序_第1頁
基于溫采集的單片機(jī)和Visual C串口通信帶電腦端程序_第2頁
基于溫采集的單片機(jī)和Visual C串口通信帶電腦端程序_第3頁
基于溫采集的單片機(jī)和Visual C串口通信帶電腦端程序_第4頁
基于溫采集的單片機(jī)和Visual C串口通信帶電腦端程序_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計報告題目:基于溫度采集的單片機(jī)和VISUAL C+串口通信1.摘要單片機(jī)的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。DS18B20是美國DALLAS公司生產(chǎn)的數(shù)字溫度傳感器芯片,具有結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強(qiáng)、使用方便等優(yōu)點。本文設(shè)計的一種溫度控制系統(tǒng),用STC89C51單片機(jī)作為溫控器,選用DS18B20數(shù)字溫度傳感器,可任意設(shè)置上下限報警溫度,采用數(shù)碼管實時顯示溫度,通過串口利用單

2、片機(jī)與上位機(jī)的通信,對環(huán)境溫度采集并進(jìn)行控制。關(guān)鍵詞:STC89C51單片機(jī)、串口通信、上下限報警、數(shù)碼管顯示溫度、2. 引論隨著時代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。溫度是工業(yè)生產(chǎn)中主要的被控參數(shù)之一,與之相關(guān)的跟中溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過過程控制,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量。用單片機(jī)做成的產(chǎn)品外圍元件很少,能實現(xiàn)的功能卻很廣,廣泛應(yīng)用于工業(yè),農(nóng)業(yè)等。兼于此,特用單片機(jī)設(shè)計此電路。溫度控制在實際生產(chǎn)中有著廣泛的應(yīng)用。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人

3、們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測和控制。因而設(shè)計一種較為理想的溫度控制系統(tǒng)是非常有價值的。在國內(nèi)外溫度控制成了一科廣泛應(yīng)用于很多領(lǐng)域的技術(shù)。具體如空調(diào)、冰箱、茶葉烘烤、糧倉溫度控制、等等。糧食溫度檢測是儲備庫中防止糧食霉?fàn)€、保質(zhì)存放的重要環(huán)節(jié)。對于一個農(nóng)業(yè)大國來講,糧食生產(chǎn)、需求與儲備量都很大。大量糧食在儲備的過程中常因糧食濕度過大而升溫發(fā)熱,導(dǎo)致糧食大量腐爛變質(zhì),給郭建帶來巨大損失。本論文正是以此為出發(fā)點,對單片機(jī)控制的遠(yuǎn)程溫度控制作了較詳盡的介紹。單片機(jī)的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往

4、是作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。DS18B20是美國DALLAS公司生產(chǎn)的數(shù)字溫度傳感器芯片,具有結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強(qiáng)、使用方便等優(yōu)點。本文設(shè)計的一種溫度控制系統(tǒng),用STC89C52單片機(jī)作為溫控器,選用DS18B20數(shù)字溫度傳感器,可任意設(shè)置上下限報警溫度,采用數(shù)碼管實時顯示溫度,通過串口利用單片機(jī)與上位機(jī)的通信,對溫度進(jìn)行采集、數(shù)據(jù)處理和控制。3、目錄1、摘要2、引論3、目錄4、正文 4.1、設(shè)計目的 4.2、具體內(nèi)容及要求 4.3、系統(tǒng)總體方案設(shè)計 、設(shè)計方案論證 、系統(tǒng)總體構(gòu)成圖

5、、硬件設(shè)計 、軟件設(shè)計 4.4、系統(tǒng)各個模塊設(shè)計 、單片機(jī)最小系統(tǒng) 、顯示部分 、報警電路 、測溫電路 、單片機(jī)與上位機(jī)串 4.5、系統(tǒng)軟件設(shè)計 、單片機(jī)軟件設(shè)計口電路 、上位機(jī)軟件設(shè)計5、結(jié)論 6、總結(jié)心得7、 參考文獻(xiàn)附錄 4、正文 4.1. 設(shè)計目的 (1)了解電子系統(tǒng)的設(shè)計方法,鞏固和提高學(xué)過的基礎(chǔ)理論和專業(yè)知識; (2)學(xué)習(xí)DS18B20數(shù)字溫度傳感器的測溫原理,提高運用所學(xué)專業(yè)知識進(jìn)行獨立思考和綜合分析、解決實際問題的能力; (3) 掌握串口通信協(xié)議及其編程方法,掌握正確的思維方法和利用軟件和硬件解決實際問題的基本技能; (4)增強(qiáng)對單片機(jī)的認(rèn)識,掌握分析處理問題的方法,進(jìn)行調(diào)試、

6、計算等基本技能的訓(xùn)練,達(dá)到具有一定程度的實際工作能力。(5) 學(xué)會用PROTEL99SE進(jìn)行電路原理圖和PCB圖的繪制。 (6) 學(xué)習(xí)用PSPICE、 MULTISIM 10.0等仿真軟件進(jìn)行電路設(shè)計和仿真。 (7)通過參與實際工作,能夠了解單片機(jī)行業(yè)的具體工作。 4.2. 具體內(nèi)容及要求1. 內(nèi)容及要求:研究基于單片機(jī)的遠(yuǎn)程溫度監(jiān)控系統(tǒng),可以在PC機(jī)端實時監(jiān)控系統(tǒng)溫度,并根據(jù)當(dāng)前的溫度值對單片機(jī)系統(tǒng)進(jìn)行控制。利用VC編制PC示例程序。2. 主要技術(shù)指標(biāo):(1)、溫度測量范圍20-35;(2)、可以設(shè)置溫度報警的上、下限;(3)、提供PC機(jī)通訊接口;(4)、PC機(jī)軟件實現(xiàn)對溫度數(shù)據(jù)分析、統(tǒng)計和

7、處理; 4.3、系統(tǒng)總體方案設(shè)計設(shè)計方案論證方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,其中還涉及到電阻與溫度的對應(yīng)值的計算,感溫電路比較麻煩。而且在對采集的信號進(jìn)行放大時容易受溫度的影響出現(xiàn)較大的偏差。方案二 進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,電路簡單,精度高,軟硬

8、件都以實現(xiàn),而且使用單片機(jī)的接口便于系統(tǒng)的再擴(kuò)展,滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,費用較低,可靠性高,軟件設(shè)計也比較簡單,故采用了方案二。、系統(tǒng)總體構(gòu)成圖如下:、硬件設(shè)計:現(xiàn)在PC機(jī)提供的COM口是采用RS-232接口標(biāo)準(zhǔn)的。而RS-232是用正負(fù)電壓來表示邏輯狀態(tài),與TTL以高低電平來表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機(jī)借口或終端的TTL器件(如單片機(jī))連接,必須在RS-232與TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換,變換電路選用芯片MAX232.該器件包含2個驅(qū)動器、2個接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平轉(zhuǎn)換成5V T

9、TL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。、軟件設(shè)計單片機(jī)軟件設(shè)計單片機(jī)程序由主程序和中斷子程序組成的。主程序負(fù)責(zé)對來自上位機(jī)的命令進(jìn)行解析并執(zhí)行讀溫度值、存儲溫度值、輸出控制等等,中斷服務(wù)程序只負(fù)責(zé)單片機(jī)和上位機(jī)之間的數(shù)據(jù)發(fā)送與接收。上位機(jī)程序設(shè)計由單片機(jī)采集的實時溫度,經(jīng)過處理后通過MAX232傳輸?shù)缴衔粰C(jī)PC,利用在VISUAL C+ 6.0的通信控件MSCOMM 屬性設(shè)置和事件響應(yīng)的基礎(chǔ)上,實現(xiàn)與單片機(jī)串行通信,在上位機(jī)中,完成報警溫度設(shè)置、實時溫度數(shù)據(jù)顯示、曲線繪制,實時報警等功能。4.4、系統(tǒng)各個模塊設(shè)計:單片機(jī)最小系統(tǒng)1、STC8

10、9C51單片機(jī)管腳圖如下:2、各引腳功能:(1) XTAL1(19腳);XTAL2(18腳)-外接時鐘引腳。XTAL1為片內(nèi)振蕩電路的輸入電源和時鐘引腳.VCC(40腳)GND(20腳)常壓為+5V,低壓為+3.3V。(2) 端。 XTAL2為片內(nèi)振蕩電路的輸出端,80C51的時鐘有兩種方式,一種是片內(nèi)振蕩方式,需要在這兩個引腳接石英晶體和振蕩電容, 振蕩電容的值一般選擇為10P30P。另一種外部時鐘方式即XTAL1接地,外部時鐘信號從XTAL2腳輸入。(3) RST(9腳)-單片機(jī)的復(fù)位引腳。P0口(39腳32腳)雙向8位I/O口,每個口可以獨立控制。51單片機(jī)PO口內(nèi)部沒有上拉電阻,為高阻

11、狀態(tài),所以不能正常的輸出高低電平,因此該組I/O口在使用的時候務(wù)必要接上拉電阻,一般我們采用接入10K的上拉電阻。P1口(1腳8腳)-準(zhǔn)雙向8位I/O口。每個口可以獨立操作控制,內(nèi)帶上拉電阻,這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,固然不是真正的雙向I/O口,之所以稱它為” 準(zhǔn)雙向”是因為該口在作為輸入使用前要先向該口進(jìn)行寫一操作,然后單片機(jī)內(nèi)部才可以正確讀出外部信號,也就是要使其先要有個準(zhǔn)備過程,所以才稱準(zhǔn)雙向口。對52單片機(jī)的P1.0引腳的第二功能為T2定時器的外部輸入,P1.1引腳的第二功能為T2EX捕捉,重裝觸發(fā),即T2的外部控制器。P2口(21腳28腳)-準(zhǔn)雙向8位I/O口,每個口

12、都可以獨立操作控制,內(nèi)帶上拉電阻,與P1口相似。P3口(10腳17腳)-準(zhǔn)雙向8位I/O口,每個口可以獨立操作控制,內(nèi)帶上拉電阻,作為第一功能使用時就當(dāng)作普通I/O口,與P1口相似。作為第二功能使用時,各引腳的定義如表:值得強(qiáng)調(diào)的是,P3口的每一個引腳均可以獨立定義為第一功能的輸入/輸出或第二功能P3口引腳第二功能定義標(biāo)號引腳第二功能說明P3.010RXD串行輸入口P3.111TXD串行輸出口P3.212/INTO外部中斷0P3.313/INT1外部中斷1P3.414T0定時器/計數(shù)器0外部輸入口P3.515T1定時器/計數(shù)器1外部輸入口P3.616/WE外部數(shù)據(jù)存儲器寫脈沖P3.717/RD

13、外部數(shù)據(jù)存儲器讀脈沖3、單片機(jī)最小系統(tǒng)其中:A、復(fù)位電路單片機(jī)上電時,當(dāng)振蕩器正在運行時,只要持續(xù)給出RST引腳連個機(jī)器周期的高電平,便可完成系統(tǒng)復(fù)位。外部復(fù)位電路是為內(nèi)部復(fù)位電路提供兩個機(jī)器周期以上的電平而設(shè)計的。系統(tǒng)采用上電自動復(fù)位,上電瞬間電容器上的電壓不能突變,RST上的電壓是VCC上的電壓與電容器上的電壓之差,因而RST上的電壓與VCC上的電壓相同。隨著充電的進(jìn)行,電容器上的電壓不斷上升,RST上的 電壓就隨著下降,RST腳上只要保持10MS以上高電平,系統(tǒng)就會有效復(fù)位。電容C可取1033UF,電阻R可取1.210K。在本系統(tǒng)設(shè)計中,C取10UF,R取10K。B、振蕩電路XTAL1腳

14、和XTAL2腳分別構(gòu)成片內(nèi)振蕩器的反相放大器的輸入和輸出端,外接石英晶振或陶瓷晶振以及補(bǔ)償電容C1、C2選47UF構(gòu)成并聯(lián)諧振電路。當(dāng)外接石英晶振時,電容C1、C2選30PF±10PF;當(dāng)外接陶瓷振蕩器時,電容C1、C2選47UF±10UF。系統(tǒng)中,外接電C1、C2的大小會影響振蕩器頻率的穩(wěn)定度、起振時間及溫度穩(wěn)定性。在設(shè)計電路板時,晶振和電容應(yīng)靠近單片機(jī)芯片,以便減少寄生電容,保證振蕩器穩(wěn)定可靠工作。在本硬件系統(tǒng)設(shè)計中,為保證串行通行波特率的誤差,選擇了11.0592MHZ的標(biāo)準(zhǔn)石英晶振,電容C1、C2為30PF。C、接高電平,選用片內(nèi)程序存儲器。、顯示部分:本系統(tǒng)采用三

15、極管驅(qū)動四位一體共陽數(shù)碼管顯示溫度,數(shù)碼管有兩種顯示方式,即靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高;動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)

16、略小于靜態(tài)顯示電路中的。本設(shè)計數(shù)碼管采用動態(tài)顯示。如下圖:、報警電路本設(shè)計中采用三極管驅(qū)動蜂鳴器報警,其中,分別模擬制熱器和制冷器。當(dāng)溫度高于上限溫度時,蜂鳴器報警,燈亮,模擬啟動制冷器;當(dāng)溫度低于下限溫度時,蜂鳴器報警,燈亮,模擬啟動制熱器。當(dāng)按復(fù)位鍵時,數(shù)據(jù)清除。其中,與蜂鳴器相連的輕觸開關(guān)斷開時,蜂鳴器停止報警,實現(xiàn)手動解除報警。如圖:.4、測溫電路本設(shè)計采用溫度傳感器測量溫度。DS18B20簡介其兩種封裝如圖:溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場合時DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能

17、強(qiáng),使得DS18B20更受歡迎。對于我們普通的電子愛好者來說,DS18B20的優(yōu)勢更是我們學(xué)習(xí)單片機(jī)技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬我們對單片機(jī)開發(fā)的思路。DS18B20的主要特征:1. 全數(shù)字溫度轉(zhuǎn)換及輸出。2. 先進(jìn)的單總線數(shù)據(jù)通信。3. 最高12位分辨率,精度可達(dá)土0.5攝氏度。4. 12位分辨率時的最大工作周期為750毫秒。5. 可選擇寄生工作方式。6. 檢測溫度范圍為55°C +125°C (67°F +257°F)7. 內(nèi)置EEPROM,限溫報警功能。8. 64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機(jī)掛接。9.

18、 多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。DS18B20芯片封裝結(jié)構(gòu):DS18B20引腳功能:·GND 電壓地 ·DQ 單數(shù)據(jù)總線 ·VDD 電源電壓 ·NC 空引腳DS18B20工作原理及應(yīng)用:DS18B20的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強(qiáng)。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18B20的內(nèi)部存儲器資源。18B20共有三種形態(tài)的存儲器資源,它們分別是:ROM 只讀存儲器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序

19、列號,最后8位是以上56的位的CRC碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設(shè)置不由用戶更改。DS18B20共64位ROM。RAM 數(shù)據(jù)暫存器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個字節(jié)RAM,每個字節(jié)為8位。第1、2個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個字節(jié)是用戶EEPROM(常用于溫度報警值儲存)的鏡像。在上電復(fù)位時其值將被刷新。第5個字節(jié)則是用戶第3個EEPROM的鏡像。第6、7、8個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8個字節(jié)的CRC碼。EEPROM 非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),

20、上下限溫度報警值和校驗數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。電路圖如下:.5、單片機(jī)與上位機(jī)串口電路在現(xiàn)代業(yè)控制中,串口通信的應(yīng)用越來越廣泛。單片機(jī)和PC機(jī)之間的串口通信在進(jìn)行數(shù)據(jù)交換時經(jīng)常被使用。在串行通信時,要求通信雙方都采用一個標(biāo)準(zhǔn)接口,RS232C接口是單片機(jī)利PC機(jī)進(jìn)行通信最常用的一種接口。單片機(jī)與PC機(jī)進(jìn)行串口通信最簡單的二線制法,即接收數(shù)據(jù)針腳(RXD)與發(fā)送數(shù)據(jù)針腳(TXD)相連,彼此交叉,信號地(GND)對應(yīng)相接。但是,串口還不能直接和單片機(jī)相連,可以選用MAX232和MAX485進(jìn)行電平轉(zhuǎn)換。MAX232用于RS232C標(biāo)準(zhǔn);MAX4

21、85用于RS485標(biāo)準(zhǔn)。RS232C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4的情況下,傳輸電纜長度最大約為L5米,最高傳輸速率為20KBITS。RS485標(biāo)準(zhǔn)最人傳輸距離約為1219米,最大傳輸速率約為L0MBITS。MAX232芯片簡介MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。      引腳介紹:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12V和-12V兩個電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成

22、兩個數(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ù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 第三部分是供電。15腳GND、16腳VCC(+5V)。由于串口用的是TTL電平,和RS232電平不同,因此,單片機(jī)和PC通信時需要進(jìn)行電平轉(zhuǎn)換,常用的IC是MAX2

23、32,連接圖如下圖所示,其中MAX232供電腳為5V。采用了三線制連接串口,也就是說和計算機(jī)的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了。RS232引腳圖串口電路連接圖如下:收、發(fā)端的數(shù)據(jù)信號是相對于信號地,如從DTE設(shè)備發(fā)出的數(shù)據(jù)在使用DB25連接器時是2腳相對7腳(信號地)的電平,DB25各引腳定義參見圖2-9。典型的RS-232信號在正負(fù)電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5+15V,負(fù)電平在-5-15V電平。當(dāng)無數(shù)據(jù)傳輸時,線上為TTL,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS

24、-232電平再返回TTL電平。接收器典型的工作電平在+3+12V與-3-12V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20KB/S。RS-232是為點對點(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計的,其驅(qū)動器負(fù)載為37KÙ。所以RS-232適合本地設(shè)備之間的通信。上位機(jī)和下位機(jī)的接線方法如圖上位機(jī)和下位機(jī)的接線方法MCS-51內(nèi)部含有一個可編程全雙工串行通信接口,具有UART的全部功能。該接口電路不僅能同時進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可作為一個同步移位寄存器使用。 在進(jìn)行異步通信時,數(shù)據(jù)的發(fā)送和接收分別在

25、各自的時鐘(TCLK和RCLK)控制下進(jìn)行的,但都必須與字符位數(shù)的波特率保持一致。MCS-51串行口的發(fā)送和接收時鐘可由兩種方式產(chǎn)生,一種是由主機(jī)頻率FOSC經(jīng)分頻后產(chǎn)生,另一種方式是由內(nèi)部定時器T1或T2的溢出率經(jīng)16分頻后提供。發(fā)送和接收的過程如下:串行口的發(fā)送過程由指令MOV  SBUF,A啟動,即CPU由一條寫發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫入串行口的發(fā)送緩沖器SBUF(發(fā))中,再由硬件電路自動在字符的始、末加上起始位(低電平)、停止位(高電平)及其它控制位(如奇偶位等),然后在移位脈沖SHIFT的控制下,低位在前,高位在后,從TXD端(方式0除外)一位位地向外發(fā)送。串行口的

26、接收與否受制于允許接收位REN的狀態(tài),當(dāng)REN被軟件置“1”后,允許接收器接收。接收端RXD一位位地接收數(shù)據(jù),直到收到一個完整的字符數(shù)據(jù)后,控制電路進(jìn)行最后一次移位,自動去掉啟始位,使接收中斷標(biāo)志RI置“1”,并向CPU申請中斷。CPU響應(yīng)中斷,用一條指令(MOV  A,SBUF)把接收緩沖器SBUF(收)的內(nèi)容讀入累加器。TI和RI是由硬件置位的,但需要用軟件復(fù)位。.、系統(tǒng)軟件設(shè)計.、單片機(jī)軟件設(shè)計:(1)主程序:主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1S進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程如下所示: 主程序

27、流程圖(2)讀溫度子程序:先讓DS18B20復(fù)位,然后發(fā)跳過ROM匹配命令,再發(fā)出溫度轉(zhuǎn)換命令,讓DS18B20進(jìn)行溫度轉(zhuǎn)換,延時等待轉(zhuǎn)換完畢后,再將已轉(zhuǎn)換的溫度值一一地從各個DS18B20取出,轉(zhuǎn)換成ASCALL碼后再發(fā)送到PC機(jī)上,如此循環(huán)。程序框圖如下:讀溫度程序框圖(3)溫度比較報警子程序此程序是將實際溫度與設(shè)置的報警上下限比較,決定是否發(fā)出報警信號。由于T為實際溫度的絕對值,TH、TL也是溫度的絕對值,因此判斷大小關(guān)系時要通過其正負(fù)符號來確定。溫度比較報警子程序.上位機(jī)軟件設(shè)計PC機(jī)程序中包括串口通信模塊,繪圖模塊,命令按鈕模塊,溫度顯示模塊等。一、串口通信模塊在本設(shè)計中,采用MSC

28、OMM控件進(jìn)行串口的通訊,MSCOMM控件串口具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,PC機(jī)可以利用串行口與其它設(shè)備實現(xiàn)輕松連接,簡單高效地實現(xiàn)設(shè)備之間的通訊。此控件的事件響應(yīng)有兩種處理方式,事件驅(qū)動方式:由MSCOMM控件的ONCOMM事件捕獲并處理通訊錯誤及事件;查詢方式:通過檢查COMMEVENT屬性的值來判斷事件和錯誤。 二、繪圖模塊在VC中,繪圖可以利用LINE和CIRCLE方法繪制幾何圖形11,還可以利用BOTTON控件繪制各種圖表。而本設(shè)計就采用BOTTON控件進(jìn)形繪制溫度變化曲線圖。BOTTON控件在繪制直方圖(條形圖)、折線圖、餅圖、標(biāo)記圖、填充區(qū)域圖等各種常用的數(shù)據(jù)

29、分析圖形方面有很大的優(yōu)勢,我們只要將需按圖形表示的數(shù)據(jù)裝入數(shù)組中,然后將數(shù)組數(shù)據(jù)賦值給BOTTON控件,再進(jìn)行一些簡單的圖形標(biāo)題、背景、圖例、注腳方面的定義,就可以得到所期望的數(shù)據(jù)分析圖形。由于BOTTON控件不是VC內(nèi)建的基本控件,因此在使用前必須用工程菜單中的“部件”,添加BOTTON控件。添加BOTTON控件的選項是“MICROSOFT CHART CONTROL 6.0(OLEDB)”。三、命令按鈕11模塊大多數(shù)應(yīng)用程序中都有命令按鈕COMMANDBUTTON控件,用戶可以單擊按鈕執(zhí)行某項操作。在本設(shè)計統(tǒng)中要讓下位機(jī)執(zhí)行相應(yīng)操作,就是通過命令按鈕給下位機(jī)下發(fā)命令實現(xiàn)該功能。命令按鈕是V

30、B應(yīng)用程序中經(jīng)常使用的對象,程序運行中要執(zhí)行一條或一組命令,通常通過用鼠標(biāo)單擊命令按鈕來實現(xiàn),當(dāng)然具體產(chǎn)生何種動作要通過執(zhí)行相應(yīng)的事件過程中的程序代碼來決定。四、溫度顯示模塊在本設(shè)計中顯示由文本框和標(biāo)簽控件完成。完成后的VC界面如下:5.結(jié)論 本溫控系統(tǒng)通過STC89C51單片機(jī)采集從DS18B20溫度傳感器所測得的溫度數(shù)據(jù),并通過串口實時傳送到上位機(jī)。單片機(jī)系統(tǒng)完成對溫度信號的采集、設(shè)定上下限報警等功能,并通過串口通信與PC機(jī)進(jìn)行通信,在PC機(jī)上進(jìn)行顯示及一些操作,從而使系統(tǒng)更加直觀,使用更加方便。本設(shè)計主要解決了以下幾個問題:1.系統(tǒng)的硬件采用以單片機(jī)為核心的硬件電路,所用元器件也很少,體

31、積小,重量輕,抗干擾能力強(qiáng),對環(huán)境要求不高,價格低廉。2.實現(xiàn)單片機(jī)與PC機(jī)的通信功能,實現(xiàn)遠(yuǎn)距離的進(jìn)行監(jiān)控.當(dāng)然本設(shè)講也存在著一些不足:(1)電路設(shè)計技術(shù)還不夠成熟(2)本設(shè)計通信采用RS232,如果采用RS485通信距離將會大大增加這個系統(tǒng)本身或通過擴(kuò)展可應(yīng)用于智能家居、工業(yè)控制、智能農(nóng)業(yè)、環(huán)境監(jiān)測等各個領(lǐng)域的溫度采集以及數(shù)據(jù)分析控制。相信,隨著單片機(jī)與PC應(yīng)用的不斷推廣和不斷成熟,基于單片機(jī)與PC機(jī)的溫度控制系統(tǒng)將會得到廣泛的應(yīng)用。 (3)本設(shè)計在繪圖的時候,定位范圍不是很好,圖線會伸出繪圖區(qū)間。6、總結(jié)心得7、 參考文獻(xiàn) 單片機(jī)應(yīng)用系統(tǒng)設(shè)計技術(shù)基于C51的PROTEUS仿真(第2版)

32、張齊 電子工業(yè)出版社 C+程序設(shè)計(第四版) 譚浩強(qiáng) 清華大學(xué)出版社 C/C+串口通信典型應(yīng)用實例編程實踐 曹衛(wèi)斌 電子工業(yè)出版社 VISUAL C+數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn) 田敏 人民郵電出版社 C語言常見問題集 STEVE SUMMIT(原著) 翻譯:朱群英 孫云 單片機(jī)C語言程序設(shè)計實訓(xùn)100例基于80C51+PROTEUS仿真 彭偉 北京航空航天大學(xué)出版社附錄1、 總體電路圖:電腦端程序:DIM N AS INTEGERDIM T AS INTEGER 定義全局變量PRIVATE SUB COMMAND2_CLICK() 單擊按鈕執(zhí)行數(shù)據(jù)采集或停止采集 IF COMMAND2.C

33、APTION = "采集數(shù)據(jù)" THEN COMMAND2.CAPTION = "停止采集" TIMER1.ENABLED = TRUE MSCOMM1.OUTPUT = "A" ELSE COMMAND2.CAPTION = "采集數(shù)據(jù)" TIMER1.ENABLED = FALSE MSCOMM1.OUTPUT = "B" MSCOMM1.OUTPUT = "B" END IFEND SUBPRIVATE SUB COMMAND4_CLICK() 單擊按鈕清空數(shù)據(jù)TEXT

34、1.TEXT = ""TEXT4.TEXT = ""END SUBPRIVATE SUB COMMAND5_CLICK() 單擊按鈕開關(guān)通信端口 IF COMMAND5.CAPTION = "開啟通信" THEN COMMAND5.CAPTION = "關(guān)閉通信" COM.ENABLED = FALSE COMMAND2.ENABLED = TRUE COMMAND1.ENABLED = TRUE TEXT2.ENABLED = TRUE SELECT CASE COM.LISTINDEX '指定端口號(C

35、OM) CASE 0 MSCOMM1.COMMPORT = 1 CASE 1 MSCOMM1.COMMPORT = 2 CASE 2 MSCOMM1.COMMPORT = 3 CASE 3 MSCOMM1.COMMPORT = 4 END SELECT MSCOMM1.SETTINGS = "9600,N,8,1" '9600波特,無校驗,8位數(shù)據(jù)位,1位停止位 MSCOMM1.INPUTMODE = COMINPUTMODETEXT '接收文本數(shù)據(jù) MSCOMM1.INPUTLEN = 0 '讀出接收緩沖區(qū)的所有內(nèi)容 MSCOMM1.INBUFFE

36、RSIZE = 1024 MSCOMM1.OUTBUFFERSIZE = 1024 MSCOMM1.RTHRESHOLD = 1 '每接收到1個字符,發(fā)生1次事件 MSCOMM1.PORTOPEN = TRUE '打開串口 ELSE TIMER1.ENABLED = FALSE MSCOMM1.OUTPUT = "B" MSCOMM1.OUTPUT = "B" COMMAND5.CAPTION = "開啟通信" COM.ENABLED = TRUE MSCOMM1.PORTOPEN = FALSE COMMAND2.C

37、APTION = "采集數(shù)據(jù)" COMMAND2.ENABLED = FALSE COMMAND1.ENABLED = FALSE TEXT2.ENABLED = FALSE END IFEND SUBPRIVATE SUB COMMAND7_CLICK() 單擊按鈕保存溫度數(shù)據(jù)COMMONDIALOG1.ACTION = 2OPEN COMMONDIALOG1.FILENAME FOR APPEND AS #1 WRITE #1, NOW WRITE #1, TEXT4.TEXTCLOSE #1END SUBPRIVATE SUB FORM_LOAD() COM.ADDI

38、TEM "COM1" COM.ADDITEM "COM2" COM.ADDITEM "COM3" COM.ADDITEM "COM4"END SUBPRIVATE SUB MSCOMM1_ONCOMM() 串口接收到數(shù)據(jù)時讀出數(shù)據(jù) SELECT CASE MSCOMM1.COMMEVENT CASE COMEVRECEIVE TEXT1.TEXT = TEXT1.TEXT & MSCOMM1.INPUT CASE ELSE END SELECTEND SUBPRIVATE SUB TEXT1_CHANGE(

39、) 對讀出的數(shù)據(jù)進(jìn)行處理IF (LEN(TEXT1.TEXT) MOD 4 = 0) AND (LEN(TEXT1.TEXT) > 0) THENTEXT3.TEXT = RIGHT$(TEXT1.TEXT, 4) & ""TEXT4.TEXT = TIME & CHR$(6) & CHR$(6) & CHR$(6) & TEXT3.TEXT & " " & TEXT4.TEXTTEXT7.TEXT = TIME$N = N + 1END IFIF N = 100 THEN N = 0 TEXT1.TEXT = ""END IFEND SUBPRIVATE SUB TEXT5_CHANGE() 改變讀數(shù)據(jù)的時間TIMER1.INTERVAL = VAL(TEXT5.TEXT) * 1000END SUBPRIVATE SUB T

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論