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

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

[复制链接]
caizhiwei 发布时间:2015-7-8 20:56
HG12864168 I4 Y4 Y3 t$ I6 {, v2 h5 k
128×64点阵;
  C3 A3 k. ?1 T( \% W模块尺寸: 54.0×50.0mm;+ h* d3 z* m8 e/ W7 m
显示尺寸:43.5×29.0mm;
/ E  u# C, O* A6 g( z9 B( m/ E) `3 d+ A3.3V工作;控制器为SBN0064G 兼容KS0108(不带字库)+ q: p/ F" m. x6 f# k; i
http://www.chinalcdmodule.com/3.3v-lcd-module---hg1286416.html7 D2 T2 t* u6 T/ _
http://www.chinalcdmodule.com/upfiles/HG1286416.pdf8 V8 J$ \  O) c# U/ M
1.12*16字体未开发% w$ M! x" u/ ^) N  O
2.24*14字体未开发
7 m9 E' N0 C( ^9 d2 t/ E: }: Z
  1. static u8 *FindGBChar(u8 *str); s, A; I3 U# T5 D# f1 H$ P9 E% A! C
  2. {
    6 v2 V: f5 B* U. ?
  3.   u16 i;
    1 P" a/ {( U% h5 ^3 W. ^- ]
  4.   u16 gbcharNum=25;  //动态结构体数组中汉字的个数
    - s9 g* H2 U6 z, G
  5.   //求结构体数组元素个数的方法:(sizeof(GBCHR_16))/(sizeof(GBCHR)),但编译器报错! L0 ^0 W- d* i  m
  6.   for(i=1; i<gbcharNum; i++)( z4 n) h! J+ ^' g
  7.   {
    9 l* J) r6 A/ l4 ~/ P# x! O$ M
  8.     if(*str==GBCHR_16[i].chr[0] && *(str+1)==GBCHR_16[i].chr[1])) I* H8 B0 v3 u/ G4 b7 V
  9.       return (u8 *)GBCHR_16[i].dataTab;2 ?- z: l3 W! N- l! J' y; z
  10.   }& W3 n) Z" b& t% m! \: ]0 m% \
  11.   return (u8 *)GBCHR_16[0].dataTab; //字库中没有要找的字,则返回第一个字模
    / z; l- \; }7 Z# u* r8 E3 R
  12. }6 L  |  \% I# _" e
  13. 9 ]4 z: B$ t# O3 Q1 I5 Q

  14. 6 @/ n) f8 K+ Z) E
  15. /*******************************************************************************
    1 {* G/ |. {' I- v1 x5 H0 u# J
  16. * 函数名:LCD_print_1632Num0 P. f0 _( b( N; x8 n1 c9 m
  17. * 说明:液晶字符输出字符(16*32字体)
    - P/ L; W- v2 q) G! l
  18.       row: 0,1,2,3,4(5 lines cross)
    $ ]4 d  S. O* p' S, J+ h( p
  19.       column: 0~127(列) column=iner_column*16   
    9 P% C1 _; A/ E: C0 c; T5 \4 V
  20. * 输入参数:reverse=0:common display reverse=1: reverse disp
    8 w. q( G8 O4 f
  21. * 输出参数:% [0 h  m0 E+ F% F+ b) }3 W# h5 Y" A
  22. *******************************************************************************/
    6 i; s4 v% e2 s) @2 e
  23. void LCD_print_1632Num(unsigned char row, unsigned char column,  u8 num,u8 reverse)) N4 T: ^9 X( m; `% m# V" C# _+ [
  24. {
    - a( d7 i' n( N; k! T
  25.     DispScreen(16,32,row,column,digitalTab1_16x32[num], reverse);
    / M+ G+ F; ?7 V( }0 w5 x
  26. }
    . b" D. A8 ^) Z2 x/ V

  27. : n3 Z; Y- S8 K; Y
  28. - g5 n) q( h- a+ g4 H- ~
  29. /*******************************************************************************6 M1 E  ^2 x/ b# J4 _
  30. * 函数名:LCD_print_1616CNChar( L) R# P9 ]9 E/ B
  31. * 说明:液晶字符输出汉字(16*16): f3 b8 B% s6 K& m
  32.       row: 0,2,4,6(4 lines)  row*2=page(0~7),6 C( R# v: [, N
  33.       column: 0~127(列) column=iner_column*16 每行最多显示8个1616汉字      
    % z$ B, w% p# w" @' i
  34. * 输入参数:reverse=0:common display reverse=1: reverse disp5 r& S9 y1 T2 l  J" s' E
  35. * 输出参数:# U5 y/ @! D7 _" ^# i. d; ?1 D- Z! R
  36. *******************************************************************************/
    / ?& Y6 `! Y2 C6 g& H1 X$ z
  37. void LCD_print_1616CNChar(unsigned char row, unsigned char column,  u8 *str,u8 reverse)
    # o, x8 p' f$ c  Z, V
  38. {   T$ B7 F" T9 ?$ y& D2 j) U; \
  39.    while(*str!='\0')- Z. f* Y# R+ T! N  _. b
  40.   {  
    : s% q0 a% j; B$ H( P7 c
  41.       DispScreen(16,16,row,column,FindGBChar(str), reverse);       ! i. k+ B' y# p1 v
  42.       str+=2;9 W" ^" P5 @+ Z. l  [$ p
  43.       column+=16;   * T0 C7 ]0 i6 f( G) D9 v% S
  44.   }
    & Z& P) p2 P# Y, G+ {
  45.      
    7 Y7 L) {$ M8 ]: J( U
  46. }
    % h" x9 y! J7 H' W, O& I" h% |
  47. & j  j0 D/ o0 H# V
  48. //结构体数组
    ; ]4 ]! T% z) b" v, w, L
  49. //取码规则:PCtoLCD2002,(逆向)低位在前, 列行扫描, 阴码(1-亮, 0-灭)
    , D- e" B$ G, K2 M. P5 J
  50. //LcmZimo.exe:从左到右从上到下,纵向8点下高位
    , ]/ h- n: A5 R9 q4 n) D6 @
  51. const GBCHR GBCHR_16[] =/ u- k+ @& R6 ]; y
  52. {5 z9 r+ k) ]0 b; O% p7 B+ W

  53. . t: V1 Z7 U# l5 S/ X
  54. 0x00,0x00, /*每个汉字内码占用2字节,备用,移植时无需改动*/1 C" k( N1 |2 n! e4 X
  55.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  p! m% q, ^# S( G' P* ~
  56.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    + ]7 Q$ N& h  Y
  57.       0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
    3 C4 p$ ?2 K3 D  K
  58.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    - V8 ~5 n7 @) [: ?
  59.        
    ; d: H& f3 M$ P) f1 R0 P
  60. "自", 0x00,0x00,0x00,0xF8,0x48,0x4C,0x4A,0x49,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
    ; i: ~' C6 u# J5 U- O. U
  61.       0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,0x00,1 `9 q9 ~+ q8 w6 W5 E2 c

  62. # v2 t& t, l# p5 @5 O4 m' p+ M9 H
  63. "手", 0x00,0x04,0x24,0x24,0x24,0x24,0x24,0xFC,0x22,0x22,0x22,0x33,0x22,0x00,0x00,0x00,! X5 j" c- z2 q* n
  64.       0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x03,0x02,0x00,1 j* X8 z) r9 w# |" n

  65. & I- @1 G4 U' C$ f$ n
  66. "动", 0x20,0x24,0x24,0xE4,0x26,0x34,0x20,0x10,0x10,0xFF,0x10,0x10,0x10,0xF8,0x10,0x00,
    - L  @. B5 z+ y3 ~
  67.       0x08,0x1C,0x0B,0x08,0x08,0x8A,0x4C,0x30,0x0C,0x03,0x40,0x80,0x40,0x3F,0x00,0x00,) j! x- H8 I& V

  68. / o( O3 v0 i) C' r  B
  69. "模", 0x10,0x10,0xD0,0xFF,0x94,0x14,0xE4,0xBF,0xA4,0xA4,0xA4,0xBF,0xF4,0x26,0x04,0x00," J0 U. E- [7 I+ r& ?: I
  70.       0x04,0x03,0x00,0xFF,0x08,0x89,0x8B,0x4A,0x2A,0x1E,0x2A,0x2A,0x4B,0xC8,0x48,0x00,
    - z, y, y- a2 [7 a3 A9 u/ g$ S
  71. : P0 B1 D  ^; y4 S6 e  h
  72. "式", 0x10,0x10,0x90,0x90,0x90,0x90,0x90,0x10,0xFF,0x10,0x12,0x14,0x10,0x18,0x10,0x00,! r, I; D- @( `6 O, X' J
  73.       0x00,0x20,0x60,0x20,0x1F,0x10,0x10,0x08,0x01,0x06,0x18,0x20,0x40,0x80,0x70,0x00,3 C, P4 {1 A) y" y$ S' P
  74. 2 G! W3 C8 g& g4 _% a+ H
  75. "开", 0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x83,0xC2,0x80,0x00,) }" v" ]2 q1 W$ H" `8 R  A; S$ A+ L
  76.       0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,5 t. v- b; c2 D+ y: }
  77. ) r( I, S9 u" H( `# l+ ~+ s
  78. "启", 0x00,0x00,0x00,0xFC,0x44,0x44,0x44,0x45,0x46,0x44,0x44,0x44,0x44,0x7E,0x04,0x00,
      Q' c: c8 y+ Y9 z
  79.       0x40,0x20,0x18,0x07,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x02,0x00,
    8 r! S- z& V) z  _0 l
  80. 9 v+ O/ U, x1 z0 u7 h8 H  O: f
  81. "关", 0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,. ~( L7 F" Z6 a4 v
  82.       0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
    & D7 i% X6 _  h( `% G5 u) Q: v% a
  83. 2 y( j4 R& r+ `6 @' x" r4 ^
  84. "闭", 0x00,0xF8,0x01,0x22,0x26,0x20,0x22,0xA2,0xFA,0x22,0x32,0x22,0x02,0xFF,0x02,0x00,0 Q3 U3 G: m; m8 H: X
  85.       0x00,0xFF,0x00,0x08,0x04,0x02,0x21,0x40,0x3F,0x00,0x00,0x40,0x80,0x7F,0x00,0x003 q( v) E, K1 I* T, W" }+ I
  86. //<- end               
    % S0 m$ u) z/ |" C3 T
  87. };
    ' A  o6 Z& b6 p% k0 ^) c( K5 A
复制代码
8 Y6 m7 Y! t* j- d6 l4 f
QQ图片20150708204540.jpg QQ图片20150708204547.jpg
- ]8 E: Q* w% Y1 x& O  K7 o7 S+ a+ }  Z
收藏 评论10 发布时间:2015-7-8 20:56

举报

10个回答
caizhiwei 回答时间:2015-7-8 21:01:19
8 L1 R) H" a, X9 j
bsp_lcd12864.c: x- \( B9 A- w; Z% c
bsp_lcd12864.h) |6 P9 F: k( A% k1 B
font.c
& W# T( z3 z; r" T/ n 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
界面做的不错
* N& ]1 y  ?+ Y  p# O, t4 Y% h
stary666 回答时间:2015-7-9 11:17:49
看看,,,,,,,,,,
caizhiwei 回答时间:2015-7-9 15:16:11
星辰一方 发表于 2015-7-9 08:35
" y( j: h4 S" o2 s2 |& I: T没接触过这种屏,哪上面用的比较多呀楼主?

& S8 ]. V: ?+ h9 E9 TLCD12864,工厂里的机器上用的较多~
埃斯提爱慕 回答时间: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 手机版