基于STC12C5408AD的記憶示波器
1 引言
示波器是電子測量的基本儀器。由于其具有圖形顯示實(shí)時(shí)、直觀和形象等特性,在一般的物理實(shí)驗(yàn)室中它也是常用儀器之一。眾所周知,示波器是依據(jù)輸入電壓調(diào)制的電子束掃描、熒屏余輝以及人眼的暫留效應(yīng)等原理制成的;它要求輸入周期信號(hào);對(duì)于非周期性的信號(hào),普通示波器是無能為力的,必須使用具有記憶功能的專用示波器,但這種示波器價(jià)格高昂,一般的物理實(shí)驗(yàn)室無法大量配置。
信息時(shí)代,個(gè)人計(jì)算機(jī)大量普及。普通物理實(shí)驗(yàn)室以及一般的中學(xué)都已配備了大量的計(jì)算機(jī)(以下稱PC)。但這些PC大都用于文字信息處理和計(jì)算工作,其內(nèi)在的功能還遠(yuǎn)遠(yuǎn)沒有發(fā)揮,實(shí)際上造成了巨大的浪費(fèi)。
我們知道,PC具有很強(qiáng)的圖像顯示功能。如果能夠開發(fā)、利用這一功能,配上外部接口電路,將一些物理過程,如溫度、濕度、壓力等等,經(jīng)過相應(yīng)的傳感器,將非電量轉(zhuǎn)換成電壓量,再經(jīng)調(diào)理電路處理后送入STC單片機(jī)進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字量后再由串口發(fā)送到PC機(jī),由PC機(jī)進(jìn)行存儲(chǔ)和圖形顯示,從而構(gòu)成了記憶示波器。
2 STC12C5408AD簡介
STC12C5408AD是新一代增強(qiáng)型8051單片機(jī),速度快,集成度高,電壓范圍寬(3.8 V~5.5 V),指令系統(tǒng)和MCS-51系列完全兼容。其內(nèi)部還有8 KBFlash程序存儲(chǔ)器,512字節(jié)RAM、2 KB EEPROM、8通道10位ADC、4路PWM以及硬件看門狗(WDT)等寶貴資源,性價(jià)比極高。它的23個(gè)I/O口、內(nèi)部電源供電系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及看門狗電路都經(jīng)過特殊處理,具有超強(qiáng)的抗干擾能力。STC12C5408AD具有ISP功能,用戶在自己的目標(biāo)系統(tǒng)上,經(jīng)串口和PC連接,就可直接由PC對(duì)其進(jìn)行ISP下載編程,時(shí)間僅幾秒鐘,使用非常方便。又由于編程方便和快捷,因而可在用戶程序的任意位置插入“SJMP$”死循環(huán)指令作“斷點(diǎn)”(測試后刪除),重新匯編、下載和運(yùn)行;程序運(yùn)行到此便停住,用戶可方便地檢查當(dāng)前的硬件真實(shí)狀態(tài);如需檢測某些寄存器的狀態(tài)??稍凇皵帱c(diǎn)”指令前插入讀寄存器并串發(fā)到PC的指令段,便可在PC上顯示當(dāng)前的寄存器狀態(tài)供檢測,可節(jié)省專用編程器和仿真機(jī)的昂貴開支。
3 A/D轉(zhuǎn)換
本系統(tǒng)中主要應(yīng)用了該單片機(jī)的10位A/D功能。STC12C5408AD的8路10位A/D轉(zhuǎn)換口位于P1.0~P1.7,速度可達(dá)100 kHz,其A/D功能由有關(guān)寄存器來設(shè)置。
上電復(fù)位后,P1口為弱上拉型I/O狀態(tài)。選用P1.3腳作A/D通道,必須先將其設(shè)置為開漏(或高阻輸入)狀態(tài)。P13KL子程序就是完成這個(gè)設(shè)置。
3.1 轉(zhuǎn)換控制寄存器
轉(zhuǎn)換控制寄存器ADC_CONTR(地址0C5H)格式如圖1所示,各位的具體含義如下:
(1) A/D電源控制位D7
D7=1時(shí),打開A/D電源;初次打開時(shí),延時(shí)1ms,待A/D電路供電穩(wěn)定后,再啟動(dòng)A/D,以保證A/D精度。ADC_ON子程序如下:
(2) 轉(zhuǎn)換速度控制位D6D5
D6D5=00時(shí),轉(zhuǎn)換速度最慢(840個(gè)時(shí)鐘)
D6D5=11時(shí),轉(zhuǎn)換速度最快(210個(gè)時(shí)鐘),本例用11。
(3) 模擬輸入通道選擇位D2D1D0
其位值為i(i=0,1,2,…,7)時(shí),選中P1.i為A/D輸入通道;本例選P1.3,i=3。
(4) 轉(zhuǎn)換啟動(dòng)位D3
D3=1,啟動(dòng)A/D轉(zhuǎn)換;啟動(dòng)后硬件自動(dòng)清零。
(5) 轉(zhuǎn)換結(jié)束標(biāo)志位D4
A/D轉(zhuǎn)換完畢,D4=1;必須由軟件清0。
3.2 轉(zhuǎn)換結(jié)果寄存器
A/D結(jié)果高8位寄存器ADC_DATA,地址OC6H(D7~D0);
A/D結(jié)果低2位寄存器ADC_LW02,地址OBEH(D1D0);
3.3 A/D轉(zhuǎn)換子程序RDAD
本例由于用PC機(jī)屏幕顯示A/D波形,PC機(jī)Y軸方向只能由8位數(shù)據(jù)控制,故只用高8位。每次讀畢再發(fā)給PC機(jī)處理。
3.4 基本程序清單
4 PC軟件設(shè)計(jì)
PC軟件由串行通訊和圖形顯示兩部分組成。為提高運(yùn)行速度,用PC匯編語言進(jìn)行程序設(shè)計(jì)。
串行通訊主要是通訊協(xié)議和對(duì)異步串行通訊接口的有關(guān)寄存器如通訊線控制寄存器3FBH、通訊狀態(tài)寄存器3FDH、數(shù)據(jù)發(fā)送保持/數(shù)據(jù)接收緩沖寄存器3F8H等進(jìn)行相應(yīng)的設(shè)置和處理。
圖形顯示部分主要有640×350彩色圖形顯示方式的設(shè)置,X、Y坐標(biāo)軸的描繪及圖像點(diǎn)的繪制和清除。鑒于PC匯編語言較繁雜,在此不具體介紹。
5 效果實(shí)例
圖2、圖3分別是RC充放電A/D電路和RC微分A/D電路,圖4、5、6分別為電容充電(按下按鈕1)、放電(按下按鈕2)、微分(按下按鈕3)過程的波形圖;每調(diào)整一下電位器,曲線就相應(yīng)變化;圖形清晰、翔實(shí)、實(shí)時(shí)性好,真實(shí)、生動(dòng)地描繪了上述過程電容電壓的實(shí)際變化情況,使用非常方便。
在PC已經(jīng)非常普及的情況下,花幾百元配置這樣一個(gè)系統(tǒng),是非常值得的。如果再加上傳感器和調(diào)理電路,其用途將會(huì)非常廣泛。
評(píng)論