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