智能化儀表原理及設(shè)計(jì)綜合訓(xùn)練報(bào)告_第1頁(yè)
智能化儀表原理及設(shè)計(jì)綜合訓(xùn)練報(bào)告_第2頁(yè)
智能化儀表原理及設(shè)計(jì)綜合訓(xùn)練報(bào)告_第3頁(yè)
智能化儀表原理及設(shè)計(jì)綜合訓(xùn)練報(bào)告_第4頁(yè)
智能化儀表原理及設(shè)計(jì)綜合訓(xùn)練報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..智能儀表原理與設(shè)計(jì)綜合訓(xùn)練報(bào)告題目:溫度采集儀的設(shè)計(jì)班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:成績(jī):2015年11目錄TOC\o"1-3"\h\u24299前言 131085第1章課程設(shè)計(jì)任務(wù)和要求 2215451.1設(shè)計(jì)任務(wù) 2244741.2技術(shù)指標(biāo) 223306第2章系統(tǒng)設(shè)計(jì)方案 3320972.1溫度采集儀總體設(shè)計(jì)方案 3201192.2各模塊設(shè)計(jì)方案 34026第3章系統(tǒng)硬件電路設(shè)計(jì) 5219333.1單片機(jī)STC89C52簡(jiǎn)介和最小系統(tǒng) 5124593.1.1STC89C52單片機(jī)簡(jiǎn)介 5323483.1.2STC89C52單片機(jī)最小系統(tǒng) 524933.2數(shù)字溫度傳感模塊設(shè)計(jì) 763813.2.1數(shù)字溫度傳感器DS18B20簡(jiǎn)介 7274733.3顯示模塊設(shè)計(jì) 9308443.3.1LCD1602液晶顯示器的工作原理 9305673.3.2LCD1602液晶顯示器的設(shè)計(jì) 10115333.4報(bào)警模塊設(shè)計(jì) 11173673.4.1蜂鳴器簡(jiǎn)介 11111283.5溫度上下限值電路設(shè)計(jì) 12140883.6串口輸出電路的設(shè)計(jì) 13147673.6.1波特率的計(jì)算 13152723.6.2MAX232芯片實(shí)現(xiàn)串行通信的電平轉(zhuǎn)換 1327168第4章系統(tǒng)軟件電路設(shè)計(jì) 1528134.1LCD液晶顯示軟件設(shè)計(jì) 1518634.2主控模塊軟件設(shè)計(jì) 1727444.3溫度采集軟件設(shè)計(jì) 1963134.4報(bào)警電路軟件設(shè)計(jì) 2425209第5章系統(tǒng)軟硬件調(diào)試結(jié)果分析 26135195.1軟硬件聯(lián)調(diào)結(jié)果如表1-3所示 26200725.2VB界面顯示如圖2.7所示 26122875.3軟硬件聯(lián)調(diào)結(jié)果分析 278070參考文獻(xiàn) 2830141致謝 298106附錄A硬件原理圖 3032326附錄B實(shí)物圖 3227698附錄C元器件清單 34..前言在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測(cè)及控制,目前使用最廣泛的溫度測(cè)量系統(tǒng)一般由溫度測(cè)量元件、溫度變送器和溫度指示儀表三個(gè)部分組成。這種結(jié)構(gòu)存在兩個(gè)方面的缺點(diǎn):一是三個(gè)部分相互分離,不便于隨身攜帶和進(jìn)行臨時(shí)性的測(cè)量;二是整個(gè)系統(tǒng)不易取得較高的性能價(jià)格比。傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。本文提出的一種由單片集成電路構(gòu)成的溫度傳感器的種類多,測(cè)量的精度高,響應(yīng)時(shí)間短,使用方便無(wú)需變換電路等。該測(cè)溫儀本身就是一個(gè)完整的溫度測(cè)量系統(tǒng),它不僅可以將代表被測(cè)溫度值的電信號(hào)轉(zhuǎn)換成溫度值并顯示出來(lái),而且還將處理后的溫度數(shù)值轉(zhuǎn)換成電流或電壓信號(hào)輸出,以供計(jì)算機(jī)或其他儀表使用,即完成溫度變送器的功能。近年來(lái),美國(guó)DALLAS公司生產(chǎn)DSI8B20為代表的新型單總線數(shù)字式溫度傳感器以其突出優(yōu)點(diǎn)廣泛使用于倉(cāng)儲(chǔ)管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測(cè)、科學(xué)研究以及日常生活中。DSI8B20集溫度測(cè)量和A/D轉(zhuǎn)換于一體,直接輸出數(shù)字量,傳輸距離遠(yuǎn),可以很方便地實(shí)現(xiàn)多點(diǎn)測(cè)量。溫度采集儀增加PC機(jī)與單片機(jī)之間的通信,可以對(duì)實(shí)時(shí)溫度進(jìn)行遠(yuǎn)程監(jiān)測(cè)與存儲(chǔ),此儀器可用于蔬菜大棚的監(jiān)控或者工廠中的鍋爐溫度的采集等場(chǎng)合應(yīng)用廣泛。第1章課程設(shè)計(jì)任務(wù)和要求1.1設(shè)計(jì)任務(wù)本次課程設(shè)計(jì)要求設(shè)計(jì)出智能化溫度測(cè)量?jī)x表,要求該測(cè)量?jī)x表能夠通過(guò)溫度傳感器采集溫度,并將溫度傳到單片機(jī)進(jìn)行處理,并通過(guò)液晶顯示,同時(shí)以單片機(jī)為核心的主控單元通過(guò)對(duì)按鍵的操作,設(shè)定上下限報(bào)警溫度與實(shí)測(cè)溫度進(jìn)行比較,并判斷是否報(bào)警,且與PC機(jī)通信將監(jiān)測(cè)的溫度發(fā)送到PC機(jī)。溫度監(jiān)測(cè)界面可用VB進(jìn)行編程設(shè)計(jì)實(shí)現(xiàn)上位機(jī)人機(jī)界面的設(shè)計(jì),要求上位機(jī)發(fā)送的命令下位機(jī)能及時(shí)的給與響應(yīng),并且上位機(jī)能夠?qū)崟r(shí)準(zhǔn)確的顯示下位機(jī)所上傳數(shù)據(jù)以及電機(jī)設(shè)備的運(yùn)行狀態(tài);使用匯編語(yǔ)言完成下位機(jī)程序驅(qū)動(dòng),并且要盡量保證系統(tǒng)的穩(wěn)定性和可靠性以及使用性。1.2技術(shù)指標(biāo)1.可以對(duì)0℃~+125℃溫度進(jìn)行實(shí)時(shí)采集并能〔通過(guò)液晶顯示;2.可以通過(guò)按鍵人工設(shè)定上下限報(bào)警溫度并判斷是否報(bào)警〔蜂鳴器發(fā)出響聲;3.實(shí)現(xiàn)下位機(jī)與PC機(jī)之間的串行通信〔在PC機(jī)上用VB所編寫界面顯示實(shí)測(cè)溫度值。第2章系統(tǒng)設(shè)計(jì)方案2.1溫度采集儀總體設(shè)計(jì)方案單片機(jī)控制電路中使用STC89C52。溫度采集電路中采用數(shù)字溫度傳感器DS18B20〔該傳感器具有測(cè)溫范圍廣、測(cè)溫準(zhǔn)確的優(yōu)點(diǎn),其精確度可達(dá)到0.1攝氏度,可測(cè)量的溫度范圍從-55~125攝氏度。將采集到的溫度數(shù)據(jù)送到單片機(jī),通過(guò)單片機(jī)控制的溫度報(bào)警模塊判斷是否報(bào)警,最終將實(shí)測(cè)溫度發(fā)送到液晶顯示器LCD1602顯示,同時(shí)很方便的完成單片機(jī)與PC機(jī)之間的串行通信〔利用MAX232芯片實(shí)現(xiàn)電平轉(zhuǎn)換功能,在VB程序編寫的界面上顯示監(jiān)測(cè)溫度。溫度采集儀設(shè)計(jì)如圖1.1所示。圖1.1圖溫度采集儀設(shè)計(jì)2.2各模塊設(shè)計(jì)方案本設(shè)計(jì)是一個(gè)基于單片機(jī)的溫度采集儀,利用單片機(jī)的功能強(qiáng)大且體積小、價(jià)格低、抗干擾性好等特點(diǎn),根據(jù)需要完成的功能需要在本設(shè)計(jì)中實(shí)現(xiàn)溫度的采集、顯示、上下限報(bào)警溫度值設(shè)定、報(bào)警和與PC機(jī)的串行通信等功能。本設(shè)計(jì)中主要分硬件與軟件的設(shè)計(jì),硬件包括:主控模塊、溫度傳感模塊、顯示模塊、按鍵模塊、報(bào)警模塊、通信模塊等,軟件包括:溫度采集、按鍵與報(bào)警、顯示、PC機(jī)上的溫度界面等。主控模塊:可以選用STC89C系列的單片機(jī),這里采用的STC89C52單片機(jī),價(jià)格便宜,使用方便,STC89C52的片內(nèi)RAM已能滿足存放要求。溫度傳感模塊:由于本設(shè)計(jì)中單片機(jī)除了要完成數(shù)據(jù)采集、處理、控制和顯示任務(wù)外,還要完成按鍵值的采集、處理。如果用常規(guī)的數(shù)字加模擬電路實(shí)現(xiàn)就會(huì)相對(duì)困難一些。本設(shè)計(jì)選用的數(shù)字式集成溫度傳感器DS18B20。DS18B20是DALLAS半導(dǎo)體公司〔現(xiàn)屬M(fèi)AXIM公司設(shè)計(jì)生產(chǎn)的單總線數(shù)字溫度傳感器,其測(cè)量溫度范圍為-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃。這個(gè)傳感器最大的特點(diǎn)就是能夠從一根總線直接輸出二進(jìn)制的溫度信號(hào),不需要A/D轉(zhuǎn)換和信號(hào)放大。這樣的選擇使得整個(gè)電路的硬件設(shè)計(jì)更為簡(jiǎn)化,節(jié)省了單片機(jī)的資源。顯示模塊:可以使用數(shù)碼管或者液晶顯示,兩者皆可。在本設(shè)計(jì)中,主要使用液晶,焊接簡(jiǎn)單且程序調(diào)用方便。按鍵模塊:本設(shè)計(jì)采用三個(gè)按鍵分別用來(lái)設(shè)定上限、下限溫度。報(bào)警模塊:就是當(dāng)設(shè)定的溫度在門限溫度之外,就會(huì)報(bào)警,蜂鳴器發(fā)出響聲。通信模塊:RS-232電平與單片機(jī)TTL電平之間的轉(zhuǎn)換方式,可以使用分立元件焊接而成,也可以直接使用集成芯片MAX232芯片。從電路使用方便的角度來(lái)看直接采用集成芯片,適應(yīng)性更強(qiáng),加之其價(jià)格適中,硬件接口簡(jiǎn)單。第3章系統(tǒng)硬件電路設(shè)計(jì)3.1單片機(jī)STC89C52簡(jiǎn)介和最小系統(tǒng)STC89C52單片機(jī)簡(jiǎn)介本設(shè)計(jì)采用的是STC公司的STC89C52單片機(jī)。其特性如下:工作頻率:0~80MHz;3個(gè)標(biāo)準(zhǔn)16位定時(shí)/計(jì)數(shù)器;可編程I/O口線32條,中斷源5個(gè);8K字節(jié)快閃ROM,128字節(jié)RAM;工作電壓:3~5V;40引腳,DIP封裝;STC89C52引腳圖如圖1.2所示。圖1.2STC89C52引腳圖STC89C52單片機(jī)最小系統(tǒng)最小系統(tǒng)包括單片機(jī)的電源、時(shí)鐘電路和復(fù)位電路。1.時(shí)鐘電路STC89C52單片允許的時(shí)鐘頻率的典型值12MHz或11.0592MHz,也可以是6MHz。本設(shè)計(jì)要使用串行通信,所以應(yīng)采用11.0592MHz。接到晶振兩端的瓷片電容作用是使振蕩器起振和對(duì)f微調(diào)補(bǔ)償,典型值為30PF,本設(shè)計(jì)中選用30PF瓷片電容。當(dāng)單片機(jī)加電以后延遲約10ms的時(shí)間振蕩器產(chǎn)生時(shí)鐘,不受軟件控制〔XTAL2輸出幅度為3V左右的正弦波。單片機(jī)時(shí)鐘電路如圖1.3所示。圖1.3單片機(jī)時(shí)鐘電路2.復(fù)位電路計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。單片機(jī)的復(fù)位引腳是RST,當(dāng)振蕩器起振后,該引腳上出現(xiàn)2個(gè)周期的高電平,是器件復(fù)位,只要RST保持高電平,單片機(jī)保持復(fù)位狀態(tài)。單片機(jī)復(fù)位方式有二種:上電復(fù)位〔如圖1.4所示、人工復(fù)位〔如圖1.5所示。本設(shè)計(jì)中兩種方法都采用。圖1.4上電復(fù)位電路圖1.5上電復(fù)位和開關(guān)復(fù)位注:RST與Vss之間的那個(gè)電阻在NMOS型單片機(jī)中需要接,但是在CMOS型單片機(jī)中不接,本設(shè)計(jì)電路中就可以不接。3.2數(shù)字溫度傳感模塊設(shè)計(jì)數(shù)字溫度傳感器DS18B20簡(jiǎn)介美國(guó)Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持"一線總線"接口的溫度傳感器,在其內(nèi)部使用了在板〔ON-B0ARD專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。1.DS18B20的主要特性適應(yīng)電壓范圍更寬,電壓范圍:3.0V~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電。獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。溫度范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃。可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫。在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。DS18B20的外形、內(nèi)部結(jié)構(gòu)及引腳定義DS18B20的外形及管腳排列如圖1.6所示。a.DQ為數(shù)字信號(hào)輸入/輸出端;b.GND為地線;c.VDD為外界供電電源輸入端〔在寄生電源接線方式時(shí)接地。圖1.6DS18B20的外形及管腳排列DS18B20的內(nèi)部結(jié)構(gòu)圖如圖1.7所示。圖1.7DS18B20的內(nèi)部結(jié)構(gòu)圖DS18B20與單片機(jī)連接電路DS18B20與單片機(jī)連接電路如圖1.8所示。圖1.8DS18B20與單片機(jī)連接電路3.3顯示模塊設(shè)計(jì)顯示模塊部分主要采用LCD1602液晶顯示。主要實(shí)現(xiàn)的功能是通過(guò)單片機(jī)讀取溫度傳感器轉(zhuǎn)換的溫度值,再將其所讀取的十六進(jìn)制數(shù)轉(zhuǎn)換成十制數(shù),通過(guò)靜態(tài)顯示,最后在LCD顯示出溫度數(shù)值。本設(shè)計(jì)液晶顯示器選用LCD1602,將單片機(jī)輸出的數(shù)據(jù)進(jìn)行動(dòng)態(tài)顯示。將采集的溫度以直觀化的形象顯示,與能顯示作報(bào)警溫度的上下范圍,這樣方便與實(shí)際溫度進(jìn)行比較,實(shí)用價(jià)值更高。LCD1602液晶顯示器的工作原理字符型液晶顯示模塊是專門用于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣式的LCD,目前常用的是16*1、16*2,20*2和40*2行等。本次設(shè)計(jì)中采用的1602字符型液晶顯示器,一行是用來(lái)實(shí)測(cè)溫度,另一行是用來(lái)顯示報(bào)警溫度的上下限。1.1602的引腳功能1602采用標(biāo)準(zhǔn)14腳〔無(wú)背光或16腳〔帶背光接口,各引腳功能如表1-1所示。表1-11602引腳功能介紹編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最強(qiáng)。若對(duì)比度過(guò)高會(huì)產(chǎn)生"鬼影",使用時(shí)可以通過(guò)一只10K電阻來(lái)調(diào)整對(duì)比度。RS為寄存器選擇端,RS為高電平時(shí)選擇數(shù)據(jù)寄存器,為低電平時(shí)選擇指令寄存器。R/W為讀寫信號(hào)線,為高電平時(shí)進(jìn)行讀操作,為低電平時(shí)為寫操作。當(dāng)R/W和RS同為低電平時(shí)可以寫人指令或者顯示地址;當(dāng)RS為低電平、R/W為高電平時(shí),可以讀忙信號(hào)。當(dāng)RS為高電平、R/W為低電平時(shí),可以讀寫數(shù)據(jù)。E為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。D0~D7為8位雙向數(shù)據(jù)線。LCD1602液晶顯示器的設(shè)計(jì)本設(shè)計(jì)中RS,R/W,E/N分別接單片機(jī)的P2.5,P2.6,P2.7口,8個(gè)數(shù)據(jù)口接單片機(jī)的P0口,如圖1.9所示。圖1.9DS18B20與單片機(jī)連接電路3.4報(bào)警模塊設(shè)計(jì)報(bào)警模塊由一個(gè)自我震蕩型的蜂鳴器<只要在蜂鳴器兩端加上超過(guò)3V的電壓,蜂鳴器就會(huì)一直響>組成,在這次設(shè)計(jì)中蜂鳴器是通過(guò)三極管放大信號(hào).在所要求的溫度達(dá)到一定的上界或者下界時(shí)<在文中設(shè)置的初始上界溫度10℃,下界溫度為20℃>,通過(guò)三個(gè)按鈕可改變上下界溫度的范圍,一個(gè)按鈕是用來(lái)加,一個(gè)按鈕是用來(lái)減,最后一個(gè)按鈕是用來(lái)確定。只要溫度不在其設(shè)置范圍內(nèi),蜂鳴器就會(huì)發(fā)出響聲。蜂鳴器簡(jiǎn)介1.蜂鳴器的工作原理在本設(shè)計(jì)中主要是用于超過(guò)規(guī)定溫度的范圍進(jìn)行報(bào)警。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母"H"或"HA"。壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后〔1.5V~15V直流工作電壓,多諧振蕩器起振,輸出1.5~2.5KHz的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。在本設(shè)計(jì)中采用的是壓電式蜂鳴器。2.蜂鳴器連接電路當(dāng)P3.2輸出高電平時(shí),三極管截止,沒(méi)有電流流過(guò)線圈,蜂鳴器不發(fā)聲;當(dāng)P3.2輸出低電平時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,可以通過(guò)程序控制P3.2腳的電平來(lái)使蜂鳴器發(fā)出聲音和關(guān)閉。蜂鳴器與單片機(jī)連接電路如圖2.0所示。圖2.0蜂鳴器與單片機(jī)連接電路3.5溫度上下限值電路設(shè)計(jì)在本設(shè)計(jì)中主要選用了單片機(jī)的P1.0,P1.1,P1.2口進(jìn)行上限溫度、下限溫度及溫度的確定。本設(shè)計(jì)中的溫度上下值按鍵控制電路如圖2.1所示。圖2.1溫度上下值按鍵控制電路3.6串口輸出電路的設(shè)計(jì)串口輸出電路部分主要是利用MAX232實(shí)現(xiàn)RS232的串行協(xié)議的電平轉(zhuǎn)換,以保證采樣參數(shù)的設(shè)置和溫度向PC機(jī)正常發(fā)送。主要實(shí)現(xiàn)的功能是利用STC89C52的UART串行通信口和上位PC機(jī)實(shí)現(xiàn)串行通信。波特率的計(jì)算單片機(jī)或計(jì)算機(jī)在串口通信時(shí)的速率用波特率表示,它定義為每秒傳輸二進(jìn)制代碼的位數(shù),即1位秒表1位/秒,單位是bps<位/秒>。如每秒傳送240個(gè)字符,而每個(gè)字符格式包含10位〔1個(gè)起始位、1個(gè)停止位、8個(gè)數(shù)據(jù)位,這是的波特率為10位*240個(gè)/秒=2400bps.如數(shù)據(jù)傳送的波特率為1200波特,采用N.8.1幀格式〔10位,則每秒傳送字節(jié)為120個(gè),而字節(jié)中每一位傳送時(shí)間即為波特率的倒數(shù):T=I/1200=0.833ms。同樣,如數(shù)據(jù)傳送的波特率為9600波特,則字節(jié)中每一位傳送時(shí)間為T=1/9600=0.104ms。根據(jù)數(shù)據(jù)傳送的波特率即字節(jié)中每一位的傳送時(shí)間,我們便可用普通I/O口來(lái)模擬實(shí)現(xiàn)串行通信的時(shí)序。MAX232芯片實(shí)現(xiàn)串行通信的電平轉(zhuǎn)換MAX232芯片引腳如圖2.2所示。圖2.2MAX232芯片引腳圖MAX232的相關(guān)參數(shù)如表1-2所示。表1-2MAX232引腳功能介紹腳號(hào)引腳名稱引腳功能描述腳號(hào)引腳名稱引腳功能描述1C1+泵電容1正極9R2OUT第二組TTL/CMOS電平輸出2V+正電源濾波10T2IN第二組TTL/CMOS電平輸入3C1-泵電容1負(fù)極11T1IN第一組TTL/CMOS電平輸入4C2+泵電容2正極12R1OUT第一組TTL/CMOS電平輸出5C2-泵電容2負(fù)極13R1IN第一組RS-232電平輸入6V-負(fù)電源濾波14T1OUT第一組RS-232電平輸出7T2OUT第二組RS-232電平輸出15GND地8R2IN第二組RS-232電平輸入16VCC電源+5V第4章系統(tǒng)軟件電路設(shè)計(jì)本設(shè)計(jì)單片機(jī)軟件采用C51語(yǔ)言編寫,C51語(yǔ)言是ANSIC的擴(kuò)展集,其語(yǔ)法結(jié)構(gòu)、關(guān)鍵字等與ANSIC絕大部分是相同的。系統(tǒng)程序包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、顯示程序、報(bào)警程序、PC機(jī)串行通信程序等。在編寫PC機(jī)與單片機(jī)進(jìn)行串行通信時(shí)采用VB語(yǔ)言編寫程序。從有利于實(shí)現(xiàn)較復(fù)雜的算法〔顯示效果處理和有利于程序結(jié)構(gòu)化考慮,程序適宜采用C51語(yǔ)言編寫。4.1LCD液晶顯示軟件設(shè)計(jì)液晶顯示主要實(shí)現(xiàn)的功能就是對(duì)實(shí)測(cè)溫度,報(bào)警溫度上下限值進(jìn)行顯示。液晶顯示子程序流程圖如圖2.3所示。圖2.3液晶顯示子程序流程圖液晶顯示子程序voidwrite_com<ucharcom>//液晶寫命令程序{//while<BusyTest<>==1>;//如果忙就等待rs=0;//等0輸入命令rw=0;en=0;//液晶使能信號(hào)初始化P0=com;//把com參數(shù),液晶的命令值送到P0口en=1;//使能信號(hào),0到1表示上升沿打開可以寫命令數(shù)據(jù)到液晶里delay<100>;//延時(shí),按照液晶的時(shí)序圖的要求en=0;//使能信號(hào)回復(fù)delay<100>;}voidwrite_data<uchardate>//液晶寫數(shù)據(jù)程序{//while<BusyTest<>==1>;//如果忙就等待rs=1;//等1表示輸入數(shù)據(jù)rw=0;en=0;P0=date;//把date參數(shù),液晶的數(shù)據(jù)送到P0口en=1;delay<100>;en=0;delay<100>;}voidinit<>//液晶初始化程序{en=0;write_com<0x38>;//設(shè)置16X2顯示,5X7點(diǎn)陣,8位數(shù)據(jù)口write_com<0x0c>;//設(shè)置開顯示,不顯示光標(biāo)write_com<0x06>;//寫一個(gè)字符后地址指針加1write_com<0x01>;//顯示清0,數(shù)據(jù)指針清0}voidwriteString<uchar*str,ucharlength>{uchari;for<i=0;i<length;i++>{write_data<str[i]>;}}4.2主控模塊軟件設(shè)計(jì)主程序的功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其主程序流程圖如圖2.4所示。圖2.4主程序流程圖//獲取當(dāng)前溫度值intgetTmpValue<>{unsignedinttmpvalue;intvalue;//存放溫度數(shù)值floatt;unsignedcharlow,high;sendReadCmd<>;//連續(xù)讀取兩個(gè)字節(jié)數(shù)據(jù)low=readByte<>;high=readByte<>;//將高低兩個(gè)字節(jié)合成一個(gè)整形變量//計(jì)算機(jī)中對(duì)于負(fù)數(shù)是利用補(bǔ)碼來(lái)表示的//若是負(fù)值,讀取出來(lái)的數(shù)值是用補(bǔ)碼表示的,可直接賦值給int型的valuetmpvalue=high;tmpvalue<<=8;tmpvalue|=low;value=tmpvalue;//使用DS18B20的默認(rèn)分辨率12位,精確度為0.0625度,即讀回?cái)?shù)據(jù)的最低位代表0.0625度t=value*0.0625;//將它放大100倍,使顯示時(shí)可顯示小數(shù)點(diǎn)后兩位,并對(duì)小數(shù)點(diǎn)后第三進(jìn)行4舍5入//如t=11.0625,進(jìn)行計(jì)數(shù)后,得到value=1106,即11.06度//如t=-11.0625,進(jìn)行計(jì)數(shù)后,得到value=-1106,即-11.06度value=t*100+<value>0?0.5:-0.5>;//大于0加0.5,小于0減0.5returnvalue;}4.3溫度采集軟件設(shè)計(jì)讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。溫度轉(zhuǎn)換命令子程序主要是法溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換完成。溫度轉(zhuǎn)換命令子程序流程圖如圖2.5所示。圖2.5子程序流程圖溫度采集儀的子程序//讓DS18B20一段相對(duì)長(zhǎng)時(shí)間低電平,然后一段相對(duì)非常短時(shí)間高電平,即可啟動(dòng)voiddsInit<>{//對(duì)于11.0592MHz時(shí)鐘,unsignedint型的i,作一個(gè)i++操作的時(shí)間大于usunsignedinti;ds=0;i=100;//拉低約800us,符合協(xié)議要求的480us以上while<i>0>i--;ds=1;//產(chǎn)生一個(gè)上升沿,進(jìn)入等待應(yīng)答狀態(tài)i=4;while<i>0>i--;}voiddsWait<>{unsignedinti;while<ds>;while<~ds>;//檢測(cè)到應(yīng)答脈沖i=4;while<i>0>i--;}//向DS18B20讀取一位數(shù)據(jù)//讀一位,讓DS18B20一小周期低電平,然后兩小周期高電平,//之后DS18B20則會(huì)輸出持續(xù)一段時(shí)間的一位數(shù)據(jù)bitreadBit<>{unsignedinti;bitb;ds=0;i++;//延時(shí)約8us,符合協(xié)議要求至少保持1usds=1;i++;i++;//延時(shí)約16us,符合協(xié)議要求的至少延時(shí)15us以上b=ds;i=8;while<i>0>i--;//延時(shí)約64us,符合讀時(shí)隙不低于60us要求returnb;}//讀取一字節(jié)數(shù)據(jù),通過(guò)調(diào)用readBit<>來(lái)實(shí)現(xiàn)unsignedcharreadByte<>{unsignedinti;unsignedcharj,dat;dat=0;for<i=0;i<8;i++>{j=readBit<>;//最先讀出的是最低位數(shù)據(jù)dat=<j<<7>|<dat>>1>;}returndat;}//向DS18B20寫入一字節(jié)數(shù)據(jù)voidwriteByte<unsignedchardat>{unsignedinti;unsignedcharj;bitb;for<j=0;j<8;j++>{b=dat&0x01;dat>>=1;//寫"1",將DQ拉低15us后,在15us~60us內(nèi)將DQ拉高,即完成寫1if<b>{ds=0;i++;i++;//拉低約16us,符號(hào)要求15~60us內(nèi)ds=1;i=8;while<i>0>i--;//延時(shí)約64us,符合寫時(shí)隙不低于60us要求}else//寫"0",將DQ拉低60us~120usds=0;i=8;while<i>0>i--;//拉低約64us,符號(hào)要求ds=1;i++;i++;//整個(gè)寫0時(shí)隙過(guò)程已經(jīng)超過(guò)60us,這里就不用像寫1那樣,再延時(shí)64us了}}//向DS18B20發(fā)送溫度轉(zhuǎn)換命令voidsendChangeCmd<>{dsInit<>;//初始化DS18B20,無(wú)論什么命令,首先都要發(fā)起初始化dsWait<>;//等待DS18B20應(yīng)答delay<1>;//延時(shí)1ms,因?yàn)镈S18B20會(huì)拉低DQ60~240us作為應(yīng)答信號(hào)writeByte<0xcc>;//寫入跳過(guò)序列號(hào)命令字SkipRomwriteByte<0x44>;//寫入溫度轉(zhuǎn)換命令字ConvertT}//向DS18B20發(fā)送讀取數(shù)據(jù)命令voidsendReadCmd<>{dsInit<>;dsWait<>;delay1<1>;writeByte<0xcc>;//寫入跳過(guò)序列號(hào)命令字SkipRomwriteByte<0xbe>;//寫入讀取數(shù)據(jù)令字ReadScratchpad}4.4報(bào)警電路軟件設(shè)計(jì)報(bào)警電路軟件主要實(shí)現(xiàn)的功能主要是對(duì)溫度的上下限值可自由的進(jìn)行設(shè)定,如實(shí)測(cè)溫度不在此范圍內(nèi),蜂鳴器就會(huì)發(fā)出響聲。溫度上下值范圍初始狀態(tài)為:10~20℃。報(bào)警電路程序流程圖如圖2.6所示。圖2.6報(bào)警電路程序流程圖報(bào)警電路程序/*voidwarn<uinttempwarn>//溫度報(bào)警程序{if<tempwarn<16>//返回的值是溫度的值,如果溫度小于16度就報(bào)警{Alam=0;delay1<500>;//蜂鳴器的聲音響的時(shí)間Alam=1;delay1<500>;//蜂鳴器的聲音不響的時(shí)間}elseif<tempwarn>24>//如果溫度大于24度并且啟動(dòng)報(bào)警{Alam=0;delay1<500>;Alam=1;delay1<500>;}} */voidmain<>{unsignedchari;uchartable[]="NowTemperature:";ucharUser[]="C";//自定義字符℃sendChangeCmd<>; //啟動(dòng)溫度轉(zhuǎn)換init<>;//初始化LCDwrite_com<0x80>; //第一行writeString<table,16>;write_com<0xc0>; //第二行writeString<User,1>;//warn<getTmpValue<>>;while<1>{sendChangeCmd<>; //啟動(dòng)溫度轉(zhuǎn)換//顯示5次for<i=0;i<40;i++>{ w

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論