液晶顯示模塊MGLS-12864的接口技術(shù)及其應(yīng)用
1.2 硬件接口
8031單片機(jī)與液晶顯示模塊MGLS-12864有2種連接方式:直接訪問(wèn)方式、間接控制方式。本設(shè)計(jì)采用間接控制方式.系統(tǒng)硬件接口圖如圖2所示。
在圖2中,根據(jù)圖1讀寫時(shí)序要求,8031的P1.2作為液晶顯示模塊的RS控制信號(hào)決定單片機(jī)是進(jìn)行數(shù)據(jù)選擇還是進(jìn)行指令選擇,RS=1,數(shù)據(jù)操作;RS=0,寫指令或讀狀態(tài)操作;P1.3接R/W選擇信號(hào),決定單片機(jī)對(duì)顯示模塊是進(jìn)行讀選通還是寫選通;P1.4接使能信號(hào)E決定數(shù)據(jù)是被鎖存寫入還是被讀出:P1.1和P1.0接CS1和CS2根據(jù)寫入的數(shù)據(jù)決定片選:P0端口接MGLS-12864的DB0~DB7用于二者之間的數(shù)據(jù)傳送;通過(guò)上位機(jī)和8031的串口通訊方式將開關(guān)的實(shí)時(shí)數(shù)據(jù)和狀態(tài)等送給顯示系統(tǒng)進(jìn)行顯示。
2 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)程序主要由主程序、子程序和中斷服務(wù)程序組成。主程序流程圖如圖3所示。在主程序中,首先判斷顯示控制器HD61202是否處于“忙”狀態(tài),若不忙先送關(guān)顯示指令關(guān)閉所有顯示,接著仍判斷“忙”狀態(tài),若不忙送開顯示指令,為顯示做準(zhǔn)備,然后調(diào)清全屏子程序、漢字顯示子程序,最后根據(jù)內(nèi)容需要調(diào)清單個(gè)字子程序。漢字顯示子程序如圖4所示。在初始化中首先設(shè)定幾個(gè)參數(shù):顯示的是第幾個(gè)字、頁(yè)地址、所在列地址Firstcolum。接著根據(jù)輸入的列進(jìn)行片選,左右屏漢字顯示程序一樣,都是先調(diào)寫指令子程序然后調(diào)寫程序子程序。依次循環(huán)寫入,最后判斷這個(gè)字是否寫完。其他子程序如:初始化子程序、寫指令子程序、寫數(shù)據(jù)子程序、清顯示子程序,篇幅有限從略。在漢字顯示子程序中,首先讀取的是前16個(gè)字節(jié)為上半部16x8點(diǎn)陣字模數(shù)據(jù),后讀取的是后16字節(jié),為下半部16x8點(diǎn)陣字模數(shù)據(jù)。
3 調(diào)試中遇到的問(wèn)題
1)由于MGLS-12864液晶顯示模塊沒(méi)有字符庫(kù),首先對(duì)要顯示的漢字、數(shù)字、字母等通過(guò)字模提取軟件——zimo0221取模,將取模方式設(shè)成C51方式可得到一個(gè)漢字的16x16的點(diǎn)陣數(shù)據(jù)。
2)在NGLS-12864中,2片HD61202的ADC均接高電平,RST也接高電平,這樣在使用NGLS-12864時(shí)就不必考慮這兩個(gè)引腳的作用。
3)RAM中的每一個(gè)字節(jié)(8位)對(duì)應(yīng)LCD屏上一行中的一列,一個(gè)字節(jié)中的一位對(duì)應(yīng)LCD屏上一個(gè)點(diǎn)(“0”為滅“1”為亮),在清除一列時(shí),在要被清除的列的位置寫入“00H”,用此方法可以清除屏上的一個(gè)區(qū)域或全屏。
4)實(shí)驗(yàn)中滿足時(shí)序是非常重要的,如果時(shí)序錯(cuò)誤就不能進(jìn)行正常顯示。
4 結(jié)束語(yǔ)
本文介紹利用8031單片機(jī)控制NGLS-12862液晶顯示模塊的軟硬件設(shè)計(jì)。通過(guò)實(shí)踐,顯示系統(tǒng)完成了漢字、數(shù)字和字母的顯示以及光標(biāo)閃爍和實(shí)時(shí)數(shù)據(jù)顯示等功能。這個(gè)設(shè)計(jì)不僅能用于煤礦井下饋電開關(guān)智能綜合保護(hù)器顯示,還可用于智能化儀器儀表等需要顯示的場(chǎng)合。
評(píng)論