液晶顯示控制電路KS0713的初始化編程技巧
Send_Command(0x26); //調節寄存器選擇
Send_Command(0x81); //設定參考電壓模式
Send_Command(0x1C); //設定參考電壓寄存器
Send_Command(0x40); //設定顯示行(COM1)
Send_Command(0xAF); //等待顯示開(kāi)始
}
顯示數據的起始位置
由于KS0713的地址空間是65×132的,實(shí)際在控制LCD時(shí)由于只用到64×128的地址空間,就存在著(zhù)起始地址的問(wèn)題。 KS0713內部規定了65行構成了9頁(yè),其中前8頁(yè)由8列構成(DB0~DB7),第9頁(yè)是單獨的一行(只有DB0),因此數據并行傳輸過(guò)去之后始終是從DB0(第一行開(kāi)始顯示)。而列地址則不同,內部地址對應的方式不同則會(huì )導致起始數據列地址的不同。如果,LCD的第0列地址和KS0713的第0列地址相對應,則相應的起始列地址為0x00;如果,LCD的第0列地址和KS0713的第1列地址相對應,則相應的起始列地址為0x01;……以此類(lèi)推。因此在使用以KS0713為控制器的液晶顯示時(shí)對此問(wèn)題要特別注意。
字模點(diǎn)陣數據的提取和傳輸
KS0713的逐行和逐列顯示順序可以根據用戶(hù)的不同要求在初始化時(shí)加以設置。KS0713控制芯片向LCD送數據的方式與通常習慣的橫向數據傳輸方式不同,而是采用豎向數據傳輸方式,與前面初始化的實(shí)例相對應的顯示順序為:對于64行128列的LCD,先送第1列的第0行到第7行的數據,第2列的第0行到第7行的數據,…直到第128列的第0行到第7行的數據;再送第1列的第8行到第15行的數據,第2列的第8行到第15行的數據,……;最終第128列,第56行到第63行的數據。ADC選擇指令可以倒轉列地址和顯示列地址之間的對應關(guān)系,如圖1所示,這時(shí)要求送數據格式為:先送第1列的第7行到第0行的數據,第2列的第7行到第0行的數據…,直到第128列的第63行到第56行的數據。
由此對于字模的提取,KS0713也就有不同的要求:為了能夠在LCD上顯示出圖2a的圖形,必須先將圖2a橫向左右調換得到圖2b,再將圖2b沿縱向上下調換得到圖2c。最終傳輸以圖2c所提取的字模數據,才可以得到圖2a的顯示。
利用字模數據提取工具提取圖中的字模數據,并按上述要求進(jìn)行上下調換,其輸出顯示的C代碼如下:
{ unsigned char seg_0[ ]={ 0x00,0x04,0x04,0x06,0x04,0x08,0x88,0x50,
0x20,0x50,0x88,0x04,0x04,0x02,0x02,0x02,}; // “文”字的上半部分
unsigned char seg_1[ ]={ 0x00,0x10,0x10,0x10,0x10,0x1E,0x11,0x10,
0x70,0x90,0x11,0x1E,0x10,0x10,0x10,0x10,}; // “文”字的下半部分
Send_Command(0xB0) ; // 第0行起始
Send_Command(0x04) ; // 第0列起始
for(i=0;i16;i++)
{ Send_Data(seg_0[i]); }
Send_Command(0xB1) ; // 第1行起始
Send_Command(0x04) ; // 第0列起始
for(i=0;i16;i++)
{ Send_Data(seg_1[i]); }
}
系統在執行上面的代碼后在液晶屏的左上角顯示如圖所示的字符。在實(shí)際開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員可以使用“字模3增強版”字模提取軟件提取相關(guān)的字符數據。
評論