版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)說(shuō)明書(shū)課程名稱(chēng):DSP控制器及其應(yīng)用題目:溫度采集與顯示畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教 師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。 盡我所知,除文中特別加 以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研 究成果,也不包含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體, 均已在文中作了明確的說(shuō)明并表示了謝意。作者簽名: 日 期:指導(dǎo)教師簽名: 日 期: 使用授權(quán)說(shuō)明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文
2、)的印刷本和電 子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供 目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制 手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠?或全部?jī)?nèi)容。學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外, 本論文 不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。 對(duì)本文的研 究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完 全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名:日期:年月日學(xué)位論文版權(quán)使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)
3、位論文的規(guī)定, 同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版, 允許論文被查閱和借閱。本人授權(quán) 大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。導(dǎo)師簽名:日期: 年 月作者簽名:日期:年月日指導(dǎo)教師評(píng)閱書(shū)指導(dǎo)教師評(píng)價(jià):一、撰寫(xiě)(設(shè)計(jì))過(guò)程1、學(xué)生在論文(設(shè)計(jì))過(guò)程中的治學(xué)態(tài)度、工作精神優(yōu) 良 中 及格 不及格2、學(xué)生掌握專(zhuān)業(yè)知識(shí)、技能的扎實(shí)程度優(yōu)良中及格不及格3、學(xué)生綜合運(yùn)用所學(xué)知識(shí)和專(zhuān)業(yè)技能分析和解決問(wèn)題的能力優(yōu)良中及格不及格4、研究方法的科學(xué)性;技術(shù)線路的可行性;設(shè)計(jì)方案的合理性?xún)?yōu)良中
4、及格不及格5、完成畢業(yè)論文(設(shè)計(jì))期間的出勤情況優(yōu)良中及格不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫(xiě)規(guī)范??jī)?yōu)良中及格不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)??jī)?yōu)良中及格不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問(wèn)題的指導(dǎo)意義優(yōu) 良 中 及格 不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意??jī)?yōu)良中及格不及格3、論文(設(shè)計(jì)說(shuō)明書(shū))所體現(xiàn)的整體水平優(yōu)良中及格不及格建議成績(jī):優(yōu) 良 中 及格 不及格(在所選等級(jí)前的內(nèi)畫(huà)“ V")評(píng)閱教師評(píng)閱書(shū)評(píng)閱教師評(píng)價(jià):一、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫(xiě)規(guī)范??jī)?yōu)良中及格不
5、及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)??jī)?yōu)良中及格不及格二、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問(wèn)題的指導(dǎo)意義 優(yōu) 良 中 及格 不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意??jī)?yōu)良中及格不及格3、論文(設(shè)計(jì)說(shuō)明書(shū))所體現(xiàn)的整體水平優(yōu)良中及格不及格建議成績(jī):優(yōu) 良 中 及格 不及格(在所選等級(jí)前的內(nèi)畫(huà)“ V”)指導(dǎo)教師:(簽名)單位:(蓋章)年 月 日溫度采集與顯示教研室(或答辯小組)及教學(xué)系意見(jiàn)教研室(或答辯小組)評(píng)價(jià):一、答辯過(guò)程1畢業(yè)論文(設(shè)計(jì))的基本要點(diǎn)和見(jiàn)解的敘述情況 優(yōu) 良 中 及格 不及格2、對(duì)答辯問(wèn)題的反應(yīng)、理解、表達(dá)情況優(yōu)良中及格不及格3、
6、學(xué)生答辯過(guò)程中的精神狀態(tài)優(yōu)良中及格不及格二、論文(設(shè)計(jì))質(zhì)量1論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫(xiě)規(guī)范? 優(yōu)良中及格不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)? 優(yōu)良中及格不及格三、論文(設(shè)計(jì))水平1論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問(wèn)題的指導(dǎo)意義 優(yōu) 良 中 及格 不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意??jī)?yōu)良中及格不及格3、論文(設(shè)計(jì)說(shuō)明書(shū))所體現(xiàn)的整體水平優(yōu)良中及格不及格評(píng)定成績(jī):優(yōu) 良 中 及格 不及格(在所選等級(jí)前的內(nèi)畫(huà)“ V")教研室主任(或答辯小組組長(zhǎng)):(簽名)年 月 日教學(xué)系意見(jiàn):系主任:(簽名)年 月 日1課程設(shè)計(jì)目的通過(guò)我們對(duì)DSP控制器及其
7、應(yīng)用課程的學(xué)習(xí)和理解,綜合運(yùn)用課本中所學(xué)到的理論知識(shí)完成一個(gè)溫度 采集與顯示的課程設(shè)計(jì)。通過(guò)這次實(shí)踐鍛煉我們查閱資料、方案比較、團(tuán)結(jié)合作的能力。在這個(gè)過(guò)程我們 必須掌握溫度采集技術(shù)的硬件設(shè)計(jì)、熟悉A/D轉(zhuǎn)換技術(shù)和DSP夜晶顯示功能的軟件設(shè)計(jì)。學(xué)會(huì)采用簡(jiǎn)單電路的實(shí)驗(yàn)調(diào)試和整機(jī)指標(biāo)測(cè)試方法,增強(qiáng)我們的動(dòng)手能力,為以后學(xué)習(xí)和工作打下堅(jiān)實(shí)基礎(chǔ) 2課程設(shè)計(jì)正文 2.1系統(tǒng)分析2.1.1設(shè)計(jì)的任務(wù)及步驟(1)熟悉MC1403芯片的應(yīng)用;(2)根據(jù)實(shí)驗(yàn)測(cè)得熱敏電阻和溫度的一些數(shù)據(jù),設(shè)計(jì)溫度一一電阻公式;(3)設(shè)計(jì)外部硬件電路;(4) 軟件完成程序流程圖設(shè)計(jì)和編程,其中包括A/D轉(zhuǎn)換和液晶顯示部分;(5 )編
8、寫(xiě)上位機(jī)程序(6)軟硬件聯(lián)合調(diào)試;(7)書(shū)寫(xiě)設(shè)計(jì)說(shuō)明書(shū)。2.1.2技術(shù)要求此系統(tǒng)利用熱敏電阻測(cè)得電阻一溫度之間的關(guān)系,找到電阻和溫度之間的代數(shù)關(guān)系,從而檢測(cè)溫度, 設(shè)計(jì)硬件外擴(kuò)電路,同時(shí)設(shè)計(jì)軟件程序,包括A/D程序設(shè)計(jì),進(jìn)行軟硬件聯(lián)系調(diào)試,能在液晶顯示屏上顯示溫度。2.1.3設(shè)計(jì)思路首先設(shè)計(jì)溫度采集電路,由于考慮到使用的是非線性負(fù)溫度系數(shù)的熱敏電阻,因此采用了橋式電路盡 量減小因外接不必要因素導(dǎo)致的誤差,通過(guò)多次試驗(yàn)測(cè)得幾個(gè)點(diǎn),并擬合出一條合適的線性函數(shù)關(guān)系。其 次進(jìn)行軟件設(shè)計(jì),主要包括AD轉(zhuǎn)換模塊、液晶顯示模塊、算法轉(zhuǎn)換模塊、主函數(shù)模塊以及上位機(jī)模塊。最后進(jìn)行軟硬件聯(lián)系調(diào)試,并能在液晶上正常
9、顯示溫度值。2.2總體設(shè)計(jì)2.2.1硬件設(shè)計(jì)TMS320F2812作為本次課設(shè)使用的 DSP芯片。它包含33個(gè)電源引腳(為使器件正常運(yùn)行,所有電源 引腳必須正確連接且不能懸空)時(shí)鐘源模塊,DSP有六種信號(hào)可以使 DSP控制器復(fù)位,即電源復(fù)位、復(fù)位引腳RS軟件復(fù)位、非法地址復(fù)位、看門(mén)狗定時(shí)器溢出、欠壓復(fù)位六種復(fù)位信號(hào)。所以在設(shè)計(jì)的初期, 把它分成了五個(gè)模塊。其中復(fù)位采用電源復(fù)位的方式,由引腳PCRESE引起。為了可靠復(fù)位,其中低電平的有效時(shí)間至少 6個(gè)CPU寸鐘周期。DSP最小系統(tǒng)組成框圖如圖 1所示。圖1 DSP最小系統(tǒng)其中:開(kāi)關(guān)SW-PB電容以及電阻構(gòu)成一個(gè)簡(jiǎn)單的撫慰電路;晶振與兩個(gè)并聯(lián)電容
10、接在 XTAL1與XTAL2為2812提供外部時(shí)鐘;HT7133芯片將5V直流電源轉(zhuǎn)換為3.3V直流電源構(gòu)成電源模塊為2812供電。2.2.2系統(tǒng)框圖設(shè)計(jì)該系統(tǒng)包括溫度采集模塊、F2812芯片、AD轉(zhuǎn)換模塊以及液晶顯示模塊,首先通過(guò)熱敏電阻對(duì)外界溫度的變化,從而改變其電位的變化,F(xiàn)2812芯片等待中斷并接收數(shù)據(jù),然后送入AD轉(zhuǎn)換模塊,AD對(duì)模擬信號(hào)進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果存放在結(jié)果寄存器的高12位,為保證數(shù)據(jù)精確多次采樣求平均值,最后通過(guò)算法轉(zhuǎn)換,將結(jié)果顯示在LCD液晶上。系統(tǒng)設(shè)計(jì)流程如圖2所示。圖2系統(tǒng)設(shè)計(jì)流程圖2.3單元電路的設(shè)計(jì)2.3.1溫度采集電路考慮到此次使用的是非線性負(fù)溫度系數(shù)的熱敏
11、電阻,因此采用橋式電路盡量確保其精度,并使用低壓基準(zhǔn)芯片MC1403為電路提供基準(zhǔn)電壓,確保其盡量減少外界不必要因素的影響。溫度采集電路如圖 示。232單元模塊的分析(1) MC1403氐壓基準(zhǔn)芯片引腳如圖 4所示。-NC-NC-NCVin - %ut - GND-NC-圖4 MC1403低壓基準(zhǔn)芯片引腳圖Vin端口輸入一個(gè)4.540V的模擬電壓值(接P2 口的1引腳),在Vout端輸出了一個(gè)穩(wěn)定的電壓值 (接 P2 口的1引腳,為AD模塊提供參考模擬高電平),GND端接模擬地(接 P2 口的33引腳)為AD提供參考 模擬低電平,并與數(shù)字地短接。(2)AD轉(zhuǎn)換模塊當(dāng)模/數(shù)轉(zhuǎn)換完成后,讀取結(jié)果寄
12、存器前,最好先讀取模/數(shù)轉(zhuǎn)換控制寄存器 ADCRL2的 ADCRESULT或ADCRESULT1以確定當(dāng)前結(jié)果寄存器的狀態(tài),保證讀取的結(jié)果是正確。另外,要注意12位的轉(zhuǎn)換結(jié)果放在結(jié)果寄存器中的高12位上,要進(jìn)行位移轉(zhuǎn)換,該 12位數(shù)據(jù)與外部模擬輸入電壓的關(guān)系為:12位數(shù)字結(jié)果=4095* (輸入電壓/基準(zhǔn)電壓)基準(zhǔn)電壓:3V輸入電壓:A/D采集的電壓12位數(shù)字結(jié)果:12位的轉(zhuǎn)換結(jié)果是放在結(jié)果寄存器的高12位上。(3) LCD液晶顯示模塊DSP經(jīng)常會(huì)對(duì)讀寫(xiě)周期較慢的輸入 /輸出設(shè)備(如液晶顯示模塊、打印機(jī)、鍵盤(pán)等)進(jìn)行訪問(wèn),通常以下兩種方法來(lái)解決 DSP與這些慢速設(shè)備之間的輸入 /輸出時(shí)序匹配問(wèn)
13、題。直接訪問(wèn)方式是將DSP的讀寫(xiě)信號(hào)限于慢速設(shè)備接口控制板引出的讀寫(xiě)信號(hào)線直接相連,時(shí)序由DSP內(nèi)部讀寫(xiě)邏輯控制。由于慢速外設(shè)的讀寫(xiě)周期相對(duì) DSP較慢,是兩者的時(shí)序匹配,還必須進(jìn)行一些時(shí)序方面的控制處理。一中處理方法是軟件 編程等待狀態(tài)發(fā)生器,將外部總線周期擴(kuò)展到數(shù)個(gè)機(jī)器周期。由于受硬件條件的限制,這種擴(kuò)展通常也是 有限的。液晶顯示為128行和64列的矩陣,它分左右兩個(gè)平面,而一個(gè)字是16行和16列的矩陣,在按頁(yè)的顯示中每一頁(yè)是一個(gè) 8行和128列的矩陣,所以每一行字是分兩頁(yè)顯示的系統(tǒng)設(shè)計(jì)總電路圖如圖 5所示。(4)單片機(jī)與PC機(jī)串口通信DSP有 一個(gè)全雙工的串行通訊口,所以DSP和電腦之間
14、可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時(shí)要滿(mǎn)足疋的條件,比如電腦的串口疋RS232電平的,而DSP的串口是TTL電平的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路,我們采用了專(zhuān)用芯片MAX232進(jìn)行轉(zhuǎn)換,雖然也可以用幾個(gè)三極管進(jìn)行模擬轉(zhuǎn)換,但是還是用專(zhuān)用芯片更簡(jiǎn)單可靠。我們采用了三線制連接串口,也就是說(shuō)和電腦的9針串口只連接其中的 3根線: 第5腳的GND第2腳的RXD第3腳的TXD。這是最簡(jiǎn)單的連接方法,但是對(duì)我們來(lái)說(shuō)已經(jīng)足夠使用了, 電路如下圖所示,圖6異步串行通訊原理圖DSP控制器串行通信接口( SCI)是一個(gè)標(biāo)準(zhǔn)的通用異步接收 /發(fā)送(UART通信接口。它的接收器和發(fā)送器都是雙緩沖的。 DSP控制器
15、串行通信接口( SCI )有自已的使能和中斷位,它們可以半雙工或全雙工方式工作。為了保證數(shù)據(jù)的完整性,串行通信接口對(duì)接收的數(shù)據(jù)進(jìn)行間斷檢測(cè)、奇偶性、超時(shí)和幀錯(cuò)誤的檢查。位速率(波特率)可通過(guò)一個(gè)16位的比特率選擇寄存器進(jìn)行編程,因此,可以有超過(guò)65000種不同的速率。SCI模塊是一個(gè)8位片內(nèi)外設(shè),通過(guò) DSP的16位外部數(shù)據(jù)總線的低 8位與外部設(shè)備通信。SCI的物理描述:(1)兩個(gè)I/O引腳。*SCIRXD( SCI接收數(shù)據(jù)輸入)*SCITXD( SCI發(fā)送數(shù)據(jù)輸出)(2) 通過(guò)一個(gè)16位波特率選擇寄存器的編程,可得到超過(guò)65000種不同的可編程位速率。(3)18的可編程數(shù)據(jù)字長(zhǎng)。(4)長(zhǎng)度為
16、1位或2位的可編程停止位。(5 )內(nèi)部產(chǎn)生的串行時(shí)鐘。(6)四個(gè)錯(cuò)誤檢測(cè)標(biāo)志。*奇偶性錯(cuò)誤* 超限錯(cuò)誤*幀錯(cuò)誤 *間斷檢驗(yàn)(7 )兩種喚醒多處理器模式,可與任意通信格式一起使用。*空閑線路喚醒* 位尋址喚醒(8 )半雙工或全雙工操作。(9)雙緩沖接收和發(fā)送功能。(10)接收和發(fā)送操作均可通過(guò)中斷或查詢(xún)操作進(jìn)行,相應(yīng)的狀態(tài)標(biāo)志如下:發(fā)送器:TXRDY標(biāo)志(發(fā)送器緩沖寄存器準(zhǔn)備好接收另一個(gè)字符)和TXEMPT標(biāo)志(發(fā)送移位寄存器空)。接收器:RXRDY標(biāo)志(準(zhǔn)備從接收緩沖寄存器中讀出一個(gè)新字符)、BRKDT標(biāo)志(間斷條件發(fā)生)和RXERRQR可用來(lái)監(jiān)視四個(gè)中斷條件。(11 )發(fā)送器和接收器中斷的分
17、立的使能位(間斷除外)。(12) SCI數(shù)據(jù),不管是接收的、還是發(fā)送的,都是NRZ(非歸零)格式的。2.4軟件程序設(shè)計(jì)2.4.1軟件系統(tǒng)流程圖軟件系統(tǒng)流程如圖6所示。圖7軟件系統(tǒng)流程圖2.4.2軟件程序設(shè)計(jì)程序主要包括主程序、中斷、延時(shí)、A/D轉(zhuǎn)換、算法轉(zhuǎn)換、液晶顯示等子程序,實(shí)現(xiàn)溫度采集與顯示的功能,程序詳見(jiàn)附錄。此次課設(shè)我主要負(fù)責(zé)AD轉(zhuǎn)換、算法轉(zhuǎn)換和主程序部分。AD轉(zhuǎn)換部分我采用單通道采樣方式對(duì)溫度采集電路發(fā)送的值進(jìn)行轉(zhuǎn)換,并使用了第一組的6號(hào)中斷對(duì)電路進(jìn)行定時(shí)采樣,由于考慮到熱敏電阻比較靈敏,我采用了多次采樣求平均值的方法確保數(shù)據(jù)精確。算法轉(zhuǎn)換部分主要是對(duì)AD采集并轉(zhuǎn)換的值進(jìn)行進(jìn)一步的轉(zhuǎn)
18、換,主要是將橋式電路的電壓與熱敏電阻的關(guān)系和擬合的溫度與電阻的關(guān)系整合在一起,使其轉(zhuǎn)換為我們能看懂的溫度,并將其一位一位拆分開(kāi)來(lái) 復(fù)制到LCD液晶顯示子程序,將結(jié)果顯示字液晶屏上。(1)NTC熱敏電阻原理及應(yīng)用NTC熱敏電阻器在室溫下的變化范圍在1001000000歐姆,溫度系數(shù)-2%-6.5%。NTC熱敏電阻器可廣泛應(yīng)用于溫度測(cè)量、溫度補(bǔ)償、抑制浪涌電流等場(chǎng)合。NTC熱敏電阻為負(fù)溫度系數(shù)熱敏電阻。零功率電阻值 RT ( Q ): RT指在規(guī)定溫度T時(shí),采用引起電阻值變化相對(duì)于總的測(cè)量誤差來(lái)說(shuō)可以忽 略不計(jì)的測(cè)量功率測(cè)得的電阻值。電阻值和溫度變化的關(guān)系式為:RT = RN expB(1/T -
19、 1/TN)RT :在溫度T ( K )時(shí)的NTC熱敏電阻阻值。RN :在額定溫度 TN ( K )時(shí)的NTC熱敏電阻阻值。T :規(guī)定溫度(K )。B : NTC熱敏電阻的材料常數(shù),又叫熱敏指數(shù)。exp :以自然數(shù)e為底的指數(shù)(e = 2.71828 ,)。該關(guān)系式是經(jīng)驗(yàn)公式,只在額定溫度TN或額定電阻阻值 RN的有限范圍內(nèi)才具有一定的精確度,因?yàn)椴牧铣?shù)B本身也是溫度T的函數(shù)。額定零功率電阻值 R25 ( Q ):根據(jù)國(guó)標(biāo)規(guī)定,額定零功率電阻值是 NTC熱敏電阻在基準(zhǔn)溫度 25 C 時(shí)測(cè)得的電阻值 R25,這個(gè)電阻值就是 NTC熱敏電阻的標(biāo)稱(chēng)電阻值。通常所說(shuō)NTC熱敏電阻多少阻值,亦指該值。
20、材料常數(shù)(熱敏指數(shù))B值(K )TiTjRjiB 二一In T-TiRnRT1 :溫度T1 ( K )時(shí)的零功率電阻值。RT2 :溫度T2 ( K )時(shí)的零功率電阻值。T1, T2 :兩個(gè)被指定的溫度(K )。對(duì)于常用的NTC熱敏電阻,B值范圍一般在 2000K6000K之間。已知150Q時(shí)為25C,即卩R25 =150 Q , 120Q時(shí)為45C,經(jīng)計(jì)算,B約為2121.7K。代入得:r=150*exp(2121.7*(1/t)-1/298)取曲線上的任意幾點(diǎn),再用 Matlab進(jìn)行曲線擬合,得到幾條直線,經(jīng)篩選后得到如圖7的圖形。經(jīng)變換單位后,得到溫度與電阻值之間的關(guān)系式:T = 125-
21、 2/3*R圖8擬合后的直線其中橫坐標(biāo)為溫度,單位為K;縱坐標(biāo)為電阻值。由硬件部分(電橋電路)得到電壓與電阻值之間的關(guān)系:V = 2.5*R1/(R1+R),其中R1=200Q,與上式相結(jié)合并經(jīng)調(diào)試修改后,得到溫度值與電壓之間的關(guān)系:T=140.0-0.67*(500.0/V-200.0)/溫度計(jì)算子程序void Wen du(float c)temperature=140.0-0.67*(500.0/c-200.0);T_tempe=(i nt)temperature;T_tempe1=T_tempe/10;T_tempe0=T_tempe%10;D_tempe=(i nt)(10*(tem
22、perature-T_tempe);(2)上位機(jī)SCI波特率的設(shè)置:16位的波特率數(shù)值用 BRR表示。SCI使用16位的波特率選擇寄存器值來(lái)選擇64K種不同的串行時(shí)鐘頻率中的一種。選擇可以通過(guò)以下方法來(lái)確定:當(dāng)BRR =165535時(shí)(BRR波特率選擇寄存器中的16位值):SCI異步波特率SYSCLKmRR 聞 I <波特率是按位計(jì)算的,而每位需要8個(gè)SCICLK周期。當(dāng)BRR = 0 時(shí)SCI異步波特率SYSCLK串行通信過(guò)程: 在進(jìn)行串行通信之前,先對(duì) SCI通信控制寄存器 SCICCR進(jìn)行設(shè)置。信息塊的起始位始終是 1位,停止位可選擇1位或2位。數(shù)據(jù)位的長(zhǎng)度是可編程的,可設(shè)置 18
23、位,由SCICCR的SCICHAR2 0設(shè)置。數(shù)據(jù)位長(zhǎng)度小于 8位時(shí), 寫(xiě)到發(fā)送緩沖寄存器 SCITXBUF的數(shù)據(jù)只有低L位被發(fā)送(這些數(shù)據(jù)位必須右對(duì)齊,因?yàn)閷?duì)于少于8位的字符,左邊的位是被忽略的)。校驗(yàn)位可設(shè),由 SCICCR的PARITY ENABLE ( 5位)設(shè)置。校驗(yàn)方式有兩種,奇、偶校驗(yàn),由SCICCR的PARITY( 6位)設(shè)置??臻e線方式與地址位方式的選擇,由SCICCR的 ADDR/IDLE MOD( 3位)設(shè)置。SCICCR的SCIENA( 4位)是一個(gè)總開(kāi)關(guān)位。 在信息塊的格式確定后就要確定串行通信的波特率。串行通信的時(shí)鐘SCICLK是由時(shí)鐘源模塊的 SYSCLK按照SC
24、I波特率寄存器規(guī)定的分頻系數(shù)分頻后得到 的。16位的波特率寄存器 SCIHBAU刖SCILBAUD分別決定了波特率寄存器的高、低8位,二者共同構(gòu)成了16位的波特率數(shù)值。 設(shè)置好串行通信的波特率后,就要確定接收、發(fā)送部分的控制位,這些由SCI控制寄存器SCICTL1、2來(lái)完成, 當(dāng)數(shù)據(jù)寫(xiě)入 SCITXBUF時(shí),SCICTL2的TXRDY( 7位)被清0;當(dāng)SCITXBUF的數(shù)據(jù)全部移出后,貝U SCICTL2的TXRDY被置 1,并且產(chǎn)生發(fā)送中斷 TXINT。(3)SCI下位機(jī)程序#inelude ” DSP281x_Device.h"/使用的函數(shù)原型聲明void Gpio_selec
25、t(void);void SpeedUpRevA(void);void SCI_I nit(void);in terrupt void SCI_TX_isr(void);in terrupt void SCI_RX_isr(void);/全局變量char message=temperature;void mai n(void)InitSystem();初始化DSP內(nèi)核寄存器Gpio_select();配置GPIO復(fù)用功能寄存器Ini tPieCtrl();調(diào)用外設(shè)中斷擴(kuò)展初始化單元PIE-u nit/(代碼:DSP281x_PieCtrl.c)InitPieVectTable();初始化 PI
26、E vector 向量表/ (代碼:DSP281x_PieCtrl.c)EALLOW;/解除寄存器保護(hù)PieVectTable.TXAINT=& SCI_TX_isr;PieVectTable.RXAINT=& SCI_RX_isr;EDIS;/使能寄存器保護(hù)/使能PIE中的SCI_A_TX_INT中斷PieCtrlRegs.PIEIER9.bit.lNTx2=1;/使能PIE中的SCI_A_RX_INT中斷PieCtrlRegs.PIEIER9.bit.INTx 1=1;/ 使能 CPU INT 9IER |=ox100;/全局中斷使能和更高優(yōu)先級(jí)的實(shí)時(shí)調(diào)試事件EINT;/
27、全局中斷使能 INTMERTM;/使能實(shí)時(shí)調(diào)試中斷 DBGMSCI_I nit();While(1)PieCtrlRegs.WDKEY=ox55; 看門(mén)狗控制PieCtrlRegs.WDKEY=oxAA;EDIS;/使能寄存器保護(hù)void Gpio_select(void)EALLOW;/解除寄存器保護(hù)GpioMuxRegs.GPAMUX.all=oxO; 所有 GPIO端口配置為 I/OGpioMuxRegs.GPBMUX.all=oxO;GpioMuxRegs.GPFMUX.all=oxO;GpioMuxRegs.GPDMUX.all=oxO;GpioMuxRegs.GPAMUX.bit.
28、SCIRXDA_GPIOF5=1; 配置 SCI_RX GpioMuxRegs.GPAMUX.bit.SCIXTDA_GPIOF4=1; 配置 SCI_TX GpioMuxRegs.GPEMUX.all=oxO;GpioMuxRegs.GPGMUX.all=oxO;GpioMuxRegs.GPADIR.all=oxO;/GPIO PORT 配置為輸入GpioMuxRegs.GPBDIR.all=oxO; /GPIO PORT配置為輸入GpioMuxRegs.GPDDIR.all=oxO; /GPIO PORT配置為輸入GpioMuxRegs.GPEDIR.all=oxO; /GPIO PORT
29、配置為輸入GpioMuxRegs.GPFDIR.all=oxO; /GPIO PORT配置為輸入GpioMuxRegs.GPGDIR.all=oxO; /GPIO PORT配置為輸入/設(shè)置所有GPIO輸入的量化值等于 0 GpioMuxRegs.GPAQUAL.all=oxO;GpioMuxRegs.GPBQUAL.all=ox0;GpioMuxRegs.GPDQUAL.all=ox0;GpioMuxRegs.GPEQUAL.all=ox0;EDIS;/使能寄存器保護(hù)void InitSystem(void) /初始化 DSP內(nèi)核寄存器EALLOW;/解除寄存器保護(hù)SysCtrlRegs.WD
30、CR=ox00AF; 配置看門(mén)狗ox00E8 禁止看門(mén)狗,預(yù)定標(biāo)系數(shù)Prescaler=1/ox00AF不禁止看門(mén)狗,預(yù)定標(biāo)系數(shù)Prescaler=64SysCtrlRegs.SCSR=0;/ 看門(mén)狗產(chǎn)生復(fù)位SysCtrlRegs. PLLCR.bit.DIV=10;/SysCtrlRegs.HISPCP.all=ox1;SysCtrlRegs. LOSPCP.all=ox2;/設(shè)置使用的外設(shè)時(shí)鐘配置處理器鎖相環(huán),倍頻系數(shù)為5配置高速外設(shè)時(shí)鐘分頻系數(shù)為2配置低速外設(shè)時(shí)鐘分頻系數(shù)為4/ 一般不使用的外設(shè)時(shí)鐘禁止,降低系統(tǒng)功能SysCtrlRegs .P CLKCR.bit.EVAENCLK=0;
31、SysCtrlRegs .P CLKCR.bit.EVBENCLK=0;SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;/ 使能 SCI 模塊的時(shí)鐘SysCtrlRegs .P CLKCR.bit.SCIBENCLK=1;SysCtrIRegs .P CLKCR.bit.MCBSPENCLK=O;SysCtrIRegs .P CLKCR.bit.SPIENCLK=1;SysCtrIRegs. PCLKCR.bit.ECANENCLK=O;SysCtrIRegs .P CLKCR.bit.ADCENCLK=O;EDIS;/使能寄存器保護(hù)void SCI_Init(void)
32、SciaRegs.SCICCR.all=ox0007;/1bit 停止位無(wú)循環(huán)模式/無(wú)極性,字符長(zhǎng)度:8bit/異步模式,空閑線協(xié)議SciaRegs.SCICTL1.all=ox0003;使能 TX RX 內(nèi)部 SCICLK/RX ERR、SLEEP TXWAKESciaRegs.SCIHBAUD=487>>8; 波特率:9600(LSPCLK=37.5MHz) SciaRegs.SCILBAUD=487&oxOOFF;SciaRegs.SCICTL2.bit.TXINTENA=1; 使能 SCI 發(fā)送中斷SciaRegs.SCICTL2.bit.RXBKINTENA=1;
33、使能 SCI 接收中斷SciaRegs.SCIFFTX.all=oxE060;/bit15=1:退出復(fù)位/bit14=1 :使FIFO增強(qiáng)模式/bit13=1 :使能 TX FIFO 操作/bit6=1: CLR TXEFINT-標(biāo)志/bit5=1 :使能 TX FIFO 匹配bit4O :如果 TX FIFO=0,產(chǎn)生 TX_ISR 中斷SciaRegs.SCIFFRX.all=oxE065;/Rx中斷級(jí)設(shè)置為 5SciaRegs.SCICTLI.all=ox0023;使 SCI 退出復(fù)位/SCI_A發(fā)送中斷服務(wù)程序/發(fā)送字符串messagedin terrupt void SCI_TX_i
34、sr(void)int i;for(i=0;i<16;i+)SciaRegs.SCITXBUF= message"/重新初始化PIE,為SCI_A TX準(zhǔn)備接收下一次中斷PieCtrlRegs.PIEACK.all=ox0100;響應(yīng)中斷(4) 上位機(jī)程序如下:using System;using System.Collect ion s.Ge neric;using System.Comp onen tModel;using System.Data;using System.Draw ing;using System.Text;using System.Wi ndows.Fo
35、rms;using Syste m.IO;using Syste m.IO .Ports;namespace WEUDUCELIANGpublic partial class Form1 : Formstring serialReadString, ss, cc, string1;int i = 0;public Form1()In itializeComp onen t();timer1.Interval =1;/設(shè)置 timer 控件時(shí)間間隔timer1.E nabled = false;serialPort1.DataBits = 8;serialPort1.StopBits = Sys
36、tem.IO.Ports.StopBits. On e;serialPort1.ReadBufferSize = 500000;serialPort1.RtsEnable = true; /如果是 RS232轉(zhuǎn)RS485,此句必須要,否則不能通訊serialPort1.NewLi ne = "rn"private void butt on 1_Click(object sen der, Even tArgs e)if (butt on 1.Text ="打開(kāi)串口 ”)if (!serialPort1.lsOpe n)/如果串口是關(guān)閉的/設(shè)定串口信息和波特率seri
37、alPortl.PortName = boBoxl.Selectedltem.ToStri ng();serialPortl.BaudRate =Con vert.ToI nt32(boBox2.Selectedltem.ToStri ng(); serialPort1.Parity = Parity. None;serialPort1.DataBits =Con vert.ToI nt16(boBox4.Selectedltem.ToStri ng();serialPort1.StopBits = StopBits. On e;tryserialPort1.Ope n();/button1.
38、Text ="關(guān)閉串口 "comboBox1.E nabled = false;comboBox2.E nabled = false;comboBox3.E nabled = false;comboBox4.E nabled = false;comboBox5.E nabled = false;catch打開(kāi)串口/改變按鈕上的字符MessageBox.Show(”elseserialPort1.Close();butt on 1.Text ="串口打開(kāi)失??!n可能是串口已被占用!");/如果串口是打開(kāi)的/打開(kāi)串口 "/關(guān)閉串口改變按鈕上的字符c
39、omboBox1.E nabled = true;comboBox2.E nabled = true; comboBox3.E nabled = true; comboBox4.E nabled = true; comboBox5.E nabled = true;Illi)elseserialPort1.Close();serialPort1.Dispose();/關(guān)閉串口buttonl.Text ="打開(kāi)串口 "/改變按鈕上的字符comboBoxl.E nabled = true;comboBox2.E nabled = true;comboBox3.E nabled =
40、 true;comboBox4.E nabled = true;comboBox5.E nabled = true;btn CJ.E nabled = true;butt on4.En abled = false;private void btn CJ_Click(object sen der, Even tArgs e)tryif (serialPort1.lsOpe n)bt nCJ.E nabled = false;butt on4.En abled = true;serialReadStri ng = serialPort1_DataReceived1();if(serialReadS
41、tri ng != ""&&( serialReadStri ng!= cc| textBox1.Text =textBox1.AppendText(”時(shí)間:"+ DateTime.Now.ToString() + "溫度:"+ serialReadString + "°C " + "r n");cc = serialReadStri ng;timer1.Start();elseMessageBox.Show(”串口未打開(kāi)請(qǐng)先打開(kāi)串口!");catch/拋出異常Mess
42、ageBox.Show(”沒(méi)找到設(shè)備”);serialPort1.Close();serialPort1.Dispose();private void butt on 4_Click1(object sen der, Even tArgs e)timer1.Stop();butt on4.En abled = false;btn CJ.E nabled = true;stri ng1 =""serialPort1.Close();serialPort1.Dispose();/privatevoid butt on 2_Click(objectsen der, Even tA
43、rgs e)清除listbox 控件中的內(nèi)容textBox1.Text =""/privatevoid butt on 3_Click(objectsen der, Even tArgs e)保存溫度數(shù)據(jù)System.lO.FileStream objfile;saveFileDialog1.ShowDialog();if (saveFileDialog1.FileName != null)objfile = System.IO.File.Create(saveFileDialog1.FileName);objfile.Close();objfile.Close();obj
44、file.Dispose();Syste m.I O.StreamWriter objfiles = newStreamWriter(saveFileDialog1.FileName);objfiles.Write(textBoxl.Text);objfiles.Close();objfiles.Dispose();elseMessageBox.Show(”路徑不可為空!");private void timer1_Tick(object sen der, Even tArgs e)serialReadStri ng = serialPort1_DataReceived1();時(shí)間:
45、” + DateTime.Now.ToStri ng() + " 溫度:” +時(shí)間:” + DateTime.Now.ToStri ng() + " 溫度:” + ccif (serialReadStri ng != "" && (serialReadStri ng != cc | textBox1.Text ="") textBox1.Appe ndText("serialReadString + "C " + "rn");cc = serialReadStri ng
46、;serialReadStri ng =""else textBox1.Appe ndText(”+ " C " + "rn");/ <summary>III接收信息/ </summary>/ <param n ame="data">存儲(chǔ)接收的信息</param>/ <param n ame="offset">緩沖區(qū)數(shù)組中開(kāi)始與入的偏移量</param>/ <param n ame="co un t"
47、;>要讀取的字節(jié)數(shù)</param>/ <param n ame="serialPort">串行口 </param>/ <retur ns></retur ns> public bool ReceiveData(byte data, int offset, int count, SerialPort serialPort) if (serialPort1.lsOpe n)tryserialPort1.Read(data, offset, coun t);return true;catchreturn false
48、;elsereturn false;private void comboBox1_Selectedl ndexCha nged(object sen der, Even tArgs e)this.serialPort1.PortName = boBox1.Selectedltem.ToStri ng();private void comboBox2_Selectedl ndexCha nged(object sen der, Even tArgs e)this.serialPort1.BaudRate = Co nvert.ToI nt32(boBox2.Selectedltem);priva
49、te void comboBox3_Selectedl ndexCha nged(object sen der, Even tArgs e)switch (boBox3.Selectedltem.ToStri ng()case "Non e":this.serialPort1.Parity = Parity. None;break;case "Eve n":this.serialPortl.Parity = Parity.Eve n; break;case "Odd":this.serialPortl .P arity = Parit
50、y.Odd;break;default: this.serialPort1.Parity = Parity. None;break;private void comboBox4_Selectedl ndexCha nged(object sen der, Even tArgs e)this.serialPort1.DataBits = Co nvert.ToI nt16(boBox4.Selectedltem);private void comboBox5_Selectedl ndexCha nged(object sen der, Even tArgs e)switch (Co nvert.
51、ToI nt16(boBox5.Selectedltem)case 1:this.serialPort1.StopBits = StopBits. On e; break;case 2:this.serialPortl.StopBits = StopBits.Two; break;default:this.serialPortl.StopBits = StopBits. On e; break;private void Form1_Load(object sen der, Even tArgs e)#region以下各賦值語(yǔ)句都會(huì)觸發(fā)相應(yīng)的口進(jìn)行初始化設(shè)boBoxl.Selectedltem
52、= boBox1.ltems3;boBox2.Selectedltem = boBox2 .l tems3;boBox3.Selectedltem = boBox3 .l tems0;Selectedl ndexCha nged 事件,同時(shí)會(huì)對(duì)串"C0M4"9600;8;boBox4.Selectedltem = boBox4.ltems0;/Parity. None;boBox5.Selectedltem =boBox5 .I tems0;/StopBits. One#en dregi onstring serialPort1_DataReceived1()/ss = n
53、u II;serialPort1.Write("rn");把數(shù)據(jù)寫(xiě)入輸入緩沖器區(qū)stri ng1 += serialPort1.ReadExist in g();if (i >= stri ng1.Le ngth)i = 0; stri ng1 =""return stri ng1;elseif (string1.Length >= 5)for (; i < stri ng1.Le ngth;)ss = string1.Substring(i, 5);i += 5;return ss;return string1.Substring(i-5, 5);elsestri ng1 = ss;return ss;private void Form1_FormClos in g(object sen der, FormClos in gEve ntArgs e)DialogResult rst = MessageBox.Show(this,"您真的要退出溫度測(cè)量系統(tǒng)嗎?","提示”MessageBoxButt on s.YesNo, MessageBoxIco n.Questio n);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳制品企業(yè)銷(xiāo)售經(jīng)理合同范本
- 臨時(shí)品牌專(zhuān)員招聘合同模板
- 科技園區(qū)建設(shè)土方開(kāi)挖施工合同
- 銀行員工客戶(hù)信息保密承諾書(shū)
- 通信基站維護(hù)員合同范例
- 寫(xiě)字樓水電維修工程師聘用協(xié)議
- 塑料廠給排水暖施工合同
- 互聯(lián)網(wǎng)公司文秘招聘協(xié)議
- 船舶管道保溫施工協(xié)議
- 廣告宣傳皮卡租賃合同
- 中國(guó)書(shū)法欣賞之楷書(shū)欣賞PPT課件
- 江森ADS備份及恢復(fù)數(shù)據(jù)操作手冊(cè)
- 學(xué)校電教設(shè)備使用記錄表
- 工程量清單項(xiàng)目編碼完整版
- JJF 1629-2017 烙鐵溫度計(jì)校準(zhǔn)規(guī)范(高清版)
- 項(xiàng)目工程質(zhì)量管理體系
- 部編版二年級(jí)下冊(cè)語(yǔ)文拼音練習(xí)
- 《高壓電動(dòng)機(jī)保護(hù)》PPT課件.ppt
- 在全市油氣輸送管道安全隱患整治工作領(lǐng)導(dǎo)小組第一次會(huì)議上的講話摘要
- 小學(xué)英語(yǔ)后進(jìn)生的轉(zhuǎn)化工作總結(jié)3頁(yè)
- 定喘神奇丹_辨證錄卷四_方劑樹(shù)
評(píng)論
0/150
提交評(píng)論