找回密码
 立即注册
楼主: 大明狐

字库生成 / 图片取模, 视频教程来了 !AI-ISP 取模工具体验 NICE !

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:505
  • 最近打卡:2025-05-01 06:09:51

15

主题

154

回帖

404

积分

中级会员

积分
404
发表于 2024-2-24 11:49:54 | 显示全部楼层
测试了字库生成工具,
原来用的是PCtoLCD生成的,使用STC的字库生成工具,没有成功,
索性把同一个字所有的扫描模式都生成出来
居然没有一个能显示成功的,下图是两个软件的配置,是哪里不对了?

截图202402241154558896.jpg



显示代码:
  1. unsigned char code hanzi[]=
  2. {
  3. .........
  4. 0xFD,0x01,0xFD,0x25,0x25,0xFD,0x25,0x25,0xFD,0x01,0xFD,0x00,0x07,0x04,0x05,0x05,
  5. 0x05,0x05,0x05,0x05,0x05,0x04,0x0F,0x00, /*'画',23*/
  6. 0x00,0xF0,0x10,0x10,0x10,0x1F,0x12,0x12,0x12,0xF2,0x02,0x00,0x08,0x05,0x01,0x05,
  7. 0x09,0x01,0x05,0x09,0x01,0x05,0x08,0x00, /*'点',24*/
  8. 0x00,0x0F,0xFF,0x00,0x00,0x00,0x4F,0xE4,0x92,0x49,0x24,0xFE,0x49,0x24,0x92,0x49,
  9. 0x24,0xFE,0x40,0x04,0x00,0x7F,0xF0,0x00, /*'画',25*/
  10. 0x00,0x0F,0xFF,0x00,0x00,0x00,0x7F,0x24,0x92,0x49,0x27,0xF2,0x49,0x24,0x92,0x49,
  11. 0x27,0xF2,0x00,0x20,0x02,0xFF,0xE0,0x00, /*'画',26*/               
  12. 0x00,0x07,0xFF,0x40,0x04,0x00,0x4F,0xE4,0x92,0x49,0x24,0x92,0x4F,0xE4,0x92,0x49,
  13. 0x24,0xFE,0x00,0x00,0x00,0xFF,0xF0,0x00, /*'画',27*/               
  14. 0x00,0x0F,0xFE,0x00,0x20,0x02,0x7F,0x24,0x92,0x49,0x24,0x92,0x7F,0x24,0x92,0x49,
  15. 0x27,0xF2,0x00,0x00,0x00,0xFF,0xF0,0x00, /*'画',28*/                  
  16. 0x00,0xFF,0x00,0x00,0x4F,0x49,0x49,0x4F,0x49,0x49,0x49,0x4F,0x40,0x40,0x7F,0x00,
  17. 0x0F,0x00,0xE2,0x2E,0x22,0x2E,0x00,0xF0, /*'画',29*/                        
  18. 0x00,0xFF,0x00,0x00,0x7F,0x49,0x49,0x7F,0x49,0x49,0x49,0x7F,0x00,0x00,0xFF,0x00,
  19. 0x0F,0x00,0x22,0x22,0x22,0x22,0x22,0xE0, /*'画',30*/               
  20. 0x00,0x7F,0x40,0x40,0x4F,0x49,0x49,0x49,0x4F,0x49,0x49,0x4F,0x00,0x00,0xFF,0x00,
  21. 0x0F,0x00,0xE2,0x22,0xE2,0x2E,0x00,0xF0, /*'画',31*/
  22. 0x00,0xFF,0x00,0x00,0x7F,0x49,0x49,0x49,0x7F,0x49,0x49,0x7F,0x00,0x00,0xFF,0x00,
  23. 0x0E,0x22,0x22,0x22,0x22,0x22,0x00,0xF0, /*'画',32*/               
  24. 0x40,0x4F,0x40,0x40,0x4F,0x49,0x49,0x4F,0x49,0x49,0x4F,0x40,0x00,0xFE,0x02,0x02,
  25. 0xF2,0x12,0x12,0xF2,0x12,0x12,0xF2,0x02, /*'画',33*/               
  26. 0x40,0x4F,0x49,0x49,0x4F,0x49,0x49,0x4F,0x40,0x40,0x4F,0x40,0x02,0xF2,0x12,0x12,
  27. 0xF2,0x12,0x12,0xF2,0x02,0x02,0xFE,0x00, /*'画',34*/
  28. 0x00,0x7F,0x40,0x40,0x4F,0x48,0x48,0x4F,0x48,0x48,0x4F,0x40,0x02,0xF2,0x02,0x02,
  29. 0xF2,0x92,0x92,0xF2,0x92,0x92,0xF2,0x02, /*'画',35*/
  30. 0x40,0x4F,0x48,0x48,0x4F,0x48,0x48,0x4F,0x40,0x40,0x7F,0x00,0x02,0xF2,0x92,0x92,
  31. 0xF2,0x92,0x92,0xF2,0x02,0x02,0xF2,0x02, /*'画',36*/
  32. 0x40,0x00,0x4F,0xFE,0x40,0x02,0x40,0x02,0x4F,0xF2,0x49,0x12,0x49,0x12,0x4F,0xF2,
  33. 0x49,0x12,0x49,0x12,0x4F,0xF2,0x40,0x02, /*'画',37*/
  34. 0x40,0x02,0x4F,0xF2,0x49,0x12,0x49,0x12,0x4F,0xF2,0x49,0x12,0x49,0x12,0x4F,0xF2,
  35. 0x40,0x02,0x40,0x02,0x4F,0xFE,0x40,0x00, /*'画',38*/
  36. 0x00,0x02,0x7F,0xF2,0x40,0x02,0x40,0x02,0x4F,0xF2,0x48,0x92,0x48,0x92,0x4F,0xF2,
  37. 0x48,0x92,0x48,0x92,0x4F,0xF2,0x40,0x02, /*'画',39*/               
  38. 0x40,0x02,0x4F,0xF2,0x48,0x92,0x48,0x92,0x4F,0xF2,0x48,0x92,0x48,0x92,0x4F,0xF2,
  39. 0x40,0x02,0x40,0x02,0x7F,0xF2,0x00,0x02, /*'画',40*/               
  40.         
  41. };
  42. //========================================================================
  43. // 函数: void LCD_DataWrite(unsigned int Data)
  44. // 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中
  45. // 参数: Data 写入的数据  
  46. //========================================================================
  47. void LCD_DataWrite(unsigned char Dat)//,_Fill_Dot_LCD
  48. {
  49. unsigned char Num;
  50. LCD_CS = 0;
  51. LCD_A0 = 1;
  52. for(Num=0;Num<8;Num++)
  53. {
  54.   if((Dat&0x80) == 0)
  55.   LCD_SDI = 0;
  56.   else LCD_SDI = 1;
  57.   Dat = Dat << 1;
  58.   LCD_CLK = 0;
  59.   LCD_CLK = 1;
  60. }
  61. LCD_CS = 1;
  62. }
  63. //---------------------------------------------
  64. //LCD_set_XY: 设置LCD坐标函数
  65. //输入参数:X:0-83  Y:0-5
  66. //编写日期:20080918
  67. //---------------------------------------------
  68. void LCD_setXY(unsigned char X, unsigned char Y)
  69. {
  70.         unsigned char gao,di;
  71.         LCD_RegWrite(0xB0 | Y); //页
  72.         X = X + 4;                 //液晶是0-131的,我们只用到0-127,所以当倒序的方法时(131-0),实际上是127-0,
  73.         gao = X & 0xf0;
  74.         gao = gao >> 4;
  75.         di = X & 0x0f;
  76.         LCD_RegWrite(0x10 | gao);  //set Column address MSB   
  77.     LCD_RegWrite(0x00 | di);  //set column address LSB
  78. }   
  79. /*---------------------------------------------
  80. LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类
  81. 输入参数:c:显示的字符;
  82. -----------------------------------------------*/
  83. void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
  84. {
  85.         unsigned char i;         
  86.         
  87.         LCD_setXY(row*6, page);// 列,页
  88.         for(i=0; i<12;i++)
  89.         {
  90.                  LCD_DataWrite(hanzi[c*24+i]);
  91.         }
  92.         
  93.     LCD_setXY(row*6, page+1);// 列,页
  94.         for(i=12; i<24;i++)
  95.         {
  96.                  LCD_DataWrite(hanzi[c*24+i]);
  97.         }        
  98. }
复制代码


截图202402241146003264.jpg
截图202402241146202998.jpg

12864.c

31.92 KB, 下载次数: 117

点评

最好能看一下您的屏幕驱动里的显示汉字的代码,看下是什么读取顺序 就目前描述推测,发现几个问题: 第一,“画”字上8个像素下两行颠倒 第二,“画”字上下两行里的像素点上下颠倒 这两个现象大概跟文字显  详情 回复 发表于 2024-2-24 13:28
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-2-24 13:28:01 | 显示全部楼层
wppp*** 发表于 2024-2-24 11:49
测试了字库生成工具,
原来用的是PCtoLCD生成的,使用STC的字库生成工具,没有成功,
索性把同一个字所有的 ...

最好能看一下您的屏幕驱动里的显示汉字的代码,看下是什么读取顺序
就目前描述推测,发现几个问题:





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



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

1.1顺序.jpg


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

12不全.jpg


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

1.3正确3.jpg


或者缩小字体大小,让文字完整
12全1.jpg
12全.jpg


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





1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:505
  • 最近打卡:2025-05-01 06:09:51

15

主题

154

回帖

404

积分

中级会员

积分
404
发表于 2024-2-25 09:14:53 | 显示全部楼层
大*** 发表于 2024-2-24 13:28
最好能看一下您的屏幕驱动里的显示汉字的代码,看下是什么读取顺序
就目前描述推测,发现几个问题:

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

点评

代码看到了,的确是列行式顺着读取的。看里面的字模,是字体大小9的吧,12×12的,也挺好看。 那么原因就是上面说的那几个原因了,一个是高位在前还是低位在前的问题,另一个是没有像PCtoLCD那样能挤压字体尺寸的功  详情 回复 发表于 2024-2-25 19:14
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-2-25 19:14:49 | 显示全部楼层
wppp*** 发表于 2024-2-25 09:14
感谢你的分析,我把代码片断和代码文件已经贴上来了。

代码看到了,的确是列行式顺着读取的。
看里面的字模,是字体大小9的吧,12×12的,也挺好看。
那么原因就是上面说的那几个原因了,一个是高位在前还是低位在前的问题,

另一个是没有像PCtoLCD那样能挤压字体尺寸的功能。


能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:505
  • 最近打卡:2025-05-01 06:09:51

15

主题

154

回帖

404

积分

中级会员

积分
404
发表于 2024-2-26 09:17:52 | 显示全部楼层
原来是高位在前   和 PCtoLCD  中的低位在前相对应。
在STC中使用高位在前,就正常显示了。感谢楼上解惑!
对比.png


点评

对,一个是取模走向的顺序,一个是存储顺序,正好是相反的  发表于 2024-2-26 09:22
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-2-29 22:31:20 | 显示全部楼层
下面是我们荣誉版主再次体验 STC-ISP V6.93 版的
字库生成】文字取模工具的补充文字说明补充视频
截图202403021334598908.jpg
【新提醒】体验一下STC-ISP V6.93 版的【字库生成】文字取模 工具的新增功能 - 问题反馈:ISP软件/头文件/单片机数据手册规格书等 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


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

截图202402292350495937.jpg

截图202402292228553043.jpg

截图202402292229136914.jpg

截图202402292229299527.jpg

截图202402292229458678.jpg

截图202402292230205589.jpg

截图202402292230334493.jpg

截图202402292350151317.jpg

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



截图202402292228348829.jpg

stc-isp-15xx-v6.93.zip

6.11 MB, 下载次数: 255

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-3-1 09:10:04 | 显示全部楼层
字模小软件,俺也刚刚完成。不过功能不多,目前只有16*16、32*32和64*64

点评

帮我们多提提建议,【继续远航】  详情 回复 发表于 2024-3-1 10:16
 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-3-1 10:16:22 | 显示全部楼层
dna*** 发表于 2024-3-1 09:10
字模小软件,俺也刚刚完成。不过功能不多,目前只有16*16、32*32和64*64

帮我们多提提建议,【继续远航】
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-3-3 06:40:21 | 显示全部楼层
本帖最后由 dnajx 于 2024-3-3 06:41 编辑

C:\Users\Administrator\Desktop\123.jpg
123.jpg
 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

积分
2971
发表于 2024-3-3 09:05:07 | 显示全部楼层
STC-ISP越来越好用,越来越方便了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:41 , Processed in 0.244280 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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