高级会员
主题
帖子
积分3496
阅读权限30
注册时间2016-12-21
最后登录1970-1-1
在线时间 小时
|
本帖最后由 davg1 于 2017-3-19 15:34 编辑
( ]8 }% v( I2 c1 g! w' i, m
" s8 d2 k0 w( n/ a0 \) G. P! G3 o非常感谢各位。4 S* N! z- R0 X' J& I; K- P3 X
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
t( f/ T v- {正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。
- S% Z! ~4 `# S9 u: Z" W9 D
9 p. E0 u7 B: c淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。
7 C; x6 R0 D+ ^4 _# y4 f刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。; ?$ h7 ]: ]* A" A' E: q6 r, p$ R
无法达到一直显示的目的。问题找到了,是单片机一直在重启。6 Z8 F( _7 B1 T* H/ t
可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。 T6 l& y- L; Y9 H
我该怎么办呢?+ Y: w0 s% r6 @4 O. c
接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。- p& n& B* s, y1 d
) R: Q1 N, n0 @; x9 S
' l4 W4 y. X; A4 [& O
$ Y) ~6 [+ O( _
( L: o) S+ o* p; V/ v; z) D如图,6 j9 F. V7 U4 j2 S
" Y$ u5 b q3 ?: f! C) I- h% ]+ ^
/ W {) O' v1 I7 r4 Q, {5 b$ f+ N5 Q
" L7 j u G5 M" ?) A3 i' j/ {
% E0 x% G5 f# k6 C, n) Z0 T9 s
7 C5 i7 u1 O6 y程序用的" a9 F7 l5 J: ?1 o0 C3 o8 a& r8 x: c
https://www.yleee.com.cn/thread-57727-1-1.html7 d3 w% h- `2 n# S6 [# s. P0 a
中wangke2010提供的程序。他的显示就很正常
: e$ B( F9 I* A
0 i) r' H( G7 @& ^5 b7 k3 L请问该如何救呢?谢谢!!!!
: l9 X5 l9 i& H( o' l7 \- unsigned char code gImage_bmp2[] =
, R% u# m5 d P) I/ @4 E) u& p - {
) ]' G6 n! [) y5 c* s - 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,
: Z, ~' z/ f3 l# L/ i B# U - 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,
' S8 n O, ~7 D9 W# P# \3 j - 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,
1 C" ~0 {! [8 j8 ]4 c: U - 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,: ^( h* D5 K5 f) O" h
- 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,8 ~% J1 F) n! j* }) e
- 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80,& h5 a, T7 Z# ^+ m& ?* Y& v: A
- 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,8 I- F( O; S' X* k, w' T, i
- 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,
! H( G9 X7 |# f - 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,
# s1 w: h9 z- C- x- `+ c0 g - 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,$ @+ K" \" r7 |3 _1 Z+ P2 {/ @1 R e
- 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,6 u# W, ~2 g( Y# k0 G% b
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,
, n" h" S# `. [; K$ o8 B - 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00,
; R) b- N5 t# D5 U. ^$ a* m# u - 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
. X J: w+ M0 B" b C - 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,, ]0 Q" t& y3 O4 k5 V: y8 m
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,
0 [* C/ O0 L" r) T - 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,8 a9 n" |8 y }2 n1 u
- 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,; K2 i; o. ]9 h" S
- 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,
6 a2 b+ o2 u+ a7 }. `2 l+ s) @ - 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,4 o( m7 T" S* t; l
- 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,7 f+ B! ]& U) P' {
- 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
5 d( X, o: {0 B, P* m2 @: s' Z4 h - 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,+ g6 P( y2 A" f' u1 S
- 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
6 B, D1 {* ~( P& R - 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
; I5 m9 C" a) @. ^ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,# W* Y5 O) _5 Q% g2 }, T d
- 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,
4 @' }; }4 b7 |" V9 Z$ O - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,4 a; ~+ P0 c' U+ b! r9 V% {1 t
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1 C' \: n/ |9 T8 j o2 k$ l" P) q - 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,3 j2 m# c, z& j, |% C9 U: _# e- u
- 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,( C: s! n& [4 Z' V! k) ?0 s9 ~: {3 G' `
- 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0 f, @! v' a( {
- 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,; N! F& O! I: j# U/ l. k2 ]8 V
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00," I8 ^2 R' E' f" V
- 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
3 `* L5 x! @+ j! @0 J - 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,3 K' t4 m& u$ ] }% j f; i
- 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,
9 a8 F! p* ^9 I" n0 t8 j - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
) a7 {2 { j6 k9 ^( E - };
$ g& y: s8 \+ S+ H# g) i2 {0 h$ i5 O; |
) x2 p# z. K4 @7 }" u; N# G
8 Q$ ?/ w/ N( d% L! B8 M" J0 ^6 ^- /* GPM1306.c
7 U, Y, J* `8 s& j/ v7 V - * Created on: 2016-10-19
$ s3 Q# ]0 a+ m0 {6 N; X - * ┌─────────────────────────────────────────────┬───────────────┐1 e! S0 h' m e1 @) {8 S9 \3 n* d
- * PIN_NO : 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1, v; v* m" C7 Y b7 J" s
- * NAME : BK-K BK-A NC SCL SDA A0 RST nCS NC VDD C1 VSS VDD C2 C31 C32 C42 f$ L/ a) T( v2 y" |: o: N& n
- * CONN : GND VCC P1.4 P1.3 P1.2 P1.1 P1.0 VDD │ │VSS │VDD │ │ │ │
" k9 C# i+ K6 H, c) ]: Q1 F2 d& J6 ? - * │ │ │ │ │ │ │ │9 e2 Z& M3 Q5 v9 ~
- * │ C1-C5=1uF 25V 0805 ─── │ ─── ─── │ │ ───+ X# s+ P/ K% T& J9 @8 s; ^
- * │ 120x160pix ─── │ ─── ─── └─│ │-┘ ───* c; q' \ P. a( j! E
- * │ ┌──────────┐ │C1 │ │C5 │C2 C3 │C4/ ^3 a7 k6 |# }) f* X
- * └────┤ R1=3R3 ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘
$ \2 h+ l) T+ w$ g - * └──────────┘
/ r5 D. ~1 w1 P7 ? - *==================================================NOTICE==================================================# f6 H4 t/ N: Q# r; {! Z" m
- *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。
* O* J8 R0 \4 b7 V5 | - *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。4 F! V: H* j0 r( u' f9 P
- *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。
$ y3 |3 Q# W0 |+ X; W/ M. } - **************************************************移植参考**************************************************
2 ~9 ~+ N# i! a& ^, i - *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。 Y) x, d: D6 V V
- *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。
0 y" v! _; J/ J: Q6 f - *祝大家玩的开心。: C6 b5 C# ?: s0 S" j
- P1OUT |= BIT1; 是将P1OUT倒数第二位被置1) Z2 y0 V3 F9 l
- P1OUT&=~ BIT0 是将P1OUT最低位 清 08 n9 K! d9 H6 p+ B& n- M( p% G- {
- */. n- Y( v$ q$ u; \& \9 a$ \5 k
- #include "config.h"' ~$ \9 ?& q, E# W/ s* O8 o
- #include "Delay.c"
5 W+ R4 o3 p8 ]7 W - #define GPM1306_nCS_CLR P12=09 G8 L+ l0 W R
- #define GPM1306_nCS_SET P12=1: _" U' [) I4 V$ i3 b/ d( n
- #define GPM1306_RST_CLR P13=0
7 K8 e' K/ Y3 K! g" d$ a2 N# p - #define GPM1306_RST_SET P13=1) ^# ~9 c, z) i1 T- _% \0 D
- #define GPM1306_A0_CLR P14=0
" a2 x/ c2 f! n8 O1 S2 ~1 Z - #define GPM1306_A0_SET P14=10 K7 S- @( @, L1 S; N! e/ Z" s1 ]% o
- #define GPM1306_SDA_CLR P15=0
& | H, Z; {6 e( S* e - #define GPM1306_SDA_SET P15=1
6 A) ~. F5 @& s" r2 I( u - #define GPM1306_SCL_CLR P54=02 J# N: b9 E! `4 G3 b
- #define GPM1306_SCL_SET P54=1
* I, m4 B# A* O) y7 e$ [/ j- q7 G - ) s1 I/ T/ g$ N# X! p8 }9 M8 [
% ?$ ~& _. I! M, |, E+ w- void LCDWriteCmd(char cmd)
* n4 G; k4 g& D - {
0 g' ^" V @5 @3 J" | - unsigned char i ;; ~& C0 R$ |0 i
- GPM1306_nCS_CLR; //使能芯片
9 a- p/ e. b1 l- q1 Q0 | - GPM1306_A0_CLR;//写命令模式
" v- x) p8 _, |9 O% }: l - for(i=0;i<8;i++)
3 m$ G5 P+ X1 l8 Q7 \. j - {, G2 d, i, }! X2 D
- GPM1306_SCL_CLR;
$ H- s/ H7 ]2 C" F - if(cmd&0x80) //先传高位字节,后传低位字节
2 ?' {* T- h* D7 q$ w f- O - GPM1306_SDA_SET;/ F+ U, f, \, c; W, w$ T/ j
- else1 [8 g5 [& a& q$ r# \
- GPM1306_SDA_CLR;8 [2 k1 e& j5 w9 O0 [
- GPM1306_SCL_SET; U/ l+ z d: u* S8 K$ Y
- cmd=cmd<<1;# |, N' s7 n) @" H# _5 Y- H
- }
# U5 s+ V: p% o' {( A' T - GPM1306_nCS_SET;/ z; R6 p/ } Z, [( P, ?- T! {
- }2 R$ E. u' s+ A4 Y7 I7 r( }* z: t
- void LCDWriteData(char cmd)
: H0 L+ Q; k- ~6 C. h0 J) V. W - {! Y' E J* c5 D
- unsigned char i ;
, y5 r% n7 Y) ?2 m( J: x1 I - GPM1306_nCS_CLR; //使能芯片% J2 B: B( ^4 I9 f/ _
- GPM1306_A0_SET;//写数据模式
A3 g* N7 G" q# H+ O/ D - for(i=0;i<8;i++): p- D7 d. {" x
- {3 X& |+ M W6 W3 |5 D
- GPM1306_SCL_CLR;1 N* d$ t& f0 n+ b( M% o
- if(cmd&0x80) //先传高位字节,后传低位字节* l6 u5 c6 u- E* H+ O: p6 W
- GPM1306_SDA_SET;/ v0 W+ x4 |, k, d1 D
- else
* W0 c( T1 l7 S0 J - GPM1306_SDA_CLR;8 q7 c9 L" [, P; |- h
- GPM1306_SCL_SET;
' a; ~0 N! @! A8 o7 k - cmd=cmd<<1;
/ |- z5 @1 Z/ J$ l- r - }# J6 B$ z9 H. q, u
- GPM1306_nCS_SET;! u: J9 {+ m7 a4 `
- }
O" N( @% S% o. V6 d - //设置起始行列! v3 X. U! B' E3 k1 ?0 {$ k( D
- //ys为起始行,xs为起始列, ye为结束行, xe为结束列
- ?8 a1 k' O; z2 M$ l/ e( ]& h8 G - //xe与xs的差值即字的宽度, ye与ys的差值即字的高度
# b, o# N2 h' k( C. y( s8 t" n' o - void LCDSetXY(char xs, char ys, char xe, char ye ): Q0 }7 @0 O; K8 C6 L7 T
- {% U* i4 [ Z" q. J: v( V
- LCDWriteCmd(0x2A); //设置列地址(横坐标)0 I: x1 R4 N9 F
- LCDWriteData(0x00);
3 @. k# R# o" |8 h) L: T - LCDWriteData(xs);
+ G( o2 s5 ]' V3 n5 P; t; {4 \ - LCDWriteData(0x00);
9 N) f6 d' g, ~# F - LCDWriteData(xe);
; a. v0 k; S% t& b) n9 D; J - LCDWriteCmd(0x2B); //设置行地址(纵坐标)
( q4 K0 u* s7 T0 \' P% ~ - LCDWriteData(0x00);
+ R! @- P) C) h7 s& N$ `7 @5 _% @ - LCDWriteData(ys);
' D. Y# N: q$ Y1 u" ^, r! _ - LCDWriteData(0x00);
! f* V' g( @0 r) X+ `) e- H9 ? - LCDWriteData(ye);
9 m7 J' H: q7 C ~ X - }# r7 |. T1 F! l1 m! b/ Z; C
- //清屏函数 t& O* \5 Y# l( e/ i" R1 T
- void LCD_ClrScreen(unsigned char value)
5 s5 ]( D: r* [; H' P" F2 b - {
( U6 ], B: v/ y& L- A - unsigned char i,j;) v, e* f' p0 }, r0 q6 n
- const unsigned char tt[]={0x00,0x49,0x92,0xff,};0 C2 E: M6 Z$ I5 Y7 D$ t! }
- value=value&0x03;) T. {* i* T2 ~. }
- value=tt[value];
! H' W% q+ Q- p0 s6 w0 g6 b/ B - LCDSetXY(0,0,53,119);1 ~$ D# D$ k& S: \" ?6 D0 a
- LCDWriteCmd(0x2C); //向DDRAM写入显示数据
0 z8 t) R9 ^) ]1 ], J) q - for(i=0;i<120;i++)
) w' P* S- w4 q5 E6 C - for(j=0;j<54;j++)
6 }! \7 r2 x Q# b$ ^6 ? - LCDWriteData(value);1 R/ O8 g0 p$ ^6 K+ i3 [5 A, K
- // P1 ^=BIT6;. n6 z& Q/ ?4 z3 c, S
- }( r' |# e) B# T3 x+ t& U! F- D
- void GPM1306_DISBMP1(const unsigned char *BMP1)" ~) ]) |, R+ T2 Y8 F* |( e( m6 Q
- {
5 @; Q. \4 B0 P8 Q( D" h7 \. p# f - unsigned long MCx8x31;2 r- u& C3 g4 e) k0 g- G7 j: b8 ]
- unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;
+ m2 h1 F" m3 D, j - signed char vaild_bit1=8;1 w/ n0 }) R+ g& Z/ y) ]6 D
- ((unsigned char *)&MCx8x31)[2]=*BMP1;
* ?" e. S+ C) ^2 [7 _+ r6 \ - BMP1++;" z* w3 e1 b0 E/ B' B
- LCDSetXY(10,0,36,60);2 D! d7 g! F/ D* x
- LCDWriteCmd(0x2C); //向DDRAM写入显示数据
; w5 { C+ V( |# J - for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)
& g1 n2 G/ m4 K$ F. S8 u2 D' T - {5 X0 C+ O7 O) S6 j
- for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....1
$ v- f" X' |' K& K - {9 h; a0 O' \1 s& ^$ t4 Q
- if(vaild_bit1<3)
2 A T! H+ p9 j0 v - {
! K$ i. ]) X4 h$ r+ u f0 k* y - MCx8x31=MCx8x31<<vaild_bit1;
5 z1 \$ M b0 ` - ((unsigned char *)&MCx8x31)[2]=*BMP1;
! O. P! N; O9 N- h - BMP1++;- i2 A% W2 k% X+ i: L, `/ f4 l
- MCx8x31=MCx8x31>>vaild_bit1; _( y+ P" P: J' {' M3 |
- vaild_bit1=vaild_bit1+8;
: I* u. S, N7 z- G' D" Y - }
9 s2 Z" H. ^$ b0 E, G; ^ - color1=0;* W& y/ k" X' \
- t2=((unsigned char *)&MCx8x31)[2];
) h) T: V- u, j2 [0 j - if((t2&0x80))+ z5 b- _6 b" s7 a2 h) ]. n
- color1=0x03;, I2 J7 \9 q6 L# e, Q0 c/ k
- if((t2&0x40))
6 t/ p) t$ O4 A7 y: ^: q - color1=color1+0x1c;
5 h: \- \5 _. }+ o$ e - if((t2&0x20))$ {+ J! k+ s% Y
- color1=color1+0xe0;0 i/ D7 g& _, t5 S& J- l. J
- MCx8x31=MCx8x31<<3;
! D/ e8 w4 I; W( q. [- Q8 @* K% } - vaild_bit1=vaild_bit1-3;
2 _6 B% p0 H' ?! D* ~, b" u+ t# ^ - LCDWriteData(color1);
; M) \5 P1 U9 ? - }
" J# m% R8 F9 s; h$ u" X - if(vaild_bit1<3)
' `+ X3 p$ U1 P - {4 X$ j0 |: s3 D8 w9 o: o; l
- MCx8x31=MCx8x31<<vaild_bit1;
5 p1 h r( l. U4 J - ((unsigned char *)&MCx8x31)[2]=*BMP1;
' B/ v2 m# ~/ k+ q8 l0 D8 @5 F - BMP1++;
+ H6 H1 p- ?) w4 |, D - MCx8x31=MCx8x31>>vaild_bit1; {4 p* T$ b: ]5 T7 H- Q0 \- E
- vaild_bit1=vaild_bit1+8;
! `1 W9 U2 d. Y - }- B5 ~5 t$ z& P) v! A) {3 W
- color1=0;
8 q* c% `$ h/ X" v9 K - t2=((unsigned char *)&MCx8x31)[2];
& H8 a, x$ ]0 ~, L5 w/ V. K% U - if((t2&0x80))
5 t9 y# m4 }% q# I1 S2 {8 X - color1=0x03;
8 f9 f& e1 S0 B- \4 k3 |/ s- X - MCx8x31=MCx8x31<<1;
7 I3 X! c6 r- J- U. } - vaild_bit1=vaild_bit1-1;
# I$ ]* q$ ?; q$ w( n d/ P; T - LCDWriteData(color1);
" m- \/ {7 l1 j2 a5 h: ~0 Q! S - }
' x6 J# ^5 M) A1 q; E - }4 O" L# H$ h! L+ F; t/ l
- //初始化函数
6 v; j/ f7 A/ |( m9 o2 [ - void LCDInit(void)% {: c# Q! u/ u s
- { E8 o2 A( R+ W1 n- r' F% X" b
- GPM1306_RST_CLR;
2 k4 ?! B! i& c4 r - delay_us(20);1 ]& `& ~( L0 d/ J
- //__delay_cycles(Fosc*0.2);//Delay_ms(20) //延时20ms
1 q: g' z) \ V2 \) ` - GPM1306_RST_SET;! }( E7 |! C; m& @6 I2 }
- delay_us(40);
+ S& A/ x' E2 B# O& e- H! N8 | - //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms
+ m. k3 c9 w9 }6 {3 z - LCDWriteCmd(0x01); // soft reset
. x$ I- R% G* O2 q. }3 X - delay_us(40);
: b* x3 R2 E, Z: t - //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms' E0 W: n0 m) ^! P0 L) a
- LCDWriteCmd(0x11); //Set power save mode:Sleep out mode
; M) a* x4 w7 z4 q1 b7 [ S - LCDWriteCmd(0xC0); // Set Vop///
% m, r5 X' E5 o1 i3 ^. p - LCDWriteData(0xf0); // Set Vop Low 8bit 30//全屏太黑或者太白调整这里+ i4 v `, e {5 K
- LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits) 01//全屏太黑或者太白调整这里# V# S) F% ]" a9 Z' G
- LCDWriteCmd(0xC3); //Set BIAS system | }$ w: G- }* r& I; O3 R! k, S
- LCDWriteData(0x04); // 03: BIAS = 1/11 0-5
1 O" `) X" A; L5 u" V - LCDWriteCmd(0xC4); // Set booster level
5 ~ b: d# ]' T6 w - LCDWriteData(0x07); // 07:x8 Booster
h5 O l& \) R - LCDWriteCmd(0xD0); // Enable analog circuit
) g. D; a4 [7 Y/ P6 `2 L; T: b0 l - LCDWriteData(0x1D); // Enable analog circuit
% _/ ]9 f# m I' R - LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode8 }/ N! E7 {% k5 ]- W
- LCDWriteCmd(0x3A); //Enable DDRAM interface3 c. b X( t. M u
- LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode
3 d1 h3 b$ Y( Q( p - LCDWriteCmd(0x36); // Display Control
% ~- k" I, R( c" y - LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG383
6 Q/ N4 ^ W: w4 h# |( c - LCDWriteCmd(0xB0); // Display Duty C+ U9 V: N) c& K' t
- LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160) DT=0x81(1/130)8 T6 u! e' E0 u. ~, B
- LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display
2 N& [' }7 B4 u; j - LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)4 r9 |& [7 A, I! t
- LCDWriteData(0x15);//Frame Rate 92.0Hz
& R7 ^& n) j( Z# f# g3 ? - LCDWriteData(0x15);
4 W6 g" e5 ?% s ^; [+ C, ^ - LCDWriteData(0x15);
' x; _1 V2 D4 s: @0 L5 T - LCDWriteData(0x15);" [! }7 G% _) X
- LCDWriteCmd(0xb1); // First Output COM7 t& x3 o: q U }
- LCDWriteData(0x00); // Set first output COM FC=00h(Start from COM0), j, i7 T# U8 w3 Z5 N& F, Z6 [
- LCDWriteCmd(0x29); //Display ON) o6 g% k+ ~6 j
- }
) f- c( Y0 d; n( Z9 G# q, u - $ T9 g( D0 t) l8 k
- void main()4 x. b% y7 \4 s' I9 v
- {
* [. a# H/ Y/ d6 \5 ?1 |5 H - . k F& }& `6 P/ Q+ C3 B
- LCDInit(); //初始化液晶( V; a% u4 H+ p7 e/ \
- LCD_ClrScreen(0);
- V |& \, S$ E: w - delay_us(10);
1 T. Z8 o" L* `& k: c R" } - LCD_ClrScreen(1);
6 y; O, }5 o; a+ {8 W! k' L - delay_us(10);/ o, R! E# L3 |
- LCD_ClrScreen(2);
7 a6 j+ o# J/ g$ R - delay_us(10);
4 V" l* W8 w! T# p7 y( c$ B - LCD_ClrScreen(3);
- o, Y e: H; _8 G& [ - delay_us(10);2 `2 X9 z7 f( U2 L$ h% Z5 h
-
1 t& l/ x/ T/ T, G$ q1 r3 F - while(1)& i* X& S9 G) D5 M" V
- {
1 ^ X4 G7 l% c( p. ^ - // GPM1306_DISBMP1(gImage_bmp1);' I$ I4 e7 t7 o4 T: L) A
- GPM1306_DISBMP1(gImage_bmp2);
5 {5 c3 B$ \: a1 h6 Y* I v - 3 I: O/ s- Q" `. I* y5 c+ O
7 f% e7 G( C. T" m3 I1 ]* w4 ?9 M3 \- S- }) p2 M, V6 O7 n6 Z4 }6 Y4 c
- }
& u- {* A$ q+ a
% [ E) u K% M9 z
复制代码 ( i1 c! t* ^' u8 g
( H4 o9 G9 E, I' w& j
5 c* r+ n% l5 _+ B: H+ w
3 e8 x0 u; d! }. Q! ^4 t2 Y
& R3 L+ Q) H8 b4 T) o; q. r& m |
|