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

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

[复制链接]
caizhiwei 发布时间:2015-7-8 20:56
HG1286416
, d- n/ \$ y4 X" p2 G128×64点阵;
2 M. t7 [4 a2 G模块尺寸: 54.0×50.0mm;. P9 C4 \6 [! }
显示尺寸:43.5×29.0mm;4 ~& D' C+ I/ j) `
3.3V工作;控制器为SBN0064G 兼容KS0108(不带字库)
. N! B4 F6 [# U# e5 o* x& hhttp://www.chinalcdmodule.com/3.3v-lcd-module---hg1286416.html
0 Z6 {( c, T+ `3 g( n2 i7 U( thttp://www.chinalcdmodule.com/upfiles/HG1286416.pdf$ h. t. L  ~9 s1 W
1.12*16字体未开发
/ L7 {5 A% c- T6 i% y% ]2.24*14字体未开发
$ H6 V6 v* _; q
  1. static u8 *FindGBChar(u8 *str)& `1 b" E7 C& Q$ N! a, N, F
  2. {
    " _/ \4 w9 K+ A1 Z
  3.   u16 i;' `7 A! A2 j: V
  4.   u16 gbcharNum=25;  //动态结构体数组中汉字的个数" d1 s, M1 X& h. i+ ], k2 W2 n
  5.   //求结构体数组元素个数的方法:(sizeof(GBCHR_16))/(sizeof(GBCHR)),但编译器报错- s" d. y% m* v( y! D$ U# ?
  6.   for(i=1; i<gbcharNum; i++)
    ; B7 Y# Z+ @. h+ T  E3 I6 R/ k3 t0 n
  7.   {4 X; p  `; Q7 f) K- m$ r! ^
  8.     if(*str==GBCHR_16[i].chr[0] && *(str+1)==GBCHR_16[i].chr[1])' G% \+ k" V6 Y, {) ~% ~/ x: x
  9.       return (u8 *)GBCHR_16[i].dataTab;
    ' O! A: q: j0 l& @
  10.   }8 x6 i, c6 b: r  M3 e0 |0 g
  11.   return (u8 *)GBCHR_16[0].dataTab; //字库中没有要找的字,则返回第一个字模
    : L' i) r: l! r  j3 F7 J
  12. }
    / ~1 l  s* M' ~8 N* E& R/ I3 w

  13. / ~  {  d$ S! m2 F

  14.   M  l; G0 F- m- }" ~$ z5 o& b
  15. /*******************************************************************************
    & C6 [$ e/ ]; Y. w# D
  16. * 函数名:LCD_print_1632Num! z6 z0 U3 J! c3 u7 O' Y
  17. * 说明:液晶字符输出字符(16*32字体)
    % S  k  N7 n1 Q6 |# [/ T
  18.       row: 0,1,2,3,4(5 lines cross)
    & L- v- |2 ]  s7 L3 R# F. g
  19.       column: 0~127(列) column=iner_column*16   & H4 z& b# G9 S7 b4 G+ v
  20. * 输入参数:reverse=0:common display reverse=1: reverse disp7 o3 D$ T, o1 Y& L' f2 i
  21. * 输出参数:" v& [8 C6 m# H/ }! t4 P$ u
  22. *******************************************************************************/
    # e. x: n) q0 W6 a
  23. void LCD_print_1632Num(unsigned char row, unsigned char column,  u8 num,u8 reverse)7 R* b8 _6 t( O+ t. Z
  24. {: F$ t! g5 T9 m9 y/ R# {) g8 N7 M
  25.     DispScreen(16,32,row,column,digitalTab1_16x32[num], reverse);, }' W3 n4 i+ ~5 H
  26. }7 z6 \1 s+ H" T1 ?' p2 P

  27. $ I$ o# B' ?  }& c1 p

  28. , h9 l3 L" w* m; x4 A
  29. /*******************************************************************************
    - q' f7 ?' \2 D5 e: w
  30. * 函数名:LCD_print_1616CNChar9 e1 ?6 M9 \+ n' B( p$ V1 ~8 x
  31. * 说明:液晶字符输出汉字(16*16)
    5 I' X; Q' Q0 A9 `9 P+ [4 |) |
  32.       row: 0,2,4,6(4 lines)  row*2=page(0~7),9 ?6 b* j+ ^; |$ l
  33.       column: 0~127(列) column=iner_column*16 每行最多显示8个1616汉字      
    ! Z7 j; k# R: q# Q& N
  34. * 输入参数:reverse=0:common display reverse=1: reverse disp3 d; t% [7 N2 R; X$ Y
  35. * 输出参数:
    2 X+ E6 m  D: L& v6 A
  36. *******************************************************************************/
    % _* m9 F+ V$ D  ]5 ?! b8 `
  37. void LCD_print_1616CNChar(unsigned char row, unsigned char column,  u8 *str,u8 reverse)2 L. B' J) M  Z( {, E
  38. { 8 Q7 E; K: f' p( N' A: [
  39.    while(*str!='\0'). r' V; q8 p* k' F
  40.   {  
    5 }3 B7 p- k( ^4 |
  41.       DispScreen(16,16,row,column,FindGBChar(str), reverse);       6 q; w3 t3 ?* U* s5 ]% y0 U) n
  42.       str+=2;
      r! s" v+ E# o( T$ X. B; c
  43.       column+=16;   
    9 Y" l7 q, c; n5 W% H5 k
  44.   }4 \; I5 E. D' g( v- y' v# [- X7 o/ j
  45.      
    ' D* ~; @% }+ m; Q0 i
  46. }
    : q0 j7 D+ z5 Z% s" ?5 u& y- E
  47. ' n, e* B* {! N3 c/ t  p
  48. //结构体数组
    ; c' W  G4 O1 N' S
  49. //取码规则:PCtoLCD2002,(逆向)低位在前, 列行扫描, 阴码(1-亮, 0-灭)6 w( H: H1 b! R! Y% k3 m+ J/ S& h
  50. //LcmZimo.exe:从左到右从上到下,纵向8点下高位8 o; R/ E1 ?5 T3 r: e# ]) l1 G
  51. const GBCHR GBCHR_16[] =! g, i* x% s5 {5 G; Y
  52. {" E3 A) K" S3 x7 A

  53. : E, C5 i9 D; ]& u: G  \
  54. 0x00,0x00, /*每个汉字内码占用2字节,备用,移植时无需改动*// R( z* C& Z( k  |
  55.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,5 j; V) `5 A8 M8 J& k: C
  56.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    $ a3 t, u+ \. I' e) Z
  57.       0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
    * j' Y8 g! s9 `6 J7 C8 k) ~1 T
  58.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    : F9 z8 P& @% d3 A, W' H& z
  59.         / c" Y1 y; `9 A# R
  60. "自", 0x00,0x00,0x00,0xF8,0x48,0x4C,0x4A,0x49,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
    9 n. ~9 b& ~/ C3 x% }+ k0 ~
  61.       0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,0x00,8 g) }4 N0 }; l2 v  G0 D' l! J

  62. ' O  d6 c: }5 j  N5 V! x
  63. "手", 0x00,0x04,0x24,0x24,0x24,0x24,0x24,0xFC,0x22,0x22,0x22,0x33,0x22,0x00,0x00,0x00,8 u; N: Q- G. K9 B4 ?: J& h
  64.       0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x03,0x02,0x00,2 O5 H: M- A$ D3 x

  65. * i5 e* b$ e8 Z9 Q9 z' L. y/ s: x  s! b
  66. "动", 0x20,0x24,0x24,0xE4,0x26,0x34,0x20,0x10,0x10,0xFF,0x10,0x10,0x10,0xF8,0x10,0x00,
    & Q* L, x0 ~0 P4 e
  67.       0x08,0x1C,0x0B,0x08,0x08,0x8A,0x4C,0x30,0x0C,0x03,0x40,0x80,0x40,0x3F,0x00,0x00,
    " Z) C! r2 H2 s5 G( y( u

  68. % U  [7 E2 N; v, o8 t7 B
  69. "模", 0x10,0x10,0xD0,0xFF,0x94,0x14,0xE4,0xBF,0xA4,0xA4,0xA4,0xBF,0xF4,0x26,0x04,0x00,
    + {8 Y. y& W' I# R9 ]* l
  70.       0x04,0x03,0x00,0xFF,0x08,0x89,0x8B,0x4A,0x2A,0x1E,0x2A,0x2A,0x4B,0xC8,0x48,0x00,
    # [, Z+ w, N# f' Z. O1 [

  71. 7 O0 Y- _; d) k' H2 o
  72. "式", 0x10,0x10,0x90,0x90,0x90,0x90,0x90,0x10,0xFF,0x10,0x12,0x14,0x10,0x18,0x10,0x00," i1 Q, Y, ^8 J, y. t
  73.       0x00,0x20,0x60,0x20,0x1F,0x10,0x10,0x08,0x01,0x06,0x18,0x20,0x40,0x80,0x70,0x00,7 D4 ]; T( v, y8 v
  74. 2 H% ?9 j" D# F# M
  75. "开", 0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x83,0xC2,0x80,0x00,. V" x' p8 ^( C7 I2 q7 x
  76.       0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
    / y5 m  z6 D9 U8 @

  77. 7 B" K* ?- `" k$ \: U2 p
  78. "启", 0x00,0x00,0x00,0xFC,0x44,0x44,0x44,0x45,0x46,0x44,0x44,0x44,0x44,0x7E,0x04,0x00,
    5 G  Q9 m7 A$ w0 d, P6 A$ d6 B
  79.       0x40,0x20,0x18,0x07,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x02,0x00,. k# z6 b# ~8 x& ?7 z( ^6 [1 n

  80. * `0 y( I! f& N1 A0 k4 x* O
  81. "关", 0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,
    . n* L; \& T7 L( s
  82.       0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,& x; @; \3 Q, l- T& J5 j0 m
  83. / ]8 q8 G" c, s5 S+ v/ P
  84. "闭", 0x00,0xF8,0x01,0x22,0x26,0x20,0x22,0xA2,0xFA,0x22,0x32,0x22,0x02,0xFF,0x02,0x00,
    - t3 [8 a. y! |0 P3 p( S2 i
  85.       0x00,0xFF,0x00,0x08,0x04,0x02,0x21,0x40,0x3F,0x00,0x00,0x40,0x80,0x7F,0x00,0x002 S, s$ h) n1 d( `4 X0 d1 v  d. @
  86. //<- end               
    : E! A" }! P# m8 N- I% _
  87. };
    2 K6 ]% t1 D& @* X
复制代码
8 q3 A# J6 W  \) Z- K3 f- H, ~( i# u  b4 j
QQ图片20150708204540.jpg QQ图片20150708204547.jpg
0 S8 H. |; T3 A8 G3 Q' \
% T& y+ q( s$ y
收藏 评论10 发布时间:2015-7-8 20:56

举报

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

- D% u# j  U6 P  A5 Sbsp_lcd12864.c) ~! g$ X* w# B, k* B3 r4 {
bsp_lcd12864.h0 }% M; c  I/ S# I9 O. q. P
font.c6 F9 c& h8 y% U& W
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
界面做的不错
8 e/ h, P" I) b# e. a+ G& N0 L8 H$ |
stary666 回答时间:2015-7-9 11:17:49
看看,,,,,,,,,,
caizhiwei 回答时间:2015-7-9 15:16:11
星辰一方 发表于 2015-7-9 08:35
+ K- y; q& o# \5 d) X9 _没接触过这种屏,哪上面用的比较多呀楼主?
. Z& c6 A" c" r  J
LCD12864,工厂里的机器上用的较多~
埃斯提爱慕 回答时间:2015-7-9 23:00:44
提示: 作者被禁止或删除 内容自动屏蔽
112207301219 回答时间:2015-7-10 00:30:32
不错,学习学习。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版