版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 福建工程學(xué)院國脈信息學(xué)院 畢業(yè)設(shè)計(論文)專 業(yè): 班級: 設(shè)計題目: 基于單片機的低功耗溫度記錄儀 學(xué)生姓名: 學(xué)號: 起止日期: 設(shè)計地點: 指導(dǎo)教師: 2011 年 03 月 25 日基于單片機的低功耗溫度記錄儀設(shè)計 1、摘要本文介紹了一種基于 at89c51 單片機與 pc 機串口通信的溫度控制系統(tǒng),用單片機作下位機完成溫度數(shù)據(jù)的采集和執(zhí)行 pc 機發(fā)出的控制執(zhí)行命令;用 pc 機作上位機接收單片機發(fā)送的數(shù)據(jù),進行數(shù)據(jù)處理,向單片機發(fā)送控制命令,四位一體共陰數(shù)碼管實時顯示當前溫度。 pc 機與單片機采甪串行通信,可實現(xiàn)溫度檢測和采集并處理數(shù)據(jù)的人機友好界面。本設(shè)計充分利用 pc 機
2、vb6.0 軟件強大的數(shù)據(jù)處理功能和友好的人機界面,對溫度進行實時曲線顯示。本設(shè)計由硬件和軟件二部分組成。通過對系統(tǒng)軟件和硬件的合理規(guī)劃,發(fā)揮單片機自身集成多系統(tǒng)功能單元的優(yōu)勢,在不減少功能的前提下有效降低了成本,同時實現(xiàn)低功耗運行,系統(tǒng)操作簡便,結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下進行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:at89c51 單片機,pc 機,串行通信,數(shù)據(jù)采集以及處理2、引論隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。溫度是工業(yè)生產(chǎn)中主要的被控參數(shù)之一,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量。許多化學(xué)反
3、應(yīng)的工藝過程必須在適當?shù)臏囟认虏拍苷_M行;煉油過程中,原油必須在不同的溫度和壓力條件下進行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作。還有比如在觀察用藥劑前后病人體溫隨時間的變化情況,臨床一般都采用水銀或電子溫度計,隔一段時間測量一次并手工記錄結(jié)果。這種傳統(tǒng)方式給病人帶來了很多不便,也加大了護理工作量。更為欠缺的是測量時間間隔不夠短,在體溫變化率較高的情況下,容易造成處理不當或不足,達不到最理想的疾病控制與治療效果。傳統(tǒng)的溫度記錄儀通常采用的是人工記錄或普通記錄儀用墨水在記錄紙上繪制曲線,其體積龐大、精度低、墨水易堵塞、費時費力。 。 。 。 。 。無
4、紙溫度記錄儀產(chǎn)生,并因為其更準確地數(shù)據(jù)記錄、更方便的數(shù)據(jù)存儲、更便捷的數(shù)據(jù)分析功能,所占市場份額逐年猛增;近年來推出的帶 usb 接口的無紙記錄儀更是極大的方便了數(shù)據(jù)的下載和保存。因此可見,設(shè)計出一款測量溫度并自動記錄下數(shù)據(jù)的溫度記錄儀是多么重要。用單片機做成的產(chǎn)品外圍元件很少,能實現(xiàn)的功能卻很廣,廣泛應(yīng)用于工業(yè),農(nóng)業(yè)等。兼于此,特用單片機設(shè)計此電路。單片機發(fā)展的三個階段:(1)第一階段(1976-1978):單片機的控索階段。以 intel 公司的 mcs 48 為代表。mcs 48 的推出是在工控領(lǐng)域的控索,參與這一控索的公司還有 motorola 、zilog 等,都取得了滿意的效果。這
5、就是 scm 的誕生年代, “單機片”一詞即由此而來。(2)第二階段(1978-1982)單片機的完善階段。intel 公司在 mcs 48 基礎(chǔ)上推出了完善的、典型的單片機系列 mcs 51。它在以下幾個方面奠定了典型的通用總線型單片機體系結(jié)構(gòu)。完善的外部總線。mcs-51 設(shè)置了經(jīng)典的 8 位單片機的總線結(jié)構(gòu),包括 8 位數(shù)據(jù)總線、16位地址總線、控制總線及具有很多機通信功能的串行通信接口。 cpu 外圍功能單元的集中管理模式。 體現(xiàn)工控特性的位地址空間及位操作方式。 指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。(3)第三階段(1982-1990):8 位單片機的鞏固發(fā)展及
6、16 位單片機的推出階段,也是單片機向微控制器發(fā)展的階段。intel 公司推出的 mcs 96 系列單片機,將一些用于測控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運行監(jiān)視器、脈寬調(diào)制器等納。在實時檢測和自動控制的單片機應(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 單片機作為溫控器,選用 ds18b20 數(shù)字溫度傳感器,單片機與上位機之間通過ma
7、x232 串口進行通信,對測試點溫度采集,實時顯示,數(shù)據(jù)處理。3、目 錄1、摘要22、引論33、目錄54、正文74.1.1、設(shè)計目的74.1.2、系統(tǒng)實現(xiàn)功能74.2、系統(tǒng)總體方案設(shè)計84.2.1、系統(tǒng)總體設(shè)計框圖84.2.2、系統(tǒng)硬件設(shè)計方案84.2.3、系統(tǒng)軟件設(shè)計方案84.3、系統(tǒng)各個模塊設(shè)計94.3.1、單片機最小系統(tǒng)94.3.2、顯示電路114.3.3、串行通信電路134.3.4、ds18b20 溫度傳感器電路134.3.5、電源電路154.3.6、單片機與 pc 機串口連接電路154.4、系統(tǒng)軟件設(shè)計174.4.1、單片機軟件設(shè)計174.4.2、上位機軟件設(shè)計174.5、系統(tǒng)調(diào)試1
8、95、結(jié)論206、致謝207、參考文獻218、附錄22附錄 1、系統(tǒng)總體電路圖22附錄二、單片機程序22附錄三、pc 機程序28正文正文( 4.1 設(shè)計目的及系統(tǒng)實現(xiàn)功能要求4.1.1 設(shè)計目的:(1)了解電子系統(tǒng)的設(shè)計方法,鞏固和提高學(xué)過的基礎(chǔ)理論和專業(yè)知識; (2)學(xué)習(xí) ds18b20 數(shù)字溫度傳感器的測溫原理, (3) 掌握串口通信協(xié)議及其編程方法, (4)增強對單片機的認識,掌握分析處理問題的方法,進行調(diào)試、計算等基本技能的訓(xùn)練,達到具有一定程度的實際工作能力。(5) 學(xué)會用 protel99se 進行電路原理圖和 pcb 圖的繪制。 (6) 學(xué)習(xí)用 pspice、 multisim
9、8 等仿真軟件進行電路設(shè)計和仿真。 4.1.2.系統(tǒng)實現(xiàn)功能:1.內(nèi)容及要求:研究基于單片機的低功耗溫度記錄儀,可以以一定的時間間隔連續(xù)記錄系統(tǒng)溫度,并提供通訊接口將溫度數(shù)據(jù)上傳到 pc 機。利用 vb/vc/delphi 編制 pc 示例程序。2.主要技術(shù)指標:(1) 、溫度測量范圍 0-70,系統(tǒng)實現(xiàn)低功耗運行;(2) 、溫度記錄數(shù)不少于 200 條;(3) 、提供 pc 機通訊接口;(4) 、pc 機軟件實現(xiàn)對溫度數(shù)據(jù)分析、統(tǒng)計和處理;4.2 系統(tǒng)總體方案設(shè)計4.2.1.系統(tǒng)總體構(gòu)成框圖如下:at89c51pc 機rs232數(shù)碼管顯示恒壓電源晶振電路復(fù)位電路ds18b20溫度傳感器系統(tǒng)總
10、體構(gòu)成框圖4.2.2 系統(tǒng)硬件設(shè)計方案:1.利用 at89c51 自身強大的功能和優(yōu)異的可擴展性,配上四位一體數(shù)碼管和按鍵等少量外圍電路,就能搭建合適本次實驗的小系統(tǒng)。從而大大縮短設(shè)計流程,把設(shè)計的重點放在溫度探測單元,串行通信協(xié)議兩個部分。2.現(xiàn)在 pc 機提供的 com1、com2 是采用 rs-232 借口標準的。而 rs-232 是用正負電壓來表示邏輯狀態(tài),與 ttl 以高低電平來表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機借口或終端的 ttl 器件(如單片機)連接,必須在 rs-232 與 ttl 電路之間進行電平和邏輯關(guān)系的變換,變換電路選用有德州儀器公司(tl)推出的一款兼容
11、rs-232 標準的芯片max232.該器件包含 2 個驅(qū)動器、2 個接收器和一個電壓發(fā)生器電路提供 tia/eia-232-f 電平轉(zhuǎn)換成 5v ttl/cmos 電平。每一個發(fā)送器將 ttl/cmos 電平轉(zhuǎn)換成 tia/eia-232-f 電平。4.2.3 系統(tǒng)軟件設(shè)計方案:單片機軟件設(shè)計單片機程序由主程序和中斷子程序組成的。主程序負責(zé)對來自上位機的命令進行解析并執(zhí)行讀溫度值、存儲溫度值、輸出控制等等,中斷服務(wù)程序只負責(zé)單片機和上位機之間的數(shù)據(jù)發(fā)送與接收。上位機程序設(shè)計由單片機采集的測試點實時溫度,通過 max232 傳輸?shù)缴衔粰C pc,利用在 visual basic 6.0 的通信控
12、件 mscomm 屬性設(shè)置和事件響應(yīng)的基礎(chǔ)上,實現(xiàn)與單片機串行通信,在上位機中,完成溫度傳感器 64 位激光 rom 讀取并顯示、實時溫度數(shù)據(jù)顯示、數(shù)據(jù)存儲、曲線繪制、歷史數(shù)據(jù)查詢,其中在數(shù)據(jù)查詢功能中,設(shè)計了時間查詢、溫度查詢等功能。4.3 系統(tǒng)各個模塊設(shè)計:4.3.1 單片機最小系統(tǒng)(1)at89c51 管腳圖如下:at89c51 封裝引腳圖引腳說明: 電源引腳 vcc(40 腳):典型值5v。 vss(20 腳):接低電平。 外部晶振 x1、x2 分別與晶體兩端相連接。當采用外部時鐘信號時,x2 接振蕩信號,x1 接地。 輸入輸出口引腳: p0 口:i/o 雙向口。作輸入口時,應(yīng)先軟件置
13、“ 1” 。 p1 口:i/o 雙向口。作輸入口時,應(yīng)先軟件置“ 1” 。 p2 口:i/o 雙向口。作輸入口時,應(yīng)先軟件置“ 1” 。 p3 口:i/o 雙向口。作輸入口時,應(yīng)先軟件置“ 1” 。 控制引腳: rst/vpd、ale/-prog、-psen、-ea/vpp 組成了 msc-51 的控制總線。 rst/vpd(9 腳):復(fù)位信號輸入端(高電平有效) 。 第二功能:加+5v 備用電源,可以實現(xiàn)掉電保護 ram 信息不丟失。 ale/-prog(30 腳):地址鎖存信號輸出端。 第二功能:編程脈沖輸入。 -psen(29 腳):外部程序存儲器讀選通信號。 -ea/vpp(31 腳)
14、:外部程序存儲器使能端。 第二功能:編程電壓輸入端(+21v) 。(2)單片機最小系統(tǒng):單片機最小系統(tǒng)(3) 復(fù)位電路:單片機上電時,當振蕩器正在運行時,只要持續(xù)給出 rst 引腳連個機器周期的高電平,便可完成系統(tǒng)復(fù)位。外部復(fù)位電路是為內(nèi)部復(fù)位電路提供兩個機器周期以上的電平而設(shè)計的。系統(tǒng)采用上電自動復(fù)位,上電瞬間電容器上的電壓不能突變,rst 上的電壓是 vcc 上的電壓與電容器上的電壓之差,因而 rst 上的電壓與 vcc 上的電壓相同。隨著充電的進行,電容器上的電壓不斷上升,rst 上的 電壓就隨著下降,rst 腳上只要保持 10ms 以上高電平,系統(tǒng)就會有效復(fù)位。電容 c 可取 1033
15、uf,電阻 r 可取 1.210k。在本系統(tǒng)設(shè)計中,c 取10uf,r 取 10k。(4)振蕩電路:xtal1 腳和 xtal2 腳分別構(gòu)成片內(nèi)振蕩器的反相放大器的輸入和輸出端,外接石英晶振或陶瓷晶振以及補償電容 c1、c2 選 47uf 構(gòu)成并聯(lián)諧振電路。當外接石英晶振時,電容c1、c2 選 30pf10pf;當外接陶瓷振蕩器時,電容 c1、c2 選 47uf10uf。系統(tǒng)中,外接電 c1、c2 的大小會影響振蕩器頻率的穩(wěn)定度、起振時間及溫度穩(wěn)定性。在設(shè)計電路板時,晶振和電容應(yīng)靠近單片機芯片,以便減少寄生電容,保證振蕩器穩(wěn)定可靠工作。在本硬件系統(tǒng)設(shè)計中,為保證串行通行波特率的誤差,選擇了 1
16、1.0592mhz 的標準石英晶振,電容 c1、c2 為 30pf。(3)ea接高電平,選用片內(nèi)程序存儲器。(4) 單片機編程4.3.2 顯示電路數(shù)碼管顯示電路部分如圖:顯示部分采用四位一體共陰數(shù)碼管,為了顯示數(shù)字或字符,必須對數(shù)字或字符進行編碼。七段數(shù)碼管加上一個小數(shù)點,共計 8 段。因此為 led 顯示器提供的編碼正好是一個字節(jié)。 共陰數(shù)碼管碼表0 x3f , 0 x06 , 0 x5b , 0 x4f , 0 x66 , 0 x6d , 0 1 2 3 4 5 0 x7d , 0 x07 , 0 x7f , 0 x6f , 0 x77 , 0 x7c , 6 7 8 9 a b 0 x3
17、9 , 0 x5e , 0 x79 , 0 x71 , 0 x00 c d e f 無顯示靜態(tài)顯示方式led 顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個 8 位數(shù)據(jù)線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用 cpu 時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高。動態(tài)顯示 動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作
18、用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。 本設(shè)計采用四位一體共陰數(shù)碼管動態(tài)顯示。4.3.3 串行通信電路由于串口用的是 ttl 電平,和 rs232 電平不同,因此,單片機和 pc 通信時需要進行電平轉(zhuǎn)換,常用的 ic 是 max232,連接圖如下圖所示,其中 max232 供電腳為5v。采用了三線制連接串口,也就是說和計算機的 9 針串口只連接其中的 3 根線:第 5 腳的 gnd、第 2腳的 rxd、第 3 腳的 txd。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了,電路如下圖所示,max232 的第
19、10 腳和單片機的 11 腳連接,第 9 腳和單片機的 10 腳連接。max232 串口通信電路圖(9 孔串口接頭)4.3.4 ds18b20 溫度傳感器電路ds18b20 溫度傳感器是美國 dallas 半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn) 9-12 位的數(shù)字值讀數(shù)方式。ds18b20 的性能特點如下:(1)獨特的單線接口僅需要一個端口引腳進行通信,ds18b20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊。(2)ds18b20 支持多點組網(wǎng)功能,多個 ds18b
20、20 可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)測溫;(3)無須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);(4)可通過數(shù)據(jù)線供電,電壓范圍為 3.0-5.5;(5)零待機功耗;(6)溫度以9或12位數(shù)字,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫;(7)用戶可定義報警設(shè)置;(8)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;(9)負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;(10)測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給cpu,同時可傳送crc校驗碼,具有極強的抗干擾糾錯能力ds18b2
21、0 采用 3 腳 pr35 封裝或 8 腳 soic 封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖以及測溫原理圖如下所示:引腳排列電路連接如下圖:4.3.5 恒壓電源電路本設(shè)計的供電電路主要變壓器、整流橋、濾波電路和 78l05 芯片組成。電源供電電路如圖所示:系統(tǒng)供電電源總體電路圖4.3.6 單片機與 pc 機串口連接電路:目前rs-232是pc機與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。rs-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。rs-232采取不平衡傳輸方式,即所謂單端通訊。圖2-9 rs232引腳圖收、發(fā)端的數(shù)據(jù)信號是相對于信號地,如從dte設(shè)備發(fā)出的數(shù)據(jù)在使用db25連接器時是2
22、腳相對7腳(信號地)的電平,db25各引腳定義參見圖2-9。典型的rs-232信號在正負電平之間擺動,在發(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è)備之間的通
23、信。上位機和下位機的接線方法如圖上位機和下位機的接線方法mcs-51 內(nèi)部含有一個可編程全雙工串行通信接口,具有 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 由一條寫
24、發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫入串行口的發(fā)送緩沖器 sbuf(發(fā))中,再由硬件電路自動在字符的始、末加上起始位(低電平) 、停止位(高電平)及其它控制位(如奇偶位等) ,然后在移位脈沖shift 的控制下,低位在前,高位在后,從 txd 端(方式 0 除外)一位位地向外發(fā)送。串行口的接收與否受制于允許接收位 ren 的狀態(tài),當 ren 被軟件置“1”后,允許接收器接收。接收端 rxd 一位位地接收數(shù)據(jù),直到收到一個完整的字符數(shù)據(jù)后,控制電路進行最后一次移位,自動去掉啟始位,使接收中斷標志 ri 置“1” ,并向 cpu 申請中斷。cpu 響應(yīng)中斷,用一條指令(mov a,sbuf)把接收緩沖
25、器 sbuf(收)的內(nèi)容讀入累加器。ti 和 ri 是由硬件置位的,但需要用軟件復(fù)位。4.4 系統(tǒng)軟件設(shè)計4.4.1 單片機軟件設(shè)計:初始化向 ds1820 讀一字節(jié)向 ds1820 寫一字節(jié)讀取溫度及轉(zhuǎn)換顯示溫度4.4.2 上位機軟件設(shè)計:vb 是微軟公司出品的一個快速可視化程序開發(fā)工具軟件,借助微軟在操作系統(tǒng)和辦公軟件的壟斷地位,vb 在短短的幾年內(nèi)風(fēng)靡全球。vb 是極有和功能強大的軟件,主要表現(xiàn)在:所見即所得的界面設(shè)計,基于對象的設(shè)計方法,極短的軟件開發(fā)周期,較易維護的生成代碼。美國微軟公司在 1991 年推出 vb1.0 至今已經(jīng)經(jīng)歷了 6 個版本,vb6.0 運行在 win9x 或w
26、inme,win2000,winxp,windowsnt 等操作系統(tǒng)下,是一個 32 位的應(yīng)用程序開發(fā)工具。它主要有以下幾個特點9:(1)成功地簡化了界面的設(shè)計過程。它在 windows 平臺上提供了圖形用戶界面(gui)的集成開發(fā)環(huán)境(ide) 。(2)采用簡單易學(xué)的 basic 語言。它既適用于沒有任何編程經(jīng)驗的開發(fā)者學(xué)習(xí),也適合于開發(fā)各種復(fù)雜的底層應(yīng)用程序。(3)具有強大的數(shù)據(jù)和字符串處理功能。visual basic 提供了許多現(xiàn)成的字符串處理函數(shù)。(4)易于擴充。除了簡單易學(xué)的特點以外,visual basic 還是一種易于擴充功能的開發(fā)系統(tǒng)。(5)提供了 intellisense
27、技術(shù)。當你在 visual basic 的代碼窗口敲進對象名稱的時候 intellisense 技術(shù)會自動向你顯示一些相關(guān)的信息,例如對象的屬性和方法等。(6)提供了多種向?qū)?。利用這些向?qū)?,你可以快速地完成一般性的任?wù),例如生成其控件不綁定到數(shù)據(jù)控件上的純代碼窗體,建立查詢,添加工具,制作圖表,以及發(fā)布創(chuàng)建的應(yīng)用程序等。完成后的界面如圖 3-3 所示 單片機與 pc 的溫度控制系統(tǒng)的 vb 界面4.5 系統(tǒng)調(diào)試硬件調(diào)試首先檢查電路的焊接是否正確,然后可用萬用表測試或通電檢測。硬件調(diào)試主要是針對主控板中單片機模塊和外部輸入、輸出模塊進行調(diào)試。這一部分硬件調(diào)試主要分成兩大塊:上電前的調(diào)試和上電后的
28、調(diào)試。在電路安裝焊接前,首先是對元器件的檢測。對 at89c51、ds18b20 在未接電路時是不能檢測其好壞的。對于其他器件則可利用萬用表進行測量。電阻的測量,用萬用表的歐姆檔測量。(1)上電前的調(diào)試在上電前,必須確保電路中不存在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況等。只要將一個表筆固定在電源端或接地端,另儀表筆接其他連接點,指針偏轉(zhuǎn)到 0 刻度就是通路的。通過萬用表的檢測,沒有發(fā)現(xiàn)短路和斷路的地方了,電路基本正常后再進行下一步調(diào)試。(2)上電后的調(diào)試在確保硬件電路正常,無異常
29、情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確。在本設(shè)計中,上電調(diào)試主要是檢測單片機部分與外部輸入、輸出電路是否接對。本次調(diào)試需要通過軟硬件聯(lián)調(diào)來實現(xiàn)。由于 ds18b20 與單片機采用串行數(shù)據(jù)傳送,因此,對ds18b20 進行讀/寫編程時必須嚴格地保證讀/寫時序,否則將無法讀取測量結(jié)果。本程序采用單片機 c 語言編寫,用 keil c51 編譯器編程調(diào)試。5、結(jié)論首先,通過這次應(yīng)用系統(tǒng)設(shè)計,在很大程度上提高了自己的獨立思考能力和單片機的專業(yè)知識,也深刻了解寫一篇應(yīng)用系統(tǒng)的步驟和格式,有過這樣的一次訓(xùn)練,相信在接下來的日子我們都會了,而且會做得更好。
30、我所寫的系統(tǒng)主要根據(jù)目前節(jié)省能源的發(fā)展趨勢和國內(nèi)實際的應(yīng)用特點和要求,系統(tǒng)以單片機at89c51為核心部件,采用了自動化的結(jié)構(gòu)形式,實現(xiàn)對溫度的檢測、記錄與數(shù)據(jù)處理。利用c語言編制,運行程序該系統(tǒng)的主要特點是: 1)適用性強,利用vb友好的人機界面,用戶只需對界面參數(shù)進行設(shè)置并啟動系統(tǒng)正常運行便可實現(xiàn)對溫度的測量、記錄與數(shù)據(jù)處理。 2)將單片機以及溫度傳感器引入對溫度的分析和處理中,單片機控制決策無需建立被控對象的數(shù)學(xué)模型,系統(tǒng)的魯棒性強,適合對非線性、時變、滯后系統(tǒng)的控制,對溫度測量系統(tǒng)采用單片機控制非常適合。3)系統(tǒng)成本低廉,操作非常簡單,可擴展性強,只要稍加改變,即可增加其他使用功能。通
31、過對本設(shè)計的思考,更加加深了對單片機的認識,熟練了單片機的編程,更對當前的溫度傳感器有了更深刻的認識與了解,但是由于此系統(tǒng)依賴溫度傳感器,因而對溫度傳感器的穩(wěn)定性,線性等諸多方面有著嚴格的要求,但是傳感器的性能越好,相對而言其價格也就越高,因而在此設(shè)計中,溫度傳感器我個人覺的還是存在遺憾,其次,由于采用了c語言,所以其編程過程復(fù)雜不易查錯。最后由于時間緊迫,本設(shè)計還有諸多地方需要改進,比如改用rs-485串行接口或是網(wǎng)線,實現(xiàn)遠距離操作。6、致謝在我論文即將完成之際,我首先要向在論文寫作中給予我悉心關(guān)懷、鼓勵和指導(dǎo)的陳松嶺老師致以深深的敬意和謝意!老師一絲不茍的鉆研精神,嚴謹求實的治學(xué)態(tài)度,執(zhí)
32、著忘我的工作作風(fēng),獨樹一幟的思維方式,使學(xué)生受益匪淺,并終身難忘。所有人的青春,從一開始的空白無物,到后來的極欲飛揚,陰霾滿地,再到現(xiàn)在的塵埃落定,一切都在發(fā)生,一切都在結(jié)束.美好而繽紛的大學(xué)生活,就這樣畫上了句號,真有些難忘和難舍。純?nèi)玢@,強如鋼。最大的收獲是心智的成熟,一千多個日子里曾悲傷過、失落過、苦惱過,委屈過。而現(xiàn)在懂得擦干眼淚,收拾傷痕,站起繼續(xù)勇往直前,前面的荊棘,不算什么,路上的障礙,我每攀登越過一次,便往云端靠近了一步。感謝我的朋友和同學(xué)對我的關(guān)心和幫助!7、參考文獻1 陳大欽主編 電子技術(shù)基礎(chǔ)實驗 高等教育出版社 2004 年2 余錫存 曹國華.單片機原理及接口技術(shù)m.陜西
33、:西安電子科技大學(xué)出版社3 蘇家健. 單片機原理及應(yīng)用技術(shù) .高等教育出版社,2004.114 周航慈. 單片機程序設(shè)計基礎(chǔ) . 北京航空航天大學(xué)出版社,2003.075 李仁發(fā)、肖玲、吳強.數(shù)字邏輯設(shè)計(第四版). 人民郵電出版社,2006.056 51 單片機學(xué)習(xí)網(wǎng) http:/www.51c51.com/7 單片機學(xué)習(xí)網(wǎng) http:/www.mcustudy.com/8單片機 c 語言應(yīng)用程序設(shè)計第四版,馬忠梅主編,北京航空航天大學(xué)出版社9單片機開發(fā)與典型工程項目實例詳解 ,邊海龍、孫永奎編著,電子工業(yè)出版社1051 單片機 c 語言教程-入門、提高、開發(fā)、拓展全攻略 ,郭天祥 編著,
34、電子工業(yè)出版社,200911 吳黎明主編 單片機原理及應(yīng)用技術(shù) 科學(xué)出版社 2003 年12 劉樂善主編 微型計算機接口技術(shù)及應(yīng)用 華中科技大學(xué)出版社 2004 年13 j.a.connelley. analog integrated circuits. john wiley &sons14 吳洪潭,肖艷萍,趙偉國.單片機原理及應(yīng)用系統(tǒng)設(shè)計m.北京:國防工業(yè)出版社,200515 陳梓城主編 電子技術(shù)實訓(xùn) 機械工業(yè)出版社 2003 年16 李伯成.基于 mcs-51 單片機的嵌入式系統(tǒng)的設(shè)計m.北京:電子工業(yè)出版社,2004.17 李學(xué)海主編 標準 80c51 單片機基礎(chǔ)教程 北京航空航天大學(xué)出
35、版社 2006 年18 劉樂善主編 微型計算機接口技術(shù)及應(yīng)用 華中科技大學(xué)出版社 2004 年19 先鋒工作室. 單片機程序?qū)嵗齧.北京:清華大學(xué)出版社,2002.20 付家才. 單片機控制工程實踐技術(shù)m. 北京:化學(xué)工業(yè)出版社,2004.521 atmel microcontroller handbook,2001 22 stc microcontroller handbook,2007 23 john f. wakerlym digital design 北京:高等教育出版社 2009 8、附錄附錄 1:總體電路圖:附錄 2:單片機程序:#include #include #define
36、uchar unsigned charbit tflag;/溫度正負標志sbit dq=p37; /溫度輸入口sbit din=p07; /led 小數(shù)點控制uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09;/溫度小數(shù)部分用查表法unsigned char code dispcode=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d, 0 x7d,0 x07,0 x7f,0 x6f,0 x00,
37、0 x40; /共陰 led 段碼表 0 x40 負unsigned char dispbitcode=0 xfe,0 xfd,0 xfb,0 xf7, ; uchar data temp_data2=0 x00,0 x00; / 讀出溫度暫放unsigned char dispbuf5=0,0,0,0,0; void digitalshow(unsigned char a3,unsigned char a2,unsigned char a1,unsigned char a0)unsigned char i;dispbuf0=a0; dispbuf1=a1;dispbuf2=a2;dispbu
38、f3=a3;for(i=0;i4;i+) p2=0 xff; /關(guān)閉所有顯示p0=dispcodedispbufi; p2=dispbitcodei; if(i=1)din=1; /* 該程序為總線上只有一個器件 */毫秒延時 11.059 mhzvoid dmsec (unsigned int count) unsigned int i;/ 1ms 延時while (count-) for (i=0;i125;i+)void delay(unsigned int num)/ 延時函數(shù)while( -num );/復(fù)位脈沖void tmreset (void) dq = 0;delay(90)
39、;/ 精確延時 大于 480usdq = 1;delay(4);/ 90,4 可以小范圍變化/存在脈沖void tmpre (void) while (dq);while (dq);delay(4); /讀一個位bit tmrbit (void) unsigned int i;bit dat;dq = 0; i+; / i+;大概 1usdq = 1; i+; i+; dat = dq;delay(8); return (dat);/讀一個比特unsigned char tmrbyte (void) unsigned char i,j,dat;dat = 0;for (i=1;i=8;i+)
40、j = tmrbit ();dat = (j 1);return (dat);/寫一個比特void tmwbyte (unsigned char dat) unsigned int i;unsigned char j;bit testb;for (j=1;j 1;/ 從低位開始?if (testb) / write 1dq = 0; / 先拉低 i+; i+;/ 1us dq = 1;delay(4); else / write 0dq = 0; delay(4); / 大一點 沒影響,但不能太大,寫一個位在 30us 內(nèi) dq = 1;i+; i+; / 再拉高 /ds1820 開始轉(zhuǎn)換vo
41、id tmstart (void) dmsec(1); tmreset (); tmpre (); dmsec (1); tmwbyte (0 xcc); / skip rom tmwbyte (0 x44); / 轉(zhuǎn)換/讀取溫度read_temp() tmreset ();tmpre ();dmsec (1);tmwbyte (0 xcc); / skip romtmwbyte (0 xbe);/ 轉(zhuǎn)換temp_data0 = tmrbyte (); / lsb 低 8 位temp_data1= tmrbyte ();/ msb 高 8 位if(temp_data1 & 0 x80)=0 x
42、80) /判斷溫度正負temp_data1=temp_data1;temp_data0=temp_data0+1; /負溫度處理(ds18b20 的負溫度是正的反碼,即將它取反+1,就得到正的溫度)tflag=0;elsetflag=1;/* main */void main (void) uchar last; uchar lsb,msb;uchar i;tmstart();dmsec(450);/ 初始化 ds18b20 while(1)tmstart();/ ds1820 開始轉(zhuǎn)換dmsec(2); read_temp(); / 讀取溫度dispbuf4=temp_data0&0 x0f
43、;dispbuf0=ditabdispbuf4;dispbuf4=(temp_data0&0 xf0)4)|(temp_data1&0 x0f)0;i-)if(tflag=1) /正溫 if(dispbuf4126) if(dispbuf4100) digitalshow(10,dispbuf2,dispbuf1,dispbuf0); /溫度小于100 度,則百位不顯示 else msb=msb%10; /溫度大于 100 度時十位需要在除 10 取余 digitalshow(tflag,dispbuf2,dispbuf1,dispbuf0); /溫度大于 100 度,百位顯示為 1 else
44、 digitalshow(11,11,11,11); /溫度大于 125 度時顯示-else if(dispbuf456) /負溫大于-55 度時正常顯示 digitalshow(11,dispbuf2,dispbuf1,dispbuf0); elsedigitalshow(11,11,11,11); /負溫小于-55 度時顯示為- 附錄 3pc 機程序:dim n as integerdim t as integer 定義全局變量private sub command1_click() 單擊溫度設(shè)置按鈕程序dim i as integer if len(trim(text2.text) 10
45、0 or val(text2.text) 0 or left(right(text2.text, 2), 1) . then label3.caption = 設(shè)定輸入錯誤,不發(fā)送 else label3.caption = select case len(trim(text2.text) case 5 text8.text = trim(text2.text) case 4 text8.text = 0 & trim(text2.text) case 3 text8.text = 00 & trim(text2.text) end select mscomm1.output = c time
46、r2.enabled = true end ifend subprivate sub command2_click() 單擊按鈕執(zhí)行數(shù)據(jù)采集或停止采集 if command2.caption = 采集數(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_cli
47、ck() 單擊按鈕清空數(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 command1.enabled = true text2.enabled = true select case com.listindex 指定端口號(com) case 0 mscomm1.commport = 1 ca
48、se 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.inbuffersize = 1024 mscomm1.outbuffersize = 1024 mscomm1.rthresho
49、ld = 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.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 com1 com.additem com2 com.additem com3 com.additem com4end subprivate sub mscomm1_oncomm() 串口接收到數(shù)據(jù)時
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣西公務(wù)員考試及答案(筆試、申論A、B類、行測)4套 真題
- 2025年粵教新版選修化學(xué)下冊月考試卷
- 2025年粵教新版七年級物理下冊階段測試試卷含答案
- 2025版無人駕駛技術(shù)研發(fā)內(nèi)部員工入股分紅合同4篇
- 二零二五版農(nóng)業(yè)用地經(jīng)營權(quán)流轉(zhuǎn)與生態(tài)補償合同3篇
- 2025年度婚姻登記證丟失補發(fā)服務(wù)合同4篇
- 2025年度藝術(shù)工作室租賃服務(wù)合同4篇
- 2025年度企業(yè)間綠色信貸借款合同
- 二零二五年度裝配式建筑抹灰勞務(wù)分包技術(shù)合同4篇
- 二零二五年度兒童營養(yǎng)面包研發(fā)及訂購合同4篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫
- 2024年食用牛脂項目可行性研究報告
- 2024-2030年中國戶外音箱行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 家務(wù)分工與責(zé)任保證書
- 消防安全隱患等級
- 溫室氣體(二氧化碳和甲烷)走航監(jiān)測技術(shù)規(guī)范
- 2023山東春季高考數(shù)學(xué)真題(含答案)
- 為加入燒火佬協(xié)會致辭(7篇)
- 職業(yè)衛(wèi)生法律法規(guī)和標準培訓(xùn)課件
- 高二下學(xué)期英語閱讀提升練習(xí)(二)
評論
0/150
提交評論