wpppmlah 发表于 2024-2-24 11:49:54

测试了字库生成工具,
原来用的是PCtoLCD生成的,使用STC的字库生成工具,没有成功,
索性把同一个字所有的扫描模式都生成出来
居然没有一个能显示成功的,下图是两个软件的配置,是哪里不对了?




显示代码:
unsigned char code hanzi[]=
{
.........
0xFD,0x01,0xFD,0x25,0x25,0xFD,0x25,0x25,0xFD,0x01,0xFD,0x00,0x07,0x04,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x04,0x0F,0x00, /*'画',23*/
0x00,0xF0,0x10,0x10,0x10,0x1F,0x12,0x12,0x12,0xF2,0x02,0x00,0x08,0x05,0x01,0x05,
0x09,0x01,0x05,0x09,0x01,0x05,0x08,0x00, /*'点',24*/
0x00,0x0F,0xFF,0x00,0x00,0x00,0x4F,0xE4,0x92,0x49,0x24,0xFE,0x49,0x24,0x92,0x49,
0x24,0xFE,0x40,0x04,0x00,0x7F,0xF0,0x00, /*'画',25*/
0x00,0x0F,0xFF,0x00,0x00,0x00,0x7F,0x24,0x92,0x49,0x27,0xF2,0x49,0x24,0x92,0x49,
0x27,0xF2,0x00,0x20,0x02,0xFF,0xE0,0x00, /*'画',26*/               
0x00,0x07,0xFF,0x40,0x04,0x00,0x4F,0xE4,0x92,0x49,0x24,0x92,0x4F,0xE4,0x92,0x49,
0x24,0xFE,0x00,0x00,0x00,0xFF,0xF0,0x00, /*'画',27*/               
0x00,0x0F,0xFE,0x00,0x20,0x02,0x7F,0x24,0x92,0x49,0x24,0x92,0x7F,0x24,0x92,0x49,
0x27,0xF2,0x00,0x00,0x00,0xFF,0xF0,0x00, /*'画',28*/                  
0x00,0xFF,0x00,0x00,0x4F,0x49,0x49,0x4F,0x49,0x49,0x49,0x4F,0x40,0x40,0x7F,0x00,
0x0F,0x00,0xE2,0x2E,0x22,0x2E,0x00,0xF0, /*'画',29*/                        
0x00,0xFF,0x00,0x00,0x7F,0x49,0x49,0x7F,0x49,0x49,0x49,0x7F,0x00,0x00,0xFF,0x00,
0x0F,0x00,0x22,0x22,0x22,0x22,0x22,0xE0, /*'画',30*/               
0x00,0x7F,0x40,0x40,0x4F,0x49,0x49,0x49,0x4F,0x49,0x49,0x4F,0x00,0x00,0xFF,0x00,
0x0F,0x00,0xE2,0x22,0xE2,0x2E,0x00,0xF0, /*'画',31*/
0x00,0xFF,0x00,0x00,0x7F,0x49,0x49,0x49,0x7F,0x49,0x49,0x7F,0x00,0x00,0xFF,0x00,
0x0E,0x22,0x22,0x22,0x22,0x22,0x00,0xF0, /*'画',32*/               
0x40,0x4F,0x40,0x40,0x4F,0x49,0x49,0x4F,0x49,0x49,0x4F,0x40,0x00,0xFE,0x02,0x02,
0xF2,0x12,0x12,0xF2,0x12,0x12,0xF2,0x02, /*'画',33*/               
0x40,0x4F,0x49,0x49,0x4F,0x49,0x49,0x4F,0x40,0x40,0x4F,0x40,0x02,0xF2,0x12,0x12,
0xF2,0x12,0x12,0xF2,0x02,0x02,0xFE,0x00, /*'画',34*/
0x00,0x7F,0x40,0x40,0x4F,0x48,0x48,0x4F,0x48,0x48,0x4F,0x40,0x02,0xF2,0x02,0x02,
0xF2,0x92,0x92,0xF2,0x92,0x92,0xF2,0x02, /*'画',35*/
0x40,0x4F,0x48,0x48,0x4F,0x48,0x48,0x4F,0x40,0x40,0x7F,0x00,0x02,0xF2,0x92,0x92,
0xF2,0x92,0x92,0xF2,0x02,0x02,0xF2,0x02, /*'画',36*/
0x40,0x00,0x4F,0xFE,0x40,0x02,0x40,0x02,0x4F,0xF2,0x49,0x12,0x49,0x12,0x4F,0xF2,
0x49,0x12,0x49,0x12,0x4F,0xF2,0x40,0x02, /*'画',37*/
0x40,0x02,0x4F,0xF2,0x49,0x12,0x49,0x12,0x4F,0xF2,0x49,0x12,0x49,0x12,0x4F,0xF2,
0x40,0x02,0x40,0x02,0x4F,0xFE,0x40,0x00, /*'画',38*/
0x00,0x02,0x7F,0xF2,0x40,0x02,0x40,0x02,0x4F,0xF2,0x48,0x92,0x48,0x92,0x4F,0xF2,
0x48,0x92,0x48,0x92,0x4F,0xF2,0x40,0x02, /*'画',39*/               
0x40,0x02,0x4F,0xF2,0x48,0x92,0x48,0x92,0x4F,0xF2,0x48,0x92,0x48,0x92,0x4F,0xF2,
0x40,0x02,0x40,0x02,0x7F,0xF2,0x00,0x02, /*'画',40*/               
      
};
//========================================================================
// 函数: void LCD_DataWrite(unsigned int Data)
// 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中
// 参数: Data 写入的数据
//========================================================================
void LCD_DataWrite(unsigned char Dat)//,_Fill_Dot_LCD
{
unsigned char Num;
LCD_CS = 0;
LCD_A0 = 1;
for(Num=0;Num<8;Num++)
{
if((Dat&0x80) == 0)
LCD_SDI = 0;
else LCD_SDI = 1;
Dat = Dat << 1;
LCD_CLK = 0;
LCD_CLK = 1;
}
LCD_CS = 1;
}
//---------------------------------------------
//LCD_set_XY: 设置LCD坐标函数
//输入参数:X:0-83Y:0-5
//编写日期:20080918
//---------------------------------------------
void LCD_setXY(unsigned char X, unsigned char Y)
{
      unsigned char gao,di;
      LCD_RegWrite(0xB0 | Y); //页

      X = X + 4;               //液晶是0-131的,我们只用到0-127,所以当倒序的方法时(131-0),实际上是127-0,
      gao = X & 0xf0;
      gao = gao >> 4;
      di = X & 0x0f;
      LCD_RegWrite(0x10 | gao);//set Column address MSB   
    LCD_RegWrite(0x00 | di);//set column address LSB

}   

/*---------------------------------------------
LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类
输入参数:c:显示的字符;
-----------------------------------------------*/
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
{
      unsigned char i;         
      
      LCD_setXY(row*6, page);// 列,页
      for(i=0; i<12;i++)
      {
               LCD_DataWrite(hanzi);
      }
      
    LCD_setXY(row*6, page+1);// 列,页
      for(i=12; i<24;i++)
      {
               LCD_DataWrite(hanzi);
      }      
}


大明狐 发表于 2024-2-24 13:28:01

wpppmlah 发表于 2024-2-24 11:49
测试了字库生成工具,
原来用的是PCtoLCD生成的,使用STC的字库生成工具,没有成功,
索性把同一个字所有的 ...
最好能看一下您的屏幕驱动里的显示汉字的代码,看下是什么读取顺序
就目前描述推测,发现几个问题:





第一,“画”字上8个像素下两行颠倒
第二,“画”字上下两行里的像素点上下颠倒



这两个现象大概跟文字显示代码里的读取顺序有关
以及那个“低位在前”,
PCtoLCD里的是“取模走向”,就是从每一竖列的低位开始取,从上向下;
STC的工具里是“存储顺序”,也就是数据保存的时候,8位二进制数里,
从左到右是先高位还是先低位。取模走向是“从上向下”跟PCtoLCD一样。
所以STC里的“存储顺序”应该选“高位在前”。




第三,“画”字不完整
看不到PCtoLCD主界面的字宽设置,推测应该也是12
STC的这里应该是还不完善,没有像图片取模里那样可以动态调整调整字模尺寸的功能,
生成的字模,只能是宽高一样的,所以把点阵宽度改成12之后,相当于只取出了前12列
而在PCtoLCD里可以通过设置字符宽度,把文字挤成12宽,从而可以取出完整的字模






通过以上推断,模拟了一下显示12×16字符的代码,用PCtoLCD确实可以正确显示出完整的文字




或者缩小字体大小,让文字完整




===============================================================
所以,可以建议一下STC能不能加上 文字尺寸 也能调整的功能





wpppmlah 发表于 2024-2-25 09:14:53

大明狐 发表于 2024-2-24 13:28
最好能看一下您的屏幕驱动里的显示汉字的代码,看下是什么读取顺序
就目前描述推测,发现几个问题:



感谢你的分析,我把代码片断和代码文件已经贴上来了。

大明狐 发表于 2024-2-25 19:14:49

wpppmlah 发表于 2024-2-25 09:14
感谢你的分析,我把代码片断和代码文件已经贴上来了。
代码看到了,的确是列行式顺着读取的。
看里面的字模,是字体大小9的吧,12×12的,也挺好看。
那么原因就是上面说的那几个原因了,一个是高位在前还是低位在前的问题,
另一个是没有像PCtoLCD那样能挤压字体尺寸的功能。


wpppmlah 发表于 2024-2-26 09:17:52

原来是高位在前   和 PCtoLCD中的低位在前相对应。
在STC中使用高位在前,就正常显示了。感谢楼上解惑!



神农鼎 发表于 2024-2-29 22:31:20

下面是我们荣誉版主再次体验 STC-ISP V6.93 版的
【字库生成】文字取模工具的补充文字说明和补充视频

【新提醒】体验一下STC-ISP V6.93 版的【字库生成】文字取模 工具的新增功能 - 问题反馈:ISP软件/头文件/单片机数据手册规格书等 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)



STC-ISP V6.93 来了
Ver6.93 (2024-2-29)
1. 解决主窗口串口号和串口助手串口号相冲突时
   ISP下载会失败的问题
2. 字库生成工具新增如下新功能
   (增加前置索引数据格式)
   (增加滤重复字符功能)
   (增加自动排序功能)
   (增加通过移动文字输入框中的光标动态显示效果)
   (增加自定义字体宽度和高度功能)
   (增加预览全部功能)
   (增加手工模式,可自行设计和修改点阵)
   (增加自定义输出数据格式功能)

















上面是新版本软件针对字库工具,新增的功能



dnajx 发表于 2024-3-1 09:10:04

字模小软件,俺也刚刚完成。不过功能不多,目前只有16*16、32*32和64*64

神农鼎 发表于 2024-3-1 10:16:22

dnajx 发表于 2024-3-1 09:10
字模小软件,俺也刚刚完成。不过功能不多,目前只有16*16、32*32和64*64

帮我们多提提建议,【继续远航】

dnajx 发表于 2024-3-3 06:40:21

本帖最后由 dnajx 于 2024-3-3 06:41 编辑

C:\Users\Administrator\Desktop\123.jpg

21cnsound 发表于 2024-3-3 09:05:07

STC-ISP越来越好用,越来越方便了{:4_174:}
页: 1 2 [3] 4 5
查看完整版本: 字库生成 / 图片取模, 视频教程来了 !AI-ISP 取模工具体验 NICE !