本帖最后由 caizhiwei 于 2015-1-14 22:21 编辑 ! j+ f% j: T+ D- F4 e 这是很久以前写好的,一直没有贴出来,希望朋友们能直接用上,你也可以在这个基础上进一步完善! 以下是部分参数说明: ●84x48 的点阵LCD,可以显示4行汉字,每行最多7个 ●PCD8544的通信协议是一种没有MISO只有MOSI的SPI协议,如果单片机有富裕的9 f5 ]0 Z7 W$ _7 ~4 ~ SPI接口,也可以利用硬件SPI,(如AVR单片机的SPI、MCS51 的串口模式0等)7 j) \; G0 r! h# @8 u( R* { ,传输速率高达4Mbps,可全速写入显示数据.. ^8 v$ h& g+ y6 f ●可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模 块固定到印制板上,因而非常便于安装和更换。3 `* J$ v: {8 I5 H+ {' v6 j ●LCD 控制器/驱动器芯片PCD8544已绑定到LCD 晶片上,模块的体积很小。 ●采用低电压供电,正常显示时的工作电流在200μA 以下,且具有掉电模式。: {% K: C4 q" w ●编程中的数据要+0x30变为ASII码才能正确显示。 额定电压:+3.3V display : 全屏6行(6个page),每行14个 Map : ______________ X (0~83)1bit/X |$ Y: a+ O+ J4 l4 U- e! ^ | |4 v1 R( t% Q J" ~; } |. x1 X. ]( n, y# ?! s* M7 p |% E: G' w2 U J/ C& H4 s0 V | Y(0~5)8bit/Y V1.0 完成6X8字符显示. `3 |$ S! v' |( J3 f7 C V1.1 新增汉字12X12,16X16显示功能 5 R1 N5 y) o- V$ H0 k7 f V1.2 新增8X16字符显示功能+ L8 R9 V V1 f, k! M* f ///////////////////////////////////////////////////////8 K" d5 T6 s* H- e G //------------------------------------/ //6 @% l! u2 u( w* w; { // SCE ------------PA5 //片选 // // RST ------------PA4 //位选 // // D/C ------------PA3 // 1写数据,0写指令 //# \9 l% _2 Q; q/ |: }; c- k0 z // SD ------------PA2 //数据 //4 v+ n L, L8 g) u. V" U // SCLK ------------PA1 //时钟 //) U; k+ c1 X2 t1 @6 \& [ // LCD ------------PA0 //背光1 l" X0 h6 b" J' Y6 x* h. f //4 s7 K1 h$ Q" Q) P: V$ \. ? /////////////////////////////////////////////////////// 0 `& U* _6 A' ]5 r #define sce0 GPIO_ResetBits(GPIOB, GPIO_Pin_6) //片选 #define res0 GPIO_ResetBits(GPIOB, GPIO_Pin_7) //复位,0复位 N7 I, T8 s4 ?8 S) z2 h #define dc0 GPIO_ResetBits(GPIOB, GPIO_Pin_8) //1写数据,0写指令 #define sdin0 GPIO_ResetBits(GPIOB, GPIO_Pin_9) //数据( z" `/ t, V! P( L6 I& ]* |, b #define sclk0 GPIO_ResetBits(GPIOB, GPIO_Pin_10) //时钟 ! `! ?% a8 @/ C4 x/ b. V #define sce1 GPIO_SetBits(GPIOB, GPIO_Pin_6) //片选: L W! m c' }, b1 o #define res1 GPIO_SetBits(GPIOB, GPIO_Pin_7) //复位,0复位" v6 H- q3 x- d. ^0 { #define dc1 GPIO_SetBits(GPIOB, GPIO_Pin_8) //1写数据,0写指令 #define sdin1 GPIO_SetBits(GPIOB, GPIO_Pin_9) //数据' y( _. k- e' s( X: H; I; I #define sclk1 GPIO_SetBits(GPIOB, GPIO_Pin_10) //时钟4 v( ^0 n9 C8 A" e1 K B9 f " b6 v& K$ W6 _ // const unsigned char Font6x8[][6]; //用于main.c中调用 // extern const unsigned char Font12x12[];% I% d1 E1 B' a: `9 A4 d // extern const unsigned char Font16x16[]; extern const unsigned char LogoBmp[]; - t' q3 W" _/ g0 v$ a3 `' s% l7 o void LCD_WriteByte(unsigned char dt, unsigned char command); void LCD_Init(void);$ F5 T, F$ v' k1 F6 I1 W F/ u void LCD_Set_XY(unsigned char X, unsigned char Y); void LCD_Clear(void); ) i% T9 B3 V. h, {6 ]+ u void LCD_WriteChar_6X8(unsigned char X,unsigned char Y,unsigned char c,unsigned char reverse); void LCD_WriteStr_6X8(unsigned char X,unsigned char Y,unsigned char *s,unsigned char reverse);# a2 p3 u) @* b- L9 f1 x void LCD_WriteChar_8x16(u8 x, u8 y, u8 c_dat,u8 reverse); void LCD_WriteStr_8x16(u8 x, u8 y, u8 *s_dat,u8 reverse);6 E# j# m5 M# v( F9 x. K+ u void LCD_WriteNumber(unsigned char x,unsigned char y, unsigned long number); void LCD_WriteChinese_12x12(unsigned char row, unsigned char page,unsigned char start_with,unsigned char N) ; void LCD_WriteChinese_16x16(unsigned char X, unsigned char Y,unsigned char total,\ unsigned char start_with,unsigned char reverse);% |" t \9 K8 k+ }0 z% N void LCD_DrawBmp(unsigned char X,unsigned char Y,const unsigned char *map,\ ' C2 Z( ]* C- ]) f unsigned char bmp_x,unsigned char bmp_y);- s+ `+ v) p0 f9 b MDK工程源码下载:; B/ X( N0 |- L |
这个有反显吗?直至倒过来拍张照?
“Test”字符就是反显的啦,字符和汉字都有反显的
不客气不客气,以后估计不会搞这个屏了因为停产很多年了,玩玩还是可以滴