你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

KS1080驱动:如何把汉字内码作为函数参数传递?

[复制链接]
caizhiwei 发布时间:2015-7-8 20:56
HG1286416
' z, ?# W8 K. P128×64点阵;. G5 j) j$ q% Z# [% h
模块尺寸: 54.0×50.0mm;
4 `' ^9 i0 v" Y5 l3 a显示尺寸:43.5×29.0mm;2 |# f( ^' j8 j+ z( P! f7 X
3.3V工作;控制器为SBN0064G 兼容KS0108(不带字库)) c' `  j* w/ J' L' A, x% S3 \, l5 Z4 S0 I
http://www.chinalcdmodule.com/3.3v-lcd-module---hg1286416.html
) y8 o( C# k  U7 \$ L2 mhttp://www.chinalcdmodule.com/upfiles/HG1286416.pdf) m# @4 M" L+ \: m; \
1.12*16字体未开发9 O' y$ Z' f  ]
2.24*14字体未开发( H, M# A( y; a
  1. static u8 *FindGBChar(u8 *str)
    # ~/ M" i! ?1 a% L/ D
  2. {9 N& r3 [8 B5 ^5 B* N
  3.   u16 i;
    5 ^# P8 _' t/ h5 F6 E
  4.   u16 gbcharNum=25;  //动态结构体数组中汉字的个数
    ) O1 @% }9 q7 d; o8 S) w
  5.   //求结构体数组元素个数的方法:(sizeof(GBCHR_16))/(sizeof(GBCHR)),但编译器报错
    - k. y) @2 [6 M. I* O# J4 e2 E, @
  6.   for(i=1; i<gbcharNum; i++)
    $ o6 r. i5 q! [. G1 F
  7.   {
    , N/ K* Z& Z% W0 ~
  8.     if(*str==GBCHR_16[i].chr[0] && *(str+1)==GBCHR_16[i].chr[1]). B/ v, @9 x. P& E5 [
  9.       return (u8 *)GBCHR_16[i].dataTab;; c; t0 v) S" n5 }( D7 N
  10.   }
    6 C2 b+ i7 x1 o3 x
  11.   return (u8 *)GBCHR_16[0].dataTab; //字库中没有要找的字,则返回第一个字模
    " O2 D/ D# V0 u6 v
  12. }6 W& S4 i" E+ _: w$ n
  13. 8 g- [+ X0 d8 ^$ ?, I* k" m
  14. 1 \# O& G0 s$ u% N
  15. /*******************************************************************************3 B$ d& d) i1 }# \# F
  16. * 函数名:LCD_print_1632Num
    - i+ F( j& L' I
  17. * 说明:液晶字符输出字符(16*32字体)
    6 P, J# l# g" Z) s
  18.       row: 0,1,2,3,4(5 lines cross)
    $ [/ V2 b+ e/ ], N
  19.       column: 0~127(列) column=iner_column*16   
    - }. H. H' [# P- V
  20. * 输入参数:reverse=0:common display reverse=1: reverse disp' V; h2 o8 B! S+ D, c3 S; ^, X+ r/ d
  21. * 输出参数:
      l+ \9 w, E% ?
  22. *******************************************************************************/
      g* U. j+ L% j5 |4 n
  23. void LCD_print_1632Num(unsigned char row, unsigned char column,  u8 num,u8 reverse)& m/ e* b& Z& m1 h
  24. {
    0 {; e5 }& z+ \! V  M
  25.     DispScreen(16,32,row,column,digitalTab1_16x32[num], reverse);
    $ t( u* o4 y) k: A5 J: N" i
  26. }
    9 d3 u9 i3 _3 A; a$ Z8 n* x
  27. ( a" v5 f! A. A6 [

  28. 0 ]# Q1 \' z  B  o$ [- y# F7 y8 |: S
  29. /*******************************************************************************
    9 d8 G- X0 D8 Z/ _1 n
  30. * 函数名:LCD_print_1616CNChar
    + i% y4 x! \9 j; ^1 W
  31. * 说明:液晶字符输出汉字(16*16)
    9 V4 U5 x: [- W& y  @$ B" A
  32.       row: 0,2,4,6(4 lines)  row*2=page(0~7),) @8 |9 \- `2 T8 H$ a
  33.       column: 0~127(列) column=iner_column*16 每行最多显示8个1616汉字       0 N2 V! O- v, w, h4 |
  34. * 输入参数:reverse=0:common display reverse=1: reverse disp8 X# G+ L9 j3 Y5 v
  35. * 输出参数:
    ' O! C1 I' \: D  t) i  P9 a
  36. *******************************************************************************/3 j* Y+ O. q, \: |9 v
  37. void LCD_print_1616CNChar(unsigned char row, unsigned char column,  u8 *str,u8 reverse)# X4 g' Z, I0 u. P; |# `
  38. {
    8 y$ V8 W) {/ K- O8 J6 s
  39.    while(*str!='\0')
    : R* g! ^& j+ a0 k& h" Q
  40.   {  
    : J0 M5 c5 @1 L' f: z* d4 T5 D
  41.       DispScreen(16,16,row,column,FindGBChar(str), reverse);      
    - T0 }6 c, F9 |/ C0 j
  42.       str+=2;
    ( \% N3 D. [3 X% I7 k
  43.       column+=16;   * i: q; B* P7 m) z/ l0 I
  44.   }
    + i/ W, B& Y- w8 B) O! I
  45.      
    ) X, [4 F; K& E% q; t) A% u
  46. }7 S7 f* F$ G! l1 w
  47. " s3 G' A+ o, ]7 T$ d- }
  48. //结构体数组+ k: C9 ?( A9 p! ~4 u( |
  49. //取码规则:PCtoLCD2002,(逆向)低位在前, 列行扫描, 阴码(1-亮, 0-灭)
    / _% E& B" T7 @$ g4 B
  50. //LcmZimo.exe:从左到右从上到下,纵向8点下高位* q7 s* V. j8 t! v8 @
  51. const GBCHR GBCHR_16[] =3 \5 b/ M% S7 l: p! X( z
  52. {
    ) G1 C! D5 Y6 I9 U0 c4 J" D

  53. 8 s/ B/ i# `/ {# P) `; h- Q" {
  54. 0x00,0x00, /*每个汉字内码占用2字节,备用,移植时无需改动*/
    . r( x) U8 m6 Q0 k; `: {5 V* |
  55.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    & \: f! Z1 J: T0 H" k: O1 d8 g
  56.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 y2 v2 L! l  Y: P" _
  57.       0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
    " a: @8 J% {$ _2 z
  58.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,   
    / T+ E, {8 ^& U! N
  59.        
    - ]" G6 z+ g6 O  O- h9 D( B
  60. "自", 0x00,0x00,0x00,0xF8,0x48,0x4C,0x4A,0x49,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
    : z$ _& z+ f9 Y7 Z# t5 {1 L
  61.       0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,0x00,
    * e8 Y' |; Y2 p2 I
  62. * E( F$ g: G6 K6 |
  63. "手", 0x00,0x04,0x24,0x24,0x24,0x24,0x24,0xFC,0x22,0x22,0x22,0x33,0x22,0x00,0x00,0x00,
    7 d: @; B7 y2 L' |' i. v3 N, y
  64.       0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x03,0x02,0x00,
    7 Q+ D' q5 t2 a
  65. 2 y" E& S0 m5 ?2 {) p" u1 b
  66. "动", 0x20,0x24,0x24,0xE4,0x26,0x34,0x20,0x10,0x10,0xFF,0x10,0x10,0x10,0xF8,0x10,0x00,
    & X0 B+ r# P' L! b' y
  67.       0x08,0x1C,0x0B,0x08,0x08,0x8A,0x4C,0x30,0x0C,0x03,0x40,0x80,0x40,0x3F,0x00,0x00,/ `8 e/ Y3 F  [4 i' u
  68. & m8 o/ _% Y. g
  69. "模", 0x10,0x10,0xD0,0xFF,0x94,0x14,0xE4,0xBF,0xA4,0xA4,0xA4,0xBF,0xF4,0x26,0x04,0x00,1 k/ H* [: l0 Y6 D: G, p; V( y
  70.       0x04,0x03,0x00,0xFF,0x08,0x89,0x8B,0x4A,0x2A,0x1E,0x2A,0x2A,0x4B,0xC8,0x48,0x00,5 V; c! h& P& z1 C0 Z' w

  71. ; I$ Y% v8 \2 j
  72. "式", 0x10,0x10,0x90,0x90,0x90,0x90,0x90,0x10,0xFF,0x10,0x12,0x14,0x10,0x18,0x10,0x00,
    9 F0 M4 S1 E3 M2 w% a) k2 C
  73.       0x00,0x20,0x60,0x20,0x1F,0x10,0x10,0x08,0x01,0x06,0x18,0x20,0x40,0x80,0x70,0x00,
    $ L. [) P+ ^. l  R

  74. & G8 Z' f* k; r' O# Z" l/ M6 Z
  75. "开", 0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x83,0xC2,0x80,0x00,$ U" g$ J7 S( _" b
  76.       0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
    * `4 M- Z( G. B+ b) t$ Z

  77. 7 F+ U* u$ x, h. o) q
  78. "启", 0x00,0x00,0x00,0xFC,0x44,0x44,0x44,0x45,0x46,0x44,0x44,0x44,0x44,0x7E,0x04,0x00,% j; _4 c4 k% t+ f
  79.       0x40,0x20,0x18,0x07,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x02,0x00,
    5 Y' D* e0 X) f: f/ N4 p0 z7 f0 Z! W

  80. / R4 |3 O3 N$ C0 J
  81. "关", 0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,# }' r9 T: a3 J) \: O
  82.       0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
    / @0 Y% a9 J  ~+ Z8 s! V: w& F0 i
  83. ' {- _  p; Z( ~8 q6 G
  84. "闭", 0x00,0xF8,0x01,0x22,0x26,0x20,0x22,0xA2,0xFA,0x22,0x32,0x22,0x02,0xFF,0x02,0x00,
    / x, v9 C. [% n# ~
  85.       0x00,0xFF,0x00,0x08,0x04,0x02,0x21,0x40,0x3F,0x00,0x00,0x40,0x80,0x7F,0x00,0x00% o4 h; m5 g  T1 u2 q: G+ l
  86. //<- end                # w, R( }  e+ A$ d
  87. };
    & F) I. D* q: q
复制代码

) E9 Y! L+ O- n( j QQ图片20150708204540.jpg QQ图片20150708204547.jpg
3 X+ P- ~! @. N* y$ I3 V1 V) c8 g. t0 ~1 x. b" G8 Y" Y
赞 收藏 评论10 发布时间:2015-7-8 20:56

举报

10个回答
caizhiwei 回答时间:2015-7-8 21:01:19

% X( C4 R% M( ^: }bsp_lcd12864.c! @: v, }( Y( f# N
bsp_lcd12864.h: N6 x: R2 F& G& ~  l0 y; E9 t) i- N
font.c/ D; A# v, S* q: K8 [1 d
lcd2864_SRC.zip (11.44 KB, 下载次数: 29)
caizhiwei 回答时间:2015-7-8 21:01:47
QQ图片20150708204530.jpg
caizhiwei 回答时间:2015-7-8 21:03:24
以上代码是基于stm32的,其他单片机均可方便移植。
mark0668 回答时间:2015-7-8 22:43:55
谢谢分享.
星辰一方 回答时间:2015-7-9 08:35:52
没接触过这种屏,哪上面用的比较多呀楼主?
JackieLaura 回答时间:2015-7-9 11:14:29
界面做的不错3 I: b$ I- r$ @/ q5 R8 U
stary666 回答时间:2015-7-9 11:17:49
看看,,,,,,,,,,
caizhiwei 回答时间:2015-7-9 15:16:11
星辰一方 发表于 2015-7-9 08:35
4 {2 d, Y: b; b2 E. M没接触过这种屏,哪上面用的比较多呀楼主?
1 M6 K% ^& w/ D5 x" I) y; v
LCD12864,工厂里的机器上用的较多~
埃斯提爱慕 回答时间:2015-7-9 23:00:44
提示: 作者被禁止或删除 内容自动屏蔽
112207301219 回答时间:2015-7-10 00:30:32
不错,学习学习。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版