課程設(shè)計(jì)(論文)智能溫度測(cè)量儀表方案設(shè)計(jì)_第1頁
課程設(shè)計(jì)(論文)智能溫度測(cè)量儀表方案設(shè)計(jì)_第2頁
課程設(shè)計(jì)(論文)智能溫度測(cè)量儀表方案設(shè)計(jì)_第3頁
課程設(shè)計(jì)(論文)智能溫度測(cè)量儀表方案設(shè)計(jì)_第4頁
課程設(shè)計(jì)(論文)智能溫度測(cè)量儀表方案設(shè)計(jì)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄前言0第一章 智能溫度測(cè)量儀表方案設(shè)計(jì)與論證11.1 功能與要求11.2 方案2第二章 智能溫度測(cè)量儀表的硬件設(shè)計(jì)22.1 系統(tǒng)硬件框圖22.2系統(tǒng)的輸入通道設(shè)計(jì)22.2.1 ds18b20特征與外部引腳32.2.2 ds18b20的外形和內(nèi)容結(jié)構(gòu)42.2.3 ds18b20引腳定義42.2.4 ds18b20工作原理42.2.5 ds18b20使用中注意事項(xiàng)42.3系統(tǒng)的輸出通道設(shè)計(jì)52.3.1 pnp三極管855052.3.2 hk400-5vdc繼電器52.4人機(jī)接口電路62.4.1 四位一體共陰數(shù)碼顯示模塊72.4.2 4*4矩陣鍵盤72.5數(shù)碼管驅(qū)動(dòng)及鍵盤控制芯片ch45182.

2、6單片機(jī)最小系統(tǒng)122.7stc89c51單片機(jī)最小系統(tǒng)元件清單13第三章 系統(tǒng)調(diào)試與軟件設(shè)計(jì)143.1 軟件設(shè)計(jì)143.2 調(diào)試143.3上位機(jī)軟件設(shè)計(jì)14第四章 設(shè)計(jì)體會(huì)與小結(jié)16參考文獻(xiàn)17附錄18前言隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 本文主要介紹了一個(gè)基于at89c51單片機(jī)的測(cè)溫系統(tǒng),描述了利用溫度傳感器ds18b20測(cè)溫系統(tǒng)的過程,對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了分析,對(duì)各部分的電路也一一進(jìn)行了介紹,進(jìn)行相應(yīng)外圍接口設(shè)計(jì),其中包括:數(shù)據(jù)輸入通道、輸出通道、人機(jī)接口電路以及通信接口電路

3、等,最終完成一個(gè)簡單智能儀器的設(shè)計(jì)過程。該系統(tǒng)可以方便的實(shí)現(xiàn)溫度采集和顯示,靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。本次設(shè)計(jì)主要以溫度為測(cè)量對(duì)象,利用實(shí)驗(yàn)室可以提供的設(shè)備平臺(tái)、儀器儀表、常見芯片,基于實(shí)驗(yàn)室已有的stc89c51單片機(jī)最小系統(tǒng),進(jìn)行相應(yīng)外圍接口設(shè)計(jì),其中包括:數(shù)據(jù)輸入通道、輸出通道、人機(jī)接口電路以及通信接口電路等,最終完成一個(gè)簡單智能儀器的設(shè)計(jì)過程。通過本次設(shè)計(jì)學(xué)習(xí),可以理解并掌握儀器整機(jī)系統(tǒng)的概念,將智能儀器軟硬件相結(jié)合的基本工作原理、主要技術(shù)和設(shè)計(jì)方法運(yùn)用到具體的系統(tǒng)設(shè)計(jì)中

4、去,提高綜合運(yùn)用所學(xué)知識(shí)與技術(shù)進(jìn)行儀器設(shè)計(jì)的實(shí)踐創(chuàng)新能力,使學(xué)生通過實(shí)踐鍛煉,具有扎實(shí)的系統(tǒng)電路設(shè)計(jì)基礎(chǔ)和在實(shí)踐中發(fā)現(xiàn)并解決問題的能力。第一章 智能溫度測(cè)量儀表方案設(shè)計(jì)與論證1.1 功能與要求功能基于單片機(jī)的溫度測(cè)控系統(tǒng)分為上位機(jī)和下位機(jī)兩部分。其中上位機(jī)應(yīng)可通過虛擬儀器的前置面板界面顯示溫度數(shù)據(jù),若溫度超過設(shè)定溫度,在顯示屏上進(jìn)行報(bào)警提示。而下位機(jī)則是可以利用單片機(jī)對(duì)溫度傳感器采集到的溫度數(shù)據(jù)及時(shí)采樣,并在數(shù)碼管上顯示,用矩陣鍵盤來控制和設(shè)定溫度值,并將采集到的溫度數(shù)據(jù)通過串口傳到上位pc機(jī)。要求:.學(xué)生自行設(shè)計(jì)硬件電路并焊接電路板.編寫上位機(jī)虛擬儀器和下位機(jī)程序.實(shí)現(xiàn)溫度測(cè)控并進(jìn)行系統(tǒng)功能

5、測(cè)試1.2 方案 通過溫度傳感器ds18b20來實(shí)現(xiàn)。 ds18b20單片機(jī) 圖1.1 方案2的系統(tǒng)方框圖本方案的優(yōu)點(diǎn)是可直接將采集值進(jìn)行處理得到數(shù)字量送入單片機(jī)數(shù)碼管顯示并通過串口送至上位機(jī)。第二章 智能溫度測(cè)量儀表的硬件設(shè)計(jì)2.1 系統(tǒng)硬件框圖本設(shè)計(jì)是通過溫度傳感器ds18b20直接將采集值進(jìn)行處理得到數(shù)字量送入單片機(jī)。單片機(jī)輸出信號(hào)作用在繼電器上,來控制被測(cè)對(duì)象溫度值的升高或降低。最后將轉(zhuǎn)換后的數(shù)字信號(hào)經(jīng)單片機(jī)進(jìn)行數(shù)字濾波,得到溫度值。同時(shí)可以通過矩陣鍵盤進(jìn)行控制,通過led進(jìn)行顯示。系統(tǒng)硬件方框圖如圖2.1所示。ds18b20hk400-5vdc繼電器單片機(jī) 89c51max232上位

6、機(jī)ch451(4*4)鍵盤4位led被測(cè)對(duì)象圖2.1系統(tǒng)硬件框圖2.2系統(tǒng)的輸入通道設(shè)計(jì)本系統(tǒng)輸入通道作用是將溫度轉(zhuǎn)換為數(shù)字信號(hào)傳給單片機(jī)。其組成包括:溫度傳感器ds18b20和一個(gè)10k電阻。具體電路如圖2.2所示。圖2.2 輸入通道的設(shè)計(jì)電路2.2.1 ds18b20特征與外部引腳數(shù)字溫度傳感器ds18b20介紹 圖2.3ds18b20圖片 圖2.4 ds18b20引腳圖ds18b20的主要特性 1.1、適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù) 據(jù)線供電 1.2、獨(dú)特的單線接口方式,ds18b20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙

7、向通訊 1.3、 ds18b20支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫 1.4、ds18b20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) 1.5、溫范圍55125,在-10+85時(shí)精度為0.5 1.6、可編程 的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫 1.7、在9位分辨率時(shí)最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 1.8、測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以一 線總線串行傳送給cpu,同時(shí)可傳送c

8、rc校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 1.9、負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。2、ds18b20引腳定義:(1)dq為數(shù)字信號(hào)輸入/輸出端; (2)gnd為電源地; (3)vdd為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 2.2.2 ds18b20的外形和內(nèi)部結(jié)構(gòu)ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器。 2.2.3ds18b20引腳定義: (1)dq為數(shù)字信號(hào)輸入/輸出端; (2)gnd為電源地; (3)vdd為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 圖2.5 ds

9、18b20內(nèi)部結(jié)構(gòu)圖2.2.4 ds18b20工作原理 ds18b20的讀寫時(shí)序和測(cè)溫原理與ds1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s 減為750ms。低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì) 低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重 新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),

10、如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即 為所測(cè)溫度。 2.2.5 ds1820使用中注意事項(xiàng) ds1820雖然具有測(cè)溫系統(tǒng)簡單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題: 6.1、較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于ds1820與微處理器間采用串行數(shù)據(jù)傳送,因此 ,在對(duì)ds1820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測(cè)溫結(jié)果。在使用pl/m、c等高級(jí)語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì) ds1820操作部分最好采用匯編語言實(shí)現(xiàn)。2.3系統(tǒng)的輸出通道設(shè)計(jì)本系統(tǒng)輸出通道作用是來控制被測(cè)對(duì)象溫度值的升高

11、或降低??刂菩盘?hào)從單片機(jī)的p2.0口輸出,接至pnp型三極管的基極。繼電器的繞圈分別接地和pnp三極管集電極,同時(shí)繞圈兩端還并聯(lián)有發(fā)光二極管,用以直觀顯示控制信號(hào)的變化。為了保護(hù)電路,在繼電器繞圈兩端并聯(lián)有一個(gè)390 電阻。具體電路如圖2.4所示。圖2.6 輸出通道的電路設(shè)計(jì)2.3.1 pnp三極管85508550是一種常用的普通三極管。它是一種低電壓,大電流,小信號(hào)的pnp型硅三極管。如圖2.5為三極管的引腳圖。圖2.7 8550引腳圖8550參數(shù): 集電極-基極電壓vcbo:-40v 工作溫度:-55 to +1502.3.2 hk400-5vdc繼電器電氣參數(shù)如下:觸點(diǎn)形式:1c(spd

12、t)觸點(diǎn)負(fù)載: 3 a 250 vac/30 vdc阻 抗: 100m額定電流: 3a電氣壽命:10萬回機(jī)械壽命:1000萬回線圈參數(shù):阻值(士10%): 120線圈功耗:0.2w額定電壓:dc 5v吸合電壓:dc 3.75v釋放電壓:dc 0.5v工作溫度:-25+70絕緣電阻:100m線圈與觸點(diǎn)間耐壓:1000vac/1分鐘觸點(diǎn)與觸點(diǎn)間耐壓:500vac/1分鐘2.4人機(jī)接口電路本電路的作用是實(shí)現(xiàn)溫度顯示,溫度設(shè)定。組成模塊有4位集成數(shù)碼顯示,4*4鍵盤等。在該人機(jī)接口電路的設(shè)計(jì)中,ch451為該模塊電路的核心器件,功能相對(duì)完善。ch451不僅能有效的將采集到的溫度值通過數(shù)碼管進(jìn)行實(shí)時(shí)顯示

13、;并且還能控制矩陣鍵盤,讀取通過按鍵獲得的溫度設(shè)定值,一方面可將設(shè)定值直接顯示,另一方面還能傳輸給單片機(jī);同時(shí)通過ch451芯片控制鍵盤輸入和數(shù)碼顯示,還可有效的節(jié)省單片機(jī)p口的使用,方便單片機(jī)的擴(kuò)展設(shè)計(jì)。具體電路如圖2.6所示。圖2.8 人機(jī)接口電路的設(shè)計(jì)2.4.2 四位一體共陰數(shù)碼顯示模塊本實(shí)驗(yàn)人機(jī)接口電路采用lg3641ah型四位一體共陰極數(shù)碼管進(jìn)行顯示。引腳圖如圖2.7所示:圖2.9 lg3641ah引腳圖上圖中,從左至右,依次為數(shù)碼管1、2、3、4。這四個(gè)數(shù)碼管被集成為一個(gè)模塊,各數(shù)碼管的的段碼數(shù)據(jù)線連在一起,都由上圖中外部引腳a-h決定。圖中g(shù)nd1-gnd4為各數(shù)碼管的位選擇引腳

14、,當(dāng)其中一個(gè)信號(hào)為低電平時(shí),則相應(yīng)位的數(shù)碼管被選通點(diǎn)亮。由于lg3641ah 為共陰極數(shù)碼管, a-h管腳上若輸出高電平,則相應(yīng)段碼被點(diǎn)亮。為了避免單片機(jī)輸出的高電平電壓過高使數(shù)碼管燒壞,應(yīng)分別在a-h管腳上接200電阻分壓。lg3641ah七段led碼如下表所示:表2.12.4.3 4*4矩陣鍵盤為了簡化設(shè)計(jì)電路,本實(shí)驗(yàn)使用已集成好的4*4矩陣鍵盤模塊。它是用4條i/o線作為行線,4條i/o線作為列線組成的鍵盤。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤中按鍵的個(gè)數(shù)是44個(gè)。這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中i/o口的利用率。該矩陣鍵盤模塊接口共有9根數(shù)據(jù)線,從左至右,依

15、次為:公共數(shù)據(jù)端、1-4列數(shù)據(jù)選擇端、4-1行數(shù)據(jù)選擇端。按鍵排序圖如圖2.10,其原理圖如圖2.11所示:, 圖2.11 按鍵排序圖圖2.11 矩陣鍵盤原理圖實(shí)際設(shè)計(jì)中,按不同的鍵運(yùn)用萬用表測(cè)量導(dǎo)通的信號(hào)線,可推出各引腳的作用。2.5 數(shù)碼管驅(qū)動(dòng)及鍵盤控制芯片 ch451ch451 是一個(gè)整合了數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制的多功能外圍芯片。ch451內(nèi)置 rc 振蕩電路,可以動(dòng)態(tài)驅(qū)動(dòng)8位數(shù)碼管或者64位 led ,具有 bcd 譯碼、閃爍、移位等功能;同時(shí)還可以進(jìn)行64鍵的鍵盤掃描;ch451 通過 1線或者可以級(jí)聯(lián)的4線串行接口與單片機(jī)等交換數(shù)據(jù);并且提供上電復(fù)位和看門狗等監(jiān)控功能。其引腳

16、圖如圖2.12所示:圖2.12 ch451引腳圖各引腳說明如下表所示:表2.2引腳號(hào)引腳名稱類型引腳說明2vcc電源正電源,持續(xù)電流不小于200ma15gnd電源接地,持續(xù)電流不小于200ma4load輸入4 線串行接口的數(shù)據(jù)加載,帶上拉5din輸入4 線串行接口的數(shù)據(jù)輸入,帶上拉6dclk輸入串行接口的數(shù)據(jù)時(shí)鐘,帶上拉 同時(shí)用于看門狗的清除輸入3dout輸出串行接口的數(shù)據(jù)輸出和鍵盤中斷1、 2418seg7 seg0三態(tài)輸出及輸入數(shù)碼管的段驅(qū)動(dòng),高電平有效, 鍵盤掃描輸入,高電平有效,帶下拉714dig7 dig0輸出數(shù)碼管的字驅(qū)動(dòng),低電平有效,鍵盤掃描輸出,高電平有效16rst輸出上電復(fù)位

17、和看門狗復(fù)位,高電平有效17n.c.不連接,禁止使用 顯示驅(qū)動(dòng)ch451對(duì)數(shù)碼管和發(fā)光管采用動(dòng)態(tài)掃描驅(qū)動(dòng),順序?yàn)閐ig0至dig7,當(dāng)其中一個(gè)引腳吸入電流時(shí),其它引腳則不吸入電流。ch451內(nèi)部具有大電流驅(qū)動(dòng)級(jí),可以直接驅(qū)動(dòng)0.5英寸至 2 英寸的共陰數(shù)碼管,段驅(qū)動(dòng)引腳 seg6seg0 分別對(duì)應(yīng)數(shù)碼管的段 g段 a,段驅(qū)動(dòng)引腳 seg7 對(duì)應(yīng)數(shù)碼管的小數(shù)點(diǎn),字驅(qū)動(dòng)引腳 dig7dig0 分別連接 8 個(gè)數(shù)碼管的陰極。ch451支持掃描極限控制,并且只為有效數(shù)碼管分配掃描時(shí)間。當(dāng)掃描極限設(shè)定為1時(shí),唯一的數(shù)碼管dig0將得到所有的動(dòng)態(tài)驅(qū)動(dòng)時(shí)間,從而等同于靜態(tài)驅(qū)動(dòng);當(dāng)掃描極限設(shè)定為 8 時(shí),8

18、個(gè)數(shù)碼管 dig7dig0 各得到 1/8 的動(dòng)態(tài)驅(qū)動(dòng)時(shí)間;當(dāng)掃描極限設(shè)定為 4時(shí),4個(gè)數(shù)碼管 dig3dig0各得到1/4的動(dòng)態(tài)驅(qū)動(dòng)時(shí)間,此時(shí)各數(shù)碼管的平均驅(qū)動(dòng)電流將比掃描極限為8時(shí)增加一倍,所以降低掃描極限可以提高數(shù)碼管的顯示亮度。ch451 內(nèi)部具有 8 個(gè) 8 位的數(shù)據(jù)寄存器,用于保存 8 個(gè)字?jǐn)?shù)據(jù),分別對(duì)應(yīng)于 ch451 所驅(qū)動(dòng)的8 個(gè)數(shù)碼管。 ch451支持?jǐn)?shù)據(jù)寄存器中的字?jǐn)?shù)據(jù)左移、右移、左循環(huán)、右循環(huán),并且支持各數(shù)碼管的獨(dú)立閃爍控制,在字?jǐn)?shù)據(jù)左右移動(dòng)或者左右循環(huán)移動(dòng)的過程中,閃爍控制的屬性不受影響。通過設(shè)定,ch451可以工作于bcd譯碼方式,該方式主要應(yīng)用于數(shù)碼管驅(qū)動(dòng),單片機(jī)只

19、要給出二進(jìn)制數(shù) bcd 碼,由 ch451 將其譯碼后直接驅(qū)動(dòng)數(shù)碼管顯示對(duì)應(yīng)的字符,簡化了單片機(jī)譯碼的工作。bcd譯碼方式是指對(duì)數(shù)據(jù)寄存器中字?jǐn)?shù)據(jù)的位4位0進(jìn)行兼容bcd的譯碼,控制段驅(qū)動(dòng)引腳seg6seg0的輸出,對(duì)應(yīng)于數(shù)碼管的段 g段 a,同時(shí)用字?jǐn)?shù)據(jù)的位 7 控制段驅(qū)動(dòng)引腳 seg7 的輸出,對(duì)應(yīng)于數(shù)碼管的小數(shù)點(diǎn),字?jǐn)?shù)據(jù)的位 6 和位 5 不影響 bcd 譯碼的輸出,可以是任意值。下表為數(shù)據(jù)寄存器中字?jǐn)?shù)據(jù)的位4位0進(jìn)行bcd譯碼后,所對(duì)應(yīng)的段g段a以及數(shù)碼管顯示的字符。表2.3 鍵盤掃描ch451 的鍵盤掃描功能支持 88 矩陣的 64 鍵鍵盤。在鍵盤掃描期間,dig7dig0引腳用于列

20、掃描輸出,seg7seg0 引腳都帶有內(nèi)部下拉,用于行掃描輸入;當(dāng)啟用鍵盤掃描功能后,dout引腳的功能由串行接口的數(shù)據(jù)輸出變?yōu)殒I盤中斷以及數(shù)據(jù)輸出。 ch451 定期在顯示驅(qū)動(dòng)掃描過程中插入鍵盤掃描。在鍵盤掃描期間,dig7dig0 引腳按照dig0 至dig7的順序依次輸出高電平,其余7個(gè)引腳輸出低電平;seg7seg0引腳的輸出被禁止,當(dāng)沒有鍵被按下時(shí),seg7seg0都被下拉為低電平;當(dāng)有鍵被按下時(shí),例如連接 dig3 與 seg4 的鍵被按下,則當(dāng) dig3 輸出高電平時(shí) seg4 檢測(cè)到高電平;為了防止因?yàn)榘存I抖動(dòng)或者外界干擾而產(chǎn)生誤碼,ch451實(shí)行兩次掃描,只有當(dāng)兩次鍵盤掃描的

21、結(jié)果相同時(shí),按鍵才會(huì)被確認(rèn)有效。如果 ch451 檢測(cè)到有效的按鍵,則記錄下該按鍵代碼,并通過dout引腳產(chǎn)生低電平有效的鍵盤中斷,此時(shí)單片機(jī)可以通過串行接口讀取按鍵代碼;在沒有檢測(cè)到新的有效按鍵之前,ch451不再產(chǎn)生任何鍵盤中斷。ch451不支持組合鍵,也就是說,同一時(shí)刻,不能有兩個(gè)或者更多的鍵被按下。ch451所提供的按鍵代碼為7位,位2位0是列掃描碼,位5位3是行掃描碼,位 6 是狀態(tài)碼(鍵按下為 1,鍵釋放為 0)。例如,連接 dig3 與 seg4 的鍵被按下,則按鍵代碼是1100011b 或者63h,鍵被釋放后,按鍵代碼是0100011b或者23h,其中,對(duì)應(yīng)dig3的列掃描碼為

22、011b,對(duì)應(yīng)seg4的行掃描碼為100b。單片機(jī)可以在任何時(shí)候讀取按鍵代碼,但一般在 ch451 檢測(cè)到有效按鍵而產(chǎn)生鍵盤中斷時(shí)讀取按鍵代碼,此時(shí)按鍵代碼的位6總是1,另外,如果需要了解按鍵何時(shí)釋放,單片機(jī)可以通過查詢方式定期讀取按鍵代碼,直到按鍵代碼的位6為0。下表是連接在dig7dig0與seg7seg0之間的鍵被按下時(shí),ch451所提供的按鍵代碼。這些按鍵代碼具有一定的規(guī)律,如果需要鍵被釋放時(shí)的按鍵代碼,則將表中的按鍵代碼的位6置0,或者將表中的按鍵代碼減去40h。表2.4 串行接口ch451具有硬件實(shí)現(xiàn)的高速4線串行接口,包括4根信號(hào)線:串行數(shù)據(jù)輸入線din、串行數(shù)據(jù)時(shí)鐘線dclk、

23、串行數(shù)據(jù)加載線load、串行數(shù)據(jù)輸出線dout。其中,din、dclk、load是帶上拉的輸入信號(hào)線,默認(rèn)是高電平;dout在未啟用鍵盤掃描功能時(shí)作為串行數(shù)據(jù)輸出線,在啟用鍵盤掃描功能后作為鍵盤中斷和數(shù)據(jù)輸出線,默認(rèn)是高電平。 din 用于提供串行數(shù)據(jù),高電平表示位數(shù)據(jù)1,低電平表示位數(shù)據(jù)0,串行數(shù)據(jù)輸入的順序是低位在前,高位在后。單片機(jī)可以在dclk高電平期間變化din的電平,如果必要也可以在 dclk 低電平期間變化 din 的電平。另外,在上電復(fù)位后,ch451 默認(rèn)選擇 1 線串行接口,所以單片機(jī)必須在dclk輸出串行時(shí)鐘之前,先在din上輸出一個(gè)低電平脈沖(由高電平變?yōu)榈碗娖皆倩謴?fù)為

24、高電平) ,通知ch451選擇4線串行接口。 dclk 用于提供串行時(shí)鐘,ch451 在其上升沿從 din 輸入數(shù)據(jù),在其下降沿從 dout輸出數(shù)據(jù)。ch451內(nèi)部具有12位移位寄存器,在dclk的上升沿,din上的位數(shù)據(jù)被移入移位寄存器的最高位寄存器,以此類推,原次低位數(shù)據(jù)移入最低位寄存器,在該上升沿后的第一個(gè)下降沿,原次低位數(shù)據(jù)從dout輸出。ch451允許dclk引腳的串行時(shí)鐘頻率大于10mhz,從而可以實(shí)現(xiàn)高速串行輸入輸出。load 用于加載串行數(shù)據(jù),ch451在其上升沿加載移位寄存器中的12位數(shù)據(jù),作為操作命令分析并處理。也就是說,load 的上升沿是串行數(shù)據(jù)幀的幀完成標(biāo)志,此時(shí)無論

25、移位寄存器中的 12位數(shù)據(jù)是否有效,ch451都會(huì)將其當(dāng)作操作命令。 單片機(jī)向ch451輸出串行數(shù)據(jù)的過程是(不是唯一的過程,可以有很多變化): 輸出一位數(shù)據(jù),即向 din 輸出最低位數(shù)據(jù)b0,并向 dclk 輸出低電平脈沖(從高電平變?yōu)榈碗娖皆倩謴?fù)為高電平),其中包括一個(gè)上升沿使 ch451 輸入位數(shù)據(jù); 以同樣的方式,輸出位數(shù)據(jù)b1b11; 向load輸出低電平脈沖,其中包括一個(gè)上升沿使ch451加載串行數(shù)據(jù)。可以將以b0b1b2b3b4b5b6b7b8b9b10b11作為上述過程的簡化描述,其中,代表dclk的上升沿,代表load的上升沿,b0b11分別代表1 位數(shù)據(jù),如果是字符0或1則

26、對(duì)應(yīng)din輸入的位數(shù)據(jù),如果是字符l或h則對(duì)應(yīng)dout輸出的位數(shù)據(jù)0 或1。在未啟用鍵盤掃描功能時(shí),dout 用于輸出串行數(shù)據(jù),移位寄存器中的最低位數(shù)據(jù)總是在dclk的下降沿出現(xiàn)在dout引腳。當(dāng)啟用鍵盤掃描功能后,dout 用于鍵盤中斷和數(shù)據(jù)輸出,默認(rèn)是高電平。當(dāng) ch451檢測(cè)到有效按鍵時(shí),dout 輸出低電平有效的鍵盤中斷;單片機(jī)被中斷后,發(fā)出讀取按鍵代碼命令,ch451在load的上升沿后從dout輸出7位按鍵代碼的最高位;單片機(jī)繼續(xù)輸出串行時(shí)鐘,在dclk的每個(gè)下降沿,ch451依次從dout輸出7位按鍵代碼的剩余6位,順序是高位在前,低位在后;7 位按鍵代碼輸出完畢后,無論 dcl

27、k 如何變化,ch451 都將dout恢復(fù)為默認(rèn)的高電平。單片機(jī)從ch451獲得按鍵代碼的過程是: 輸出一位數(shù)據(jù),即向din輸出讀取按鍵代碼命令的最低位數(shù)據(jù)b0,并向dclk輸出低電平脈沖; 以同樣的方式,輸出讀取按鍵代碼命令的位數(shù)據(jù)b1b11; 向 load 輸出低電平脈沖,其中包括一個(gè)上升沿使 ch451 加載串行數(shù)據(jù),ch45分析出是讀取按鍵代碼命令,立即在dout輸出按鍵代碼的最高位數(shù)據(jù)k7; 讀取一位數(shù)據(jù),即從 dout 輸入按鍵代碼的最高位數(shù)據(jù) k7,并向 dclk 輸出低電平脈沖; 以同樣的方式,輸入按鍵代碼的位數(shù)據(jù)k6k0。實(shí)際上,ch451 的讀取按鍵代碼命令只有位數(shù)據(jù) b8

28、b11 是有效的,所以為了節(jié)約時(shí)間,單片機(jī)發(fā)出的讀取按鍵代碼命令只需要 4 位數(shù)據(jù),而不必發(fā)送 b0b7。例如,按鍵代碼是 63h,則上述過程的簡化描述是 1110hhlllhh,即先向 ch451 發(fā)出讀取按鍵代碼命令0111xxxxxxxxb,然后從dout接收按鍵代碼1100011b。 操作命令ch451 的操作命令均為 12 位,下表列出了 ch451 的各個(gè)操作命令所對(duì)應(yīng)的 12 位串行數(shù)據(jù)。其中,標(biāo)注為 x 的位表示該位可以是任意值;標(biāo)有名稱的位表示該位在 ch451芯片內(nèi)部具有相應(yīng)的寄存器,其數(shù)據(jù)根據(jù)操作命令的不同而變化。2.5單片機(jī)最小系統(tǒng)本部分的作用是處理數(shù)據(jù),控制各器件。組

29、成包括89c52單片機(jī),時(shí)鐘電路,復(fù)位電路。其具體電路如圖2.9所示。圖2.13 單片機(jī)最小系統(tǒng)電路3. stc89c51單片機(jī)最小系統(tǒng)元件清單表2.4分類元件編號(hào)元件內(nèi)容數(shù)量電容電阻c510uf(電解)1c1-c31uf(電解)41040.1(陶瓷)330p30pf2r1(系統(tǒng)板)4701r1-r4(擴(kuò)展板)1004r5-r8(擴(kuò)展板)3.3k4r2-r6(系統(tǒng)板)1k5rj1-rj21k排阻(9口)2芯片u1stc89c511u374ls001u1-u41644u2max232cpe1按鍵k、s1-s1666小按鍵17k1-k488不帶鎖按鍵3ledl1-l8、power紅黃綠各3個(gè)9se

30、g1-seg4共陽數(shù)碼管4二極管1n40071n40072接插件j2usb延長線1usb供電口1j1串口線1db9串口座1j2電源插線口111.0592mhz11.0592m晶振1芯片座u1dip-401u3(系統(tǒng)板)、u1-u4dip-145u2dip-161p0-p3/j1-j2單排針40針2其他10芯排線長15018芯排線長1501pcb板系統(tǒng)板1pcb板擴(kuò)展板1第三章 系統(tǒng)調(diào)試與軟件設(shè)計(jì)3.1 軟件設(shè)計(jì)本系統(tǒng)軟件編寫部分,主要包括以下幾個(gè)功能:實(shí)現(xiàn)溫度值的采集與顯示、按鍵定溫度值的讀取,以及繼電器控制信號(hào)的正確輸出,功能十分全面、系統(tǒng)。具體包括以下內(nèi)容:溫控系統(tǒng)開機(jī)后則自動(dòng)采集實(shí)時(shí)溫度

31、并進(jìn)行顯示;矩陣鍵盤中的a鍵為設(shè)定溫度的功能鍵,若按下a鍵則可來時(shí)設(shè)定溫度;隨后單片機(jī)會(huì)不斷將實(shí)時(shí)溫度值與設(shè)定溫度值進(jìn)行比較,若實(shí)時(shí)溫度值小于設(shè)定溫度值則控制繼電器開關(guān)不動(dòng)作繼續(xù)加熱,若實(shí)時(shí)溫度值大于設(shè)定溫度值則控制繼電器開關(guān)動(dòng)作停止加熱。其主程序圖如圖3.1所示。圖3.1 主程序流程圖3.2 調(diào)試 將各個(gè)硬件電路搭建成一個(gè)完整的溫控系統(tǒng),并進(jìn)行調(diào)試。根據(jù)所搭建的系統(tǒng),編寫相應(yīng)的軟件程序并將各模塊調(diào)用的子程序進(jìn)行整合,使其系統(tǒng)化、規(guī)范化。運(yùn)用編譯軟件keil和燒寫軟件進(jìn)行編譯下載。3.3上位機(jī)軟件設(shè)計(jì)通過max232實(shí)現(xiàn)串口通訊,下位機(jī)將數(shù)據(jù)發(fā)送到到上位機(jī)。上位機(jī)可以利用其相對(duì)強(qiáng)大的數(shù)據(jù)處理能

32、力將數(shù)據(jù)進(jìn)一步處理,讓后輸出顯示,也可以實(shí)現(xiàn)遠(yuǎn)程控制。本出只是將數(shù)據(jù)上傳,讓后以波形,數(shù)字和溫度計(jì)形式顯示出來。此處運(yùn)用labview軟件實(shí)現(xiàn),其程序圖如圖3.3。前置面板如圖3.2。圖3.2 上位機(jī)前置面板圖3.3 上位機(jī)程序圖第四章 設(shè)計(jì)體會(huì)與小結(jié)通過2周的智能儀器課程設(shè)計(jì),我更好地掌握了智能儀器的組成及工作原理、硬件和軟件系統(tǒng)的設(shè)計(jì)方法、基本智能化功能的實(shí)現(xiàn)方法、整機(jī)設(shè)計(jì)與調(diào)試的方法等。進(jìn)一步加強(qiáng)自己獨(dú)立分析、解決問題的能力,同時(shí)注意培養(yǎng)自己實(shí)事求是、嚴(yán)肅認(rèn)真的科學(xué)作風(fēng)和良好的實(shí)驗(yàn)習(xí)慣,為今后工作打下良好的基礎(chǔ)。培養(yǎng)并提高自己綜合運(yùn)用所學(xué)知識(shí)與技術(shù)進(jìn)行儀器設(shè)計(jì)的實(shí)踐創(chuàng)新能力,使自己通過實(shí)

33、踐鍛煉,具有較扎實(shí)的系統(tǒng)電路設(shè)計(jì)基礎(chǔ)和在實(shí)踐中發(fā)現(xiàn)并解決問題的能力。這次智能溫度測(cè)量儀表的設(shè)計(jì)讓我獲得了課本中難以學(xué)到的經(jīng)驗(yàn)。要做一塊智能溫度測(cè)量儀表的電路板,就那么幾個(gè)元件,本以為很簡單,確在第一步布局上花了不少時(shí)間,因?yàn)槲蚁胧拐w布局合理美觀,所需連接的導(dǎo)線盡可能的少些,所需焊接的距離短些。在焊接的過程中也有一些小困難,有的時(shí)候容易造成短路,有時(shí)候又會(huì)造成虛焊。并且想焊接得漂亮點(diǎn)也要花不少精力。在安裝ds18b20等元件時(shí)必須注意各腳是否正確安裝。焊接好電路板后,將單片機(jī)最小系統(tǒng)用杜邦線與做好的電路板相連,利用keil軟件將程序?qū)懭?9c51中并運(yùn)行。溫控系統(tǒng)開機(jī)后則自動(dòng)采集實(shí)時(shí)溫度并進(jìn)行

34、顯示;矩陣鍵盤中的a鍵為設(shè)定溫度的功能鍵,若按下a鍵則可來時(shí)設(shè)定溫度;隨后單片機(jī)會(huì)不斷將實(shí)時(shí)溫度值與設(shè)定溫度值25度進(jìn)行比較,若實(shí)時(shí)溫度值小于設(shè)定溫度值則控制繼電器開關(guān)不動(dòng)作繼續(xù)加熱,若實(shí)時(shí)溫度值大于設(shè)定溫度值則控制繼電器開關(guān)動(dòng)作停止加熱。參考文獻(xiàn)1) 智能儀器設(shè)計(jì)基礎(chǔ)史建芳等編著,北京:電子工業(yè)出版社,2007,92) 智能儀器設(shè)計(jì)基礎(chǔ)趙新民.哈爾濱工業(yè)大學(xué)出版社,20013) 智能儀器原理與設(shè)計(jì)技術(shù)凌志浩等.上海:華東理工大學(xué)出版社,20034) 微機(jī)原理試驗(yàn)指導(dǎo)書 武漢理工大學(xué)華夏學(xué)院 ,20065) 傳感與檢測(cè)技術(shù) 戴卓主編, 武漢理工大學(xué)出版社,20036) 測(cè)控系統(tǒng)電子技術(shù)嚴(yán)令主編

35、,科學(xué)出版社,20077) labview8.20程序設(shè)計(jì)從入門到精通陳錫輝,張銀鴻編著,清華大學(xué)出版社,20078) 單片微型計(jì)數(shù)機(jī)與接口技術(shù)(第2版)李群芳,張士軍,黃 建 編著,電子工業(yè)出版社,2005附錄該溫度控制系統(tǒng)具體源程序如下所示: /*/* ch451功能宏定義 */*/#define ch451_reset 0x0201 /復(fù)位#define ch451_leftmov 0x0300 /設(shè)置移動(dòng)方式-作移#define ch451_leftcyc 0x0301 /設(shè)置移動(dòng)方式-左循#define ch451_rightmov 0x0302 /設(shè)置移動(dòng)方式-右移#define

36、ch451_rightcyc 0x0303 /設(shè)置移動(dòng)方式-右循#define ch451_sysoff 0x0400 /關(guān)顯示、鍵盤、看門狗#define ch451_syson1 0x0401 /開顯示#define ch451_syson2 0x0403 /開顯示、鍵盤#define ch451_syson3 0x0407 /開顯示、鍵盤、看門狗功能#define ch451_dsp 0x0500 /設(shè)置默認(rèn)顯示方式#define ch451_bcd 0x0580 /設(shè)置bcd譯碼方式#define ch451_twinkle 0x0600 /設(shè)置閃爍控制#define ch451_di

37、g0 0x0800 /數(shù)碼管位0顯示#define ch451_dig1 0x0900 /數(shù)碼管位1顯示 #define ch451_dig2 0x0a00 /數(shù)碼管位2顯示#define ch451_dig3 0x0b00 /數(shù)碼管位3顯示#define ch451_dig4 0x0c00 /數(shù)碼管位4顯示#define ch451_dig5 0x0d00 /數(shù)碼管位5顯示#define ch451_dig6 0x0e00 /數(shù)碼管位6顯示#define ch451_dig7 0x0f00 /數(shù)碼管位7顯示#include /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#i

38、nclude#include#define uchar unsigned char#define uint unsigned int/*/* 定義端口 */*/sbit relay=p20;sbit ch451_dclk=p21; /串行數(shù)據(jù)時(shí)鐘上升延激活sbit ch451_din=p22; / 串行數(shù)據(jù)輸出,接ch451的數(shù)據(jù)輸入sbit ch451_load=p23;sbit ch451_dout=p33; /int1,鍵盤中斷和鍵值數(shù)據(jù)輸入,接ch451的數(shù)據(jù)輸出sbit dq=p24; /ds18b20 端口unsigned char showtemp3=0,3,6; /用于存儲(chǔ)要顯

39、示的溫度數(shù)據(jù) 高位在前unsigned char flag=0;unsigned char ch451_key=0;sfr dataled=0x80 ;/顯示數(shù)據(jù)端口unsigned char setb=0; /*/* 全局變量 */*/uint temp;uchar flag_get,count,num,minute,second;uchar str6;/*/* 函數(shù)聲明 */*/void delay1(uchar ms);unsigned int readtemperature(void);void init_ds18b20(void);unsigned char readonechar(

40、void);void writeonechar(unsigned char dat);void delay(unsigned int i);/*/* 向ch451傳輸數(shù)據(jù) */*/輸出命令子程序 /定義一無符號(hào)整型變量存儲(chǔ)12字節(jié)的命令字。void ch451_write(unsigned int command) unsigned char i;#ifdef use_key ex1=0; /禁止鍵盤中斷 #endif ch451_load=0; /命令開始 for(i=0;i=1; ch451_dclk=1; /上升沿有效 ch451_load=1; /加載數(shù)據(jù) #ifdef use_key

41、 ex1=1; #endif/*/ ch451初始化子程序/* void ch451_init() p1=0x60;ch451_din=0; ch451_dclk=1; /先低后高,選擇4線輸入 ch451_din=1; ch451_load=1; ch451_dout=1; #ifdef use_key it1=0; /設(shè)置下降沿觸發(fā) ie1=0; /清中斷標(biāo)志 px1=1; /設(shè)置低優(yōu)先級(jí) ex1=1; /開中斷 #endif/*/ 溫度設(shè)定子程序/*void set_temp(void) /設(shè)定保溫點(diǎn) unsigned char i; ch451_write(ch451_dig0|sho

42、wtemp0);/顯示原來設(shè)定溫度 ch451_write(ch451_dig1|showtemp1); ch451_write(ch451_dig2|showtemp2); /設(shè)定溫度 ch451_write(ch451_twinkle|1); /閃爍 ex1=1; /允許鍵盤中斷 while(flag=0); ex1=0; /禁止鍵盤中斷 flag=0; showtemp0=ch451_key; /保存數(shù)據(jù) ch451_write(ch451_dig0|showtemp0); /顯示鍵值 ch451_write(ch451_twinkle); /停止閃爍 ch451_write(ch451_twinkle|2); ex1=1; /允許鍵盤中斷 while(flag=0); ex1=0; /禁止鍵盤中斷 flag=0; showtemp1=ch451_key; ch451_write(ch451_dig1|showtemp1); ch451_write(ch451_twinkle); ch451_write(ch451_twinkle|4); ex1=1; /允許鍵盤中斷 while(flag=0); ex1=0; /禁止鍵盤中斷 flag=0; showtemp2=ch451_key; ch451_wr

溫馨提示

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