咨詢電話
ENGLISH0755-88840386發(fā)布時間:2020-09-29 09:44:53 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
人機交互面板是工業(yè)稱重儀表的一個重要部件,用戶所有的控制指令都是通過它傳到微控制器進行處理.同時工業(yè)稱重儀表在工作的過程中有許多重要的信息要通過顯示面板上的顯示器顯示出來。
儀器儀表的顯示屏以往常采用LED數(shù)碼管.LED因其元器件多,面積大,功耗高,接口電路復雜,集成度低,顯示信息簡單等缺點,逐漸被液晶顯示屏LCD和真空熒光顯示屏VFD所代替⑴.
真空熒光顯示屏(Vacuumfluorescentdisplay,VFD)是一種特殊變體的三級真空管,其電子從負極(燈絲)發(fā)射出來,通過柵網(wǎng)加速后撞擊正極表面附著的磷光體從而發(fā)光.VFD的主要性能是:自動發(fā)光、高清晰度和高亮度顯示、低壓操作、低功耗、可靠且使用壽命長、有從紅色到藍色多種色彩(使用濾色器可獲得更多色彩)、寬視角、反應速度快等⑵.
考慮到成本、顯示亮度及工業(yè)稱重儀表的工作環(huán)境等因素,最終采用7位段碼VFD和16位5*7點陣VFD作為該稱重儀表的顯示屏.其中7段碼VFD用來實時顯示稱重的數(shù)值,由一片CS16312芯片驅(qū)動;5*7點陣VFD可以顯示的信息比較豐富,用來顯示稱重儀表的系統(tǒng)設(shè)置等相關(guān)的輔助信息,由3片CS16311芯片驅(qū)動.本文以CS16312為例對人機交互系統(tǒng)的軟硬件設(shè)計及其在工業(yè)稱重儀表中的應用做詳細的論述.
1系統(tǒng)硬件設(shè)計
本電路采用微控制器AT89C52和VFD驅(qū)動電
圖1基于CS16312的人機界面硬件結(jié)構(gòu)圖
Fig.1Thehardwarearchitectureofthehuman-computerinterfacebaseonCS16312
路16312構(gòu)架.通過VFD顯示、按鍵和LED標識構(gòu)成工業(yè)儀表的人機界面.整體硬件架構(gòu)如圖1所示.
1.1電源電路
電源釆用工業(yè)市電經(jīng)變壓器降壓和整流后產(chǎn)生燈絲電壓(F1,F2)、CS16312的下拉電壓Vra(-24V)和電壓Vdd(+5V).電源電路部分如圖2所示.
為了讓陰極加熱到設(shè)定的溫度值,以獲得良好的熱電子發(fā)射,需要對燈絲通電加熱,燈絲電壓(EJ)的
圖2電源電路
Fig.2Thepowersupplycircuit
施加方法有交流驅(qū)動和直流驅(qū)動兩種工作方式.其中直流驅(qū)動由于燈絲加熱電壓在燈絲上有一個電位分布,存在左高右低的梯度.亮度也就同樣會產(chǎn)生右高左低的現(xiàn)象為了獲得均勻的亮度,必須對熒光顯示屏的柵極和燈絲間的實際距離進行設(shè)計補償.由于設(shè)計補償?shù)姆秶怯邢薜?,故直流?qū)動,一般只限于燈絲較短的熒光顯示屏.交流驅(qū)動有單側(cè)接地和中心抽頭接地兩種方法.燈絲單端接地的方式所需的截止偏壓,比燈絲變壓器中心抽頭接地方式更大.故本電路釆用帶有中心抽頭的交流驅(qū)動工作方式⑴.
在陽極、柵極上相對燈絲電位加上正電壓,筆段就會被點亮.若要完全消除顯示,必須使陽極或柵極的任何一方相對燈絲為零電位或更負的電位.消除顯示的電壓稱為截止電壓,為了完全消除漏光,必須施加截止偏壓.CS16312采用負壓輸出,陽柵腳在邏輯0時輸出負壓,在邏輯1時輸出電平為0V.為驅(qū)動VFD,須下拉燈絲繞組中心抽頭電位.穩(wěn)壓管D1的穩(wěn)壓值由VFD截止電壓決定.
燈絲電壓值的設(shè)定,對保證顯示品質(zhì)及壽命有重要的影響.如果燈絲電壓過高,電流或亮度并不隨之增加,反而因陰極溫度上升,而加速鈞絲芯線上氧化物的蒸發(fā),同時也會污染熒光粉表面,使發(fā)光效率及亮度提早下降,而縮短壽命.相反,如果燈絲電壓過低,因陰極溫度下降,便無法獲得充分而穩(wěn)定的熱電子發(fā)射,致使顯示品質(zhì)劣化或燈絲電壓變動而使亮度不穩(wěn)定.參照VFD規(guī)格說明書,通過多次的測試,設(shè)定F1和F2兩端的燈絲電壓值為3.3V"J.
1.2VFD與LED控制電路
如圖3所示,AT89C52通過三線與CS16312通信.P1.0用于數(shù)據(jù)輸入,與Dw相連.Pl.1用于數(shù)據(jù)輸岀,與Dout相連.P1.2產(chǎn)生申行時鐘信號CLK.P1.3與CS16312的STB連,產(chǎn)生數(shù)據(jù)/命令識別信號.因D°ut口為N溝道開漏輸出,故需接上拉電阻R1,以形成數(shù)據(jù)電平信號.CS16312內(nèi)建OSC.R2決定其振蕩頻率,其典型值為56K.CS16312的7根GRID線分別接到VFD的柵極(grid)Gl?G7,13根SEG線與VFD的陽極(anode)P1-P13相連.動態(tài)掃描顯示由CS16312內(nèi)建硬件電路自動完成.GRID線循環(huán)輸出柵極掃描信號,SEG線輸出取之內(nèi)部顯示RAM區(qū)與之對應的顯示信號①.
CS16312有4個LED輸岀口,本系統(tǒng)用LED1作為電源開關(guān)的指示燈丄ED2,LED3,LED4作為稱重狀態(tài)指示燈.當向某一端口寫0時,與之對應的LED燈將被點燈;寫1時,相應的燈將熄滅.
1.3按鍵電路
如圖4所示,CS16312的KEY線與SK線組成鍵盤.二極管用于隔離陽極驅(qū)動電壓.內(nèi)嵌硬件鍵掃描電路在KS線輸岀鍵掃描信號,KEY線接收鍵值(在顯示周期的末端鎖存至內(nèi)部RAM).本系統(tǒng)中的鍵盤電路共有20個接鍵,每個鍵的數(shù)據(jù)通過一個命令讀出,讀取順序從最低位開始.
2系統(tǒng)軟件設(shè)計
2.1軟件流程
圖5為CS16312的控制流程,其對應著VFD顯示、LED控制和按鍵掃描的程序流程.CS16311具有顯示方式設(shè)置、數(shù)據(jù)讀寫方式設(shè)定、數(shù)據(jù)地址設(shè)定和顯示控制等4條指令.MCU對CS16312的訪問是通過這4條指令來執(zhí)行的.MCU每次對驅(qū)動電路的訪問時間是在STB信號的下降沿開始,STB的上升沿結(jié)束.在CLK信號的上升沿讀入數(shù)據(jù),一次訪問只能傳送一個命令字節(jié)或者一個命令字節(jié)加上多個數(shù)據(jù)字節(jié),數(shù)據(jù)容量最多為22個字節(jié).這些數(shù)據(jù)通過管腳Dm被存儲在顯示緩沖電路中,顯示緩沖電路中輸出的數(shù)據(jù)經(jīng)過放大電路放大后從段/位驅(qū)動電路輸出驅(qū)動VFD顯示屏,或者直接在LED輸出口輸出驅(qū)動LED狀態(tài)燈;通過管腳Dout獲取芯片中存儲的按鍵和SW信號②.
2.2編程實現(xiàn)⑸
以下函數(shù)實現(xiàn)了VFD顯示、LED標識控制和按鍵掃描:部分代碼及其說明如下:
1)函數(shù)VFDWriteOneByte(ucharbvalue)實現(xiàn)寫一個字節(jié)的數(shù)據(jù)到CS16312.
VoidVFDWriteOneByte(ucharbvalue)
{
uchar
for(i=0:iV8;i++)
;CS16312; ;VFD;:LED■;按鍵,
:控制順序::顯示;:®制!!掃描!
CLK=0*
/*CLK控制傳輸,一個CLK周期為一個位的讀寫信號*/DIN=bvalue&(1< CLK=1>
}
}
2)函數(shù)ShowMessageOnVFD(uchar*str,ucharcount)將要顯示的數(shù)字字符顯示在VFD±.
voidShowMessageOnVFD(uchar*str«ucharcount)
STB=l;STB=0<
/*設(shè)置顯示模式為7,13*/
VfdWrite()neByte(VFD1_DISP_SET)j
STB=l;delay(10);STB=0;
/并設(shè)置數(shù)據(jù)讀寫方式為寫數(shù)據(jù)到顯示存儲器中*/VfdWriteOneByte(WR_TO_MEM);
STB=1;delay(10),STB=0,
/*設(shè)置顯示存儲器地址為自增量模式*/VfdWrite()neByte(ADDR.SET)>……/*寫入要顯示的字符信息關(guān)/
②CS16312VFDcontroller/driverdatasheej
STB=1jdelay(lO)?STB=Oj
/*顯示控制命令,顯示通*/
VfdWriteOneByte(DISP_ON)$
STB=1;
return;
}
3)函數(shù)LEDLight(ucharnum)點亮相應的LED燈.
voidLEDLightCuintnum)
{……
STB=1}STB=O;
/*設(shè)置數(shù)據(jù)讀寫方式為寫數(shù)據(jù)到LED端*/
VfdWriteOneByteD2(WR_TO_LED)$
/*將LED的狀態(tài)信息寫入LED端*/
VfdWriteOneByteD2(...)j
STB=b
return;
)
4)函數(shù)GetKeyValue(void)獲得鍵值.
ucharGetKeyValue(void)
STB=l;STB=0;
/*設(shè)置數(shù)據(jù)讀寫方式為讀鍵值*/VfdWriteOneByte(RD_KEY),
For(i=0;iVMAXKEY訂++)
{
CLK=0.
If(Doirr==Dreturni»/*返回按鍵的序號*/
CLK=h
}
Return—1;/*如果沒有鍵值返回一1*/
}
3測試與應用
首先,測試VFD顯示是否正常.測試方式:讓數(shù)字VFD分別顯示1?7數(shù)字.測試結(jié)果:顯示清晰明亮,背光與向光環(huán)境均能清晰顯示.
其次,測試LED燈控制是否正常.測試方式:讓LED燈逐一點亮并逐一熄滅,即走馬燈程序.測試結(jié)果:LED燈亮度正常,關(guān)斷自如.
最后,測試按鍵掃描是否正常.測試方式:將按鍵鍵值通過VFD顯示出來.測試結(jié)果:按鍵鍵值能正確顯示.按鍵防抖性強.
為了進一步驗證這個VFD顯示模塊的優(yōu)越性,已在實際工業(yè)稱重儀表的開發(fā)中得到應用.
4結(jié)束語
基于CS16312的VFD顯示模塊是一種性能價格比較高的真空熒光顯示模塊,該模塊與單片機的接口簡單.由于它可能顯示各種字符,又能實現(xiàn)按鍵控制、LED顯示控制等功能,人機接口友好,因此,在儀器儀表領(lǐng)城中得到廣泛應用的.
文章來源于網(wǎng)絡(luò)轉(zhuǎn)載,侵刪