找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4079|回复: 9
打印 上一主题 下一主题
收起左侧

无字库LCD12864显示8个汉字后面不显示,为什么?

[复制链接]
跳转到指定楼层
楼主
ID:296837 发表于 2018-6-11 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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,

} ;


显示期望如下:(“口”为空白)

口一二三四五六口
七八九十壹贰叁肆

实际显示如下:

口一二三四五六口
七八口口一口一二




各位大神有没有知道为什么的?谢谢!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:325966 发表于 2018-6-11 15:23 | 只看该作者
都说了无字库,自己不会添加一下吗
回复

使用道具 举报

板凳
ID:349541 发表于 2018-6-11 15:52 | 只看该作者
就是字库的问题?
回复

使用道具 举报

地板
ID:349564 发表于 2018-6-11 17:40 | 只看该作者
字库的问题,自己重新添加一下
回复

使用道具 举报

5#
ID:349564 发表于 2018-6-11 17:41 | 只看该作者
字库的问题,自己重新添加一下
回复

使用道具 举报

6#
ID:272158 发表于 2018-6-11 18:47 | 只看该作者
你取模的字体有出错,定义位置也不对
回复

使用道具 举报

7#
ID:349753 发表于 2018-6-11 20:07 | 只看该作者
可以百度一下
回复

使用道具 举报

8#
ID:296837 发表于 2018-6-29 08:57 | 只看该作者
ARM学习能手 发表于 2018-6-11 15:23
都说了无字库,自己不会添加一下吗

无字库  你没看到后面有字库吗?
回复

使用道具 举报

9#
ID:296837 发表于 2018-6-29 08:59 | 只看该作者
feixue2007 发表于 2018-6-11 18:47
你取模的字体有出错,定义位置也不对

怎么不对了?大概的说一下,,,,,前面几个都是混经验的,就您这里有可能知道原因
回复

使用道具 举报

10#
ID:296837 发表于 2018-6-29 08:59 | 只看该作者

百度过,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表