基于單片機控制的DDZ型熱工儀表檢測儀的設計
數據格式
設RC7為PIC16F877的數據輸出口,RC6為數據輸入口,通過(guò)MAX232轉化模塊與PC機相連。由于PIC 單片機的RS-232的通信格式固定為1個(gè)開(kāi)始位,1個(gè)停止位,沒(méi)有奇偶校驗位,設計數據位為8位。
傳輸方式
采用中斷的方式來(lái)實(shí)現單片機與PC之間的通信,UART的傳輸與接收可以分別產(chǎn)生一個(gè)中斷源,寄存器PIE1中的位TXIE=1時(shí)產(chǎn)生傳輸中斷源;RCIE=1時(shí)產(chǎn)生接收中斷源。進(jìn)行串口通信時(shí)PC機發(fā)一個(gè)請求發(fā)送信號”Requst”給單片機,單片機接收到此信號后查詢(xún)PIR1寄存器中的位TXIF是否為1,若為1表示傳送數據寄存器TXREG為空,將待傳送的數據寫(xiě)入TXREG寄存器,即刻開(kāi)始執行UART的傳送工作,按照單片機和PC機共同定義的通信協(xié)議將數據發(fā)送完畢。
鍵盤(pán)設置
儀表的表面板上有4個(gè)開(kāi)關(guān)鍵(“Reset”鍵和控制3路模擬量輸入的3個(gè)開(kāi)關(guān)鍵K1,K2,K3),和一個(gè)鍵盤(pán)(10個(gè)數字鍵,6個(gè)功能鍵)。 鍵盤(pán)設置用來(lái)控制儀表執行何種功能:是測量信號還是產(chǎn)生信號,測量和產(chǎn)生的分別是那一種信號都可以通過(guò)按鍵來(lái)完成,通過(guò)對鍵盤(pán)接口的編程把各模塊聯(lián)系起來(lái)統一的工作。
軟件設計
由于本儀表的功能較多,因此不但硬件電路復雜,同時(shí)也需很強的軟件系統支持。本儀表的軟件系統由一個(gè)主程序和多個(gè)子程序組成。
儀表的主程序
儀表的軟件系統總的來(lái)說(shuō)有三大部分組成:
(1) 系統的初始化。它包括PIC16F877芯片本身的初始化,串口、鍵盤(pán)接口、數碼顯示模塊的初始化等。
(2) 響應外部中斷由鍵盤(pán)中斷程序來(lái)完成儀表具體執行那項任務(wù):測量或輸出模擬信號,并動(dòng)態(tài)顯示信號大小。
(3) 數據的采集、計算、顯示部分。在這個(gè)循環(huán)中,程序根據不同的輸入信號每10ms采集、刷新顯示一次。
儀表的軟件系統主程序流程圖如圖3所示。
儀表的子程序及功能
軟件系統由多個(gè)子程序組成,現就主程序中的A/D轉換來(lái)介紹一下其程序原理和流程圖。
A/D轉換的程序原理與流程圖
以循環(huán)掃描方式利用PIC16F877的A/D轉換讀取RA0管腳上輸入的模擬電壓,并將其數值大小在數碼管上顯示出來(lái)。設計主程序的掃描時(shí)間為10ms,經(jīng)過(guò)運算處理輸出模擬量對應的BCD碼至C口并重復循環(huán)。使用PIC16F877單片機的Timer1產(chǎn)生2ms的定時(shí)中斷作為程序的基本時(shí)序,其主程序和中斷服務(wù)程序的流程圖如圖4所示。
PIC16F877芯片使用外部4MHz的石英振蕩器,其指令周期為1?s,Timer1子程序中預先定義的寄存器Scaler的值為5,在每一次中斷過(guò)程中都使其值減1,主程序中檢測Scaler寄存器中的值是否等于0,不等于0則主程序處于等待狀態(tài),當等于0時(shí)則使用命令:movlw 5 ;addwf Scaler,f 使寄存器Scaler始終為5,并返回到A/D轉換子程序,這樣使主程序的循環(huán)時(shí)間為10ms。
A/D轉換中的編碼運算
A/D轉換的位數是10位,根據每次A/D轉換后A/DRESH和A/DRESL中的值由公式:
A=(5/1023)*D可以計算出轉換前模擬量的值。在進(jìn)行動(dòng)態(tài)顯示時(shí),采用4位數碼管顯示2位整數、2位小數,從高位到低位依次設為S3 S2 S1 S0,單片機依次送出S0 S1 S2 S3對應的BCD碼到顯示模塊,并通過(guò)對數碼管位選端的控制來(lái)實(shí)現動(dòng)態(tài)顯示的功能。
結語(yǔ)
隨著(zhù)儀器、儀表在日常生產(chǎn)、生活頻繁的使用,其維修也越來(lái)越頻繁。熱工儀表檢測儀作為提供維修信號源的標準儀表發(fā)揮著(zhù)十分重要的作用。該設備采用集成的原理做成了一個(gè)便攜式的裝置,經(jīng)過(guò)實(shí)際反復測試,性能良好,有著(zhù)廣泛的市場(chǎng)應用前景。
參考文獻:
[1]. PIC16F877 datasheet http://www.dzsc.com/datasheet/PIC16F877_318821.html.
[2]. RS-232 datasheet http://www.dzsc.com/datasheet/RS-232_584855.html.
[3]. OP07 datasheet http://www.dzsc.com/datasheet/OP07_950754.html.
[4]. BCD datasheet http://www.dzsc.com/datasheet/BCD_1225719.html.
[5]. MAX232 datasheet http://www.dzsc.com/datasheet/MAX232_1074207.html.
評論