畢業(yè)設(shè)計(jì)基于單片機(jī)與PC機(jī)串口通信的低功耗溫度記錄儀_第1頁
畢業(yè)設(shè)計(jì)基于單片機(jī)與PC機(jī)串口通信的低功耗溫度記錄儀_第2頁
畢業(yè)設(shè)計(jì)基于單片機(jī)與PC機(jī)串口通信的低功耗溫度記錄儀_第3頁
畢業(yè)設(shè)計(jì)基于單片機(jī)與PC機(jī)串口通信的低功耗溫度記錄儀_第4頁
畢業(yè)設(shè)計(jì)基于單片機(jī)與PC機(jī)串口通信的低功耗溫度記錄儀_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 福建工程學(xué)院國脈信息學(xué)院 畢業(yè)設(shè)計(jì)(論文)專 業(yè): 電子信息工程 班級: 0801 設(shè)計(jì)題目:低功耗溫度記錄儀學(xué)生姓名:黃鵬學(xué)號:0830010145起止日期: 2011.3.25-2011.6.25 (共 13 周)設(shè)計(jì)地點(diǎn): 福建工程學(xué)院國脈信息學(xué)院 指導(dǎo)教師:陳松嶺 講師 2011年 03 月 25 日基于單片機(jī)的低功耗溫度記錄儀設(shè)計(jì)1、摘要本文介紹了一種基于AT89C51單片機(jī)與PC機(jī)串口通信的溫度控制系統(tǒng),用單片機(jī)作下位機(jī)完成溫度數(shù)據(jù)的采集和執(zhí)行PC機(jī)發(fā)出的控制執(zhí)行命令;用PC機(jī)作上位機(jī)接收單片機(jī)發(fā)送的數(shù)據(jù),進(jìn)行數(shù)據(jù)處理,向單片機(jī)發(fā)送控制命令,四位一體共陰數(shù)碼管實(shí)時顯示當(dāng)前溫度。

2、PC機(jī)與單片機(jī)采甪串行通信,可實(shí)現(xiàn)溫度檢測和采集并處理數(shù)據(jù)的人機(jī)友好界面。本設(shè)計(jì)充分利用PC機(jī)VB6.0軟件強(qiáng)大的數(shù)據(jù)處理功能和友好的人機(jī)界面,對溫度進(jìn)行實(shí)時曲線顯示。本設(shè)計(jì)由硬件和軟件二部分組成。通過對系統(tǒng)軟件和硬件的合理規(guī)劃,發(fā)揮單片機(jī)自身集成多系統(tǒng)功能單元的優(yōu)勢,在不減少功能的前提下有效降低了成本,同時實(shí)現(xiàn)低功耗運(yùn)行,系統(tǒng)操作簡便,結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:AT89C51單片機(jī),PC機(jī),串行通信,數(shù)據(jù)采集以及處理2、引論隨著時代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。溫度是工業(yè)

3、生產(chǎn)中主要的被控參數(shù)之一,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量。許多化學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過程中,原油必須在不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作。還有比如在觀察用藥劑前后病人體溫隨時間的變化情況,臨床一般都采用水銀或電子溫度計(jì),隔一段時間測量一次并手工記錄結(jié)果。這種傳統(tǒng)方式給病人帶來了很多不便,也加大了護(hù)理工作量。更為欠缺的是測量時間間隔不夠短,在體溫變化率較高的情況下,容易造成處理不當(dāng)或不足,達(dá)不到最理想的疾病控制與治療效果。傳統(tǒng)的溫度記錄儀通常采用的是人工記錄或普通記錄儀用

4、墨水在記錄紙上繪制曲線,其體積龐大、精度低、墨水易堵塞、費(fèi)時費(fèi)力。無紙溫度記錄儀產(chǎn)生,并因?yàn)槠涓鼫?zhǔn)確地?cái)?shù)據(jù)記錄、更方便的數(shù)據(jù)存儲、更便捷的數(shù)據(jù)分析功能,所占市場份額逐年猛增;近年來推出的帶USB接口的無紙記錄儀更是極大的方便了數(shù)據(jù)的下載和保存。因此可見,設(shè)計(jì)出一款測量溫度并自動記錄下數(shù)據(jù)的溫度記錄儀是多么重要。用單片機(jī)做成的產(chǎn)品外圍元件很少,能實(shí)現(xiàn)的功能卻很廣,廣泛應(yīng)用于工業(yè),農(nóng)業(yè)等。兼于此,特用單片機(jī)設(shè)計(jì)此電路。單片機(jī)發(fā)展的三個階段:(1)第一階段(1976-1978):單片機(jī)的控索階段。以INTEL公司的MCS 48為代表。MCS 48的推出是在工控領(lǐng)域的控索,參與這一控索的公司還有MOT

5、OROLA 、ZILOG等,都取得了滿意的效果。這就是SCM的誕生年代,“單機(jī)片”一詞即由此而來。(2)第二階段(1978-1982)單片機(jī)的完善階段。INTEL公司在MCS 48 基礎(chǔ)上推出了完善的、典型的單片機(jī)系列MCS 51。它在以下幾個方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。完善的外部總線。MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有很多機(jī)通信功能的串行通信接口。CPU外圍功能單元的集中管理模式。體現(xiàn)工控特性的位地址空間及位操作方式。指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。(3)第三階段(1982-1990):8位單

6、片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。INTEL公司推出的MCS 96系列單片機(jī),將一些用于測控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納。在實(shí)時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點(diǎn)的軟件結(jié)合,加以完善。DS18B20是美國DALLAS公司生產(chǎn)的數(shù)字溫度傳感器芯片,具有結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強(qiáng)、使用方便等優(yōu)點(diǎn)。本文設(shè)計(jì)的一種溫度控制系統(tǒng),用STC89C51單片機(jī)作為溫控器,選用DS18B20數(shù)字溫度傳感器,單片機(jī)與上位機(jī)之間通過MAX2

7、32串口進(jìn)行通信,對測試點(diǎn)溫度采集,實(shí)時顯示,數(shù)據(jù)處理。3、目 錄1、摘要22、引論33、目錄54、正文74.1.1、設(shè)計(jì)目的7、系統(tǒng)實(shí)現(xiàn)功能74.2、系統(tǒng)總體方案設(shè)計(jì)8、系統(tǒng)總體設(shè)計(jì)框圖8、系統(tǒng)硬件設(shè)計(jì)方案8、系統(tǒng)軟件設(shè)計(jì)方案84.3、系統(tǒng)各個模塊設(shè)計(jì)9、單片機(jī)最小系統(tǒng)9、顯示電路11、串行通信電路13、DS18B20溫度傳感器電路13、電源電路15、單片機(jī)與PC機(jī)串口連接電路154.4、系統(tǒng)軟件設(shè)計(jì)17、單片機(jī)軟件設(shè)計(jì)17、上位機(jī)軟件設(shè)計(jì)174.5、系統(tǒng)調(diào)試195、結(jié)論206、致謝207、參考文獻(xiàn)218、附錄22附錄1、系統(tǒng)總體電路圖22附錄二、單片機(jī)程序22附錄三、PC機(jī)程序28正文(

8、4.1設(shè)計(jì)目的及系統(tǒng)實(shí)現(xiàn)功能要求4.1.1設(shè)計(jì)目的:(1)了解電子系統(tǒng)的設(shè)計(jì)方法,鞏固和提高學(xué)過的基礎(chǔ)理論和專業(yè)知識; (2)學(xué)習(xí)DS18B20數(shù)字溫度傳感器的測溫原理, (3) 掌握串口通信協(xié)議及其編程方法, (4)增強(qiáng)對單片機(jī)的認(rèn)識,掌握分析處理問題的方法,進(jìn)行調(diào)試、計(jì)算等基本技能的訓(xùn)練,達(dá)到具有一定程度的實(shí)際工作能力。(5) 學(xué)會用PROTEL99SE進(jìn)行電路原理圖和PCB圖的繪制。 (6) 學(xué)習(xí)用PSPICE、 MULTISIM 8等仿真軟件進(jìn)行電路設(shè)計(jì)和仿真。4.1.2.系統(tǒng)實(shí)現(xiàn)功能:1. 內(nèi)容及要求:研究基于單片機(jī)的低功耗溫度記錄儀,可以以一定的時間間隔連續(xù)記錄系統(tǒng)溫度,并提供通訊

9、接口將溫度數(shù)據(jù)上傳到PC機(jī)。利用VB/VC/DELPHI編制PC示例程序。2. 主要技術(shù)指標(biāo):(1)、溫度測量范圍0-70,系統(tǒng)實(shí)現(xiàn)低功耗運(yùn)行;(2)、溫度記錄數(shù)不少于200條;(3)、提供PC機(jī)通訊接口;(4)、PC機(jī)軟件實(shí)現(xiàn)對溫度數(shù)據(jù)分析、統(tǒng)計(jì)和處理;4.2系統(tǒng)總體方案設(shè)計(jì)4.2.1.系統(tǒng)總體構(gòu)成框圖如下:AT89C51PC機(jī)RS232數(shù)碼管顯示恒壓電源晶振電路復(fù)位電路DS18B20溫度傳感器系統(tǒng)總體構(gòu)成框圖4.2.2系統(tǒng)硬件設(shè)計(jì)方案:1.利用AT89C51自身強(qiáng)大的功能和優(yōu)異的可擴(kuò)展性,配上四位一體數(shù)碼管和按鍵等少量外圍電路,就能搭建合適本次實(shí)驗(yàn)的小系統(tǒng)。從而大大縮短設(shè)計(jì)流程,把設(shè)計(jì)的重

10、點(diǎn)放在溫度探測單元,串行通信協(xié)議兩個部分。2.現(xiàn)在PC機(jī)提供的COM1、COM2是采用RS-232借口標(biāo)準(zhǔn)的。而RS-232是用正負(fù)電壓來表示邏輯狀態(tài),與TTL以高低電平來表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計(jì)算機(jī)借口或終端的TTL器件(如單片機(jī))連接,必須在RS-232與TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換,變換電路選用有德州儀器公司(TL)推出的一款兼容RS-232標(biāo)準(zhǔ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.2

11、.3系統(tǒng)軟件設(shè)計(jì)方案:單片機(jī)軟件設(shè)計(jì)單片機(jī)程序由主程序和中斷子程序組成的。主程序負(fù)責(zé)對來自上位機(jī)的命令進(jìn)行解析并執(zhí)行讀溫度值、存儲溫度值、輸出控制等等,中斷服務(wù)程序只負(fù)責(zé)單片機(jī)和上位機(jī)之間的數(shù)據(jù)發(fā)送與接收。上位機(jī)程序設(shè)計(jì)由單片機(jī)采集的測試點(diǎn)實(shí)時溫度,通過MAX232傳輸?shù)缴衔粰C(jī)PC,利用在VISUAL BASIC 6.0的通信控件MSCOMM 屬性設(shè)置和事件響應(yīng)的基礎(chǔ)上,實(shí)現(xiàn)與單片機(jī)串行通信,在上位機(jī)中,完成溫度傳感器64位激光ROM讀取并顯示、實(shí)時溫度數(shù)據(jù)顯示、數(shù)據(jù)存儲、曲線繪制、歷史數(shù)據(jù)查詢,其中在數(shù)據(jù)查詢功能中,設(shè)計(jì)了時間查詢、溫度查詢等功能。4.3系統(tǒng)各個模塊設(shè)計(jì):單片機(jī)最小系統(tǒng)(1)

12、AT89C51管腳圖如下:AT89C51封裝引腳圖引腳說明:     電源引腳      VCC(40腳):典型值5V。      VSS(20腳):接低電平。     外部晶振 X1、X2分別與晶體兩端相連接。當(dāng)采用外部時鐘信號時,X2接振蕩信號,X1接地。     輸入輸出口引腳:   

13、;  P0口:I/O雙向口。作輸入口時,應(yīng)先軟件置“ 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/VP

14、P組成了MSC-51的控制總線。RST/VPD(9腳):復(fù)位信號輸入端(高電平有效)。     第二功能:加+5V備用電源,可以實(shí)現(xiàn)掉電保護(hù)RAM信息不丟失。ALE/-PROG(30腳):地址鎖存信號輸出端。     第二功能:編程脈沖輸入。-PSEN(29腳):外部程序存儲器讀選通信號。-EA/VPP(31腳):外部程序存儲器使能端。     第二功能:編程電壓輸入端(+21V)。(2)單片機(jī)最小系統(tǒng):單片機(jī)最小系統(tǒng)(3) 復(fù)位電路:單片機(jī)上電時,當(dāng)振蕩

15、器正在運(yùn)行時,只要持續(xù)給出RST引腳連個機(jī)器周期的高電平,便可完成系統(tǒng)復(fù)位。外部復(fù)位電路是為內(nèi)部復(fù)位電路提供兩個機(jī)器周期以上的電平而設(shè)計(jì)的。系統(tǒng)采用上電自動復(fù)位,上電瞬間電容器上的電壓不能突變,RST上的電壓是VCC上的電壓與電容器上的電壓之差,因而RST上的電壓與VCC上的電壓相同。隨著充電的進(jìn)行,電容器上的電壓不斷上升,RST上的 電壓就隨著下降,RST腳上只要保持10MS以上高電平,系統(tǒng)就會有效復(fù)位。電容C可取1033UF,電阻R可取1.210K。在本系統(tǒng)設(shè)計(jì)中,C取10UF,R取10K。(4)振蕩電路:XTAL1腳和XTAL2腳分別構(gòu)成片內(nèi)振蕩器的反相放大器的輸入和輸出端,外接石英晶振

16、或陶瓷晶振以及補(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è)計(jì)電路板時,晶振和電容應(yīng)靠近單片機(jī)芯片,以便減少寄生電容,保證振蕩器穩(wěn)定可靠工作。在本硬件系統(tǒng)設(shè)計(jì)中,為保證串行通行波特率的誤差,選擇了11.0592MHZ的標(biāo)準(zhǔn)石英晶振,電容C1、C2為30PF。(3)接高電平,選用片內(nèi)程序存儲器。(4) 單片機(jī)編程 顯示電路數(shù)碼管顯示電路部分如圖:顯示部分采用四位一體共陰數(shù)碼管,為了顯示數(shù)

17、字或字符,必須對數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個小數(shù)點(diǎn),共計(jì)8段。因此為LED顯示器提供的編碼正好是一個字節(jié)。共陰數(shù)碼管碼表§ 0X3F , 0X06 , 0X5B , 0X4F , 0X66 , 0X6D ,§ 0 1 2 3 4 5§ 0X7D , 0X07 , 0X7F , 0X6F , 0X77 , 0X7C ,§ 6 7 8 9 A B§ 0X39 , 0X5E , 0X79 , 0X71 , 0X00§ C D E F 無顯示靜態(tài)顯示方式LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個數(shù)碼

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

19、是TTL電平,和RS232電平不同,因此,單片機(jī)和PC通信時需要進(jìn)行電平轉(zhuǎn)換,常用的IC是MAX232,連接圖如下圖所示,其中MAX232供電腳為5V。采用了三線制連接串口,也就是說和計(jì)算機(jī)的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接。MAX232串口通信電路圖(9孔串口接頭) DS18B20溫度傳感器電路DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,

20、它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:(1)獨(dú)特的單線接口僅需要一個端口引腳進(jìn)行通信,DS18B20在與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(2)DS18B20支持多點(diǎn)組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)測溫;(3)無須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);(4)可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5;(5)零待機(jī)功耗;(6)溫度以9或12位數(shù)字,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精

21、度測溫;(7)用戶可定義報(bào)警設(shè)置;(8)報(bào)警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;(9)負(fù)電壓特性,電源極性接反時,溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作;(10)測量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯能力DS18B20采用3腳PR35封裝或8腳SOIC封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖以及測溫原理圖如下所示:引腳排列電路連接如下圖:4.3.5 恒壓電源電路本設(shè)計(jì)的供電電路主要變壓器、整流橋、濾波電路和78L05芯片組成。電源供電電路如圖所示:系統(tǒng)供電電源總體電路圖單片機(jī)與PC機(jī)串口連接電路

22、:目前RS-232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS-232采取不平衡傳輸方式,即所謂單端通訊。圖2-9 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-232電平再返回TTL電平。接收器典型的工作電平在+

23、3+12V與-3-12V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20KB/S。RS-232是為點(diǎn)對點(diǎn)(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(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ā)送和接收分別在各自的時鐘(TCLK和RCLK)控制下進(jìn)行的,但都必須

24、與字符位數(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ā)送。串行口的接收與否受制于允許接收位REN的狀態(tài),當(dāng)REN被軟件置

25、“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ù)位。4.4系統(tǒng)軟件設(shè)計(jì)單片機(jī)軟件設(shè)計(jì):初始化向DS1820讀一字節(jié)向DS1820寫一字節(jié)讀取溫度及轉(zhuǎn)換顯示溫度上位機(jī)軟件設(shè)計(jì):VB是微軟公司出品的一個快速可視化程序開發(fā)工具軟件,借助微軟在操作系統(tǒng)和辦公軟件的壟斷地位,VB在短短的幾年內(nèi)風(fēng)靡全球。VB是極有和功能強(qiáng)大的軟件,主要

26、表現(xiàn)在:所見即所得的界面設(shè)計(jì),基于對象的設(shè)計(jì)方法,極短的軟件開發(fā)周期,較易維護(hù)的生成代碼。美國微軟公司在1991年推出VB1.0至今已經(jīng)經(jīng)歷了6個版本,VB6.0運(yùn)行在WIN9X或WINME,WIN2000,WINXP,WINDOWSNT等操作系統(tǒng)下,是一個32位的應(yīng)用程序開發(fā)工具。它主要有以下幾個特點(diǎn)9:(1)成功地簡化了界面的設(shè)計(jì)過程。它在WINDOWS平臺上提供了圖形用戶界面(GUI)的集成開發(fā)環(huán)境(IDE)。(2)采用簡單易學(xué)的BASIC語言。它既適用于沒有任何編程經(jīng)驗(yàn)的開發(fā)者學(xué)習(xí),也適合于開發(fā)各種復(fù)雜的底層應(yīng)用程序。(3)具有強(qiáng)大的數(shù)據(jù)和字符串處理功能。VISUAL BASIC 提供

27、了許多現(xiàn)成的字符串處理函數(shù)。(4)易于擴(kuò)充。除了簡單易學(xué)的特點(diǎn)以外,VISUAL BASIC 還是一種易于擴(kuò)充功能的開發(fā)系統(tǒng)。(5)提供了INTELLISENSE技術(shù)。當(dāng)你在VISUAL BASIC 的代碼窗口敲進(jìn)對象名稱的時候INTELLISENSE技術(shù)會自動向你顯示一些相關(guān)的信息,例如對象的屬性和方法等。(6)提供了多種向?qū)?。利用這些向?qū)В憧梢钥焖俚赝瓿梢话阈缘娜蝿?wù),例如生成其控件不綁定到數(shù)據(jù)控件上的純代碼窗體,建立查詢,添加工具,制作圖表,以及發(fā)布創(chuàng)建的應(yīng)用程序等。完成后的界面如圖3-3所示 單片機(jī)與PC的溫度控制系統(tǒng)的VB界面4.5 系統(tǒng)調(diào)試硬件調(diào)試首先檢查電路的焊接是否正確,然后可

28、用萬用表測試或通電檢測。硬件調(diào)試主要是針對主控板中單片機(jī)模塊和外部輸入、輸出模塊進(jìn)行調(diào)試。這一部分硬件調(diào)試主要分成兩大塊:上電前的調(diào)試和上電后的調(diào)試。在電路安裝焊接前,首先是對元器件的檢測。對AT89C51、DS18B20在未接電路時是不能檢測其好壞的。對于其他器件則可利用萬用表進(jìn)行測量。電阻的測量,用萬用表的歐姆檔測量。(1)上電前的調(diào)試在上電前,必須確保電路中不存在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況等。只要將一個表筆固定在電源端或接地端,另儀表筆接其他連接點(diǎn),指針偏轉(zhuǎn)到0刻

29、度就是通路的。通過萬用表的檢測,沒有發(fā)現(xiàn)短路和斷路的地方了,電路基本正常后再進(jìn)行下一步調(diào)試。(2)上電后的調(diào)試在確保硬件電路正常,無異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯,同時還要檢驗(yàn)原理是否正確。在本設(shè)計(jì)中,上電調(diào)試主要是檢測單片機(jī)部分與外部輸入、輸出電路是否接對。本次調(diào)試需要通過軟硬件聯(lián)調(diào)來實(shí)現(xiàn)。由于DS18B20與單片機(jī)采用串行數(shù)據(jù)傳送,因此,對DS18B20進(jìn)行讀/寫編程時必須嚴(yán)格地保證讀/寫時序,否則將無法讀取測量結(jié)果。本程序采用單片機(jī)C語言編寫,用KEIL C51編譯器編程調(diào)試。5、結(jié)論首先,通過這次應(yīng)用系統(tǒng)設(shè)計(jì),在很大程度上提高了自己的獨(dú)立思考能力和

30、單片機(jī)的專業(yè)知識,也深刻了解寫一篇應(yīng)用系統(tǒng)的步驟和格式,有過這樣的一次訓(xùn)練,相信在接下來的日子我們都會了,而且會做得更好。我所寫的系統(tǒng)主要根據(jù)目前節(jié)省能源的發(fā)展趨勢和國內(nèi)實(shí)際的應(yīng)用特點(diǎn)和要求,系統(tǒng)以單片機(jī)AT89C51為核心部件,采用了自動化的結(jié)構(gòu)形式,實(shí)現(xiàn)對溫度的檢測、記錄與數(shù)據(jù)處理。利用C語言編制,運(yùn)行程序該系統(tǒng)的主要特點(diǎn)是: 1)適用性強(qiáng),利用VB友好的人機(jī)界面,用戶只需對界面參數(shù)進(jìn)行設(shè)置并啟動系統(tǒng)正常運(yùn)行便可實(shí)現(xiàn)對溫度的測量、記錄與數(shù)據(jù)處理。2)將單片機(jī)以及溫度傳感器引入對溫度的分析和處理中,單片機(jī)控制決策無需建立被控對象的數(shù)學(xué)模型,系統(tǒng)的魯棒性強(qiáng),適合對非線性、時變、滯后系統(tǒng)的控制,

31、對溫度測量系統(tǒng)采用單片機(jī)控制非常適合。3)系統(tǒng)成本低廉,操作非常簡單,可擴(kuò)展性強(qiáng),只要稍加改變,即可增加其他使用功能。通過對本設(shè)計(jì)的思考,更加加深了對單片機(jī)的認(rèn)識,熟練了單片機(jī)的編程,更對當(dāng)前的溫度傳感器有了更深刻的認(rèn)識與了解,但是由于此系統(tǒng)依賴溫度傳感器,因而對溫度傳感器的穩(wěn)定性,線性等諸多方面有著嚴(yán)格的要求,但是傳感器的性能越好,相對而言其價格也就越高,因而在此設(shè)計(jì)中,溫度傳感器我個人覺的還是存在遺憾,其次,由于采用了C語言,所以其編程過程復(fù)雜不易查錯。最后由于時間緊迫,本設(shè)計(jì)還有諸多地方需要改進(jìn),比如改用RS-485串行接口或是網(wǎng)線,實(shí)現(xiàn)遠(yuǎn)距離操作。6、致謝在我論文即將完成之際,我首先要

32、向在論文寫作中給予我悉心關(guān)懷、鼓勵和指導(dǎo)的陳松嶺老師致以深深的敬意和謝意!老師一絲不茍的鉆研精神,嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,執(zhí)著忘我的工作作風(fēng),獨(dú)樹一幟的思維方式,使學(xué)生受益匪淺,并終身難忘。所有人的青春,從一開始的空白無物,到后來的極欲飛揚(yáng),陰霾滿地,再到現(xiàn)在的塵埃落定,一切都在發(fā)生,一切都在結(jié)束.美好而繽紛的大學(xué)生活,就這樣畫上了句號,真有些難忘和難舍。純?nèi)玢@,強(qiáng)如鋼。最大的收獲是心智的成熟,一千多個日子里曾悲傷過、失落過、苦惱過,委屈過。而現(xiàn)在懂得擦干眼淚,收拾傷痕,站起繼續(xù)勇往直前,前面的荊棘,不算什么,路上的障礙,我每攀登越過一次,便往云端靠近了一步。感謝我的朋友和同學(xué)對我的關(guān)心和幫助!7

33、、參考文獻(xiàn)1 陳大欽主編 電子技術(shù)基礎(chǔ)實(shí)驗(yàn) 高等教育出版社 2004年2 余錫存 曹國華.單片機(jī)原理及接口技術(shù)M.陜西:西安電子科技大學(xué)出版社3 蘇家健. 單片機(jī)原理及應(yīng)用技術(shù) .高等教育出版社,2004.114 周航慈. 單片機(jī)程序設(shè)計(jì)基礎(chǔ) . 北京航空航天大學(xué)出版社,2003.075 李仁發(fā)、肖玲、吳強(qiáng).數(shù)字邏輯設(shè)計(jì)(第四版). 人民郵電出版社,2006.058單片機(jī)C語言應(yīng)用程序設(shè)計(jì)第四版,馬忠梅主編,北京航空航天大學(xué)出版社9單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解,邊海龍、孫永奎編著,電子工業(yè)出版社1051單片機(jī)C語言教程-入門、提高、開發(fā)、拓展全攻略,郭天祥 編著, 電子工業(yè)出版社,2009

34、11 吳黎明主編 單片機(jī)原理及應(yīng)用技術(shù) 科學(xué)出版社 2003年12 劉樂善主編 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用 華中科技大學(xué)出版社 2004年13 J.A.CONNELLEY. ANALOG INTEGRATED CIRCUITS. JOHN WILEY &SONS14 吳洪潭,肖艷萍,趙偉國.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:國防工業(yè)出版社,200515 陳梓城主編 電子技術(shù)實(shí)訓(xùn) 機(jī)械工業(yè)出版社 2003年16 李伯成.基于MCS-51單片機(jī)的嵌入式系統(tǒng)的設(shè)計(jì)M.北京:電子工業(yè)出版社,2004.17 李學(xué)海主編 標(biāo)準(zhǔn)80C51單片機(jī)基礎(chǔ)教程 北京航空航天大學(xué)出版社 2006年18 劉樂善主

35、編 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用 華中科技大學(xué)出版社 2004年19 先鋒工作室. 單片機(jī)程序?qū)嵗齅.北京:清華大學(xué)出版社,2002.20 付家才. 單片機(jī)控制工程實(shí)踐技術(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:單片機(jī)程序:#INCLUDE <AT89X51.H> #INCLUDE <INTRI

36、NS.H>#DEFINE UCHAR UNSIGNED CHARBIT TFLAG;/溫度正負(fù)標(biāo)志SBIT DQ=P37; /溫度輸入口SBIT DIN=P07; /LED小數(shù)點(diǎn)控制UCHAR CODE DITAB16=0X00,0X01,0X01,0X02,0X03,0X03,0X04,0X04,0X05,0X06,0X06,0X07,0X08,0X08,0X09,0X09;/溫度小數(shù)部分用查表法UNSIGNED CHAR CODE DISPCODE=0X3F,0X06,0X5B,0X4F,0X66,0X6D, 0X7D,0X07,0X7F,0X6F,0X00,0X40; /共陰LED

37、段碼表0X40 負(fù)UNSIGNED CHAR DISPBITCODE=0XFE,0XFD,0XFB,0XF7, ; UCHAR DATA TEMP_DATA2=0X00,0X00; / 讀出溫度暫放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;DISPBUF3=A3;FOR(I=0;I<4;I+

38、) P2=0XFF; /關(guān)閉所有顯示P0=DISPCODEDISPBUFI; P2=DISPBITCODEI; IF(I=1)DIN=1; /* 該程序?yàn)榭偩€上只有一個器件 */毫秒延時 11.059 MHZVOID DMSEC (UNSIGNED INT COUNT) UNSIGNED INT I;/ 1MS延時WHILE (COUNT-) FOR (I=0;I<125;I+)VOID DELAY(UNSIGNED INT NUM)/ 延時函數(shù)WHILE( -NUM );/復(fù)位脈沖VOID TMRESET (VOID) DQ = 0;DELAY(90);/ 精確延時 大于 480USD

39、Q = 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+) J = TMRBIT ();

40、DAT = (J << 7) | (DAT >> 1);RETURN (DAT);/寫一個比特VOID TMWBYTE (UNSIGNED CHAR DAT) UNSIGNED INT I;UNSIGNED CHAR J;BIT TESTB;FOR (J=1;J<=8;J+) TESTB = DAT & 0X01;DAT = DAT >> 1;/ 從低位開始?IF (TESTB) / WRITE 1DQ = 0; / 先拉低 I+; I+;/ >1US DQ = 1;DELAY(4); ELSE / WRITE 0DQ = 0; DELA

41、Y(4); / 大一點(diǎn) 沒影響,但不能太大,寫一個位在30US內(nèi) DQ = 1;I+; I+; / 再拉高 /DS1820開始轉(zhuǎn)換VOID TMSTART (VOID) DMSEC(1); TMRESET (); TMPRE (); DMSEC (1); TMWBYTE (0XCC); / SKIP ROM TMWBYTE (0X44); / 轉(zhuǎn)換/讀取溫度READ_TEMP() TMRESET ();TMPRE ();DMSEC (1);TMWBYTE (0XCC); / SKIP ROMTMWBYTE (0XBE);/ 轉(zhuǎn)換TEMP_DATA0 = TMRBYTE (); / LSB低8位

42、TEMP_DATA1= TMRBYTE ();/ MSB高8位IF(TEMP_DATA1 & 0X80)=0X80) /判斷溫度正負(fù)TEMP_DATA1=TEMP_DATA1;TEMP_DATA0=TEMP_DATA0+1; /負(fù)溫度處理(DS18B20的負(fù)溫度是正的反碼,即將它取反+1,就得到正的溫度)TFLAG=0;ELSETFLAG=1;/* MAIN */VOID MAIN (VOID) UCHAR LAST; UCHAR LSB,MSB;UCHAR I;TMSTART();DMSEC(450);/ 初始化DS18B20 WHILE(1)TMSTART();/ DS1820開始

43、轉(zhuǎn)換DMSEC(2); READ_TEMP(); / 讀取溫度DISPBUF4=TEMP_DATA0&0X0F;DISPBUF0=DITABDISPBUF4;DISPBUF4=(TEMP_DATA0&0XF0)>>4)|(TEMP_DATA1&0X0F)<<4);DISPBUF3=DISPBUF4/100;DISPBUF1=DISPBUF4%100;DISPBUF2=DISPBUF1/10;DISPBUF1=DISPBUF1%10;MSB=LAST/10;LSB=LAST%10;FOR(I=255;I>0;I-)IF(TFLAG=1) /正

44、溫 IF(DISPBUF4<126) IF(DISPBUF4<100) DIGITALSHOW(10,DISPBUF2,DISPBUF1,DISPBUF0); /溫度小于100度,則百位不顯示 ELSE MSB=MSB%10; /溫度大于100度時十位需要在除10取余 DIGITALSHOW(TFLAG,DISPBUF2,DISPBUF1,DISPBUF0); /溫度大于100度,百位顯示為1 ELSE DIGITALSHOW(11,11,11,11); /溫度大于125度時顯示-ELSE IF(DISPBUF4<56) /負(fù)溫大于-55度時正常顯示 DIGITALSHOW(

45、11,DISPBUF2,DISPBUF1,DISPBUF0); ELSEDIGITALSHOW(11,11,11,11); /負(fù)溫小于-55度時顯示為- 附錄3PC機(jī)程序:DIM N AS INTEGERDIM T AS INTEGER定義全局變量PRIVATE SUB COMMAND1_CLICK()單擊溫度設(shè)置按鈕程序DIM I AS INTEGER IF LEN(TRIM(TEXT2.TEXT) < 3 OR VAL(TEXT2.TEXT) > 100 OR VAL(TEXT2.TEXT) < 0 OR LEFT(RIGHT(TEXT2.TEXT, 2), 1) <

46、;> "." 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 MSCO

47、MM1.OUTPUT = "C" TIMER2.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 = FAL

48、SE 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.ENAB

49、LED = FALSE COMMAND2.ENABLED = TRUE COMMAND1.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波特,

50、無校驗(yàn),8位數(shù)據(jù)位,1位停止位 MSCOMM1.INPUTMODE = COMINPUTMODETEXT '接收文本數(shù)據(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" MS

51、COMM1.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 "COM4&quo

溫馨提示

  • 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

提交評論