本帖最后由 hk0506 于 2018-7-6 08:35 編輯
在無字庫LCD12864上面寫字的時候,寫了八個字后,后面的不顯示了,然后一步一步調,發現超過8個就不顯示了。
顯示程序如下:
void lcd_display_chinese(uchar screen,uchar page,uchar col,uint mun)
{ //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-3,mun:顯示第幾個漢字的參數
int a;
mun=mun*32;
select_screen(screen); //選屏
W_CMD(0xb8+(page*2)); //頁:一頁8點行
W_CMD(0x40+(col*16)); //列:一列1點列
for (a=0;a<16;a++)
{
W_DATA(chinese[mun++]); //一個字16x16
}
W_CMD(0xb8+(page*2)+1); //兩頁一行
W_CMD(0x40+(col*16)); //行列指針自加1
for ( a=0;a<16;a++)
{
W_DATA(chinese[mun++]);
}
}
主函數如下:
void main()
{
initLCD(); //LCD初始化
clear_screen(0); //LCD清屏幕
lcd_display_chinese(1,0,1,0); //LCD顯示漢字///一
lcd_display_chinese(1,0,2,1); //LCD顯示漢字//
lcd_display_chinese(1,0,3,2); //LCD顯示漢字//
lcd_display_chinese(2,0,0,3); //LCD顯示漢字//
lcd_display_chinese(2,0,1,4); //LCD顯示漢字//
lcd_display_chinese(2,0,2,5); //LCD顯示漢字//六
lcd_display_chinese(2,0,3,6); //LCD顯示漢字//
lcd_display_chinese(1,1,0,7); //LCD顯示漢字//八
lcd_display_chinese(1,1,1,8); //LCD顯示漢字//
lcd_display_chinese(1,1,2,9); //LCD顯示漢字//
lcd_display_chinese(1,1,3,10); //LCD顯示漢字//
lcd_display_chinese(2,1,0,11); //LCD顯示漢字//
while(1)
{
delay(10);
}
字庫程序如下:
uchar code chinese[]={
/*0*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x20,0x20,0x24,0x24,0x24,0xE4,0x26,0x24,0x20,0xFF,0x20,0x22,0x2C,0x20,0x20,0x00,
0x20,0x60,0x3F,0x20,0x20,0x1F,0x11,0x11,0x10,0x03,0x1C,0x20,0x40,0x80,0xE0,0x00,
/*1*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x10,0x22,0x64,0x0C,0x80,0x04,0x74,0x84,0x04,0x04,0x04,0xC4,0x3E,0x04,0x00,0x00,
0x04,0x04,0x7E,0x01,0x80,0x40,0x20,0x11,0x0A,0x04,0x0B,0x10,0x60,0xC0,0x40,0x00,
/*2*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x40,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x43,0x62,0x40,0x00,
0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0xC0,0x40,0x00,
/*3*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x10,0x10,0x90,0x10,0x10,0x11,0x16,0x10,0x10,0x10,0xD0,0x18,0x10,0x00,0x00,
0x40,0x40,0x40,0x40,0x43,0x5C,0x40,0x40,0x50,0x4C,0x43,0x40,0x40,0x60,0x40,0x00,
/*4*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x40,0x20,0x10,0xFC,0x03,0x40,0x20,0x10,0xFF,0x08,0x04,0x06,0xC0,0x00,0x00,
0x04,0x04,0x04,0x04,0x05,0x04,0x04,0xFF,0x04,0x04,0x05,0x05,0x05,0x05,0x04,0x00,
/*5*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x04,0x04,0x04,0xF4,0x94,0x94,0x95,0x96,0x94,0x94,0x94,0xF4,0x04,0x06,0x04,0x00,
0x00,0xFE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,0x4A,0x4A,0x7A,0x02,0x82,0xFF,0x02,0x00,
/*6*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,
/*7*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x40,0x20,0x58,0x47,0x54,0x54,0x54,0x54,0x54,0x54,0xD4,0x14,0x06,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x80,0x70,0x00,
/*8*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9F,0x81,0x81,0x81,0x9F,0xA0,0x20,0x20,0x00,
0x00,0x00,0x00,0x7F,0xA0,0x90,0x40,0x43,0x2C,0x10,0x28,0x26,0x41,0xC0,0x40,0x00,
/*9*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x00,0x90,0x88,0x44,0x4B,0x32,0x12,0x32,0x4A,0x46,0x82,0x80,0x80,0x80,0x00,
0x01,0x01,0x00,0xFF,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0xFF,0x00,0x01,0x00,0x00,
/*10*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x04,0x04,0x04,0x84,0xE4,0x3C,0x27,0x24,0x24,0x24,0x24,0xF4,0x24,0x06,0x04,0x00,
0x04,0x02,0x01,0x00,0xFF,0x09,0x09,0x09,0x09,0x49,0x89,0x7F,0x00,0x00,0x00,0x00,
/*11*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0xFE,0x02,0x22,0xDA,0x06,0x00,0xFE,0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00,
0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0xFF,0x42,0x24,0x08,0x14,0x22,0x61,0x20,0x00,
/*12*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x00,0x80,0x40,0x30,0x0C,0x00,0xC0,0x06,0x18,0x20,0x40,0x80,0x80,0x80,0x00,
0x01,0x01,0x00,0x30,0x28,0x24,0x23,0x20,0x20,0x28,0x30,0x60,0x00,0x01,0x00,0x00,
/*13*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x10,0x10,0x92,0x92,0x92,0x92,0x92,0x92,0xD2,0x9A,0x12,0x02,0xFF,0x02,0x00,0x00,
0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,
/*14*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x10,0x17,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x17,0x10,0x00,0x00,
0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00,
/*15*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,
/*16*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x10,0x22,0x64,0x0C,0x80,0x44,0x44,0x64,0x55,0x4E,0x44,0x54,0x66,0xC4,0x00,0x00,
0x04,0x04,0xFE,0x01,0x00,0x80,0x40,0x3F,0x00,0xFF,0x00,0x3F,0x40,0x40,0x70,0x00,
/*17*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0xFC,0x84,0x84,0x84,0xFE,0x14,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00,
/*18*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12,0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11,0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,
/*19*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x10,0x22,0x64,0x0C,0x80,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00,
0x04,0x04,0xFE,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,
/*20*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x34,0x26,0x04,0x00,
0x40,0x20,0x9F,0x80,0x42,0x42,0x26,0x2A,0x12,0x2A,0x26,0x42,0x40,0xC0,0x40,0x00,
/*21*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x04,0x84,0xE4,0x5C,0x44,0xC4,0x20,0x10,0xE8,0x27,0x24,0xE4,0x34,0x2C,0xE0,0x00,
0x02,0x01,0x7F,0x10,0x10,0x3F,0x80,0x60,0x1F,0x09,0x09,0x3F,0x49,0x89,0x7F,0x00,
/*22*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x10,0x0C,0x44,0x44,0x44,0x44,0x45,0xC6,0x44,0x44,0x44,0x44,0x44,0x14,0x0C,0x00,
0x80,0x40,0x20,0x1E,0x20,0x40,0x40,0x7F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,
/*23*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x40,0x40,0x42,0xCC,0x00,0x00,0xFC,0x24,0xA4,0x24,0x22,0x22,0xA3,0x62,0x00,0x00,
0x00,0x40,0x20,0x1F,0x20,0x58,0x47,0x50,0x48,0x45,0x42,0x45,0x48,0x50,0x40,0x00,
/*24*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x00,0xFE,0x02,0x02,0xF2,0x12,0x12,0x12,0xF2,0x02,0x02,0xFE,0x00,0x00,0x00,
0x00,0x00,0x7F,0x20,0x20,0x27,0x24,0x24,0x24,0x27,0x20,0x20,0x7F,0x00,0x00,0x00,
/*25*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x82,0x82,0xBA,0xAA,0xAA,0xAA,0xAB,0xAA,0xAA,0xAA,0xBA,0x82,0x82,0x80,0x00,
0x02,0x41,0x54,0x54,0x54,0x54,0x7C,0xAA,0xAA,0xAA,0xAA,0xAA,0xA0,0x82,0xE1,0x00,
/*26*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0xC0,0x38,0x00,0xFF,0x00,0x08,0x10,0x60,0x00,
0x08,0x06,0x01,0xFF,0x01,0x06,0x81,0x80,0x40,0x40,0x27,0x10,0x0C,0x03,0x00,0x00,
/*27℃*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x06,0x09,0x09,0xE6,0xF8,0x0C,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x1E,0x00,0x00,
0x00,0x00,0x00,0x07,0x1F,0x30,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x10,0x00,0x00,
/*28*/
/**-宋體16 縱向取模下高位,數據排列:從左到右從上到下-寬x高=16x16**/
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x8C,0x9C,0xB8,0xF0,0xE0,0xC0,0x80,0x00,0x00,
0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x31,0x39,0x1D,0x0F,0x07,0x03,0x01,0x00,0x00,
} ;
顯示期望如下:(“口”為空白)
口一二三四五六口 七八九十壹貳叁肆
實際顯示如下:
口一二三四五六口 七八口口一口一二
各位大神有沒有知道為什么的?謝謝!
|