基于單片機(jī)的寬范圍高精度光纖傳感測(cè)溫儀的研制
2.3 鍵盤和顯示單元
本系統(tǒng)采用8255A的A口和C口擴(kuò)展出一個(gè)4×4的鍵盤,包括10個(gè)數(shù)字鍵和6個(gè)功能鍵。在本系統(tǒng)中采用程序掃描法來識(shí)別按鍵。單片機(jī)先使8255A的 PC口均為低電平,再讀A口。如果A口不全為高電平,則延時(shí)10ms去抖動(dòng);然后再讀A口,此時(shí)A口仍不全為高電平,說明確有鍵按下。進(jìn)一步確定按下鍵的位置,先置PC0=0,PC1=PC2=PC3=1,讀A口,由A口低電平的位便可確定按下鍵的位置。依次類推,如果檢查完所有的鍵均無按下,說明是干擾或誤操作;掃描結(jié)束時(shí),按下鍵的位置信息存在于某個(gè)存儲(chǔ)單元中。
顯示采用以內(nèi)藏HD61830控制器的液晶模塊8032B點(diǎn)陣型LCD。HD61830是點(diǎn)陣式液晶圖像顯示控制器,可與MPU直接接口,具有專用指令集,可完成文本顯示或圖形顯示的功能設(shè)置,以及畫面卷動(dòng)光標(biāo)、閃爍、位操作等功能。
2.4 8051單片機(jī)單元
由于整個(gè)系統(tǒng)的程序較大,所以需要一個(gè)外部程序存儲(chǔ)器,在系統(tǒng)中選用了32KB的EEPROM。在系統(tǒng)中實(shí)現(xiàn)多點(diǎn)溫度補(bǔ)償要存儲(chǔ)一些溫度點(diǎn)的修正值以提高系統(tǒng)的測(cè)量精度,所以將EEPROM既作程序存儲(chǔ)器又作數(shù)據(jù)存儲(chǔ)器。整個(gè)系統(tǒng)的地址分配為:0000~7FFF為存儲(chǔ)器地址,D000~D003和 E000~E003分別為兩個(gè)8255A的四個(gè)端口地址,BEFC~BFFF為A/D轉(zhuǎn)換器的地址,F(xiàn)FF4~FFF5為D/A轉(zhuǎn)換器的地址。在地址譯碼中沒有采用GAL而是通過分離元件實(shí)現(xiàn)。地址譯碼通過兩片74LS138、一片74LS04、一片74LS08來實(shí)現(xiàn)。
2.5 RS-232通訊單元
為了方便數(shù)據(jù)的處理,將測(cè)量所得的數(shù)據(jù)送入計(jì)算機(jī),本系統(tǒng)采用RS-232通訊方式,通訊速率為 9600波特率。接口用芯片為MAX232,接收端采用VC ++編制的接收程序,顯示并存儲(chǔ)接收到的數(shù)據(jù)。進(jìn)而分析、處理得到擬和曲線。在單片機(jī)中將利用此擬和曲線實(shí)時(shí)計(jì)算機(jī)當(dāng)前被測(cè)物的溫度值。
2.6 數(shù)模轉(zhuǎn)換單元
系統(tǒng)中預(yù)留一路模擬信號(hào)輸出,在測(cè)量、顯示的同時(shí)可將當(dāng)前的溫度值通過D/A轉(zhuǎn)換輸出進(jìn)而實(shí)現(xiàn)閉環(huán)控制。系統(tǒng)采用的D/A轉(zhuǎn)換器為MAX508,它是一種完備的12位、片內(nèi)參考電壓、電壓輸出型的D/A轉(zhuǎn)換器,輸出電壓和參考電壓同極性,允許單電源工作,雙緩沖邏輯輸入接口使之與微處理器連接非常容易。
3 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)軟件的設(shè)計(jì)安全按照結(jié)構(gòu)化的程序設(shè)計(jì)方法來完成,將整個(gè)程序細(xì)分為若干個(gè)子程序(模塊),方便調(diào)試與檢查。開發(fā)系統(tǒng)采用Franklin C51編譯器和偉福仿真器,利用C51語言使用整個(gè)軟件開發(fā)變得簡單、快速、易于調(diào)試。整個(gè)軟件流程見圖3。下面就幾個(gè)主要的子程序作一簡單的介紹。
3.1 初始化子程序
在初始化程序中,主要對(duì)8051的系統(tǒng)資源,包括定時(shí)器、中斷、串行通訊、LCD顯示、8255等進(jìn)行初始化工作。
3.2 LCD顯示子程序和鍵盤輸入子程序
在顯示程序中,完成顯示功能菜單的任務(wù)。菜單顯示的字符利用LCD顯示控制器HD61830的字符集中的資源,菜單為滾動(dòng)式,通過功能鍵可使光標(biāo)從往下移動(dòng),當(dāng)移至最下一行時(shí),屏幕開始滾動(dòng)顯示。利用軟件程序掃描8255A的PA和PC口得到按鍵的鍵值,函數(shù)返回鍵碼。
3.3 A/D轉(zhuǎn)換子程序和D/A轉(zhuǎn)換子程序
A/D 轉(zhuǎn)換結(jié)果的讀入采用查詢方式。通過查詢MAX191的BUSY端的信號(hào)來判斷轉(zhuǎn)換是否結(jié)束;12位的轉(zhuǎn)換結(jié)果需要兩次讀取,然后拼接成12位結(jié)果。如果為了使外部干擾的影響減小可采用軟件濾波。對(duì)于溫度信號(hào)一般來說是緩變的,可采用一階滯后濾波或中值平均濾等。D/A轉(zhuǎn)換是直接將12位的數(shù)據(jù)送放 MAX508的緩沖器即可實(shí)現(xiàn)數(shù)摸的轉(zhuǎn)換。
3.4 RS-232通訊子程序
通訊中將12位的數(shù)據(jù)分兩次傳送,在計(jì)算機(jī)中采用VC++6.0中的一個(gè)通訊控件MS Communications Control6.0來實(shí)現(xiàn)串口的通訊程序。在接收到測(cè)量數(shù)據(jù)后,可進(jìn)行一系列的數(shù)據(jù)處理與分析得到光纖傳感測(cè)溫儀的特性曲線,將此曲線生成電壓-溫度表存入單片機(jī)程序中計(jì)算機(jī)出溫度。
光纖傳感器相關(guān)文章:光纖傳感器原理
評(píng)論