




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 基于S08的溫度檢測顯示系統(tǒng)的設(shè)計學(xué) 院: 電氣工程學(xué)院 班 級: 姓 名: 學(xué) 號: 目 錄1 緒論11.1設(shè)計背景11.2 數(shù)據(jù)采集系統(tǒng)簡單介紹12 方案論證32.1微控制器的選擇32.2顯示方案選擇32.3溫度傳感器的選擇43 溫度測量顯示系統(tǒng)硬件設(shè)計53.1 溫度采集模塊硬件設(shè)計53.2 MCU控制器模塊設(shè)計63.3 顯示模塊電路的設(shè)計74 溫度測量顯示系統(tǒng)軟件設(shè)計74.1微控制器程序的開發(fā)環(huán)境及語言84.2程序設(shè)計94.2.1 A/D轉(zhuǎn)換原理及程序94.2.2熱敏電阻阻值和溫度的非線性對性模塊原理及程序114.2.3 溫度顯示模塊程序13總結(jié)15參考文獻(xiàn)16附錄A 溫度采集與顯示程
2、序17附錄B 接線原理圖231 緒論1.1設(shè)計背景在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。自18世紀(jì)工業(yè)革命以來,工業(yè)發(fā)展對是否能掌握溫度有著絕對的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。溫度對于工業(yè)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。進(jìn)入21世紀(jì)后,溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。在工農(nóng)業(yè)生產(chǎn)中,溫度檢測及其控制占有舉足輕重的地位,隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工
3、業(yè)改造的逐步實現(xiàn) ,能夠獨立工作的溫度檢測和顯示系統(tǒng)已經(jīng)應(yīng)用于諸多領(lǐng)域。要達(dá)到較高的測量精度需要很好的解決引線誤差補償問題、多點測量切換誤差問題和放大電路零點漂移誤差等問題,使溫度檢測復(fù)雜化。模擬信號在長距離傳輸過程中,抗電磁干擾時令設(shè)計者傷腦筋的問題,對于多點溫度檢測的場合,各被檢測點到監(jiān)測裝置之間引線距離往往不同,此外,各敏感元件參數(shù)的不一致,這些都是造成誤差的原因,并且難以完全清除。單片機以其功能強、體積小、可靠性高、造價低和開發(fā)周期短等優(yōu)點,成為自動化和各個測控領(lǐng)域中必不可少且廣泛應(yīng)用的器件,尤其在日常生活中也發(fā)揮越來越大的作用。采用單片機對溫度采集進(jìn)行控制,不僅具有控制方便、組態(tài)簡單
4、和靈活性大等優(yōu)點,而且可以大幅度提高被控數(shù)據(jù)的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。1.2 數(shù)據(jù)采集系統(tǒng)簡單介紹隨著自動控制的發(fā)展,數(shù)據(jù)采集越來越被廣泛應(yīng)用,如醫(yī)療、工業(yè)等方面,數(shù)據(jù)采集是指將溫度,壓力,流量,位移等模擬量通過各種傳感元件做適當(dāng)轉(zhuǎn)換后,再經(jīng)信號調(diào)理、采樣、量化、編碼、傳輸?shù)炔襟E采集,轉(zhuǎn)換成數(shù)字量后,傳給PC 機進(jìn)行存儲,處理,顯示或打印的過程,相應(yīng)的系統(tǒng)稱為數(shù)據(jù)采集系統(tǒng),可分為以下幾種:1.基于通用微型計算機的數(shù)據(jù)采集系統(tǒng)將采集來的信號通過外部的采樣和A/D轉(zhuǎn)換后的數(shù)字信號通過接口電路送入微機內(nèi)進(jìn)行處理,然后再顯示處理結(jié)果或經(jīng)過D/A 轉(zhuǎn)換輸出,主要有以下幾個特點:(1)
5、 系統(tǒng)較強的軟、硬件支持。通用微型計算機系統(tǒng)所有的軟硬件資源都可以用來支持系統(tǒng)進(jìn)行工作。(2) 具有自開發(fā)能力。(3) 系統(tǒng)的軟硬件的應(yīng)用配置比較小,系統(tǒng)的成本較高,但二次開發(fā)時,軟硬件擴展能力較好。(4) 在工業(yè)環(huán)境中運行的可靠性差,對安放的環(huán)境要求較高;程序在RAM 中運行,易受外界干擾破壞。2.基于單片機的數(shù)據(jù)采集系統(tǒng)它是由單片機及其些外圍芯片構(gòu)成的數(shù)據(jù)采集系統(tǒng),是近年來微機技術(shù)快速發(fā)展的結(jié)果,它具有如下特點:(1) 系統(tǒng)不具有自主開發(fā)能力,因此,系統(tǒng)的軟硬件開發(fā)必須借助開發(fā)工具。(2) 系統(tǒng)的軟硬件設(shè)計與配置規(guī)模都是以滿足數(shù)據(jù)采集系統(tǒng)功能要求為原則,因此系統(tǒng)的軟硬件應(yīng)用配置具有最佳的性
6、價比。系統(tǒng)的軟件一般都有應(yīng)用程序。(3) 系統(tǒng)的可靠性好、使用方便。應(yīng)用程序在ROM 中運行不會因外界的干擾而破壞,而且上電后系統(tǒng)立即進(jìn)入用戶狀態(tài)。3.基于DSP數(shù)字信號微處理器的數(shù)據(jù)采集系統(tǒng)DSP數(shù)字信號微處理器從理論上而言就是一種單片機的形式,常用的數(shù)字信號處理芯片有兩種類型,一種是專用DSP芯片,一種是通用DSP芯片?;贒SP數(shù)字信號微處理器的數(shù)據(jù)采集系統(tǒng)的特點如下:精度高、靈活性好、可靠性好、容易集成、分時復(fù)用等,但其價格不菲。2 方案論證2.1微控制器的選擇微控制器是測量顯示裝置的核心部分,它要負(fù)責(zé)數(shù)據(jù)的處理及控制液晶屏顯示。因此,需要一個高集成度、穩(wěn)定性高和體積小的微控制器,同時
7、還要注重低成本及實際情況。AT89S52是一種低功耗、高性能8位微控制器,具有8K系統(tǒng)可編程FLASH存儲器和256字節(jié)ROM,可實現(xiàn)0Hz33Hz的全靜態(tài)操作,支持4.0V5.5V電源。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與MCS-51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。其內(nèi)部沒有A/D轉(zhuǎn)換模塊,需要外部擴展模數(shù)轉(zhuǎn)換芯片。S08AW60擁有62KB片上在線可編程FLASH存儲器和2KB片上RAM,具有模塊保護(hù)與安全選項功能,支持2.75.5V電源。片內(nèi)總線時鐘最高可達(dá)20MHz,可選擇寬范圍的時鐘頻率。其內(nèi)部集成了高性能模/數(shù)轉(zhuǎn)換器
8、(ADC)和串行通信模塊,具有很寬的工作溫度范圍(-40+125),可適應(yīng)各類惡劣環(huán)境。該芯片還可以通過BDM在計算機與微控制器進(jìn)行在線編程及后臺調(diào)試,避免頻繁的插拔單片機,編譯軟件調(diào)試功能強大。對比之后,根據(jù)實際的應(yīng)用需求,本設(shè)計選擇了飛思卡爾公司生產(chǎn)的增強型8位微控制器MC9S08AW60(44引腳、LQFP封裝)。其擁有足夠大的FLASH存儲器和ROM,并帶有高性能模/數(shù)轉(zhuǎn)換器。另外,體積小,穩(wěn)定性高,調(diào)試方便。2.2顯示方案選擇方案一:LED數(shù)碼管顯示器可分為兩種顯示方式:靜態(tài)顯示和動態(tài)顯示。LED數(shù)碼管靜態(tài)顯示,多片七段譯碼器驅(qū)動顯示,這不僅增加了成本,還需要占用單片機多個I/O口,
9、也給電路的焊接帶來一定的困難,因此不選用這種方案作為顯示模塊,所以排除此方案。方案二:LED數(shù)碼管顯示器動態(tài)顯示方式下,將所有位的段選線并聯(lián)在起,由位選線控制哪位接收字段碼。采用動態(tài)掃描顯示,也就是在顯示過中,輪流向各位送出字形碼和相應(yīng)的字位選擇,同一時刻只有一位顯示,其他各位熄滅。但是此顯示方案穩(wěn)定性較差,并且還需要焊接外圍電路,所以不采用此方案。方案三:LCD液晶顯示,由單片機驅(qū)動.它主要用來顯示大量數(shù)據(jù)、文字、圖形,能夠顯示的位數(shù)多,顯示得清晰多樣、美觀,同時液晶顯示器的編寫程序簡單,價格便宜,故采用此種方案。 LCD類型繁多,價格不等。根據(jù)本設(shè)計需要顯示的信息量小的特點,選用價格便宜的
10、LCD1602液晶屏。其特點如下:(1) 液晶顯示屏是以16列×2行=32個5×10或5×7點陣塊組成的顯示字符群,每個點陣為一個字符,字符間距和行距都為一個點的寬度。(2) 具有字符發(fā)生器ROM,可以顯示192種字符。(3) 具有64字節(jié)的自定義字符RAM,可自定義8個5×7或4個5×10點陣字符。(4) 具有80字節(jié)的RAM。(5) 結(jié)構(gòu)緊湊、輕巧、裝配容易。(6) 單+5V電源供電,低功耗,長壽命,高可靠性。2.3溫度傳感器的選擇測量溫度的關(guān)鍵是溫度傳感器,因此需要靈敏度高、測溫范圍寬、穩(wěn)定性好,同時還要考慮成本和實際情況。DS18B20
11、數(shù)字式溫度傳感器,使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測量的精度,同時,它可以直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號供微機處理,接口簡單,使數(shù)據(jù)傳輸和處理簡單化。部分功能電路的集成,使總體硬件設(shè)計更簡潔,能有效地降低成本, 搭建電路和焊接電路時更快,調(diào)試也更方便簡單化 。熱敏電阻的主要特點是:靈敏度較高,其電阻溫度系數(shù)要比金屬大10100倍以上,能檢測出10-6的溫度變化;工作溫度范圍寬,常溫器件適用于-55315,高溫器件適用溫度高于315(目前最高可達(dá)到2000),低溫器件適用于-27355;體積小,能夠測量其他溫度計無法測量的空隙、腔體及生物體內(nèi)血管的溫度;使用方便,
12、電阻值可在0.1100k間任意選擇;易加工成復(fù)雜的形狀,可大批量生產(chǎn);穩(wěn)定性好、過載能力強對比之后,根據(jù)實際的應(yīng)用需求,本設(shè)計采用熱敏電阻。熱敏電阻包括正溫度系數(shù)(PTC)和負(fù)溫度系數(shù)(NTC)熱敏電阻,以及臨界溫度熱敏電阻(CTR)本設(shè)計采用NTC熱敏電阻。NTC(Negative Temperature Coeff1Cient)是指隨溫度上升電阻呈指數(shù)關(guān)系減小、具有負(fù)溫度系數(shù)的熱敏電阻現(xiàn)象和材料該材料是利用錳、銅、硅、鈷、鐵、鎳、鋅等兩種或兩種以上的金屬氧化物進(jìn)行充分混合、成型、燒結(jié)等工藝而成的半導(dǎo)體陶瓷,可制成具有負(fù)溫度系數(shù)(NTC)的熱敏電阻其電阻率和材料常數(shù)隨材料成分比例、燒結(jié)氣氛、
13、燒結(jié)溫度和結(jié)構(gòu)狀態(tài)不同而變化。它的測量范圍一般為-10+300,也可做到-200+10,甚至可用于+300+1200環(huán)境中作測溫用。3 溫度測量顯示系統(tǒng)硬件設(shè)計溫度采集系統(tǒng)的硬件部分是由溫度采集模塊、MCU控制器模塊、溫度顯示模塊組成。具體框圖如下圖3.1所示: 圖3.1 系統(tǒng)硬件框圖3.1 溫度采集模塊硬件設(shè)計該模塊是根據(jù)熱敏電阻阻值隨溫度變化而變化的特性,利用串聯(lián)分壓的特點,將熱敏電阻所分的電壓送到MC9S08AW60的模擬量輸入端。具體電路原理如圖3.2所示: 圖3.2 溫度采集模塊電路原理圖 該電路中R4為熱敏電阻,其電壓傳輸?shù)組C9S08AW60單片機的模擬量輸入端,即B0口。3.2
14、 MCU控制器模塊設(shè)計MC9S08AW60的外部工作電路如圖3.3所示。Vddad和Vssad是MCU內(nèi)部模擬電路的電源,給模數(shù)轉(zhuǎn)換器(ADC)模塊供電,VREFH和VREFL是模數(shù)轉(zhuǎn)換的參考電壓。Vdd和Vss是S08MCU主要的電源引腳,工作電壓范圍是2.7V5.5V,在該電路中提供的是5V電壓。在Vdd和Vss之間接10F鉭電容器和0.1F的陶瓷旁路電容器,10F鉭電容器來為系統(tǒng)提供大容量的電荷存儲,同時應(yīng)在離MCU電源管腳盡可能近的地方安裝一個0.1F的陶瓷旁路電容器來抑制高頻噪音。 圖3.3 MC9S08AW60外部工作電路原理圖該電路為MCU控制器電路,其中,G0、G1、G2口分別
15、與LCD1602的RS、R/W、E引腳連接;C0C3口與LCD1602的DB0DB3引腳連接;D0D3口與LCD1602的DB4DB7引腳連接。.B0口是模擬量輸入端,用于輸入熱敏電阻的電壓。3.3 顯示模塊電路的設(shè)計該模塊是利用LCD1602液晶屏顯示,顯示的清晰度是關(guān)鍵,其Vee引腳作用是對比調(diào)整,原理是該引腳輸入電壓不同,調(diào)整度不同,所以采用電位器分壓作為它的電壓輸入。Vss及K引腳分別是電源地、LCD背光電源負(fù)極,直接接地。Vcc及A引腳分別是電源、LCD背光電源正極,采用+5V電源供電。其電路原理圖如圖3.4所示:圖3.4 顯示模塊電路原理圖該電路中,LCD1602的RS、R/W、E
16、引腳分別與MC9S08AW60的G0、G1、G2口連接;DB0DB3引腳分別與MC9S08AW60的C0C3口連接;DB4DB7引腳與MC9S08AW60的D0D3口連接。4 溫度測量顯示系統(tǒng)軟件設(shè)計4.1微控制器程序的開發(fā)環(huán)境及語言在前面,本設(shè)計已經(jīng)選擇了MC9S08AW60微控制器,飛思卡爾的微控制器有其專用的開發(fā)環(huán)境軟件CodeWarrior IDE。同時,CodeWarrior IDE可以在不同的操作系統(tǒng)(包括Windows, Macintosh和Linux)下使用,而且在這些操作系統(tǒng)下的界面完全相同。本設(shè)計使用CodeWarrior6.3版,其界面如圖4.1所示,只要在右邊打開mai
17、n.c窗口就可以進(jìn)行程序編寫。 圖4.1 CodeWarrior6.3程序開發(fā)界面在對微控制器進(jìn)行編程時,可以用匯編語言或者C語言,甚至可以二者混合編程。CodeWarrior IDE支持匯編語言,C、C+和Java高級語言。C語言功能豐富、表達(dá)能力強、使用靈活方便、目標(biāo)程序效率高、可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點,是國內(nèi)外廣泛使用的一種計算機語言。本設(shè)計使用C語言對微控制器進(jìn)行編程,其能直接操作微控制器的硬件和接口,生成的機器代碼也是高水平的。4.2程序設(shè)計本設(shè)計程序主要包括A/D轉(zhuǎn)換模塊程序、熱敏電阻阻值和溫度的非線性對性模塊程序、溫度顯示模塊程序,其總程序流程圖
18、如圖4.2所示:圖4.2 系統(tǒng)程序總流程圖4.2.1 A/D轉(zhuǎn)換原理及程序傳感器獲得的信號由于是模擬信號,而CPU處理的是數(shù)字信號,故要經(jīng)過模數(shù)轉(zhuǎn)換。在MC9S08AW60芯片中集成了一個8位/10位精度可選的逐次逼近式ADC模塊,使用時不需再擴展片外的A/D轉(zhuǎn)換器。逐次逼近式ADC是一個具有反饋回路的循環(huán)系統(tǒng),主要部件有電壓比較器、逐次逼近寄存器(SAR)、結(jié)果寄存器、數(shù)字/模擬轉(zhuǎn)換器(Digital -To- Analog,DAC)和控制電路,如圖4.3所示。逐次逼近式ADC用DAC的輸出電壓來驅(qū)動比較器的反相端。轉(zhuǎn)換時,要用一個逐次逼近寄存器存放轉(zhuǎn)換出來的數(shù)字量;轉(zhuǎn)換結(jié)束時,將數(shù)字量送到
19、結(jié)果寄存器。 圖4.3 逐次逼近式ADC原理圖逐次逼近ADC原理是:首先設(shè)置SAR中的最高位為1,其余位為0,經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換成模擬電壓VO,然后將VO與輸入電壓Vi在電壓比較器中進(jìn)行比較。如果ViVO,則置1保留,并使下一位置1。如果Vi<VO,則這一位給予清除,然后使下一位置1。按上述方法對次高位進(jìn)行轉(zhuǎn)換、比較、判斷,決定次高位應(yīng)取1還是0。重復(fù)上述過程,直到確定SAR最低位為止。這時控制電路送出一個轉(zhuǎn)換結(jié)束標(biāo)志信號,這個信號將SAR中的數(shù)字量送入結(jié)果寄存器供CPU使用。本設(shè)計中,由于在S08AW60芯片中的SCI數(shù)據(jù)寄存器只有8位,所以模數(shù)轉(zhuǎn)換選擇8位精度,以滿足實際情況。針對振
20、動信號高頻多變,在ADC初始化中選擇連續(xù)轉(zhuǎn)換、高速轉(zhuǎn)換和短采樣時間。C語言編寫的MC9S08AW60微控制器中A/D轉(zhuǎn)換的節(jié)選程序代碼如下:/* * *函數(shù)名稱:adc_init()* *作用:A/D模塊初始化*/void adc_init(void) APCTL1=0X01; /*ADCP01引腳I/O無效,即B口0位*/ ADC1CFG=0X00; /*高速模式 8位精度,ADCK=總線頻率*/ ADC1SC2=0X00; /*軟件觸發(fā),比較功能禁止*/ ADC1SC1=0X00; /*禁止轉(zhuǎn)換完成中斷,單次轉(zhuǎn)換*/* * *函數(shù)名稱:convert_begin()* *作用:啟動A/D轉(zhuǎn)
21、換*/unsigned int convert_begin(void) unsigned int Vtemp; ADC1SC1=0X00; /* 寫ADC1SC1啟動轉(zhuǎn)換*/ while(!(ADC1SC1_COCO); /* 等待轉(zhuǎn)換結(jié)束 */ Vtemp=ADC1RL; /*讀取轉(zhuǎn)換結(jié)果 */ return Vtemp; /* 返回結(jié)果 */4.2.2熱敏電阻阻值和溫度的非線性對性模塊原理及程序熱敏電阻的阻值溫度特性曲線是一條指數(shù)曲線,非線性度較大,因此在使用時要進(jìn)行線性化處理??刹捎煤唵蔚牟楸矸◤碾妷褐抵胁槌鱿鄳?yīng)的溫度值。預(yù)先將一系列溫度與電壓對應(yīng)值存貯到AW60微控制器程序存儲器中的一
22、個表內(nèi),當(dāng)給定任意一個電壓值時,即可通過查表得出所對應(yīng)的溫度值。當(dāng)表中沒有對應(yīng)的電壓值時,可找出電壓值在表中的區(qū)域,然后在區(qū)間的相鄰兩點經(jīng)線性插值得出對應(yīng)溫度值。存入表中點的多少影響溫度值的精度。這里以選16個點為例,選8位模式A/D可轉(zhuǎn)換結(jié)果范圍是0255,因此每兩個點的間隔是16。使用插值算法如下: (4.1)式中:當(dāng)前溫度; 當(dāng)前溫度的A/D轉(zhuǎn)換值;,相鄰點的溫度值;,相鄰點的A/D轉(zhuǎn)換值;當(dāng)A/D轉(zhuǎn)換結(jié)果在區(qū)間016或240255時,不再計算,直接按溫度值79或-40處理。C語言編寫的獲得溫度值的節(jié)選程序代碼如下:/* * *函數(shù)名稱: GetTemperature()* *作用:查表
23、及插值程序得到溫度值*/signed int GetTemperature(int Value) signed int T; int i; if(Value<= V_T_table01) T=V_T_table11; /* 當(dāng)A/D轉(zhuǎn)換值在016時,按79攝氏度賦值 */ else if(Value>= V_T_table015) T=V_T_table115; /* 當(dāng)A/D轉(zhuǎn)換值在240255時,按-40攝氏度賦值 */ else for(i=1;i<=14;i+) if(Value= V_T_table0i) /* 表中是否有值 */ T=V_T_table1i; /*
24、 有值,賦值給T */ break; else if(Value> V_T_table0i)&&(Value< V_T_table0i+1) T=(V_T_table1i+1-V_T_table1i)*100)/16; T=T*(Value-V_T_table0i); /* 沒有,找到區(qū)間并插值 */ T=V_T_table1i+T/100; break; return T; /* 返回溫度值T */4.2.3 溫度顯示模塊程序LCD1602采用+5V電壓驅(qū)動,其數(shù)據(jù)接口和讀寫控制引腳與MC9S08AW60單片機的I/O口直接相連。MC9S08AW60單片機將采集到
25、的模擬電壓值經(jīng)過A/D轉(zhuǎn)換后,查表得到溫度值,通過I/O口傳輸給LCD1602顯示。C語言編寫的溫度值顯示的節(jié)選程序代碼如下:/* * *函數(shù)名稱:LCD1602_init()* *作用LCD1602初始化*/void LCD1602_init(void) LCD1602_DB(0x08 ,0x03); /*顯示模式 8位總線 雙行顯示 5*7點陣*/ RS_RW_E_init(); LCD1602_DB(0x04 ,0x01); /*光標(biāo)移動 每輸入一次該指令 光標(biāo)向右移一格 整體畫面不滾動*/ RS_RW_E_init(); LCD1602_DB(0x0C ,0x00); /* 屏幕開關(guān)
26、打開顯示屏 不顯示光標(biāo) 不閃爍 */ RS_RW_E_init(); LCD1602_DB(0x06 ,0x00); /輸入方式 RS_RW_E_init(); LCD1602_DB(0x01 ,0x00); /清屏 RS_RW_E_init(); /* * *函數(shù)名稱:LCD1602_display()* *作用LCD1602顯示*/void LCD1602_display(void) if(neg_flag) /* 如果是負(fù),最高位顯示-*/ LCD1602_DB(0x00,0x08); /*需要顯示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(0x
27、0d,0x02); else /* 如果是正,最高位顯示+*/ LCD1602_DB(0x00,0x08); /*需要顯示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(0x0b,0x02); LCD1602_DB(0x01,0x08); /*需要顯示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(Disp_Value0s,Disp_Value1s); LCD1602_DB(0x02,0x08); /*需要顯示的字符的地址*/ RS_RW_E_init(); LCD1602_write_dat(Disp_Value0g
28、,Disp_Value1g);23總結(jié)硬件方面。選擇硬件,要比較同類產(chǎn)品的穩(wěn)定性、功耗、體積、價格等,另外還要符合設(shè)計的全部要求。在顯示方案上,利用LCD1602顯示,程序簡單,在硬件電路的設(shè)計方面,用Protel繪制電路圖時要標(biāo)明元件的大小,有些封裝元件要標(biāo)明名稱和封裝。其次,軟件方面。把程序分塊編寫能夠有效地提高正確性和編程效率。通過本次實驗,我學(xué)習(xí)了很多關(guān)于S08AW60的知識,并能通過所學(xué)設(shè)計一款基于S08AW60的溫度測量顯示系統(tǒng),雖然有很多不足,也有很多不理解的地方,但是通過學(xué)習(xí)和討論,一一得到了解決,受益匪淺。參考文獻(xiàn)1 王威嵌入式微控制器S08AW原理與實踐M北京:北京航空航天
29、大學(xué)出版社,20092 陳杰. 傳感器與檢測技術(shù)M北京:高教出版社,20043 邵貝貝. 龔光華.單片機認(rèn)識與實踐M.北京:北京航空航天大學(xué)出版社,20064 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,19895 沈蘭蓀.數(shù)據(jù)采集與處理M北京:能源出版社,19876 沙占友、王彥朋、孟志永.單片機外圍電路設(shè)計.電子工業(yè)出版社,20037 謝宜仁.單片機實用技術(shù)問答. 人民郵電出版社,20038 孫傳友、漢澤西.測控系統(tǒng)原理與設(shè)計.北京航空航天大學(xué)出版社,20029 章吉良,周勇,戴旭涵等微傳感器原理、技術(shù)及應(yīng)用M上海:上海交通大學(xué)出版社,2005附錄A 溫度采集與顯示程序/*
30、* *文件名Temprature_LCD1602.c* *MCU:MC9S08AW60* *調(diào)試環(huán)境:CodeWarrior v6.3* *日期:2010.12*/#include <hidef.h> /* for EnableInterrupts macro */#include "derivative.h" /* include peripheral declarations */const unsigned char Disp_Value210=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x03,0
31、x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03 ; /*存放顯示段碼*/const signed int V_T_table217=0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,255,0,79,56,43,34,27,21,15,10,5,-1,-6,-11,-18,-26,-40,0 /*存放A/D轉(zhuǎn)換值和溫度值的表*/ ; #define LCD1602_D03_PTB03 PTCD /*1602液晶屏數(shù)據(jù)接口低4位接C口低4位*/#define LCD1602_D47_PTD03
32、PTDD /*1602液晶屏數(shù)據(jù)接口高4位接D口低4位*/#define LCD1602_RS PTGD_PTGD0 /*1602液晶屏數(shù)據(jù)選擇接口接G口0位*/#define LCD1602_RW PTGD_PTGD1 /*1602液晶屏讀寫選擇接口接G口1位*/#define LCD1602_E PTGD_PTGD2 /*1602液晶屏信號使能接口接G口2位*/signed int Temperature; /*溫度*/char neg_flag=0; /*溫度正負(fù)標(biāo)志,正時為0,負(fù)時為1*/int s,g; /*溫度十位,個位*/unsigned int adc_value; /*通道電
33、壓值*/*函數(shù)聲明*/void data_deal(void); /*數(shù)據(jù)處理程序*/void adc_init(void) ; /*ADC初始化程序*/signed int GetTemperature(int Value); /*查表得到溫度程序*/unsigned int convert_begin(void); /*啟動轉(zhuǎn)換*/void delay40us(int count); /*LCD顯示延時程序*/void RS_RW_E_init(void); /*LCD1602控制程序*/void LCD1602_DB(char x ,char y); /*LCD1602數(shù)據(jù)接口*/voi
34、d LCD1602_init(void); /*LCD1602數(shù)據(jù)接口*/void LCD1602_write_dat(char x,char y); /*寫數(shù)據(jù)程序*/void LCD1602_display(void); /*LCD1602顯示程序*/void PORT_init(void) ; /*I/O口初始化程序*/*/* * *函數(shù)名稱:delay40us()* *作用:延時*/void delay40us(int count) int i; for(i=0;i<count;i+) _RESET_WATCHDOG(); /* * *函數(shù)名稱:adc_init()* *作用:A
35、/D模塊初始化*/void adc_init(void) APCTL1=0X01; /*ADCP01引腳I/O無效,即B口0位*/ ADC1CFG=0X00; /*高速模式 8位精度,ADCK=總線頻率*/ ADC1SC2=0X00; /*軟件觸發(fā),比較功能禁止*/ ADC1SC1=0X00; /*禁止轉(zhuǎn)換完成中斷,單次轉(zhuǎn)換*/* * *函數(shù)名稱:convert_begin()* *作用:啟動A/D轉(zhuǎn)換*/unsigned int convert_begin(void) unsigned int Vtemp; ADC1SC1=0X00; /* 寫ADC1SC1啟動轉(zhuǎn)換*/ while(!(AD
36、C1SC1_COCO); /* 等待轉(zhuǎn)換結(jié)束 */ Vtemp=ADC1RL; /*讀取轉(zhuǎn)換結(jié)果 */ return Vtemp; /* 返回結(jié)果 */* * *函數(shù)名稱: GetTemperature()* *作用:查表及插值程序得到溫度值*/signed int GetTemperature(int Value) signed int T; int i; if(Value<= V_T_table01) T=V_T_table11; /* 當(dāng)A/D轉(zhuǎn)換值在016時,按79攝氏度賦值 */ else if(Value>= V_T_table015) T=V_T_table115;
37、/* 當(dāng)A/D轉(zhuǎn)換值在240255時,按-40攝氏度賦值 */ else for(i=1;i<=14;i+) if(Value= V_T_table0i) /* 表中是否有值 */ T=V_T_table1i; /* 有值,賦值給T */ break; else if(Value> V_T_table0i)&&(Value< V_T_table0i+1) T=(V_T_table1i+1-V_T_table1i)*100)/16; T=T*(Value-V_T_table0i); /* 沒有,找到區(qū)間并插值 */ T=V_T_table1i+T/100; br
38、eak; return T; /* 返回溫度值T */ /* * *函數(shù)名稱:data_deal()* *作用:實現(xiàn)十位,個位的分離*/void data_deal(void) if(Temperature<0) /* 溫度為負(fù) */ neg_flag=1; /* neg_flag為1*/ Temperature=-Temperature; /* 取正*/ else neg_flag=0; s= Temperature/10; /* 分離十位*/ g= Temperature-s*10; /* 分離個位*/* * *函數(shù)名稱:RS_RW_E_init()* *作用:LCD1602控制*/
39、void RS_RW_E_init(void) LCD1602_RS=0; LCD1602_RW=0; LCD1602_E =1; delay40us(10000); LCD1602_E =0;/* * *函數(shù)名稱LCD1602_DB()* *作用:數(shù)據(jù)接口*/void LCD1602_DB(char x ,char y) LCD1602_D03_PTB03 =x; LCD1602_D47_PTD03 =y;/* * *函數(shù)名稱:LCD1602_init()* *作用LCD1602初始化*/void LCD1602_init(void) LCD1602_DB(0x08 ,0x03); /*顯示模式 8位總線 雙行顯示 5*7點陣*/ RS_RW_E_init(); LCD1602_DB(0x04 ,0x01); /*光標(biāo)移動 每輸入一次該指令 光標(biāo)向右移一格 整體畫面不滾動*/ RS_RW_E_init(); LCD1602_DB
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智能家居產(chǎn)品在智能家居產(chǎn)品專賣店銷售渠道的渠道管理路徑研究報告
- 無土栽培蔬菜產(chǎn)業(yè)化項目在2025年農(nóng)業(yè)品牌國際化中的應(yīng)用報告
- 2025年房地產(chǎn)中介行業(yè)服務(wù)質(zhì)量提升與行業(yè)規(guī)范研究報告
- 工業(yè)互聯(lián)網(wǎng)平臺網(wǎng)絡(luò)安全態(tài)勢感知技術(shù)大數(shù)據(jù)安全分析與預(yù)測報告
- 數(shù)字化教材在智能教育系統(tǒng)中的應(yīng)用與集成報告
- 新型金融衍生品在2025年的市場應(yīng)用與風(fēng)險防控策略報告
- 老字號餐飲品牌如何提升餐飲服務(wù)質(zhì)量與顧客滿意度研究報告
- 聽評課優(yōu)缺點及建議16篇
- 公司工程部工具管理制度
- 化工企業(yè)知識庫管理制度
- DB15T 2763-2022一般工業(yè)固體廢物用于礦山采坑回填和生態(tài)恢復(fù)技術(shù)規(guī)范
- 產(chǎn)能驗證分析報告
- Unit2Thestoneintheroad讀寫課件-高中英語人教版必修第三冊
- 繞圓柱無環(huán)量流動和有環(huán)量流動流線分布圖
- 委外加工流程
- DB32∕T 2914-2016 危險場所電氣防爆安全檢測作業(yè)規(guī)范
- 中國海洋大學(xué)論文封面模板
- 遵義會議-(演示)(課堂PPT)
- HY∕T 122-2009 海洋傾倒區(qū)選劃技術(shù)導(dǎo)則
- 企業(yè)項目計劃書和研究開發(fā)項目目立項決議文件參考格式.docx
- 真空加熱爐的結(jié)構(gòu)與原理及操作
評論
0/150
提交評論