新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)控制的DDZ型熱工儀表檢測儀的設(shè)計(jì)

基于單片機(jī)控制的DDZ型熱工儀表檢測儀的設(shè)計(jì)

作者: 時(shí)間:2013-11-07 來源:網(wǎng)絡(luò) 收藏

數(shù)據(jù)格式
設(shè)RC7為PIC16F877的數(shù)據(jù)輸出口,RC6為數(shù)據(jù)輸入口,通過MAX232轉(zhuǎn)化模塊與PC機(jī)相連。由于PIC 單片機(jī)的RS-232的通信格式固定為1個(gè)開始位,1個(gè)停止位,沒有奇偶校驗(yàn)位,設(shè)計(jì)數(shù)據(jù)位為8位。
傳輸方式
采用中斷的方式來實(shí)現(xiàn)單片機(jī)與PC之間的通信,UART的傳輸與接收可以分別產(chǎn)生一個(gè)中斷源,寄存器PIE1中的位TXIE=1時(shí)產(chǎn)生傳輸中斷源;RCIE=1時(shí)產(chǎn)生接收中斷源。進(jìn)行串口通信時(shí)PC機(jī)發(fā)一個(gè)請求發(fā)送信號”Requst”給單片機(jī),單片機(jī)接收到此信號后查詢PIR1寄存器中的位TXIF是否為1,若為1表示傳送數(shù)據(jù)寄存器TXREG為空,將待傳送的數(shù)據(jù)寫入TXREG寄存器,即刻開始執(zhí)行UART的傳送工作,按照單片機(jī)和PC機(jī)共同定義的通信協(xié)議將數(shù)據(jù)發(fā)送完畢。
鍵盤設(shè)置
儀表的表面板上有4個(gè)開關(guān)鍵(“Reset”鍵和控制3路模擬量輸入的3個(gè)開關(guān)鍵K1,K2,K3),和一個(gè)鍵盤(10個(gè)數(shù)字鍵,6個(gè)功能鍵)。 鍵盤設(shè)置用來控制儀表執(zhí)行何種功能:是測量信號還是產(chǎn)生信號,測量和產(chǎn)生的分別是那一種信號都可以通過按鍵來完成,通過對鍵盤接口的編程把各模塊聯(lián)系起來統(tǒng)一的工作。

軟件設(shè)計(jì)
由于本儀表的功能較多,因此不但硬件電路復(fù)雜,同時(shí)也需很強(qiáng)的軟件系統(tǒng)支持。本儀表的軟件系統(tǒng)由一個(gè)主程序和多個(gè)子程序組成。
儀表的主程序
儀表的軟件系統(tǒng)總的來說有三大部分組成:
(1) 系統(tǒng)的初始化。它包括PIC16F877芯片本身的初始化,串口、鍵盤接口、數(shù)碼顯示模塊的初始化等。
(2) 響應(yīng)外部中斷由鍵盤中斷程序來完成儀表具體執(zhí)行那項(xiàng)任務(wù):測量或輸出模擬信號,并動(dòng)態(tài)顯示信號大小。
(3) 數(shù)據(jù)的采集、計(jì)算、顯示部分。在這個(gè)循環(huán)中,程序根據(jù)不同的輸入信號每10ms采集、刷新顯示一次。
儀表的軟件系統(tǒng)主程序流程圖如圖3所示。
儀表的子程序及功能
軟件系統(tǒng)由多個(gè)子程序組成,現(xiàn)就主程序中的A/D轉(zhuǎn)換來介紹一下其程序原理和流程圖。
A/D轉(zhuǎn)換的程序原理與流程圖
以循環(huán)掃描方式利用PIC16F877的A/D轉(zhuǎn)換讀取RA0管腳上輸入的模擬電壓,并將其數(shù)值大小在數(shù)碼管上顯示出來。設(shè)計(jì)主程序的掃描時(shí)間為10ms,經(jīng)過運(yùn)算處理輸出模擬量對應(yīng)的BCD碼至C口并重復(fù)循環(huán)。使用PIC16F877單片機(jī)的Timer1產(chǎn)生2ms的定時(shí)中斷作為程序的基本時(shí)序,其主程序和中斷服務(wù)程序的流程圖如圖4所示。
PIC16F877芯片使用外部4MHz的石英振蕩器,其指令周期為1?s,Timer1子程序中預(yù)先定義的寄存器Scaler的值為5,在每一次中斷過程中都使其值減1,主程序中檢測Scaler寄存器中的值是否等于0,不等于0則主程序處于等待狀態(tài),當(dāng)?shù)扔?時(shí)則使用命令:movlw 5 ;addwf Scaler,f 使寄存器Scaler始終為5,并返回到A/D轉(zhuǎn)換子程序,這樣使主程序的循環(huán)時(shí)間為10ms。
A/D轉(zhuǎn)換中的編碼運(yùn)算
A/D轉(zhuǎn)換的位數(shù)是10位,根據(jù)每次A/D轉(zhuǎn)換后A/DRESH和A/DRESL中的值由公式:
A=(5/1023)*D可以計(jì)算出轉(zhuǎn)換前模擬量的值。在進(jìn)行動(dòng)態(tài)顯示時(shí),采用4位數(shù)碼管顯示2位整數(shù)、2位小數(shù),從高位到低位依次設(shè)為S3 S2 S1 S0,單片機(jī)依次送出S0 S1 S2 S3對應(yīng)的BCD碼到顯示模塊,并通過對數(shù)碼管位選端的控制來實(shí)現(xiàn)動(dòng)態(tài)顯示的功能。

結(jié)語
隨著儀器、儀表在日常生產(chǎn)、生活頻繁的使用,其維修也越來越頻繁。作為提供維修信號源的標(biāo)準(zhǔn)儀表發(fā)揮著十分重要的作用。該設(shè)備采用集成的原理做成了一個(gè)便攜式的裝置,經(jīng)過實(shí)際反復(fù)測試,性能良好,有著廣泛的市場應(yīng)用前景。

參考文獻(xiàn):
[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.


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉