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