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

stm32驱动LCD5110 V1.2 (2种英文字体+2种中文字体+绘图)

[复制链接]
caizhiwei 发布时间:2015-1-14 22:19
本帖最后由 caizhiwei 于 2015-1-14 22:21 编辑
7 R6 p6 V+ Z, i6 U5 {) v7 t8 Z
) J8 I8 w  R$ G$ i这是很久以前写好的,一直没有贴出来,希望朋友们能直接用上,你也可以在这个基础上进一步完善!/ U& R; w- x# Q& C; h/ ?  S
以下是部分参数说明:' Z* V# O7 |, T- Y
●84x48 的点阵LCD,可以显示4行汉字,每行最多7个: l$ U  o' O& q+ z
●PCD8544的通信协议是一种没有MISO只有MOSI的SPI协议,如果单片机有富裕的
) n# A; ^1 {1 K* F9 M1 K2 { SPI接口,也可以利用硬件SPI,(如AVR单片机的SPI、MCS51 的串口模式0等)
1 B: Z2 _5 {! v% B  I ,传输速率高达4Mbps,可全速写入显示数据.  @7 {9 t1 B1 @% {4 [
●可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模5 [$ c0 U7 z1 Y. |
块固定到印制板上,因而非常便于安装和更换。
2 b& z( g* K9 Q$ d: C7 b! f●LCD 控制器/驱动器芯片PCD8544已绑定到LCD 晶片上,模块的体积很小。$ V2 Q4 S, P: y8 R4 h
●采用低电压供电,正常显示时的工作电流在200μA 以下,且具有掉电模式。& A) ?0 [/ t# L5 J
●编程中的数据要+0x30变为ASII码才能正确显示。
1 c3 k& c! ?, v" ^) G, a   额定电压:+3.3V        ; y2 {1 J  C8 i" `  K( U0 }( r
        display : 全屏6行(6个page),每行14个
7 G4 G+ x# G. |/ O5 d& [' F4 Z1 r( y0 H        Map     :    ______________ X (0~83)1bit/X( x- f- C2 t$ u# ]
                                 |1 o) _2 q1 Y8 f4 ]
                                 |
8 }& U  s4 R7 x                                 |
: k/ L& {. ^( s# P: g  N3 W                                 |! `# O4 H# w* }( O4 v! D
                                 |
! M3 R0 C! W4 v" Z; \5 l5 W                                 | Y(0~5)8bit/Y) z* Y" W5 ]: ?8 G  t4 U' D
) p; l* ]0 R; ^

$ y9 p. w8 ]9 s7 N  V1.0     完成6X8字符显示
' ]0 S  M9 n0 c  V1.1     新增汉字12X12,16X16显示功能
% O, N: [" r3 N) ]' M8 [- ?% v7 S2 X2 B
  V1.2     新增8X16字符显示功能
" v3 e9 ~) {; n* J* R///////////////////////////////////////////////////////& b. R1 b/ {! }  ^4 y
//------------------------------------/                                 //9 i1 j) u; [# S* f  w+ |: q
// SCE    ------------PA5  //片选                                         //1 r) `) H3 h" I) P( e5 u
// RST    ------------PA4  //位选                                         //
; r* B2 B; j! y, ~& N* \0 t6 E//  D/C    ------------PA3  // 1写数据,0写指令                 //
% d! y2 L( i* @' \- u2 O5 A. W// SD     ------------PA2           //数据                                 //8 I. ]: N0 ~# B7 q0 z
// SCLK   ------------PA1           //时钟                                 //$ V" I1 ?' A! w- L4 x
// LCD    ------------PA0      //背光+ Z6 e. [, M, |* O
                                         //
* \- G) r6 a/ ?2 p1 p///////////////////////////////////////////////////////
) c) G# o1 Z% v/ h5 ^5 b* N* y7 f6 E
QQ截图20150114221510.jpg + f% H+ \" s8 h. I& m7 C" i

. F, c0 [5 x5 j: n9 T5 { #define sce0   GPIO_ResetBits(GPIOB, GPIO_Pin_6)  //片选
/ t; `/ V, o! f! {0 C+ R; { #define res0   GPIO_ResetBits(GPIOB, GPIO_Pin_7)  //复位,0复位& q" l  w1 n- n6 e) ~
#define dc0    GPIO_ResetBits(GPIOB, GPIO_Pin_8)   //1写数据,0写指令
, D" N6 g, T$ }3 T4 D #define sdin0  GPIO_ResetBits(GPIOB, GPIO_Pin_9)   //数据
% H0 W) c' ]: L' |& D2 T #define sclk0  GPIO_ResetBits(GPIOB, GPIO_Pin_10)   //时钟" v& Q+ ]. G& q# G. c, O
& L9 B6 g+ f4 q! b

: m3 {7 Q: [  s% e! M #define sce1   GPIO_SetBits(GPIOB, GPIO_Pin_6)  //片选
2 O$ J, c5 K9 b; z# v; v# `9 M& S* V #define res1   GPIO_SetBits(GPIOB, GPIO_Pin_7)  //复位,0复位9 l" q4 h; @  a/ G  _, u( T! A
#define dc1    GPIO_SetBits(GPIOB, GPIO_Pin_8)   //1写数据,0写指令
. h+ V) ^! _6 h7 H #define sdin1  GPIO_SetBits(GPIOB, GPIO_Pin_9)   //数据
7 p! m! q6 j4 d #define sclk1  GPIO_SetBits(GPIOB, GPIO_Pin_10)   //时钟+ h( u8 E# g6 {0 H

' G6 i8 _4 s- y) L$ C

3 d2 W7 Q+ V3 J' N2 d) D// const unsigned char Font6x8[][6];        //用于main.c中调用. z! Z1 H/ V3 _7 _3 o+ Y
// extern const unsigned char Font12x12[];
6 ?& N( r* o6 L1 X' y// extern const unsigned char Font16x16[];
' A$ h) V' i8 v7 Q7 Y, Y extern const unsigned char  LogoBmp[];
6 B, r- `, ^0 J+ }) }4 t            
; E4 k: h$ ^5 y/ P+ W void LCD_WriteByte(unsigned char dt, unsigned char command);3 f) o0 X/ L' h
void LCD_Init(void);
5 q. ^( j& h1 T$ z" | void LCD_Set_XY(unsigned char X, unsigned char Y);" N& U' A, ?8 J3 o- h
void LCD_Clear(void);
+ @  ]9 A) p5 ]& ], Z" S& r/ B- ~' u  r! ~6 k

8 x0 g4 n4 I/ f7 L& X void LCD_WriteChar_6X8(unsigned char X,unsigned char Y,unsigned char c,unsigned char reverse);
* [; P" b* I. q6 W' d' r3 [ void LCD_WriteStr_6X8(unsigned char X,unsigned char Y,unsigned char *s,unsigned char reverse);
. b% _: p( p  F# X void LCD_WriteChar_8x16(u8 x, u8 y, u8 c_dat,u8 reverse);
) e* Q  A  r. R7 r( J. { void LCD_WriteStr_8x16(u8 x, u8 y, u8 *s_dat,u8 reverse);" q* J; t% i# b& f& i, j) l7 u2 C
void LCD_WriteNumber(unsigned char x,unsigned char y, unsigned long number);  T5 L2 Z: f/ Y% ]3 Y& N
void LCD_WriteChinese_12x12(unsigned char row, unsigned char page,unsigned char start_with,unsigned char N) ;# t3 M5 m7 x" \5 j
void LCD_WriteChinese_16x16(unsigned char X, unsigned char Y,unsigned char total,\6 Y" D1 s5 j( T4 A$ Z/ t
                                                unsigned char start_with,unsigned char reverse);
6 Z( |! e7 r0 [3 W- Q$ M+ ]1 a4 I. \* H void LCD_DrawBmp(unsigned char X,unsigned char Y,const unsigned char *map,\5 X, L/ U% h/ p$ q
! W/ F7 s1 O( I# p
                                unsigned char bmp_x,unsigned char bmp_y);
: ~2 q8 k6 f$ U$ }  [0 MMDK工程源码下载:
$ h- M  h  v4 `- [- p& c5 o! H, O' u LCD5110驱动V1.2.zip (331.88 KB, 下载次数: 43)
赞 收藏 1 评论8 发布时间:2015-1-14 22:19

举报

8个回答
caizhiwei 回答时间:2015-1-14 22:22:39
IMG_20150114_211807.jpg
caizhiwei 回答时间:2015-1-14 22:24:54
再来一张反显:, @* l7 A4 E* ^: W. E  g
2 z/ T# E7 _1 S& U/ w' ]4 z
212112g66gch02z6zyhc2n.jpg
fjjjnk1234 回答时间:2015-1-15 10:53:01
感谢分享!顶一个!
moyanming2013 回答时间:2015-1-15 12:10:37
caizhiwei 发表于 2015-1-14 22:24! ~; j" s6 V- f. l; n
再来一张反显:

/ u9 K, `" b$ Y/ O这个有反显吗?直至倒过来拍张照?
党国特派员 回答时间:2015-1-15 12:37:34
3.png
caizhiwei 回答时间:2015-1-15 12:51:16
moyanming2013 发表于 2015-1-15 12:102 X# u  H( d. |& V2 Y
这个有反显吗?直至倒过来拍张照?

% e$ ^0 T5 q* ?  g% r“Test”字符就是反显的啦,字符和汉字都有反显的
子曰小玖 回答时间:2015-1-15 12:52:40
谢谢分享
caizhiwei 回答时间:2015-1-15 12:52:45

( l+ Z4 V$ G& S% u2 L5 `6 }不客气不客气,以后估计不会搞这个屏了因为停产很多年了,玩玩还是可以滴
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版