單片機(jī)技術(shù)在數(shù)據(jù)采集及監(jiān)測過程中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:應(yīng)用單片機(jī)微型智能系統(tǒng)對(duì)輸出數(shù)據(jù):電壓、電流及電位的采集測量、顯示和打印。以8031單片機(jī)為核心,8031單片機(jī)有一個(gè)8位的CPU,一個(gè)128字節(jié)的RAM,21個(gè)特殊功能寄存器,4個(gè)8位并行I/O口,1個(gè)全雙工異步串行端口,2個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)具有優(yōu)先級(jí)別的中斷源。在8031外接一片程序存儲(chǔ)器就可以構(gòu)成一個(gè)有完整功能的微機(jī)應(yīng)用電路。
關(guān)鍵詞:8031單片機(jī);數(shù)據(jù)采集;A/D轉(zhuǎn)換
0 引言
軟件方面,指令周期短,同時(shí)還具有乘除法指令,多種形式的位操作類指令,邏輯運(yùn)算類指令也獨(dú)具特色。通過信號(hào)調(diào)制電路,將輸出電流、電壓及電位信號(hào)轉(zhuǎn)換成0到5V的標(biāo)準(zhǔn)信號(hào),再通過串行A/D轉(zhuǎn)換芯片ADC0834轉(zhuǎn)換成數(shù)字信號(hào)供存儲(chǔ),以顯示和打印。硬件抗干擾方面用到MAX707,對(duì)電源起到監(jiān)控作用,在上電和掉電時(shí)自動(dòng)復(fù)位。實(shí)時(shí)時(shí)鐘方面用到DS12887新型時(shí)鐘芯片,斷電情況下運(yùn)行十年以上不丟失數(shù)據(jù),計(jì)秒、分、時(shí)、天、星期、日、月、年,并有閏年補(bǔ)償功能,可以用二進(jìn)制數(shù)碼或BCD碼表示時(shí)間日歷和警報(bào)。軟件結(jié)構(gòu)設(shè)計(jì)中采用模塊化程序設(shè)計(jì),包含數(shù)字濾波,軟件看門狗等軟件抗干擾子程序,為恒電位儀增添了外圍的智能系統(tǒng),方便用戶分析、處理數(shù)據(jù),了解儀器的工作情況,從而進(jìn)行有效的處理。
主要功能介紹:
(1)信號(hào)的數(shù)據(jù)采集。輸出電壓為0~100V,電流為0~100A,電位為-2~0V,輸出(顯示、打印)保留一位小數(shù)。
(2)人機(jī)對(duì)話功能。通過鍵盤對(duì)時(shí)間進(jìn)行更正設(shè)定,選擇顯示參數(shù)及相應(yīng)的功能。
(3)打印輸出。
(4)報(bào)警功能。當(dāng)系統(tǒng)出現(xiàn)故障時(shí),如輸出開路、過流等故障,蜂鳴器輸出報(bào)警,以提醒用戶排除故障。
1 硬件設(shè)計(jì)
以8031單片機(jī)為核心,8031單片機(jī)有一個(gè)8位的CPU,一個(gè)128字節(jié)的RAM,21個(gè)特殊功能寄存器,4個(gè)8位并行I/O口,1個(gè)全雙工異步串行端口,2個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)具有優(yōu)先級(jí)別的中斷源。在8031外接一片程序存儲(chǔ)器就可以構(gòu)成一個(gè)有完整功能的微機(jī)應(yīng)用電路。
2 軟件設(shè)計(jì)
2.1 主程序
功能:進(jìn)入程序先進(jìn)行初始化,對(duì)數(shù)據(jù)地址單元進(jìn)行分配,設(shè)定鍵盤工作方式,存儲(chǔ)更新時(shí)間,接著調(diào)用數(shù)據(jù)采集模塊,再根據(jù)按下的鍵轉(zhuǎn)相應(yīng)的子程序。每秒采集一次數(shù)據(jù),每兩小時(shí)存儲(chǔ)一次數(shù)據(jù),并判斷存儲(chǔ)數(shù)據(jù)個(gè)數(shù)是否到,到后則更新存儲(chǔ)區(qū)地址,即重新從數(shù)據(jù)存儲(chǔ)區(qū)首地址開始存儲(chǔ)數(shù)據(jù),數(shù)據(jù)存儲(chǔ)容量為8k。
2.2 鍵盤功能程序
功能:通過按鍵引起8031中斷,轉(zhuǎn)相應(yīng)的功能子程序以實(shí)現(xiàn)相應(yīng)的功能。這些功能有時(shí)間設(shè)定,分別可以對(duì)年、月、日、時(shí)、分進(jìn)行設(shè)定,但不能對(duì)秒設(shè)定,電壓、電流、電位的顯示切換,即時(shí)打印、復(fù)位等。
2.3 數(shù)據(jù)采集子程序
0834的功能和特點(diǎn):8位串行逐次逼近模數(shù)轉(zhuǎn)換器,占用I/O口線少,通過信號(hào)線引入的干擾也少;易于和微處理器連接;滿比例尺工作或用5V基準(zhǔn)電壓;地址邏輯多路器選通的4輸入通道;單5V供電,輸入范圍0~5V;輸入和輸出與TTL和CMOS兼容;在Fclock=250kHZ(時(shí)鐘頻率)時(shí),轉(zhuǎn)換時(shí)間為32微秒;總非調(diào)整誤差1LSB。
工作時(shí)序及過程:
置CS(非)為低,使所有邏輯電路使能,轉(zhuǎn)換器初始化。CS(非)在整個(gè)轉(zhuǎn)換過程必須一直保持為低。接著從處理器接收一個(gè)時(shí)鐘,在每個(gè)時(shí)鐘的上跳變化時(shí),DI端的數(shù)據(jù)移入多路器地址移位寄存器。第一位為邏輯高,表示啟始位。緊接的3到4位是配置位。在連續(xù)的每個(gè)時(shí)鐘的上跳變化時(shí),啟始位和配置位移入移位寄存器。當(dāng)啟始位移入多路器寄存器的開始位置后,輸入通道選通,轉(zhuǎn)換開始。SAR狀態(tài)輸出(SARS)變?yōu)楦弑硎巨D(zhuǎn)換過程正在進(jìn)行中。DI端在轉(zhuǎn)換過程中與多路器的移位寄存器之間是關(guān)斷的。
一個(gè)時(shí)鐘的時(shí)間間隔被自動(dòng)插入,以使選定的多路通道穩(wěn)定。DO脫離高阻狀態(tài),提供一個(gè)時(shí)鐘的時(shí)間間隔的低電平,使多路器穩(wěn)定。SAR比較器把從電阻梯級(jí)網(wǎng)絡(luò)輸出的逐次信號(hào)和輸入模擬信號(hào)進(jìn)行比較。比較器的輸出指出模擬輸入大于還是小于電阻梯級(jí)網(wǎng)絡(luò)的輸出。在轉(zhuǎn)換過程中,轉(zhuǎn)換數(shù)據(jù)同時(shí)從DO端輸出,以最高位(MSB)開頭。經(jīng)8個(gè)時(shí)鐘后,轉(zhuǎn)換完成,SARS變?yōu)榈?。TLC0834在輸入以最高位(MSB)開頭的數(shù)據(jù)流后,又以最低位(LSB)開頭重輸出一遍前面的數(shù)據(jù)流,當(dāng)CS(非)變?yōu)楦?,?nèi)部所有寄存器清零。此時(shí),輸出電路變?yōu)楦咦锠顟B(tài)。如果希望開始另一輪轉(zhuǎn)換,CS(非)必須做一個(gè)從高到低的跳變,后面緊跟地址數(shù)據(jù)。此外,DI和DO可以連在一起,通過一根線連到處理器的一個(gè)雙向I/O口,因?yàn)镈I端只在多路器尋址時(shí)被檢測,而此時(shí)DO端為高阻狀態(tài)。
2.3.1 數(shù)據(jù)采集模塊
由于8031無專門的供串行A/D轉(zhuǎn)換的時(shí)序接口,故用8031的P1.0口模擬TLC0834進(jìn)行A/D轉(zhuǎn)換所需的時(shí)序。DI為數(shù)據(jù)輸入口,DO為數(shù)據(jù)輸出口,SARS為輸出口。
2.3.2 數(shù)字濾波子程序
數(shù)值濾波子程序采用“去掉一個(gè)最高分,去掉一個(gè)最低分”的方法,其具體做法為:連續(xù)采樣幾次,將其求累加和,同時(shí)找出其中的最大值和最小值,再從累加和里減去最大值和最小值,求剩下數(shù)據(jù)的平均值,即得有效采樣值。該程序?yàn)槊總€(gè)數(shù)據(jù)連續(xù)采集6次,最終結(jié)果送A,這樣就可以消除干擾的影響,提高所采集數(shù)據(jù)的真實(shí)性,防止干擾所引起的偶然性誤差。
2.3.3 數(shù)據(jù)轉(zhuǎn)換子程序
功能:由于所采集的信號(hào)都是轉(zhuǎn)換成0~5V的標(biāo)準(zhǔn)信號(hào),以滿足A/D轉(zhuǎn)換要求,所以在顯示和打印時(shí),應(yīng)經(jīng)過乘以相應(yīng)的系數(shù)轉(zhuǎn)換成實(shí)際值。同時(shí)由于計(jì)算機(jī)所用的碼制大多為二進(jìn)制或十六進(jìn)制也應(yīng)將之轉(zhuǎn)換成符合人們習(xí)慣的十進(jìn)制數(shù)供顯示和打印。
入口:被轉(zhuǎn)換數(shù)據(jù)放在A中,出口:轉(zhuǎn)換結(jié)果,十位放R6中,個(gè)位放R5中,小數(shù)位放R4中。
二進(jìn)制轉(zhuǎn)換成十進(jìn)制子程序:
由于計(jì)算機(jī)的數(shù)據(jù)代碼通常為二進(jìn)制或十六進(jìn)制,不符合人們的習(xí)慣,通過該子程序功能可轉(zhuǎn)換成符合人們習(xí)慣的十進(jìn)制數(shù)供顯示和打印。入口一R2R3,出口一R0R1R2R3R4R5(6位BCD碼)
2.3.4 實(shí)時(shí)時(shí)鐘芯片DS12887功能程序
帶RAM的實(shí)時(shí)時(shí)鐘DS12887是DALLAS公司最成功的產(chǎn)品,其主要特點(diǎn):斷電情況下運(yùn)行十年以上不丟失數(shù)據(jù),計(jì)秒、分、時(shí)、天、星期、日、月、年,并有閏年補(bǔ)償功能,可以用二進(jìn)制數(shù)碼或BCD碼表示時(shí)間日歷和警報(bào)。
內(nèi)部RAM及寄存器功能。DS12887內(nèi)部具有128個(gè)非易失性RAM,即當(dāng)外部電壓低于3V時(shí),外部Vcc被關(guān)閉,內(nèi)部鋰電池被接通繼續(xù)為實(shí)時(shí)時(shí)鐘供電,并保護(hù)內(nèi)部RAM存儲(chǔ)器中的數(shù)據(jù)。
2.3.5 8279顯示功能子程序
8279是一種通用的可編程的鍵盤/顯示器接口器件,可對(duì)64個(gè)開關(guān)矩陣組成的鍵盤進(jìn)行自動(dòng)掃描,接收鍵盤的輸入信息,并在有鍵輸入時(shí)向單片機(jī)請(qǐng)求中斷。能夠?qū)?位或16位LED自動(dòng)掃描,使顯示器緩沖區(qū)的內(nèi)容在LED上顯示出來。
8279通過對(duì)鍵盤進(jìn)行直接管理,簡化單片機(jī)系統(tǒng)的軟件設(shè)計(jì),提高單片機(jī)的工作效率和可靠性。
3 打印程序
通過鍵設(shè)定可進(jìn)行按月或即時(shí)打印,方便用戶詳細(xì)分析數(shù)據(jù),了解工作情況及數(shù)據(jù)狀況。
4 結(jié)論
單片機(jī)具有功能齊全、種類多、便于選擇使用的特點(diǎn)。通過對(duì)放大電路、8031單片機(jī)、數(shù)據(jù)采集、串行A/D轉(zhuǎn)換、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器的擴(kuò)展、外圍芯片DS12887、可編程鍵盤8279的詳細(xì)研究與實(shí)踐,開發(fā)者可根據(jù)不同的用途和要求,設(shè)計(jì)出性價(jià)比較高的單片機(jī)控制裝置??蓮V泛應(yīng)用于低成本的自動(dòng)控制采集系統(tǒng)的開發(fā)及應(yīng)用。