基于AVR單片機(jī)的VRAM型彩色液晶顯示模塊設(shè)計(jì)
當(dāng)數(shù)據(jù)位為“1”時(shí),對(duì)應(yīng)色點(diǎn)為亮;為“0”時(shí),對(duì)應(yīng)色點(diǎn)為暗。通過RGB三原色組合而得到的8種顏色代碼如下:
例1:若X 、Y坐標(biāo)為(7,0)
SRAM = 0EFH ×100H + 0 = 0EF00H
余數(shù)為7 ,則 RAM = 0EF00H + 2 = 0EF02H
若此點(diǎn)為紅色,則送入0EF02H 內(nèi)存單元里的數(shù)據(jù)為[ 0EF02H] 11111000B + 00000100B
例2 :若X 、Y坐標(biāo)為(15,5)
SRAM = (5 - 1) ×100H + 1 ×3 = 403H
余數(shù)為5 ,則 RAM1 = 403H + 1 = 404H
RAM2 = 403H + 2 = 405H
若此點(diǎn)為白色,則送入這兩個(gè)單元的數(shù)據(jù)為
[ 404H] 11111110B + 00000001B
[ 405H] 00111111B + 11000000B
4.2.2 畫點(diǎn)函數(shù)的具體實(shí)現(xiàn)
從例1和例2可以看出,要只顯示一個(gè)色點(diǎn),就必須知道該點(diǎn)對(duì)應(yīng)的內(nèi)存中的數(shù)據(jù),而前面提到過內(nèi)存中的數(shù)據(jù)是不能讀出的,所以要將寫入內(nèi)存中的數(shù)據(jù)先保存起來,即在向YD2502的顯示緩沖區(qū)里寫數(shù)據(jù)之前,應(yīng)先將此數(shù)據(jù)寫入61LV5128 。若在坐標(biāo)(X,Y)處畫顏色為color的點(diǎn),其具體函數(shù)如下:
以上只給出了余數(shù)是0的情況,其他的情況可依此類推。計(jì)算內(nèi)存地址的LCD_pixeladdr函數(shù)可根據(jù)給出的內(nèi)存地址計(jì)算方法編寫,讀寫61LV5128的read_exram函數(shù)和write_exram函數(shù)可根據(jù)具體的硬件設(shè)計(jì)編寫,這里不再給出。
4.3 顯示漢字和其他功能的實(shí)現(xiàn)
在屏幕上顯示16×16點(diǎn)陣漢字的基本步驟是:首先取得該漢字的32個(gè)字節(jié)的點(diǎn)陣數(shù)據(jù),再確定屏幕上顯示的位置,利用畫點(diǎn)函數(shù)即可顯示該漢字。因本模塊使用了硬件漢字庫技術(shù),所以漢字的點(diǎn)陣數(shù)據(jù)是從漢字庫中獲取的。
評(píng)論