基于51單片機(jī)的多通道數(shù)據(jù)采集范圍控制系統(tǒng)
1 引 言
在實際應(yīng)用中,對被控對象的物理參數(shù)(溫度、濕度、位移、電流、電壓等)在一定的范圍內(nèi)進(jìn)行控制,是單片機(jī)的典型應(yīng)用之一。很多宏觀要求精確控制的場合,其微觀控制過程,仍可歸結(jié)為是對某些參數(shù)變化范圍的控制。如,傳統(tǒng)的三相異步電機(jī)從啟動到正常運(yùn)行,其電流、電壓和溫度的變化;抽水塔水位的變化;機(jī)床刀具的行程變化及數(shù)字電表的自動量程變換等。這些控制過程最顯著的特點是:被控物理量都是一個變化范圍,而非某一個精確的“點”。有效控制物理量變化范圍的方法很多,本文重點介紹利用C8051F000單片機(jī)片內(nèi)8路高性能的12位ADC數(shù)據(jù)采集系統(tǒng)和可編程窗口檢測器,實現(xiàn)對多路參數(shù)變化范圍控制的硬件組成和軟件設(shè)計方法。
2 C8051Fxxx系列單片機(jī)介紹
美國Cygnal公司是專業(yè)從事混合信號片上系統(tǒng)單片機(jī)設(shè)計與制造的一家新興半導(dǎo)體公司。C8051Fxxx系列是該公司以擁有自主產(chǎn)權(quán)并與MCS-51內(nèi)核及指令集完全兼容的CIP-51為內(nèi)核而集成的混合信號片上系統(tǒng)(System on Chip)。片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件,并能方便地通過數(shù)字交叉開關(guān)將內(nèi)部數(shù)字系統(tǒng)資源定向到外部I/O口上。它的特點是:高達(dá)25 MIPS的執(zhí)行速度,強(qiáng)大的模擬信號處理和資源控制功能;8路高性能的12位ADC(最大轉(zhuǎn)換速率為100 kSPS)數(shù)據(jù)采集系統(tǒng),兩路12位精度DAC,兩路模擬比較器和ADC可編程窗口檢測器;8K~128K字節(jié)閃速/電可擦除程序存儲器、256~8 448 bit的RAM;覆蓋了典型的串行通信接口,22個中斷源,7個復(fù)位源;先進(jìn)的JTAG非侵入式在線調(diào)試和看門狗、電源監(jiān)視等可靠的安全機(jī)制。該產(chǎn)品匯集了單片機(jī)領(lǐng)域許多先進(jìn)技術(shù),成為目前功能最強(qiáng)大的8位單片機(jī)之一。
3 硬件電路組成及原理
電路硬件組成如圖1所示,分成數(shù)據(jù)采集、按鍵控制和顯示輸出三大部分。C8051Fxxx系列的8路模擬量采集通道,通過選擇不同功能的傳感器或電量轉(zhuǎn)換裝置(如電流、電壓互感器、集成溫度傳感器等),就能完成對被測目標(biāo)系統(tǒng)多路參數(shù)的數(shù)據(jù)采集。工作時,系統(tǒng)不斷將各通道采集來的數(shù)據(jù)與用戶事先設(shè)定的上下限極值進(jìn)行比較,系統(tǒng)執(zhí)行機(jī)構(gòu)根據(jù)比較結(jié)果,確定是否越限而作出相應(yīng)的操作。系統(tǒng)為5位LED顯示,低4位用來顯示用戶所選定通道的模擬信號大小或上下限極值設(shè)置數(shù)據(jù),最高位LED4為通道數(shù)字(0~7)顯示位。P0.0~P0.7為各通道越限處理輸出,分別控制相應(yīng)的執(zhí)行機(jī)構(gòu)。
3.1 按鍵控制功能
這是整個系統(tǒng)最復(fù)雜、但也最能體現(xiàn)設(shè)計思想的一部分。為了方便地選擇通道及顯示設(shè)置數(shù)據(jù),以盡量少的按鍵完成盡可能多的功能,實現(xiàn)較好的人機(jī)界面和軟、硬件資源的有機(jī)結(jié)合,在此設(shè)置了選擇通道的“切換”鍵S1、進(jìn)行ADC窗口檢測器上下限極值設(shè)定的“設(shè)置”鍵S5、改變LED顯示數(shù)據(jù)的“+”、“-”鍵S3、S4,并要求它每按一次使顯示值加(減)1,如果連續(xù)按鍵超過一定時間(如2s),則顯示值將很快地遞增或遞減。用戶設(shè)置完畢,按下“存儲”鍵S2,可將所設(shè)數(shù)據(jù)保存在非易失性數(shù)據(jù)存儲器FLASH中,避免由于斷電而需重新設(shè)置數(shù)據(jù)。通過軟件設(shè)計完成數(shù)據(jù)的自我備份與保護(hù),不需要另置備用電池,簡化了硬件結(jié)構(gòu)。
3.2 ADC的工作方式及窗口檢測器
C8051F000片內(nèi)ADC子系統(tǒng)內(nèi)除集成了1個多通道模擬輸入選擇器(AMUX)、可編程增益放大器(PGA)和1個100 kSPS、12位分辨率的逐次逼近型ADC外,還集成了跟蹤保持電路和可編程窗口檢測器,它們完全由CIP-51通過特殊功能寄存器控制。
ADC0CN寄存器:控制轉(zhuǎn)換啟動方式和結(jié)果數(shù)據(jù)存放方式,設(shè)置ADC轉(zhuǎn)換結(jié)束和窗口檢測器中斷標(biāo)志等。A/D轉(zhuǎn)換允許用軟件事件、硬件信號觸發(fā)轉(zhuǎn)換或進(jìn)行連續(xù)轉(zhuǎn)換,每次轉(zhuǎn)換完成后產(chǎn)生一個中斷,或者用軟件查詢來判斷轉(zhuǎn)換是否結(jié)束,完成后數(shù)據(jù)字被鎖存在指定的寄存器中。
AMXOSL、AMXOCF寄存器:ADC通道選擇。當(dāng)AMXOCF=00H時,AMXOSL從00H~07H分別表示選擇AIN0~AIN7八個模擬輸入通道。
ADC0GTH、ADC0GTL寄存器:這兩個存貯單元是ADC可編程窗口檢測器供用戶設(shè)定的上限12位數(shù)據(jù)寄存器。ADC0GTH是高4位,ADC0GTL為低8位。
ADC0LTH、ADC0LTL寄存器:ADC可編程窗口檢測器供用戶設(shè)定的下限12位數(shù)據(jù)寄存器。
4 軟件設(shè)計
為便于以后的升級和維護(hù),軟件設(shè)計采用積木式模塊化處理,各功能模塊既相互聯(lián)系,又能自成一體。其基本設(shè)計思想是:利用定時/計數(shù)器T3的溢出,定時地啟動ADC轉(zhuǎn)換和窗口比較器中斷。通過中斷處理,將相應(yīng)通道的12位轉(zhuǎn)換數(shù)據(jù)與由用戶設(shè)定的上下限極值作為越限條件進(jìn)行比較,產(chǎn)生新的中斷輸出,驅(qū)使系統(tǒng)執(zhí)行機(jī)構(gòu)進(jìn)行相應(yīng)的調(diào)整,從而達(dá)到把數(shù)據(jù)控制在某一范圍內(nèi)的目的。
主程序由初始化、顯示、定時比較、按鍵處理等軟件功能模塊組成。圖2為主程序流程框圖。圖3為中斷處理子程序。這里只給出主程序清單,所有被調(diào)用的子程序略。
LOOP0:ACALLWORK0;調(diào)通道“切換”鍵處理子程序。供用戶選擇通道,并顯示其上下限極值
ACALL WORK1;調(diào)“存儲”鍵處理子程序,將用戶的設(shè)置值保
存在8000H以后單元的FLASH中
ACALL WORK2;調(diào)“+”鍵處理子程序,實現(xiàn)顯示數(shù)據(jù)遞增,有連加功能,方便快速調(diào)節(jié)
ACALL WORK3;調(diào)“-”鍵處理子程序,用于遞減地調(diào)節(jié)顯示數(shù)據(jù),有連減功能,方便快速調(diào)節(jié)
ACALLWORK4;調(diào)“設(shè)置”鍵處理子程序。用戶進(jìn)入極值設(shè)定狀態(tài),實現(xiàn)上下限極值顯示的轉(zhuǎn)換ACALLDISP;調(diào)顯示子程序SJMPLOOP0
5 結(jié)束語
C8051Fxxx系列單片機(jī)自2000年推出以來,其強(qiáng)大的內(nèi)部功能和豐富的片內(nèi)資源,使之能用最簡單的硬件結(jié)構(gòu)實現(xiàn)多通道數(shù)據(jù)范圍的檢測。本文設(shè)計的控制系統(tǒng)只要配置合適的電量傳感器,就可方便地用于各類電力變電系統(tǒng)對三相電流、電壓等進(jìn)行范圍控制,以確保電網(wǎng)的安全運(yùn)行,具有良好的推廣應(yīng)用價值。
1 李 剛,林 凌.與8051兼容的高性能、高速單片機(jī)——C8051Fxxx.北京:北京航空航天大學(xué)出版社,20022 肖定柏.LHB型交流互感器在家電中的應(yīng)用.電子技術(shù),1996(12):42
3 龔成龍.智能異步電動機(jī)綜合保護(hù)器設(shè)計.單片機(jī)與嵌入系統(tǒng)應(yīng)用,2002(2):63~65
4 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京:北京航空航天大學(xué)出版社,1997
5 潘琢金,施國君.C8051Fxxx高速SOC單片機(jī)原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,2002
6 李 華,等.MCS-51系列單片機(jī)實用接口技術(shù).北京:北京航空航天大學(xué)出版社,2002
評論