基于MSP430單片機溫度測量系統(tǒng)設(shè)計畢業(yè)論文_第1頁
基于MSP430單片機溫度測量系統(tǒng)設(shè)計畢業(yè)論文_第2頁
基于MSP430單片機溫度測量系統(tǒng)設(shè)計畢業(yè)論文_第3頁
基于MSP430單片機溫度測量系統(tǒng)設(shè)計畢業(yè)論文_第4頁
基于MSP430單片機溫度測量系統(tǒng)設(shè)計畢業(yè)論文_第5頁
免費預(yù)覽已結(jié)束,剩余69頁可下載查看

下載本文檔

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

文檔簡介

IIIIII基于 MSP430單片機溫度測量系統(tǒng)設(shè)計畢業(yè)論文目錄摘要 錯 誤!未定義書簽。Abstract 錯 誤!未定義書簽。TOC\o"1-5"\h\z\o"CurrentDocument"第1章緒論 1\o"CurrentDocument"MSP430單片機概述 1\o"CurrentDocument"MSP430的特點 2\o"CurrentDocument"課題研究的主要內(nèi)容 4\o"CurrentDocument"研究內(nèi)容 4\o"CurrentDocument"論文安排 4\o"CurrentDocument"第2章系統(tǒng)總體方案設(shè)計 5\o"CurrentDocument"控制系統(tǒng)的原理圖 5\o"CurrentDocument"溫度測量原理 5\o"CurrentDocument"MSP430F149單片機 6\o"CurrentDocument"MSP430F149的組成 6\o"CurrentDocument"MSP430F149的特點 7\o"CurrentDocument"MSP430F149的定時器及轉(zhuǎn)換模塊 7\o"CurrentDocument"單線數(shù)字溫度傳感器 DS18B20 8\o"CurrentDocument"DS18B20的技術(shù)性能: 9\o"CurrentDocument"DS18B20的應(yīng)用范圍 9\o"CurrentDocument"DS18B20產(chǎn)品型號與規(guī)格 10\o"CurrentDocument"溫度傳感器 DS18B20特點: 10\o"CurrentDocument"DS18B20使用中注意事項 10\o"CurrentDocument"溫度傳感器 DS18B20內(nèi)部結(jié)構(gòu) 11\o"CurrentDocument"數(shù)據(jù)采集系統(tǒng) 13\o"CurrentDocument"第3章硬件部分 15\o"CurrentDocument"硬件電路圖 15\o"CurrentDocument"電源及復(fù)位模塊 16\o"CurrentDocument"鍵盤輸入模塊 18\o"CurrentDocument"報警模塊 19\o"CurrentDocument"功率放大器 LM386 19\o"CurrentDocument"LM386 內(nèi)部原理 21\o"CurrentDocument"顯示模塊 23\o"CurrentDocument"LCD1602基本參數(shù)及引腳功能 231602LCD主要技術(shù)參數(shù) 24引腳功能說明 24\o"CurrentDocument"第 4章 軟件部分 29\o"CurrentDocument"最小系統(tǒng)設(shè)計 29\o"CurrentDocument"采集模塊 31\o"CurrentDocument"鍵盤輸入模塊 32\o"CurrentDocument"顯示模塊 34\o"CurrentDocument"報警模塊 37\o"CurrentDocument"總結(jié) 39\o"CurrentDocument"致謝 40參考文獻 41附錄 42C等高級語言進行系統(tǒng)程序設(shè)計時, 對DS18B20操作部分最好采用匯編語言實現(xiàn)。2、在DS18B20的有關(guān)資料中均未提及單總線上所掛 DS1820數(shù)量問題,容易使人誤認為可以掛任意多個 DS1820,在實際應(yīng)用中并非如此。當(dāng)單總線上所掛 DS18B20超過 8個時, 就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時 要加以注意。2.4.6溫度傳感器 DS18B20內(nèi)部結(jié)構(gòu)溫度傳感器 DS18B20內(nèi)部結(jié)構(gòu): DS18B20采用三腳 PR35封裝如圖2-2所示,其內(nèi)部框圖如 2-3所示 [5]。64位的ROM開始8位是產(chǎn)品類型的編號,接著是每個器件的唯一的序號共計 48位,最后 8位是前56位的CRC校驗碼。高速緩存器存儲器包含一個高速暫存 RAM和一個非易失性的可電擦除的 EP2RAM。配置寄存器為高速緩存器中的第五個字節(jié),它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,各位字節(jié)的定義如表 2-2示:表2-2各位字節(jié)的定義TMR1R011111后五位一直是 1,TM是測試模式位,用于設(shè)置 DS18B20在工作模式還是測試模式,在 DS18B20出廠時被設(shè)置為 0,用戶不要去改動, R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),也就是設(shè)置分辨率。

圖2-4DS18B20內(nèi)部結(jié)構(gòu)圖在溫度進行計算時,以 12位轉(zhuǎn)換位數(shù)為例:對于正的溫度,只要將測到的數(shù)值整數(shù)部分取出, 轉(zhuǎn)換為十進制, 再將小數(shù)部分乘以 0.0625就可以將得到的十進制的小數(shù)位的溫度值了。而對于負的溫度,則需要將采集到的數(shù)值取反加 1,即可以得到實際溫度的十六進制表示。在按照正溫度的計算方法就可以得出十進制的負的溫度了 [6]。如表2-3及表2-4所示。表2-3DS18B20溫度寄存器格式Bit7Bit6Bit5Bit4Bit3Bit2Bit1bit0LSByte232221202-12-22-32-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8LSByteSSSSS262524

表2-4部分溫度值溫度/℃二進制表示16進制表示+125000001111101000007D0H+25.062500000001100100010191H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-25.06251111111001101111FE6FH-551111110010010000FC90H2.5數(shù)據(jù)采集系統(tǒng)該系統(tǒng)采用美國 DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器 DS18B20來采集溫度數(shù)據(jù), 作為單片機 MSP430149的溫度傳感器, 該芯片有很多優(yōu)點,可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供微機處理。由于每片DS18B20含有唯一的硅串行數(shù), 從DS18B20讀出的信息或?qū)懭?DS18B20的信息,僅需要一根口線(單線接口) 。由于該系統(tǒng)采用 DS18B20作為溫度采集傳感器,這部分電路就比較簡單了,圖 2-5為溫度采集電路。2-5溫度采集電路

I/O口可以通過圖2-5I/O口可以與MSP430F149的P2.6口直接相連,來完成數(shù)據(jù)的傳送。第3章硬件部分本章主要介紹硬件部分的各個模塊,這些模塊包括電源模塊及復(fù)位TI公司的TPS76033芯片,保證 MSP430F149單片機的工作電壓。復(fù)位模塊采用MAX809芯片。鍵盤輸入模塊主要是用來輸入數(shù)據(jù), 從而實現(xiàn)人機交互。LM386芯片,實現(xiàn)報警控制。顯示模塊采用 LCD1602顯硬件電路圖單片機的最小系統(tǒng)如圖 3-1所示:圖3-1單片機最小系統(tǒng)電路單片機電路作為整個系統(tǒng)的核心控制部分,主要完成與其他電路的

接口,從而獲得數(shù)據(jù)進行處理,將處理的結(jié)果采用某種方式表現(xiàn)出來,比如顯示或報警。從單片機最小系統(tǒng)電路可以看出,單片機接口電路非常簡單,分別采用單片機的一般 I/O口實現(xiàn)與其他電路的連口,在單片機的時鐘設(shè)計上與其他單片機有一定的區(qū)別, MSP430F149單片機采用兩個時鐘的輸入,一個32kHz的時鐘信號, 一個 8MHz的時鐘信號。 該系統(tǒng)的時鐘部分是采用晶體振蕩器實現(xiàn)的 [7]??紤]到電源的輸入紋波對單片機的影響,在電源的管理腳增加一個 0.1uF的電容來實現(xiàn)濾波,以減小輸入端受到的干擾。另外單片機還有模擬電源的輸入端,因此在這里需要考慮干擾問題,在該系統(tǒng)中的干擾比較小,因此模擬地和數(shù)字地共地,模擬電源輸入端增加一個濾波電容以減少干擾。電源及復(fù)位模塊本模塊采用 TPS76033(低功耗 50mA低壓降(LDO)穩(wěn)壓器)芯片實現(xiàn),如圖 3-2所示:圖3-2TPS76033實物圖電壓電路:由于 MSP430F149單片機的工作電壓一般是 1.8v~3.6v,并且功率極低。為了方便起見,本系統(tǒng)采用電池(如 2節(jié)普通5號電池)供電,因此輸出電壓為 3V。而整個系統(tǒng)采用 3.3V供電??紤]到硬件系統(tǒng)對電源要求具有穩(wěn)壓功能和紋波小等特點,另外也考慮到硬件系統(tǒng)的低功耗特點, 因此該硬件系統(tǒng)的電源部分采用 TI公司的TPS76033芯片實現(xiàn),該芯片能很好的滿足該硬件的系統(tǒng)的要求,另外該芯片具有很小的封裝,因此能有效的節(jié)約 PCB板的面積[8]。為了使輸出電源的紋波小, 在輸出部分用了一個 2.2uF和0.1uF的電容,另外在芯片的輸入端也放置一個 0.1uF的濾波電容,減少輸入端受到的干擾。電源電路具體如圖 3-3所示。圖3-3電源電路復(fù)位電路:在單片機系統(tǒng)里,單片機需要復(fù)位電路,復(fù)位電路可以采用 RC復(fù)位電路,也可以采用復(fù)位芯片實現(xiàn)的復(fù)位電路, RC復(fù)位電路具有經(jīng)濟性,但可靠性不高,用復(fù)位芯片實現(xiàn)的復(fù)位電路具有很高的可靠性,因此為了保證復(fù)位電路的可靠性,該系統(tǒng)采用復(fù)位芯片實現(xiàn)的復(fù)位電路,該系統(tǒng)采用 MAX809芯片 [1]。為了減小電源的干擾,還需要在復(fù)位芯片的電源的輸入端加一個0.1uF的電容來實現(xiàn)濾波,以減小輸入端受到的干擾。復(fù)位電路如圖 3-4所示:

3-4復(fù)位電路3-4復(fù)位電路鍵盤輸入模塊鍵盤輸入電路主要是用來輸入數(shù)據(jù),從而實現(xiàn)人機交互。該系統(tǒng)的鍵盤設(shè)計是采用掃描方式實現(xiàn)的矩陣鍵盤。 該系統(tǒng)的鍵盤電路圖如圖 3-5P1.0P1.0、P1.1、P1.2、P1.3構(gòu)成鍵圖3-5鍵盤輸入電路該矩陣掃描鍵盤由行線和列線組成,

盤的行線, P1.4、Pl.5、Pl.6和Pl.7構(gòu)成鍵盤的列線。鍵盤的行線作為鍵盤的控制輸出端,鍵盤的列線作為鍵盤的輸入端。在設(shè)計時為了程序設(shè)計的方便性,鍵盤的列線采用的是 Pl.4、Pl.5、P1.6、Pl.7,這樣可以利用該管腳的中斷功能。這樣在沒有按鍵按下的情況下,該四個管腳的電平為高電平,如果有按鍵按下時,則相應(yīng)的列線管腳為低電平,這時通過設(shè)置Pl.4、Pl.5、P1.6、P1.7為低電平觸發(fā)中斷方式,低電平就觸發(fā)中斷而進入中斷服務(wù)程序,從而獲得輸入的數(shù)據(jù)。鍵盤的工作原理具體如下 :首先將 P1.0、P1.1、P1.2、P1.3.設(shè)置為輸出,將P1.4、P1.5、P1.6、P1.7設(shè)置為輸入, 并將 P1.4、P1.5、P1.6、P1.7設(shè)置為低電平觸發(fā)中斷方式 ;將P1.3設(shè)置為低電平, 如果該行上有按鍵按下的話,則 P1.4、P1.5、P1.6或者 P1.7上為低電平 [10],就會觸發(fā)中斷,進入中斷服務(wù)程序,獲得輸入的數(shù)據(jù)。如果沒有按鍵按下的話,則 Pl.4、Pl.5、P1.6和P1.7上為高電平,不會進入中斷服務(wù)程序。依次將 P1.0、P1.1、P1.2、P1.3設(shè)置為低電平來判斷該行是否有輸入, 如果沒有輸入的話, P1.4、P1.5、P1.6、P1.7均為高電平,如果有輸入的話, P1.4、P1.5、P1.6、P1.7上為低電平,就會觸發(fā)中斷,進入中斷服務(wù)程序,獲得輸入數(shù)據(jù)。鍵盤的掃描時間很短,僅僅幾微秒的時間,然而按鍵的時間一次至少需要幾十毫秒,所以只要有按鍵按下的話是都可以被掃描到的。另外還要考慮鍵盤的抖動處理。報警模塊該部分電路主要是驅(qū)動一個蜂鳴器,這樣只需要將蜂鳴器的一端接地,另一端以單片機進行相接就可以了。 而驅(qū)動該蜂鳴器需要 LM386功率放大器。功率放大器 LM386LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點的功率放大器,廣

泛應(yīng)用于錄音機和收音機之中。 LM386具有以下特性 ,LM386如圖3-6所示:(1)靜態(tài)功耗低,約為 4mA,可用于電池供電。(2)工作電壓范圍寬, 4-12v或5-18v。(3)外圍元件少。(4)電壓增益可調(diào), 20-200。(5)低失真度。圖3-6LM386LM386內(nèi)部電路原理圖如圖 3-7所示。與通用型集成運放相類似,它是一個三級放大電路。3-7LM386內(nèi)部原理圖LM386內(nèi)部原理1、第一級為差分放大電路T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電路的放大管;T5和T6組成鏡像電流源作為 T1和T2的有源負載; T3和T4信號從管的基極輸入, 從T2管的集電極輸出, 為雙端輸入單端輸出差分電路。 使用鏡像電流源作為差分放大電路有源負載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。2、第二級為共射放大電路T7為放大管,恒流源作有源負載,以增大放大倍數(shù)。第三級中的 T8和T9管復(fù)合成 PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補輸出級。 二極管D1和D2為輸出級提供合適的偏置電壓,可以消除交越失真。 引腳2為反相輸入端,引腳 3為同相輸入端。電路由單電源供電,故為 OTL電路。輸出端(引腳 5)應(yīng)外接輸出電容后再接負載。電阻R7從輸出端連接到 T2的發(fā)射極,形成反饋通路,并與 R5和R6構(gòu)成反饋網(wǎng)絡(luò),從而引入了深度電壓串聯(lián)負反饋, 使整個電路具有穩(wěn)定的電壓增益。如圖3-7所示 ,引腳 2為反相輸入端, 3為同相輸入端; 引腳5為輸出端;引腳 6和4分別為電源和地;引腳 1和8為電壓增益設(shè)定端;使用時在引腳 7和地之間接旁路電容,通常取 10μF。查LM386的datashee,電源電壓t 4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為 4mA;電壓增益為 20-200dB;在 1、8腳開路時,帶寬為300KHz;輸入阻抗為 50K;音頻功率 0.5W。 盡管LM386的應(yīng)用非常簡單,但稍不注意,特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調(diào)節(jié)鈕)都會帶來的瞬態(tài)沖擊,在輸出喇叭上會產(chǎn)生非常討厭的噪聲。下面介紹改進措施:(1)通過接在 1腳、8腳間的電容( 1腳接電容+極)來改變增益,斷開時增益為 20dB。因此用不到大的增益,電容就不要接了,不光省了成本,還會帶來好處 --噪音減少(2)PCB設(shè)計時,所有外圍元件盡可能靠近 LM386;地線盡可能粗一

些;輸入音頻信號通路盡可能平行走線,輸出亦如此。3)選好調(diào)節(jié)音量的電位器。質(zhì)量太差的不要,否則受害的是耳朵;阻值不要太大, 10K最合適,太大也會影響音質(zhì)!4)電源的處理,也很關(guān)鍵。如果系統(tǒng)中有多組電源,由于電壓不同、負載不同以及并聯(lián)的去耦電容不同, 每組電源的上升、 下降時間必有差異。非??尚械姆椒ǎ簩⑸想?、掉電時間短的電源放到 +12V處,選擇上升相對較慢的電源作為 LM386的Vs,但不要低于 4V。5)盡可能采用雙音頻輸入 /輸出。好處是: “+”、“-”輸出端可以很好地抵消共模信號,故能有效抑制共模噪聲。6)第 7腳( BYPASS)的旁路電容不可少!實際應(yīng)用時, BYPASS端必須外接一個電解電容到地,起濾除噪聲的作用。工作穩(wěn)定后,該管腳電壓值約等于電源電壓的一半。增大這個電容的容值,減緩直流基準(zhǔn)電壓的上升、下降速度,有效抑制噪聲。7)在器件上電、掉電時的噪聲就是由該偏置電壓的瞬間跳變所致。8)減少輸出耦合電容。此電容的作用有二:隔直+8)減少輸出耦合電容。此電容的作用有二:隔直壓,直流電壓過大有可能會損壞喇叭線圈;耦合音頻的交流信號。它與揚聲器負載構(gòu)成了一階高通濾波器。 減小該電容值, 可使噪聲能量沖擊的幅度變小、寬度變窄;太低還會使截止頻率提高。分別uF最為合適。 圖測試,發(fā)現(xiàn)10uF/4.7uF最為合適。能量沖擊的幅度變小、寬度變窄;太低還會使截止頻率提高。分別uF最為合適。 圖測試,發(fā)現(xiàn)10uF/4.7uF最為合適。0接線圖。3-8為放大增益為3-8放大器增益 =20圖3-9報警電路由圖3-9可知LM386的IN+(3)口與 MSP430F149的P2.5端口通過一個100歐姆的電阻相連接,來完成相應(yīng)的控制。3.5顯示模塊系統(tǒng)的顯示電路采用 LCD液晶顯示器顯示,這樣的方式能滿足該系統(tǒng)的要求,也可很容易的完成。本設(shè)計采用的是 LCD1602,他有很多優(yōu)點:(1)顯示質(zhì)量高(2)數(shù)字式接口(3)體積小、重量輕(4)功耗低3.5.1LCD1602基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為 HD44780,帶背光的比不帶背光厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如圖3-10所示:

圖3-10LCD1602尺寸圖1、1602LCD主要技術(shù)參數(shù)顯示容量:16×2個字符芯片工作電壓 :4.5—5.5V工作電流 :2.0mA(5.0V)模塊最佳工作電壓 :5.0V字符尺寸 :2.95×4.35(W×H)mm2、引腳功能說明1602LCD采用標(biāo)準(zhǔn)的 14腳(無背光)或 16腳(帶背光)接口,各引腳接口說明如表 3-1所示:( 1)第 1腳 VSS為地電源。( 2)第 2腳 VDD接 5V正電源。( 3)第 3腳 VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生 “鬼影”,使用時可以通過一個 10K的電位器調(diào)整對比度。4)第 4腳RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。5)第 5腳R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng) RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平 R/W為高電平時可以讀忙信號,當(dāng) RS為高電平 R/W為低電平時可以寫入數(shù)據(jù)。6)第 6腳E端為使能端, E端由高電平跳變成低電平時,執(zhí)行命令。7)第 7~ 14腳 D0~ D7為 8位雙向數(shù)據(jù)線。8)第 15腳是背光源正極。9)第 16腳是背光源負極。表3-1引腳口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù) /命令原則12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的,表 3-2為LCD1602的控制命令,表中給出了 11條指令,這些指令包括清顯示,光標(biāo)返回,置輸入模式,顯示開 /控制等等,其中‘ 1’為高電平, ‘0’為低電平。表3-2控制命令表序號指令RSR/WD7D6D5D4D3D2D1D0

1清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開 /控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生貯存期地址0001字符發(fā)生存儲器地址8置數(shù)據(jù)存儲器地址001顯示數(shù)據(jù)存儲器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)據(jù)到CGRAM或DDRAM10要寫的數(shù)據(jù)內(nèi)容11從CGRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容下面介紹 LCD1602的11條指令:1)指令 1:清顯示,指令碼 01H,光標(biāo)復(fù)位到地址 00H位置。(2)指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00H。(3)指令 3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。(4)指令 4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。(5)指令 5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。(6)指令 6:功能設(shè)置命令 DL:高電平時為 4位總線,低電平時為 8位總線N:低電平時為單行顯示,高電平時雙行顯示 F:低電平時顯示5x7的點陣字符,高電平時顯示 5x10的點陣字符。(7)指令 7:字符發(fā)生器 RAM地址設(shè)置。(8)指令 8:DDRAM地址設(shè)置。(9)指令 9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。(10)指令 10:寫數(shù)據(jù)。(11)指令 11:讀數(shù)據(jù)。圖3-11為顯示電路 .通過圖3-11看出,該顯示電路直接與單片機的數(shù)據(jù)I/O口進行連接, VSS為電源地, VDD為電源正極,接 5V電源,RS為數(shù)據(jù)命令選擇, RW為讀寫命令選擇, D0-D7用來接收數(shù)據(jù),由于MSP430F149具有豐富的 I/O口資源,這樣采用并行的接口方式非常容易,減小系統(tǒng)設(shè)計的復(fù)雜度, 也可以增加系統(tǒng)的可靠性。 P4.0-4.7是用來顯示數(shù)據(jù), 分別與對應(yīng) LCD1602的D0—D7相連接, P2.2、P2.3和P2.4是用來控制數(shù)碼管的選通狀態(tài)。 P2.2與LCD1602的RS端相連接,用來控制數(shù)據(jù)命令, P2.3與RW相連接,用來控制讀 /寫操作, P2.4與使能端E相連接。3-11顯示電路第4章軟件部分本章介紹系統(tǒng)的軟件設(shè)計,主要包括采集模塊、鍵盤輸入模塊、顯示模塊、報警模塊和主處理模塊。下面具體介紹各個模塊的軟件設(shè)計 [1]最小系統(tǒng)設(shè)計主處理模塊主要是將各個模塊進行協(xié)調(diào)處理和實現(xiàn)數(shù)據(jù)交互。主處理模塊首先完成初始化上作,初始化后進入循環(huán)處理,在循環(huán)過程中主處理獲得采集模塊的數(shù)據(jù),井將數(shù)據(jù)進行處理,根據(jù)處理后的結(jié)果來進行顯示或者報警。由于報警的上限和下限需要設(shè)置,另外考慮到對數(shù)據(jù)行顯示或者報警。由于報警的上限和下限需要設(shè)置,另外考慮到對數(shù)據(jù)的保存,因此主程序先檢查門限是否在 FLASH里面有,如果沒有則進行等待設(shè)置數(shù)據(jù),設(shè)置完成后才進入下一步處埋,也就是程序必須在有設(shè)置數(shù)據(jù)的情況下才能正常運行。下面而給出主處理的流程圖,如圖 4-1所示。4-1主處理器流程圖4-1主處理器流程圖考慮到需要對設(shè)置數(shù)據(jù)進行讀寫,這樣需要對 FLASH進行操作,下面給出 FLASH操作的函數(shù)。該函數(shù)的功能是將一個 WOED類型的數(shù)據(jù)寫入到FILASH里面。voidFLASH_ww(int*pDataintnValue){PCTL3=0xA500; //LOCK=0;PCTL1=0xA540; //WRT=1;*pData=nValue;}該函數(shù)的功能是將一個 BYTE類型的數(shù)據(jù)寫入到 FLASH里面。voidFLASH_wb(char*pDatacharnValue){PCTL3=0xA500; //LOCK=0;PCTL1=0xA540; //WRT=1;*pData=nValue;}該函數(shù)的功能是將 FLASH里而的內(nèi)容擦除掉。voidFLASH_cir(int*pData){PCTL1=0xA502;//ERASE=1;PCTL3=0Xa500; //LCOK=0;*pData=0;}根據(jù)上而流程圖給出簡單的程序,下面的程序是簡單化的處理,只是將得到的結(jié)果除以 100獲得整數(shù)部分,該程序忽略小數(shù)部分的處理,該程序也是假定上下限在 0-100之間。以下為具體的程序。見附錄 2。采集模塊采集模塊重要是通過 DS18B20溫度傳感器獲得數(shù)據(jù),并對采集來的數(shù)據(jù)進行處理后送給 MSP430F149。CPU對DS18B20的訪問流程是: 先對DS18B20初始化,再進行 RoI1操作命令,最后才能對存儲器操作、數(shù)據(jù)操作。 DS18B20每一步操作都要遵循嚴(yán)格的工作時序和通信協(xié)議。如主機控制 DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù) DS18B20的通訊協(xié)議,須經(jīng)三個步驟 :每一次讀寫之前都要對 DS18B20進行復(fù)位,復(fù)位成功后發(fā)送一條 ROM指令,最后發(fā)送 RAM指令,這樣才能對 DS18B20進行預(yù)定的操作圖 4-2為該模塊的程序流程圖。4-2采集模塊程序流程圖鍵盤輸入模塊鍵盤輸入電路主要是用來輸入數(shù)據(jù),從而實現(xiàn)人機交互。該系統(tǒng)的鍵盤設(shè)計是采用掃描方式實現(xiàn)的矩陣鍵盤。該矩陣掃描鍵盤由行線和列線組成, P1.0、P1.1、P1.2、P1.3構(gòu)成鍵盤的行線, P1.4、P1.5、P1.6、P1.7構(gòu)成鍵盤的列線。鍵盤的行線作為鍵盤的控制輸出端,鍵盤的列線作為鍵盤的輸入端。在設(shè)計時為了程序設(shè)計的方便性,鍵盤的列線采用的是 P1.4、P1.5、P1.6、P1.7,這樣可以利用該管腳的中斷功能。這樣在沒有按鍵按下的情況下,該四個管腳的電平為高電平,如果有按鍵按下時,則相應(yīng)的列線管腳為低電平,這時通過設(shè)置 P1.4、P1.5、P1.6、P1.7為低電平觸發(fā)中斷方式,低電平就觸發(fā)中斷而進入中斷服務(wù)程序,從而獲得輸入的數(shù)據(jù)。鍵盤的工作原理具體如下 :首先將 P1.0、P1.1、P1.2、P1.3設(shè)置為輸出,將P1.4、P1.5、P1.6、P1.7設(shè)置為輸入, 并將 P1.4、P1.5、P1.6、P1.7設(shè)置為低電平觸發(fā)中斷方式,將 P1.3設(shè)置為低電平,如果該行上有按鍵按下的話,則 P1.4、P1.5、P1.6、或者 P1.7.上為低電平,就會觸發(fā)中斷,進入中斷服務(wù)程序, 獲得輸入的數(shù)據(jù)。 如果沒有按鍵按下的話, 則 P1.4、P1.5、P1.6和Pl.7上為高電平,不會進入中斷服務(wù)程序。依次將 P1.0、P1.1、P1.2、P1.3設(shè)置為低電平來判斷該行是否有輸入, 如果沒有輸入的話, P1.4、P1.5、P1.6、P1.7均為高電平,如果有輸入的話, P1.4、P1.5、P1.6、P1.7上為低電平,就會觸發(fā)中斷,進入中斷服務(wù)程序,獲得輸入數(shù)據(jù)。鍵盤的掃描時間很短,僅僅幾微秒的時間,然而按鍵的時間一次至少需要幾十毫秒,所以只要有按鍵按下的話是都可以被掃描到的。另外還要考慮鍵盤的抖動處理。為了防止鍵盤的掃描而影響其他部分的處理,這里采用了定時器 B來檢察是否有按鍵按下。圖 4-3為該部分的程序流程圖。

圖4-3輸入模塊流程圖該模塊主要包括對定時器 B和端口中斷的處理初始化部分 ;該部分主要完成端口的初始化和定時器 B的初始化。該部分端口的初始化程序。voidInt_INPUTPort(void){//將管腳在初始化的時候設(shè)置為輸入方式PIDIR=0;//將所有的管腳設(shè)置為一般 I/O口PISEL=0;//將 P1.4、P1.5、P1.6和P1.7設(shè)置為輸入方向PIDIR&=~(BIT4);PIDIR&=~(BIT5);PIDIR&=~(BIT6);PIDIR&=~(BIT7);//將P1.0,P1.1,P1.2和P1.3設(shè)置為輸出方向PIDIR|=~BIT0;PIDIR|=~BIT1;PIDIR|=~BIT2;PIDIR|=~BIT3;//將Pl.4、Pl.5、Pl.6和Pl.7設(shè)置為低電平中斷觸發(fā)方式P1IE|=BIT4;//管腳P1.4使能中斷P1IES|=BIT4;//對應(yīng)的管腳由高到低電平跳變使相應(yīng)的標(biāo)志置位P1IE|=BIT5;//管腳 P1.5使能中斷P1IES|=BIT5;//對應(yīng)的管腳由高到低電平跳變使相應(yīng)的標(biāo)志置位P1IE|=BIT6;//管腳P1.6使能中斷P1IES|=BIT6;//對應(yīng)的管腳由高到低電平跳變使相應(yīng)的標(biāo)志置位P1IE|=BIT7;//管腳P1.7使能中斷P1IES|=BIT7;//對應(yīng)的管腳由高到低電平跳變使相應(yīng)的標(biāo)志置位Return}該部分代碼為定時器 B的初始化程序代碼voidInit_Timer(void){TBCTL=TBSSEL0+TBCLR; //選擇 ACLK,清除 TARTBCCTL0=CCLE;//TBCCR0中斷允許TBCCR0=32768; //時間間隔為 1sTBCLT|=MC0; //增計數(shù)模式}顯示模塊該部分主要完成數(shù)據(jù)的顯示功能。在硬件設(shè)計中,顯示電路直接與單片機的數(shù)據(jù) I/O口進行連接。 P4.0-P4.7是用來顯示數(shù)據(jù), P2.2、P2.3和P2.4是用來控制數(shù)碼管的選通狀態(tài), 顯示模塊相對比較簡單, 只是簡單的將數(shù)據(jù)顯示在數(shù)碼管腳上,該模塊主要包括端口初始化和數(shù)據(jù)顯示兩部分,下而是對 LCD正常運行時所需程序的編寫。//LCD液晶操作函數(shù) /////////////////////////////LCD1602液晶初始化voidLCD_init(void){LCD_DATA_DDR|=LCD_DATA;//數(shù)據(jù)口方向為輸出LCD_EN_DDR|=LCD_EN;//設(shè)置 EN方向為輸出LCD_RS_DDR|=LCD_RS;//設(shè)置 RS方向為輸出LCD_write_command(0x28);//4位數(shù)據(jù)接口delay_nus(40);LCD_write_command(0x28);//4位顯示LCD_write_command(0x0c);//顯示開LCD_write_command(0x01);//清屏}//液晶使能voidLCD_en_write(void){LCD_EN_PORT|=LCD_EN;delay_nus(1);LCD_EN_PORT&=~LCD_EN;}//寫指令voidLCD_write_command(unsignedcharcommand){delay_nus(16);LCD_RS_PORT&=~LCD_RS;//RS=0LCD_DATA_PORT&=0X0f;//清高四位LCD_DATA_PORT|=command&0xf0;//寫高四位LCD_en_write();command=command<<4;//低四位移到高四位LCD_DATA_PORT&=0X0f;//清高四位LCD_DATA_PORT|=command&0xf0;//寫低四位LCD_en_write();} //寫數(shù)據(jù)voidLCD_write_data(unsignedchardata){delay_nus(16);LCD_RS_PORT|=LCD_RS;//RS=1LCD_DATA_PORT&=0X0f;//清高四位LCD_en_write();Data=data<<4;//低四位移到高四位LCD_DATA_PORT&=0X0f;//清高四位LCD_DATA_PORT|=data&0xf0;//寫低四位LCD_en_write();}//寫地址函數(shù)voidLCD_set_xy(unsignedcharx,unsignedchary){unsignedcharaddress;if(y==0)address=0x80+x;elseaddress=oxc0+x;LCD_write_command(address);}//LCD在任意位置寫字符串//列 x=0~15,行 y=0,1voidLCD_write_string(unsignedcharX,unsignedcharY,unsignedchar*s){LCD_set_xy(X,Y);//寫地址while(*s)//寫寫顯示符{LCD_write_data(*s);s++;}}//LCD在任意位置寫字符//列 x=0~15,行 y=0,1voidLCD_write_char(unsignedcharX,unsignedcharY,unsignedchardata){LCD_set_xy(X,Y);//寫地址LCD_write_data(data);}//延時函數(shù) ///////////////lus延時函數(shù)voiddelay_lus(void){ asm(“nop”); }//Nus延時函數(shù)voiddelay_nus(unsignedintn){unsignedintI;for(i=0;i<n;i++)delay_1us();}//1ms延時函數(shù)voiddelay_nms(unsignedintn){unsignedinti=0;for(i=0;i<n;i++)delay_1ms();}4.5報警模塊報警處埋模塊相當(dāng)簡單,這里只是簡單的在一個 I/O口上送出數(shù)據(jù)來驅(qū)動蜂鳴器,該模塊包括初始化端口和數(shù)據(jù)產(chǎn)生兩個部分,下面就各個部分給出具體的程序代碼到。初始化部分 :該部分將輸出端口設(shè)置為輸出方向。程序代碼如下 :voidinit_AlarmPort(void){//將P2.5設(shè)置為輸出方向P2DIR=BIT5;Return;}數(shù)據(jù)產(chǎn)生部分 :該部分主要是在輸出端口產(chǎn)生數(shù)據(jù),這里不是簡單的一個高電平或者低電平,而是有一定頻率的數(shù)據(jù),因為只有是交流信號才-可以讓蜂鳴器發(fā)聲。 至于不同的周期信號可以得到不同的頻率, 可以根據(jù)信號處理的知識進行分析, 這里就不進行討論。 下面給出代碼 [12],voidRing(void){intI;P2OUT|=BIT5;//高電平for(i=0;i<200;i++)_NOP();P2OUT&=~(BIT5)//低電平for(i=0;i<200;i++)_nop();在上面的程序中, _NOP()為MSP430提供內(nèi)聯(lián)函數(shù)。 上面程序中是一個單音頻率的數(shù)據(jù) .可以根據(jù)信號處理的知識修改上而的程序,產(chǎn)生出具有豐富頻率的數(shù)據(jù) [11]??偨Y(jié)基于MSP430單片機的溫度控制器的設(shè)計已基本完成,各部分功能都已實現(xiàn)。 MSP430F149單片機片上資源比較豐富,這使得課題外圍電路相對簡單,還留有大部分 I/O口以便今后擴展。溫度采集模塊用DS18B20來實現(xiàn),電路簡單,且價格便宜,精度與穩(wěn)定度都比較高。液顯示模塊采用 LCD1602顯示終端的溫度。 鍵盤模塊電路, 用戶可以通過鍵盤直接操縱溫控儀工作,并通過顯示觀察溫控結(jié)果,為用戶提供了一個良好的人機接口。在設(shè)計過程中,要考慮到各方而的因素,不能僅從理論方而進行設(shè)計,還要結(jié)合到實踐、考慮到具體應(yīng)用,只有這樣才可以做出符合現(xiàn)實需要的產(chǎn)品。盡管本文設(shè)計基本滿足系統(tǒng)的要求,但還存在諸多需要多改進之處,文中也可能存在一些不足及疏忽之處,歡迎大家批評指正。致謝在查找資料、整理資料和設(shè)計階段都得到了 XXX老師的大力支持和悉心指導(dǎo),多次過問進展情況并提供諸多幫助,同時在論文修改階段 X老師給予非常有責(zé)任心的關(guān)心和指異,多次給出修改意見,使文章能不斷提高質(zhì)量。 XXX嚴(yán)謹(jǐn)務(wù)實的治學(xué)態(tài)度令本人受益匪淺, X老師的設(shè)計思想也滲透在本文各章節(jié)中,而且 X老師那種具有親和力的指導(dǎo)方式使我們之間的距離拉得很近,她不僅是我的老師,也是我的朋友,本論文是在X老師的親切關(guān)懷與悉心指導(dǎo)下完成的。再次對 X彥平老師悉心幫助表示感謝!參考文獻沈建華,楊艷琴,翟曉曙。 MSP43O系列 16位超低功耗單片機實踐與系統(tǒng)設(shè)TOC\o"1-5"\h\z[M]。清華大學(xué)出版社, 2005秦龍。MSP430單片機應(yīng)用系統(tǒng)開發(fā)典型事例 [M]。北京:中國電力出版社胡大可。 MSP43O系列 FLASH型超低功耗 1位單片機 [M]。北京:北京航空航大大學(xué)出版社, 2001魏小龍。 MSP430系列單片機接口技術(shù)及系統(tǒng)設(shè)計實例 [M]。北京:北京航空航大大學(xué)出版社, 2002李維,郭強。液晶顯示應(yīng)用技術(shù) [M]。電子工業(yè)出版社, 2000梅麗鳳?;贛SP430控制的液晶顯示屏設(shè)計與實現(xiàn) [M]。遼寧工業(yè)大學(xué)信息科學(xué)與工程學(xué)院, 2007李維綻,郭強。液晶顯示器件應(yīng)用技術(shù) [M]。北京:北京郵電學(xué)院出版社, 1999李元斌。 DS18B20數(shù)字傳感器溫度檢測顯示系統(tǒng) [J]。湖北:華中科技大學(xué)生命學(xué)院試驗中心, 430074鄭敏。DS18B20溫度傳感器在溫度大枷多路測控技術(shù)中的應(yīng)用 [J]。四川:鄂州大學(xué)電子工程系, 520081馬云峰。單片機與數(shù)字溫度傳感器 DS18B20的接口技術(shù) [J]。山東:濰坊學(xué)院信息與控制工程系, 261041向奇汝。多功能溫度控制器,自動化與儀器儀表, 1999張友德,趙志英。單片機原理應(yīng)用與實驗 [M]。上海復(fù)旦大學(xué)出版社, 1992百度百科。 MSP430單片機。 /vie

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論