单片机学习小组
直播中

余少华

7年用户 156经验值
私信 关注

请问不带字库的12864想自己建立字库和调用该怎么做?

#ifdef  CHAR_CODE#include"charcode.h"uchar Lcd12864_Write16CnCHAR(uchar x, uchar y, uchar *cn){uchar j, x1, x2, wordNum;//--Y的坐标只能从0到7,大于则直接返回--//if(y > 7){return 0;}//--X的坐标只能从0到128,大于则直接返回--//if(x > 128){return 0;}y += 0xB0;   //求取Y坐标的值//--设置Y坐标--//LcdSt7565_WriteCmd(y);while ( *cn != '') //在C语言中字符串结束以‘’结尾{//--设置Y坐标--//LcdSt7565_WriteCmd(y);x1 = (x >> 4) & 0x0F;   //由于X坐标要两句命令,分高低4位,所以这里先取出高4位x2 = x & 0x0F;          //去低四位//--设置X坐标--//LcdSt7565_WriteCmd(0x10 + x1);   //高4位LcdSt7565_WriteCmd(0x04 + x2);//低4位for (wordNum=0; wordNum<50; wordNum++){    //--查询要写的字在字库中的位置--//if ((CN16CHAR[wordNum].Index[0] == *cn)     &&(CN16CHAR[wordNum].Index[1] == *(cn+1))){for (j=0; j<32; j++) //写一个字{if (j == 16) //由于16X16用到两个Y坐标,当大于等于16时,切换坐标{//--设置Y坐标--//   LcdSt7565_WriteCmd(y + 1);//--设置X坐标--//LcdSt7565_WriteCmd(0x10 + x1);   //高4位LcdSt7565_WriteCmd(0x04 + x2);//低4位}LcdSt7565_WriteData(CN16CHAR[wordNum].Msk[j]);}x += 16;}//if查到字结束} //for查字结束cn += 2;}//while结束return 1;}#endif[/mw_shl_code]
求大神指导一下上面指针是怎么用的?

回帖(6)

陈韵瑄

2019-11-4 07:53:37
没有就自己取模, 放到单片机flash,或者外部spi flash
1L  姐个  拿个   是哪儿的方言么?  还以为姐哥呢
举报

王云

2019-11-4 08:10:57
姐个指针指向的是汉字的起始地址,因为姐个汉字由它一个双字内码组成,所以有了后面拿个*(cn+1)。。。。。。。。。。
举报

张子腾

2019-11-4 08:29:30
谢谢
举报

王金凤

2019-11-4 08:43:32
if(j==16)而不是if(j>=16)呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分