cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2595|回复: 4

[fx-9860/9750] 非位图显示点阵字库中文显示

[复制链接]
发表于 2023-3-22 23:20:39 | 显示全部楼层 |阅读模式

基于上次的帖子 基于HZK16和HZK12的点阵字体显示体验,不过这次是用C语言实现罢了
https://www.cncalc.org/thread-25299-1-1.html

可知如何采用位运算的方法进行像素内容显示,只需要把每个字节与相应的字节位比较即可

比如需要显示一行数据,十进制是6,二进制是110 ,补位后是0110
1110
可以分别与  十进制数 8 二进制数 1000
                  十进制数 4 二进制数 0100
                  十进制数 2 二进制数 0010
                  十进制数 1 二进制数 0001

比较 获得每个位的信息

方法比较直观,但是考虑到9860内存只有64K,中文字库不可能直接读到内存中,文件需要一直保持在打卡位置,当应用结束后关闭
  1. int draw_font(int file_handle,char a1,char a2,char x,char y)
  2. {
  3.     unsigned char chunk[24];
  4.     int i,j,k,n,offset;
  5.     unsigned char data8[8] = {128,64,32,16,8,4,2,1};
  6.     offset = (94*a1+a2)*24;
  7.     Bfile_ReadFile(file_handle, chunk, 24, offset);
  8.    
  9.     for(j=0;j<12;j++){
  10.         for(k=0;k<2;k++){
  11.             n = chunk[j*2+k];
  12.             for (i=0;i<9;i++){
  13.                 if (n>=data8[i]){
  14.                     n = n - data8[i];
  15.                     Bdisp_SetPoint_VRAM(x+i+8*k,y+j,1);
  16.                 }
  17.             }
  18.         }
  19.     }
  20.     Bdisp_PutDisp_DD();
  21. }
复制代码


ch1.png

源代码在此
CHV.c (3.98 KB, 下载次数: 67)

 楼主| 发表于 2023-3-22 23:22:56 | 显示全部楼层
https://www.xgjzx.cn/gbk 转码工具在此
发表于 2023-4-3 08:41:40 | 显示全部楼层
厉害啊。
发表于 2023-7-14 22:46:29 | 显示全部楼层
具体怎么弄,能说具体点吗,大神
发表于 2024-2-5 08:27:54 | 显示全部楼层
zqbxcx 发表于 2023-7-14 22:46
具体怎么弄,能说具体点吗,大神

没看明白,没有解释
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-21 16:55 , Processed in 0.064027 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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