摘 要: 點(diǎn)陣液晶" title="液晶">液晶顯示模塊" title="顯示模塊">顯示模塊在工業(yè)控制設(shè)備中正逐步得到推廣,依據(jù)DMF50081NB-FW" title="DMF50081NB-FW">DMF50081NB-FW點(diǎn)陣液晶顯示模塊的要求,,闡述了監(jiān)控電路的設(shè)計(jì),,論述了點(diǎn)陣液晶顯示模塊漢字和字符顯示的編程方法。在確??删幊绦蚩刂破鲗?duì)被控對(duì)象控制的可靠性和抗干擾性的前提下,,該電路可對(duì)系統(tǒng)運(yùn)行狀態(tài)的監(jiān)控達(dá)到比較高的性能價(jià)格比。
關(guān)鍵詞: 液晶顯示模塊 字符 起始地址 行列
點(diǎn)陣液晶顯示模塊在工業(yè)控制中,,已得到越來(lái)越廣泛的應(yīng)用,。如許多可編程序控制器(PLC)生產(chǎn)公司相繼推出了各種型號(hào)、各種系列的液晶顯示模塊,,有單色的,、彩色的、觸摸式等,。這些模塊能夠顯示字符和圖形,,若配備漢字庫(kù)還能夠顯示漢字。使用這些模塊可組成高性能的控制操作面板,,但是各公司的顯示模塊兼容性能不是很好,,且售價(jià)較高。本文提出應(yīng)用單片機(jī)和PLC的接口電路組成點(diǎn)陣液晶顯示模塊的控制操作面板,,既達(dá)到了高性能,,又降低了成本。
1 DMF50081NB-FW點(diǎn)陣液晶顯示模塊與SED1330" title="SED1330">SED1330控制器
DMF50081NB-FW是320×240=76800個(gè)顯示點(diǎn)的點(diǎn)陣液晶顯示模塊,,每8個(gè)顯示點(diǎn)構(gòu)成一個(gè)字節(jié),,每行40個(gè)字節(jié),全屏共計(jì)40×240=9600個(gè)字節(jié),。DMF50081NB-FW點(diǎn)陣液晶顯示模塊可以顯示圖形,,也可以顯示漢字和字符,漢字和字符可以采用32×32,、24×24,、16×16、8×8等點(diǎn)陣形式。DMF50081NB-FW點(diǎn)陣液晶顯示模塊的接口信號(hào)有13根,,它直接與SED1330控制器相連,。SED1330控制器是專門用于DMF系列點(diǎn)陣液晶顯示模塊的控制器,而且很容易與單片機(jī)接口,。其主要功能特點(diǎn)是:內(nèi)部有功能較強(qiáng)的I/O緩沖器;有豐富的指令功能;最大可驅(qū)動(dòng)640×256的點(diǎn)陣液晶顯示模塊;圖形和文本方式混合顯示;內(nèi)部存儲(chǔ)器最大容量達(dá)64K,,可選用只讀存儲(chǔ)器和隨機(jī)存儲(chǔ)器。SED1330控制器的指令集如表1所示,。從指令集中可看出,,除了一般液晶顯示器所具有的設(shè)置功能之外,其突出的一個(gè)特點(diǎn)是還可以設(shè)置光標(biāo)四個(gè)方向的移動(dòng)等功能,??刂破鞯拿钭趾?jiǎn)單、易于掌握,、便于編程[3],。
2 監(jiān)控電路與輸入信號(hào)采集時(shí)序
監(jiān)控系統(tǒng)電路如圖1所示。左邊的信號(hào)來(lái)自于可編程序控制器(PLC),,當(dāng)PLC輸出被控對(duì)象的工作狀態(tài)(Y20~Y25)和數(shù)據(jù)參數(shù)(Y10~Y17,、Y4~Y7)時(shí),PLC(Y27)向單片機(jī)發(fā)出中斷申請(qǐng),。單片機(jī)通過(guò)可編程芯片82C55與PLC實(shí)現(xiàn)信息輸入,。液晶顯示器通過(guò)SED1330控制器與單片機(jī)接口,其接口電路是按照液晶顯示器和SED1330控制器接口說(shuō)明要求設(shè)計(jì)的,。根據(jù)應(yīng)用需要編制的32×32字庫(kù)和32×16字符庫(kù)存放在16K的EPROM中,。由于輸入信號(hào)來(lái)自于PLC,單片機(jī)采集信息需結(jié)合PLC輸出信號(hào)并遵循一定的采集時(shí)序,。時(shí)序要求如圖2所示,。Y27應(yīng)在PLC一個(gè)掃描周期內(nèi)輸出低電平,作為單片機(jī)的中斷申請(qǐng)信號(hào),,通常PLC一個(gè)掃描周期至少數(shù)毫秒乃至十多毫秒,。為了確保單片機(jī)讀入的數(shù)據(jù)和狀態(tài)準(zhǔn)確無(wú)誤,單片機(jī)響應(yīng)中斷信號(hào)后,,啟動(dòng)定時(shí)器延時(shí)2~3ms,,即t=2~3ms,然后才從82C55讀入PLC輸出的參數(shù)與狀態(tài),。PLC輸出數(shù)據(jù)是按8421碼編制好的三位十進(jìn)制數(shù):Y14~Y17,,Y10~Y13,Y4~Y7,。
3 系統(tǒng)軟件設(shè)計(jì)
單片機(jī)程序主要分為三個(gè)部分:初始化;輸入信號(hào)采集;字符和漢字顯示。初始化程序需對(duì)液晶顯示模塊[2]、82C55以及其它存儲(chǔ)單元初始化,。輸入信號(hào)采集程序由中斷服務(wù)程序和定時(shí)器0中斷服務(wù)程序組成,。
中斷服務(wù)程序的任務(wù)是設(shè)置定時(shí)器0的時(shí)間常數(shù)、開(kāi)定時(shí)器0中斷和啟動(dòng)定時(shí)器0;定時(shí)器0中斷服務(wù)程序的任務(wù)是從82C55三個(gè)口讀入數(shù)據(jù)和狀態(tài):C口狀態(tài)信號(hào)送入30H,,A口八位數(shù)據(jù)送入31H,,B口四位數(shù)據(jù)送入32H;并在中斷服務(wù)程序中設(shè)置采集一次信息的標(biāo)志(置位單元00H為“1”)。字符和漢字顯示程序是主體,。為了使顯示內(nèi)容在控制現(xiàn)場(chǎng)醒目,,有一定的視覺(jué)范圍,便于對(duì)被控設(shè)備監(jiān)控,,設(shè)計(jì)了32×32漢字和32×16字符點(diǎn)陣庫(kù),。顯示程序設(shè)計(jì)時(shí),首先對(duì)屏幕顯示畫(huà)面進(jìn)行設(shè)計(jì),。設(shè)某控制對(duì)象的工作狀態(tài)有數(shù)十種,,每個(gè)狀態(tài)下有三組數(shù)據(jù),并有多種工作模式和工作選件選擇,。屏幕共有240行,,每行40個(gè)字節(jié),屏幕顯示和地址排列如表2所示,。表的左邊列出每一行顯示字符的起始地址,,表的上邊列出第一行每一個(gè)字節(jié)的地址,該地址作為每一列的列地址,,這兩組地址值可決定屏幕上每一個(gè)字符的起始地址,,例如第二行參數(shù)2低位數(shù)據(jù)顯示起始地址為0C80H+17H。顯示屏每屏可動(dòng)態(tài)顯示5組狀態(tài)和參數(shù),,可以采用按順序翻轉(zhuǎn)和按屏顯示兩種方式,。按順序翻轉(zhuǎn)就是當(dāng)?shù)?組參數(shù)要顯示時(shí),每行顯示內(nèi)容按順序向上移位,,即6→5→4→3→2→1→取消,。按屏顯示就是當(dāng)?shù)诹M參數(shù)要顯示時(shí),首先清狀態(tài)和參數(shù)顯示區(qū)域,,然后將第六組參數(shù)設(shè)置為第一組并顯示在第一組顯示位置上,。本文采用按屏顯示方式。
編程之前需對(duì)單片機(jī)內(nèi)存作具體的分配,,表2列出顯示需用的部分內(nèi)存分配,。為了便于調(diào)用數(shù)據(jù)顯示子程序,分配8個(gè)字節(jié)來(lái)存放顯示數(shù)據(jù),。設(shè)置了要顯示的字符和漢字在顯示位置的起始地址和字庫(kù)起始地址的暫存器以及顯示行號(hào),、采集次數(shù)記錄等,。
顯示程序編程的關(guān)鍵問(wèn)題是確定每一行顯示的起始地址、每一個(gè)文字和數(shù)據(jù)列顯示起始地址以及文字和數(shù)據(jù)在字庫(kù)中的起始地址,。這些地址的確定是由狀態(tài)字,、采集次數(shù)、顯示面板設(shè)計(jì)和字庫(kù)設(shè)計(jì)確定的,。
顯示程序框圖如圖3所示,。顯示程序首先判斷信息是否已被采集,若無(wú)則等待或處理其它程序,,若有則判斷采集次數(shù)(41H),。若(41H)>3,對(duì)41H 置1,,然后根據(jù)41H中的內(nèi)容,,轉(zhuǎn)去執(zhí)行處理不同采集次數(shù)的程序。這里重點(diǎn)介紹(41H)=1的情況,,此時(shí)先判斷(30H)是否大于#30H,。若大于#30H,編制多個(gè)判斷分支程序,,根據(jù)30H中內(nèi)容分別調(diào)用不同的漢字顯示程序;若小于#30H,,首先按照表2進(jìn)行數(shù)據(jù)處理,然后判斷顯示行號(hào)是否大于5,,大于則使(3BH)=1,,并經(jīng)判斷程序得出行號(hào),然后根據(jù)行號(hào)分別執(zhí)行不同行號(hào)下的顯示程序,。圖3中設(shè)行號(hào)等于3,,此時(shí)先將屏幕顯示第3行文字顯示的起始高位地址賦給3DH,低位地址賦給3CH,,并調(diào)用狀態(tài)顯示子程序,。然后確定每一個(gè)數(shù)據(jù)顯示的列起始地址,調(diào)用數(shù)據(jù)顯示子程序,。執(zhí)行完,,采集次數(shù)+1。當(dāng)三次采集數(shù)據(jù)全部處理完,,顯示行號(hào)+1,,使下一組狀態(tài)和數(shù)據(jù)顯示內(nèi)容自動(dòng)換行。
字庫(kù)中的字模在EPROM中是按照32×32點(diǎn)陣先從字模第一行第一個(gè)字節(jié)到第四個(gè)字節(jié),,然后從第二行第一個(gè)字節(jié)到第四個(gè)字節(jié),,依此類推,直到32行,。數(shù)據(jù)的字模也是按照類似的方式排列,,只是每行為兩個(gè)字節(jié),。
圖4為顯示狀態(tài)和漢字的子程序。虛線框中的內(nèi)容是顯示一個(gè)漢字的子程序,,進(jìn)入顯示一個(gè)漢字子程序之前,,只要將漢字在字庫(kù)中的起始地址送入3EH,、3FH單元以及將漢字在屏幕顯示位置的起始地址送入42H,、3DH即可。顯示程序主要應(yīng)用5AH,、42H,、4FH(↓)和4DH(←)命令,由于每一個(gè)漢字有32行,,所以需循環(huán)32次,。顯示狀態(tài)文字時(shí),首先設(shè)置所要顯示的文字?jǐn)?shù),,賦給43H,,根據(jù)30H中的狀態(tài)字內(nèi)容判斷程序執(zhí)行的方向,因?yàn)闋顟B(tài)字決定了要顯示的文字個(gè)數(shù)和文字內(nèi)容,,也就決定了每個(gè)文字在字庫(kù)中的起始地址和顯示屏幕上的位置,。對(duì)于數(shù)據(jù)的顯示,其顯示編程的方法和文字顯示編程的方法類似,,只要把握住地址正確即可,。而對(duì)于操作模式、選擇和報(bào)警信息的顯示,,根據(jù)(30H)>#30H,,此時(shí)只有一組信號(hào),編程時(shí)同樣按照屏幕設(shè)計(jì)的要求,,將地址設(shè)置正確,,調(diào)用文字顯示子程序,同時(shí)需將采集次數(shù)復(fù)位,。報(bào)警信息顯示在狀態(tài)和數(shù)據(jù)顯示區(qū),,應(yīng)注意顯示行號(hào)和文字個(gè)數(shù)的設(shè)置,顯示輸出完之后對(duì)行號(hào)進(jìn)行修改,。
綜上所述,,系統(tǒng)的組成易于實(shí)現(xiàn)。軟件雖然分支判斷程序多,,但程序的編制有規(guī)律可循,。其執(zhí)行速度主要受文字和數(shù)據(jù)顯示子程序的影響(32次循環(huán))。但信息采集采用中斷方式,,單片機(jī)每?jī)纱沃袛囗憫?yīng)之間至少間隔近10ms,,才能夠滿足應(yīng)用的要求,。
本文應(yīng)用PLC組成點(diǎn)陣液晶顯示模塊的控制操作面板的設(shè)計(jì)方法適應(yīng)于工業(yè)控制現(xiàn)場(chǎng),顯示部分的電路和單片機(jī)程序沒(méi)有參與對(duì)被控對(duì)象的控制,。實(shí)際上,,鍵盤操作也是由PLC輸入端口予以輸入,這樣保證了控制系統(tǒng)的控制高可靠性和高抗干擾性,。
參考文獻(xiàn)
1 FX2 Programmable Controller Manual. MITSUBISHI,,1992
2 李維諟,郭 強(qiáng).液晶顯示應(yīng)用技術(shù).北京:電子工業(yè)出版社,,2000.3.
3 李 華.MCS—51系列單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天大學(xué)出版社,,1993.8.
4 何立民.MCS—51系列單片機(jī)應(yīng)用系統(tǒng)——系統(tǒng)設(shè)計(jì)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,1990.1
5 蔡啟仲,,王鳴桃.可編程序控制器——單片機(jī)復(fù)合控制系統(tǒng).儀器儀表學(xué)報(bào),,1994;VX(3)