點陣液晶顯示器在便攜式頻率特性測試儀中的應(yīng)用
引言
頻率特性測試儀又稱為掃頻儀,或頻率響應(yīng)分析儀,它利用矩形具有內(nèi)刻度的示波管作為顯示器,來直接顯示被測電路的幅頻特性曲線。但由于示波管的使用,使得整個儀器在外形上顯得龐大,笨重,如BT-3GII型的掃頻儀重量達(dá)到10kg,不方便移動式測量。為此,本設(shè)計針對其顯示部分,將示波管用LCD代替。適用于便攜式儀器儀表中。
硬件設(shè)計
本設(shè)計所選的液晶顯示器是深圳天馬微電子公司的TM320240 EFG,它是一款內(nèi)藏SED1335控制器的點陣式圖形液晶顯示模塊。LCD控制器選用的是EPSON公司的SED1335,內(nèi)部擁有一個160種5×7 點陣字符的字符發(fā)生器,能分區(qū)管理64K的顯示存儲器,并同時能管理自定義字符發(fā)生器。模塊TM320240EFG的對外接口實質(zhì)上就是控制器 SED1335與MCU的接口。在單片機(jī)的選型上,考慮到系統(tǒng)功能與電路的簡潔,采用Atmel 公司推出的AVR單片機(jī)AT90S8535,內(nèi)嵌8路10位ADC,可直接輸入模擬電壓信號。
AT90S8535與TM320240EFG接口采用間接訪問方式進(jìn)行連接。單片機(jī)通過控制SED1335完成對圖形液晶模塊的控制。所謂間接訪問方式,就是把TM320240EFG作為終端接在AT90S8535的某個并行I/O接口上,AT90S8535通過對該I/O接口的操作,間接地實現(xiàn)對 TM320240EFG的控制。間接訪問方式的接口電路與時序無關(guān)。
在電路中,AT90S8535使用8位并行PC口作為數(shù)據(jù)線與模塊的數(shù)據(jù)線DB0~DB7連接,另外還需要一個3位并行接口作為時序控制信號線/RD, /WR和A0。把PB口中的PB0作為寫信號接至TM320240 EFG的寫控制信號/WR上;PD口中的PD3作為讀信號接至TM320240EFG的讀控制信號/RD上;PD4作為數(shù)據(jù)類型選擇信號與模塊的A0連接。由于這些并行接口在MCU系統(tǒng)中有自己的專用地址,所以TM320240EFG的片選信號 /CS可以不使用,直接接地選通。液晶驅(qū)動電源VEE取值為-20V,利用單片DC-DC轉(zhuǎn)換器MC34063從邏輯電源轉(zhuǎn)換生成負(fù)電源。電路中LCD電源控制端V0用來調(diào)節(jié)顯示屏灰度,電位器R3作為調(diào)節(jié)液晶顯示對比度使用。[!--empirenews.page--]
ADC的0通道輸入經(jīng)過檢波后的采樣信號,帶寬為10KHz ,經(jīng)RC濾波去除交流分量。5.1V穩(wěn)壓管起保護(hù)作用,高于5.1V的輸入信號被限幅在5.1V之內(nèi)。該輸入波形的X軸方向掃描頻率為50Hz,周期為 20ms,12ms工作期,8ms消隱期。外部中斷管腳INT0輸入50Hz的方波,作為同步脈沖。MCU的晶振選為6M。
屏幕規(guī)劃
該液晶屏為320×240點陣,將坐標(biāo)原點(0,0)定在整個液晶屏的左上角,向右為X坐標(biāo),向下為Y坐標(biāo)。為美觀起見,四周邊框留出空白區(qū)域,實際顯示曲線的區(qū)域為X方向從第24點到264點,共240個點距,30字節(jié);Y方向從第16點到208點,共192個點距, 24字節(jié)。為方便觀測,在顯示區(qū)內(nèi)繪制坐標(biāo)軸,用虛線等間距地將橫向分作10小格,豎向分作8小格。
在進(jìn)行圖形顯示時,起初我們采用的是單層顯示方法,但由于要求實時顯示,必須考慮屏幕的刷新問題。由于此液晶屏屬多點陣,刷新滿屏需花費(fèi)很長一段時間,刷新完后還要在屏幕上重新繪制出坐標(biāo)軸,增加了MCU的操作負(fù)擔(dān),而且頻繁的滿屏刷新還會引起屏幕的閃爍現(xiàn)象發(fā)生。因此采取的解決方法為:顯示時分作兩層顯示,第一層為文本屬性,第二層為圖形屬性。將不需刷新的坐標(biāo)軸、漢字顯示在文本層,首地址$0000。將實時動態(tài)更新的幅頻特性曲線顯示在圖形層,首地址 $1000,并通過兩層的邏輯“或”操作進(jìn)行合成顯示,以達(dá)到圖文并茂的顯示效果。這樣,在刷新時,文本層上的坐標(biāo)軸和漢字可以保持不變,所需刷新的僅為圖形層上的曲線。實際測試結(jié)果表明,分層顯示的設(shè)計思路是正確的。
軟件設(shè)計
繪制曲線在軟件設(shè)計上關(guān)鍵是畫點和消點的程序。
ADC采用單次轉(zhuǎn)換模式,總的轉(zhuǎn)換周期數(shù)為14,總的轉(zhuǎn)換時間70~280ms,預(yù)分頻器的分頻因子選為32,故ADC時鐘頻率為6M/32= 187.5KHz。所以每一次的轉(zhuǎn)換時間是14/187.5K=74.666ms,此ADC轉(zhuǎn)換時間是在6M的晶體振蕩頻率下最快的采樣時間。若選小于 32的分頻因子,則總的轉(zhuǎn)換時間太快,將小于70ms,不能實現(xiàn)??紤]到實際需要,ADC轉(zhuǎn)換時間越快越適宜,故不采用64以上分頻。
用ox來記錄X方向字節(jié)數(shù),初始值為$00,隨點的右移從1到30遞增。當(dāng)ox=30時,說明X方向已到達(dá)有效顯示區(qū)的尾部。code記錄點在字節(jié)中所處位置,畫奇數(shù)點時code從$80開始右移,畫偶數(shù)點時code從$40開始右移,每次移動2位,移完一字節(jié)后,ox加1。
ADC能轉(zhuǎn)換的最大量程電壓是電路基準(zhǔn)電壓Vre
f的值,這里調(diào)節(jié)的是4V。1V占48個點距。某一時刻,輸入信號Z V(Z≤4),則其在屏幕上Y向的位置是208-Z×48。MCU內(nèi)嵌的ADC為10位精度,采樣結(jié)果轉(zhuǎn)化成點的高度的計算表達(dá)式為:
208-(AD值)×(4/1024)×48=208-(AD值)×3/16 (1)
考慮到輸入信號的掃描時間和MCU的AD轉(zhuǎn)換時間,整個屏幕在X方向要顯示240點,只能采取隔列掃描的方法,分兩幀畫完全屏,第一幀畫奇數(shù)點,第二幀畫偶數(shù)點。先在工作期12ms內(nèi)采樣數(shù)據(jù),進(jìn)行120次AD轉(zhuǎn)換,將其轉(zhuǎn)換結(jié)果按順序存入片內(nèi)SRAM中,所以需要100ms啟動ADC一次。同時,把信號的消隱期8ms加以利用,在整個20ms周期內(nèi)畫120個奇數(shù)點,20ms/120=166.666ms,我們設(shè)定每隔161.333ms畫一個點。畫點的具體方法為:從SRAM中取出AD值,將每組的AD采樣結(jié)果用式(1)進(jìn)行計算,轉(zhuǎn)化成Y方向坐標(biāo),得到點的高度值,送入寄存器oy中。由于屏幕上一橫行是320個點,即40字節(jié),顯示區(qū)距離左邊框為3字節(jié),可計算出該點的地址,結(jié)果存于寄存器r7: r6中,表達(dá)式為:
r7: r6 = oy*40+3+$1000+ox (2)
接著再確定該點在此字節(jié)中的位數(shù),調(diào)用繪點程序即可。畫完一屏的奇數(shù)點后,等待下一個同步脈沖到來,然后,在同樣的掃描時間內(nèi),用同樣的方法繪制出120 個偶數(shù)點。這樣,全屏顯示的時間僅為40ms,人的肉眼觀測到的是一條連續(xù)的曲線,不會出現(xiàn)隔列的效果。另外,考慮到屏幕的刷新問題,每次畫點前,都要在此列先消點。消點和畫點的方法類似,程序中用ox1和code1與畫點加以區(qū)別,這里不再累述。
程序中用寄存器r25作標(biāo)志狀態(tài)寄存器,各標(biāo)志位說明如下:
r25(3):兩幀畫完全屏。 r25(3)=0,第一幀畫奇數(shù)點;r25(3)=1,第二幀畫偶數(shù)點;
r25(4) :在T/C1中斷里置位 r25(4)=1,表明顯示時間已到,可以進(jìn)行畫點顯示;
r25(5) :在ADC轉(zhuǎn)換結(jié)束中斷里置位 r25(5) =1,表明ADC轉(zhuǎn)換結(jié)束,已采樣到數(shù)據(jù)并存入SRAM中。[!--empirenews.page--]
整個程序應(yīng)用4個中斷。20ms同步脈沖上升沿觸發(fā)外部中斷EXT_INT0,在中斷服務(wù)程序中,清r25(4,5)=0,并使能兩定時器T/C0和 T/C1。采用T/C0定時中斷,每100us中斷一次,在中斷服務(wù)程序中,啟動AD轉(zhuǎn)換。同時采用T/C1輸出比較匹配A中斷,每161.333 us中斷一次,置位畫點時間到達(dá)的標(biāo)志。ADC轉(zhuǎn)換結(jié)束中斷,在中斷服務(wù)程序中讀取采樣值A(chǔ)D,置位r25(5)。 復(fù)位時間問題
在整個設(shè)計過程中,程序調(diào)試用的是AVR單片機(jī)的在線仿真器ICE 200。但將調(diào)試好的程序經(jīng)編譯后燒到片子里,液晶屏卻不能正常顯示了。查找原因,主要是單片機(jī)和液晶屏的復(fù)位時間相差太大引起的。對于 AT90S8535來說,超過50ns的低電平就會引起系統(tǒng)復(fù)位;而LCD的控制器SED1335,復(fù)位需要1ms以上的復(fù)位電平。所以需在程序的初始化部分,加一定的延時,以使LCD正常工作?;剡^頭來再思考一下在線仿真能通過的原因。仿真器上電和液晶屏上電同步,在調(diào)試環(huán)境里,下載程序所花時間較長,能夠滿足LCD的復(fù)位時間要求,故在程序運(yùn)行以后,可使LCD正常顯示。
目前,兼顧功能和價格兩方
面,大量中、高檔儀器儀表已經(jīng)廣泛使用LCD 作為其顯示輸出設(shè)備。本文將點陣式圖形液晶顯示模塊和AVR單片機(jī)AT90S8535相結(jié)合,使頻率特性測試儀的顯示輸出由原來的示波管改為液晶屏,符合現(xiàn)階段傳統(tǒng)儀器向智能儀器轉(zhuǎn)型的發(fā)展趨勢,很有市場競爭力。