基于溫度采集的單片機和VisualC++串口通信(帶電腦端程序)課程設(shè)計報告_第1頁
基于溫度采集的單片機和VisualC++串口通信(帶電腦端程序)課程設(shè)計報告_第2頁
基于溫度采集的單片機和VisualC++串口通信(帶電腦端程序)課程設(shè)計報告_第3頁
基于溫度采集的單片機和VisualC++串口通信(帶電腦端程序)課程設(shè)計報告_第4頁
基于溫度采集的單片機和VisualC++串口通信(帶電腦端程序)課程設(shè)計報告_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、s18b20 數(shù)字溫度傳感器,可任意設(shè)置上下限報警溫度,采用數(shù)碼管實時顯示溫度,通過串口利用單片機與上位機的通信,對環(huán)境溫度采集并進行控制。關(guān)鍵詞:關(guān)鍵詞:stc89c51stc89c51 單片機、串口通信、上下限報警、數(shù)碼管顯示溫度單片機、串口通信、上下限報警、數(shù)碼管顯示溫度、2.2.引論引論隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。溫度是工業(yè)生產(chǎn)中主要的被控參數(shù)之一,與之相關(guān)的跟中溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過過程控制,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量。用單片機做成的產(chǎn)品外圍元件很少,能實現(xiàn)的功能卻很廣,廣

3、泛應(yīng)用于工業(yè),農(nóng)業(yè)等。兼于此,特用單片機設(shè)計此電路。溫度控制在實際生產(chǎn)中有著廣泛的應(yīng)用。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機械制造和食品加工等諸多領(lǐng)域中,人們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進行檢測和控制。因而設(shè)計一種較為理想的溫度控制系統(tǒng)是非常有價值的。在國內(nèi)外溫度控制成了一科廣泛應(yīng)用于很多領(lǐng)域的技術(shù)。具體如空調(diào)、冰箱、茶葉烘烤、糧倉溫度控制、等等。糧食溫度檢測是儲備庫中防止糧食霉爛、保質(zhì)存放的重要環(huán)節(jié)。對于一個農(nóng)業(yè)大國來講,糧食生產(chǎn)、需求與儲備量都很大。大量糧食在儲備的過程中常因糧食濕度過大而升溫發(fā)熱,導致糧食大量腐爛變質(zhì),給郭建帶來巨大損失。本論文正是以此

4、為出發(fā)點,對單片機控制的遠程溫度控制作了較詳盡的介紹。單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。ds18b20 是美國 dallas公司生產(chǎn)的數(shù)字溫度傳感器芯片,具有結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強、使用方便等優(yōu)點。本文設(shè)計的一種溫度控制系統(tǒng),用 stc89c52 單片機作為溫控器,選用ds18b20 數(shù)字溫度傳感器,可任意設(shè)置上下限報警溫度,采用數(shù)碼管實時顯示溫度,通過串口利用單片機與上位機的通

5、信,對溫度進行采集、數(shù)據(jù)處理和控制。3、目錄、目錄1、摘要、摘要2、引論、引論3、目錄、目錄4、正文、正文 4.1、設(shè)計目的、設(shè)計目的 4.2、具體內(nèi)容及要求、具體內(nèi)容及要求 4.3、系統(tǒng)總體方案設(shè)計、系統(tǒng)總體方案設(shè)計 4.3.1、設(shè)計方案論證、設(shè)計方案論證 4.3.2、系統(tǒng)總體構(gòu)成圖、系統(tǒng)總體構(gòu)成圖 4.3.3、硬件設(shè)計、硬件設(shè)計 4.3.4、軟件設(shè)計、軟件設(shè)計 4.4、系統(tǒng)各個模塊設(shè)計、系統(tǒng)各個模塊設(shè)計 4.4.1、單片機最小系統(tǒng)、單片機最小系統(tǒng) 4.4.2、顯示部分、顯示部分 4.4.3、報警電路、報警電路 4.4.4、測溫電路、測溫電路 4.4.5、單片機與上位機串、單片機與上位機串

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

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

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

9、 ds18b20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,電路簡單,精度高,軟硬件都以實現(xiàn),而且使用單片機的接口便于系統(tǒng)的再擴展,滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,費用較低,可靠性高,軟件設(shè)計也比較簡單,故采用了方案二。4.3.2、系統(tǒng)總體構(gòu)成圖如下:4.3.3、硬件設(shè)計:現(xiàn)在 pc 機提供的 com 口是采用 rs-232 接口標準的。而 rs-232 是用正負電壓來表示邏輯狀態(tài),與 ttl 以高低電平來表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機借口或終端的 ttl 器件(如單片機)連接,必須在 rs-232 與 ttl 電路之間進行電平和邏輯

10、關(guān)系的變換,變換電路選用芯片 max232.該器件包含 2 個驅(qū)動器、2 個接收器和一個電壓發(fā)生器電路提供 tia/eia-232-f 電平轉(zhuǎn)換成 5v ttl/cmos 電平。每一個發(fā)送器將 ttl/cmos 電平轉(zhuǎn)換成 tia/eia-232-f 電平。4.3.4、軟件設(shè)計單片機軟件設(shè)計單片機程序由主程序和中斷子程序組成的。主程序負責對來自上位機的命令進行解析并執(zhí)行讀溫度值、存儲溫度值、輸出控制等等,中斷服務(wù)程序只負責單片機和上位機之間的數(shù)據(jù)發(fā)送與接收。上位機程序設(shè)計由單片機采集的實時溫度,經(jīng)過處理后通過 max232 傳輸?shù)缴衔粰C pc,利用在 visual c+ 6.0 的通信控件 m

11、scomm 屬性設(shè)置和事件響應(yīng)的基礎(chǔ)上,實現(xiàn)與單片機串行通信,在上位機中,完成報警溫度設(shè)置、實時溫度數(shù)據(jù)顯示、曲線繪制,實時報警等功能。4.44.4、系統(tǒng)各個模塊設(shè)計:、系統(tǒng)各個模塊設(shè)計:4.4.1 單片機最小系統(tǒng)1、stc89c51 單片機管腳圖如下:2、各引腳功能:(1)xtal1(19 腳);xtal2(18 腳)-外接時鐘引腳。xtal1 為片內(nèi)振蕩電路的輸入電源和時鐘引腳.vcc(40 腳)gnd(20 腳)常壓為+5v,低壓為+3.3v。(2)端。 xtal2 為片內(nèi)振蕩電路的輸出端,80c51 的時鐘有兩種方式,一種是片內(nèi)振蕩方式,需要在這兩個引腳接石英晶體和振蕩電容, 振蕩電容

12、的值一般選擇為10p30p。另一種外部時鐘方式即 xtal1 接地,外部時鐘信號從 xtal2 腳輸入。(3)rst(9 腳)-單片機的復位引腳。p0 口(39 腳32 腳)雙向 8 位 i/o 口,每個口可以獨立控制。51 單片機 po 口內(nèi)部沒有上拉電阻,為高阻狀態(tài),所以不能正常的輸出高低電平,因此該組 i/o 口在使用的時候務(wù)必要接上拉電阻,一般我們采用接入 10k 的上拉電阻。p1 口(1 腳8 腳)-準雙向 8 位 i/o 口。每個口可以獨立操作控制,內(nèi)帶上拉電阻,這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,固然不是真正的雙向 i/o 口,之所以稱它為” 準雙向”是因為該口在作為輸入使

13、用前要先向該口進行寫一操作,然后單片機內(nèi)部才可以正確讀出外部信號,也就是要使其先要有個準備過程,所以才稱準雙向口。對 52 單片機的 p1.0引腳的第二功能為 t2 定時器的外部輸入,p1.1 引腳的第二功能為 t2ex 捕捉,重裝觸發(fā),即t2 的外部控制器。p2 口(21 腳28 腳)-準雙向 8 位 i/o 口,每個口都可以獨立操作控制,內(nèi)帶上拉電阻,與 p1 口相似。p3 口(10 腳17 腳)-準雙向 8 位 i/o 口,每個口可以獨立操作控制,內(nèi)帶上拉電阻,作為第一功能使用時就當作普通 i/o 口,與 p1 口相似。作為第二功能使用時,各引腳的定義如表:值得強調(diào)的是,p3 口的每一個

14、引腳均可以獨立定義為第一功能的輸入/輸出或第二功能p3 口引腳第二功能定義標號引腳第二功能說明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外部數(shù)據(jù)存儲器讀脈沖3、單片機最小系統(tǒng)其中:a、復位電路單片機上電時,當振蕩器正在運行時,只要持續(xù)給出 rst 引腳連個機器周期的高電平,便可完成系統(tǒng)復位。外部復位電路是為內(nèi)部復位電路提供兩個機器周期以上的電平而設(shè)計的。系統(tǒng)采用上電自動復

15、位,上電瞬間電容器上的電壓不能突變,rst 上的電壓是 vcc 上的電壓與電容器上的電壓之差,因而 rst 上的電壓與 vcc 上的電壓相同。隨著充電的進行,電容器上的電壓不斷上升,rst 上的 電壓就隨著下降,rst 腳上只要保持 10ms 以上高電平,系統(tǒng)就會有效復位。電容 c 可取 1033uf,電阻 r 可取 1.210k。在本系統(tǒng)設(shè)計中,c 取10uf,r 取 10k。b、振蕩電路xtal1 腳和 xtal2 腳分別構(gòu)成片內(nèi)振蕩器的反相放大器的輸入和輸出端,外接石英晶振或陶瓷晶振以及補償電容 c1、c2 選 47uf 構(gòu)成并聯(lián)諧振電路。當外接石英晶振時,電容c1、c2 選 30pf1

16、0pf;當外接陶瓷振蕩器時,電容 c1、c2 選 47uf10uf。系統(tǒng)中,外接電 c1、c2 的大小會影響振蕩器頻率的穩(wěn)定度、起振時間及溫度穩(wěn)定性。在設(shè)計電路板時,晶振和電容應(yīng)靠近單片機芯片,以便減少寄生電容,保證振蕩器穩(wěn)定可靠工作。在本硬件系統(tǒng)設(shè)計中,為保證串行通行波特率的誤差,選擇了 11.0592mhz 的標準石英晶振,電容 c1、c2 為 30pf。c、ea接高電平,選用片內(nèi)程序存儲器。4.4.2、顯示部分:本系統(tǒng)采用三極管驅(qū)動四位一體共陽數(shù)碼管顯示溫度,數(shù)碼管有兩種顯示方式,即靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個 8 位數(shù)據(jù)線來保持顯示的字形碼。當送入一次

17、字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用 cpu 時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復雜,成本較高;動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。本設(shè)計數(shù)碼管采用動態(tài)顯示。如下圖:4.4.3、報警電路本設(shè)計中采用三極管驅(qū)動蜂鳴器報警,其中,分別模擬制熱器和制冷器。當溫度高于上限溫

18、度時,蜂鳴器報警,燈亮,模擬啟動制冷器;當溫度低于下限溫度時,蜂鳴器報警,燈亮,模擬啟動制熱器。當按復位鍵時,數(shù)據(jù)清除。其中,與蜂鳴器相連的輕觸開關(guān)斷開時,蜂鳴器停止報警,實現(xiàn)手動解除報警。如圖:rst9xtal218xtal119gnd20p2.0(a8)21p2.1(a9)22p2.2(a10)23p2.3(a11)24p2.4(a12)25p2.5(a13)26p2.6(a14)27p2.7(a15)28psen29ale(prog)30ea(vpp)31p0.7(ad7)32p0.6(ad6)33p0.5(ad5)34p0.4(ad4)35p0.3(ad3)36p0.2(ad2)37p

19、0.1(ad1)38p0.0(ad0)39vcc40p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p3.0(rxd)10p3.1(txd)11p3.2(int0)12p3.3(int1)13p3.4(t0)14p3.5(t1)15p3.6(wr)16p3.7(ro)17u189c51gnd1dq2vdd3u2ds18b20r1res2celectro1jt1234567891110jd connector 9100pfc1capg19dir1a12b118a23b217a34b316a45b415a56b514a67b613a78b712a89b811u574

20、ls24512u3a7407100pfc2capgndssw-pbgndgndvccvccvccr210kgndp23p22abcdefgabcdefgdpdpcom2abfcgdedpcom1abfcgdedpabfcgdedpcom3com4abfcgdedpu6sr410561kp00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p0734u3b740756u3c740798u3d7407r3res2r4res2r5res2r6res2vccp30p31p32p33p30p31p32p33gndq8550vccr7res2p23p22c1+1v+2c

21、1-3c2+4c2-5v-6t2out7r2in8r2out9t2in10t1in11r1out12r1in13t1out14gnd15vcc16u4m ax232gndp34p35p34p35gnd100pfc3vcc100pfc4cap100pfc5100pfc6100pfc7vccr8res2p36p36b1belld1led_recbt?batterygndvcc.4、測溫電路本設(shè)計采用溫度傳感器測量溫度。ds18b20 簡介其兩種封裝如圖:溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場合時 dallas(達拉斯)公司生產(chǎn)的 ds18b20 溫度傳感器當仁不讓。超小的體積,超低的硬

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

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

24、號,最后 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(常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第 5 個字節(jié)則是用戶第 3 個 eeprom 的鏡像。第 6、7、8 個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第 9 個字節(jié)為前 8 個字節(jié)的 cr

25、c 碼。eeprom 非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),ds18b20 共 3 位 eeprom,并在 ram 都存在鏡像,以方便用戶操作。電路圖如下:.5、單片機與上位機串口電路在現(xiàn)代業(yè)控制中,串口通信的應(yīng)用越來越廣泛。單片機和pc機之間的串口通信在進行數(shù)據(jù)交換時經(jīng)常被使用。在串行通信時,要求通信雙方都采用一個標準接口,rs232c接口是單片機利pc機進行通信最常用的一種接口。單片機與pc機進行串口通信最簡單的二線制法,即接收數(shù)據(jù)針腳(rxd)與發(fā)送數(shù)據(jù)針腳(txd)相連,彼此交叉,信號地(gnd)對應(yīng)相接。但是,串口還不能直接和單片機相連,可以選用ma

26、x232和max485進行電平轉(zhuǎn)換。max232用于rs232c標準;max485用于rs485標準。rs232c標準規(guī)定在碼元畸變小于4的情況下,傳輸電纜長度最大約為l5米,最高傳輸速率為20kbits。rs485標準最人傳輸距離約為1219米,最大傳輸速率約為l0mbits。max232 芯片簡介max232 芯片是美信公司專門為電腦的 rs-232 標準串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5v 單電源供電。 引腳介紹:第一部分是電荷泵電路。由 1、2、3、4、5、6 腳和 4 只電容構(gòu)成。功能是產(chǎn)生+12v 和-12v兩個電源,提供給 rs-232 串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通

27、道。由 7、8、9、10、11、12、13、14 腳構(gòu)成兩個數(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

28、(+5v) 。由于串口用的是 ttl 電平,和 rs232 電平不同,因此,單片機和 pc 通信時需要進行電平轉(zhuǎn)換,常用的 ic 是 max232,連接圖如下圖所示,其中 max232 供電腳為5v。采用了三線制連接串口,也就是說和計算機的 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信號在正負

29、電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5+15v,負電平在-5-15v電平。當無數(shù)據(jù)傳輸時,線上為ttl,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從ttl電平到rs-232電平再返回ttl電平。接收器典型的工作電平在+3+12v與-3-12v。由于發(fā)送電平與接收電平的差僅為2v至3v左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。rs-232是為點對點(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計的,其驅(qū)動器負載為37k。所以rs-232適合本地設(shè)備之間的通信。上位機和下位機的接線方法如圖上位機和下位機的接線方法mcs-51 內(nèi)部含有一個可編程

30、全雙工串行通信接口,具有 uart 的全部功能。該接口電路不僅能同時進行數(shù)據(jù)的發(fā)送和接收,也可作為一個同步移位寄存器使用。 在進行異步通信時,數(shù)據(jù)的發(fā)送和接收分別在各自的時鐘(tclk 和 rclk)控制下進行的,但都必須與字符位數(shù)的波特率保持一致。mcs-51 串行口的發(fā)送和接收時鐘可由兩種方式產(chǎn)生,一種是由主機頻率 fosc 經(jīng)分頻后產(chǎn)生,另一種方式是由內(nèi)部定時器 t1 或 t2 的溢出率經(jīng) 16 分頻后提供。發(fā)送和接收的過程如下:串行口的發(fā)送過程由指令 mov sbuf,a 啟動,即 cpu 由一條寫發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫入串行口的發(fā)送緩沖器 sbuf(發(fā))中,再由硬件電路自動

31、在字符的始、末加上起始位(低電平) 、停止位(高電平)及其它控制位(如奇偶位等) ,然后在移位脈沖shift 的控制下,低位在前,高位在后,從 txd 端(方式 0 除外)一位位地向外發(fā)送。串行口的接收與否受制于允許接收位 ren 的狀態(tài),當 ren 被軟件置“1”后,允許接收器接收。接收端 rxd 一位位地接收數(shù)據(jù),直到收到一個完整的字符數(shù)據(jù)后,控制電路進行最后一次移位,自動去掉啟始位,使接收中斷標志 ri 置“1” ,并向 cpu 申請中斷。cpu 響應(yīng)中斷,用一條指令(mov a,sbuf)把接收緩沖器 sbuf(收)的內(nèi)容讀入累加器。ti 和 ri 是由硬件置位的,但需要用軟件復位。.

32、、系統(tǒng)軟件設(shè)計.、單片機軟件設(shè)計:(1)主程序:主程序的主要功能是負責溫度的實時顯示、讀出并處理 ds18b20 的測量的當前溫度值,溫度測量每 1s 進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程如下所示: 主程序流程圖(2)讀溫度子程序:先讓 ds18b20 復位,然后發(fā)跳過 rom 匹配命令,再發(fā)出溫度轉(zhuǎn)換命令,讓 ds18b20 進行溫度轉(zhuǎn)換,延時等待轉(zhuǎn)換完畢后,再將已轉(zhuǎn)換的溫度值一一地從各個 ds18b20 取出,轉(zhuǎn)換成ascall 碼后再發(fā)送到 pc 機上,如此循環(huán)。程序框圖如下:讀溫度程序框圖(3)溫度比較報警子程序此程序是將實際溫度與設(shè)置的報警上下限比較,決定是否發(fā)出

33、報警信號。由于 t 為實際溫度的絕對值,th、tl 也是溫度的絕對值,因此判斷大小關(guān)系時要通過其正負符號來確定。溫度比較報警子程序4.5.2.上位機軟件設(shè)計pc 機程序中包括串口通信模塊,繪圖模塊,命令按鈕模塊,溫度顯示模塊等。一、串口通信模塊在本設(shè)計中,采用 mscomm 控件進行串口的通訊,mscomm 控件串口具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,pc 機可以利用串行口與其它設(shè)備實現(xiàn)輕松連接,簡單高效地實現(xiàn)設(shè)備之間的通訊。此控件的事件響應(yīng)有兩種處理方式,事件驅(qū)動方式:由 mscomm控件的 oncomm 事件捕獲并處理通訊錯誤及事件;查詢方式:通過檢查 commevent 屬性

34、的值來判斷事件和錯誤。 二、繪圖模塊在 vc 中,繪圖可以利用 line 和 circle 方法繪制幾何圖形11,還可以利用 botton控件繪制各種圖表。而本設(shè)計就采用 botton 控件進形繪制溫度變化曲線圖。botton 控件在繪制直方圖(條形圖) 、折線圖、餅圖、標記圖、填充區(qū)域圖等各種常用的數(shù)據(jù)分析圖形方面有很大的優(yōu)勢,我們只要將需按圖形表示的數(shù)據(jù)裝入數(shù)組中,然后將數(shù)組數(shù)據(jù)賦值給botton 控件,再進行一些簡單的圖形標題、背景、圖例、注腳方面的定義,就可以得到所期望的數(shù)據(jù)分析圖形。由于 botton 控件不是 vc 內(nèi)建的基本控件,因此在使用前必須用工程菜單中的“部件” ,添加 b

35、otton 控件。添加 botton 控件的選項是“microsoft chart control 6.0(oledb)” 。三、命令按鈕11模塊大多數(shù)應(yīng)用程序中都有命令按鈕 commandbutton 控件,用戶可以單擊按鈕執(zhí)行某項操作。在本設(shè)計統(tǒng)中要讓下位機執(zhí)行相應(yīng)操作,就是通過命令按鈕給下位機下發(fā)命令實現(xiàn)該功能。命令按鈕是 vb 應(yīng)用程序中經(jīng)常使用的對象,程序運行中要執(zhí)行一條或一組命令,通常通過用鼠標單擊命令按鈕來實現(xiàn),當然具體產(chǎn)生何種動作要通過執(zhí)行相應(yīng)的事件過程中的程序代碼來決定。四、溫度顯示模塊在本設(shè)計中顯示由文本框和標簽控件完成。完成后的 vc 界面如下:5.5.結(jié)論結(jié)論 本溫控系

36、統(tǒng)通過 stc89c51 單片機采集從 ds18b20 溫度傳感器所測得的溫度數(shù)據(jù),并通過串口實時傳送到上位機。單片機系統(tǒng)完成對溫度信號的采集、設(shè)定上下限報警等功能,并通過串口通信與 pc 機進行通信,在 pc 機上進行顯示及一些操作,從而使系統(tǒng)更加直觀,使用更加方便。本設(shè)計主要解決了以下幾個問題:1.系統(tǒng)的硬件采用以單片機為核心的硬件電路,所用元器件也很少,體積小,重量輕,抗干擾能力強,對環(huán)境要求不高,價格低廉。2.實現(xiàn)單片機與 pc 機的通信功能,實現(xiàn)遠距離的進行監(jiān)控.當然本設(shè)講也存在著一些不足:(1)電路設(shè)計技術(shù)還不夠成熟(2)本設(shè)計通信采用 rs232,如果采用 rs485 通信距離將

37、會大大增加這個系統(tǒng)本身或通過擴展可應(yīng)用于智能家居、工業(yè)控制、智能農(nóng)業(yè)、環(huán)境監(jiān)測等各個領(lǐng)域的溫度采集以及數(shù)據(jù)分析控制。相信,隨著單片機與pc應(yīng)用的不斷推廣和不斷成熟,基于單片機與pc機的溫度控制系統(tǒng)將會得到廣泛的應(yīng)用。 (3)本設(shè)計在繪圖的時候,定位范圍不是很好,圖線會伸出繪圖區(qū)間。6 6、總結(jié)心得、總結(jié)心得7 7、參考文獻參考文獻 單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)基于c51的proteus仿真(第2版) 張齊 電子工業(yè)出版社 c+程序設(shè)計(第四版) 譚浩強 清華大學出版社 c/c+串口通信典型應(yīng)用實例編程實踐 曹衛(wèi)斌 電子工業(yè)出版社 visual c+數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn) 田敏 人民郵電出版社

38、 c語言常見問題集 steve summit(原著) 翻譯:朱群英 孫云 單片機c語言程序設(shè)計實訓100例基于80c51+proteus仿真 彭偉 北京航空航天大學出版社附錄附錄1、總體電路圖:電腦端程序:dim n as integerdim t as integer 定義全局變量private sub command2_click() 單擊按鈕執(zhí)行數(shù)據(jù)采集或停止采集 if command2.caption = 采集數(shù)據(jù) then command2.caption = 停止采集 timer1.enabled = true mscomm1.output = a else command2.ca

39、ption = 采集數(shù)據(jù) timer1.enabled = false mscomm1.output = b mscomm1.output = b end ifend subprivate sub command4_click() 單擊按鈕清空數(shù)據(jù)text1.text = text4.text = end subprivate sub command5_click() 單擊按鈕開關(guān)通信端口 if command5.caption = 開啟通信 then command5.caption = 關(guān)閉通信 com.enabled = false command2.enabled = true com

40、mand1.enabled = true text2.enabled = true select case com.listindex 指定端口號(com) 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ù)

41、據(jù) mscomm1.inputlen = 0 讀出接收緩沖區(qū)的所有內(nèi)容 mscomm1.inbuffersize = 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 c

42、ommand2.caption = 采集數(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.additem

43、 com1 com.additem com2 com.additem com3 com.additem com4end 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() 對讀出的數(shù)據(jù)進行處理if (len(text1.text) mod 4 = 0) and (len(text1.text) 0) thentext3.text =

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論