高级会员
主题
回帖0
积分3496
阅读权限30
注册时间2016-12-21
最后登录1970-1-1
在线时间 小时
|
本帖最后由 davg1 于 2017-3-19 15:34 编辑
; c/ H8 f% N5 R; ?7 b8 E O' v$ F; M% W/ w4 |
非常感谢各位。- r6 w) f" x4 ?; p
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
' F. k1 H" @1 f( g$ v正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。
* [& e* U% P' J; U: Z0 A
8 q: |$ |! k! O1 a. C! B6 l, V淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。
3 f$ C# G0 o) q0 k5 }- J& h刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。
% y$ \8 V3 E, V" o3 Q6 R3 f无法达到一直显示的目的。问题找到了,是单片机一直在重启。
$ n6 X% e: B; c8 R! u可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。
$ n8 k A3 p. e \$ Z1 U) `我该怎么办呢?1 Q8 X7 x& Z+ m
接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。/ v, Z! W6 B2 {: t) o, ]# P# I; C
4 W6 r3 o# V/ X1 H& h. A
. H$ l, a# E3 `; [! `0 v
7 X7 p, G! d7 P' a4 p& ^5 k8 Q ~+ R0 T3 _1 i/ @
如图,
' p7 d; b3 @# i! a( F/ S: H
; Q" i. J4 A, P" X( x
& G- `# f1 o) f5 O
. c% {, m; Q* E) B# u
2 _: }7 ]8 A/ |& c% n. f
! W" I; b% ` R6 Q7 j程序用的
# C3 g& H9 V1 {https://www.yleee.com.cn/thread-57727-1-1.html& o% ^( ~# I: K) U, E8 y) y
中wangke2010提供的程序。他的显示就很正常
; f& t- Z* Y0 c" e% q7 X- m: m* U# T2 k
请问该如何救呢?谢谢!!!!
% K2 m( G3 r% U+ K3 W4 H Q# B0 z- unsigned char code gImage_bmp2[] =
8 Q2 I, ?# r& ? - { 0 x4 o* w# z* F+ ^# H% G1 R
- 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,: v6 R- c; K- Q; s* ], n5 a
- 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,- R8 W. z. B, R9 ]
- 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,3 M9 B9 D6 N: G4 p
- 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,9 l# S; p N! ~' k2 `2 G( K
- 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,6 n2 I' }/ e6 F, o" a/ B
- 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80,
# |8 {* e* ^; P: d \: Z( L3 W+ ` - 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,
' n/ ^- ~, v5 D6 q8 h! z: ? - 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,$ Q" p; O+ D4 K5 R
- 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,
5 \2 X9 |7 I I s0 \- L A - 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,
: W7 E1 }7 Z0 e$ o7 R" Y - 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,9 Y0 U5 z% e1 G5 c9 m( G
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,* c& m) ]0 a+ \( ?- t
- 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00,9 w0 v! V$ ^) a
- 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,, a# Q9 b( J- P; F& z. M3 v
- 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,& @, m7 g4 r: k
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,
; V3 v* }+ P# E5 G5 C& i7 N1 Q8 R - 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,
+ K# }2 Q; N! `& h - 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,$ t- `- B$ O8 E/ G
- 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,
, x. k2 B$ ^& w; P- S% _% |, \) u7 T - 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,
2 H. w# J( _" A2 ]8 x - 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,: g' }4 g( Q1 X) a! p! @/ [
- 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
- }% W4 U+ w# G - 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,
[$ O% Z5 ?& t* V - 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,! j/ B7 t2 S, f# z
- 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,4 H2 Y* t! O$ N1 I2 M
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
$ S7 l5 {# e6 Q# O d1 W - 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,
' Y7 r! p/ k$ b4 y5 l" C - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
# F- q2 @6 m' B! p - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' X1 G$ S+ x6 L% Z# x: e( F
- 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,8 N) t# a0 B# ?8 p* [
- 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,! A; I2 D/ E( l! f& s+ C0 ~
- 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,
[+ q, w7 N1 E3 B2 H: E - 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,& D& U$ I s. E' o: x+ h" M
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
7 l' ^/ k5 {" t& b; a - 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
$ S; `) }8 x/ x8 m! K - 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00, j4 h/ M" [2 \5 H6 c# }, y
- 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,; \/ e- e6 ^$ d! f7 W! k5 @* }3 m
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
- q& f) ~2 N+ s) b( k) L! _ - };
, N' V S: J4 K
" h3 l* I0 h# p2 p- 9 y' Y3 a4 O* h" l" |
- /* GPM1306.c
" [& ^* A3 [+ Q$ H# {" @ - * Created on: 2016-10-19
4 r* K" J2 P( f9 k* M: [ - * ┌─────────────────────────────────────────────┬───────────────┐" K6 Z& M' m, u; _1 O0 N
- * PIN_NO : 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 15 K9 g' L6 c8 h% o' U0 z& ?
- * NAME : BK-K BK-A NC SCL SDA A0 RST nCS NC VDD C1 VSS VDD C2 C31 C32 C4
6 ?9 P5 {; d6 {$ y6 B# e - * CONN : GND VCC P1.4 P1.3 P1.2 P1.1 P1.0 VDD │ │VSS │VDD │ │ │ │( i. M) S6 ^5 O& G/ B. W
- * │ │ │ │ │ │ │ │
1 P4 t* ]( {7 B n4 e' S - * │ C1-C5=1uF 25V 0805 ─── │ ─── ─── │ │ ───
+ L3 ], W" F; U; @( R" j - * │ 120x160pix ─── │ ─── ─── └─│ │-┘ ───' q B1 x% \+ h+ Q7 }4 e
- * │ ┌──────────┐ │C1 │ │C5 │C2 C3 │C4: u5 _" d! v: @5 ?, \7 {
- * └────┤ R1=3R3 ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘
$ f9 s$ T6 m A9 H8 K - * └──────────┘
5 d0 Y1 E! {" v6 q$ x0 { - *==================================================NOTICE==================================================
. t M+ |( y3 z; A - *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。
3 y) |. s2 k- x - *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。/ S# a# @) d$ B$ `* }- e( f
- *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。
' a! C: O' {# j - **************************************************移植参考**************************************************
# j& \+ Y1 o0 n) ]5 A) d - *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。6 q( H2 L) l. H4 x' F( d
- *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。
/ x2 \+ {: T7 n! Y) h: M% m2 L - *祝大家玩的开心。
+ d! Q9 ~7 l. N& s# s( b4 }% | - P1OUT |= BIT1; 是将P1OUT倒数第二位被置10 q: _$ k" t2 X5 w) S9 A
- P1OUT&=~ BIT0 是将P1OUT最低位 清 0/ g/ [: l# m$ `: i0 A
- */
8 ~8 D9 V, h# ?' K! d4 ~- m2 K P - #include "config.h". [2 }! k: g9 C e0 x5 I5 p
- #include "Delay.c"
& x1 B; h# f8 p7 |: o) v - #define GPM1306_nCS_CLR P12=0
! r4 w# `9 R, Z u - #define GPM1306_nCS_SET P12=1' u" M( L, V/ s
- #define GPM1306_RST_CLR P13=08 N* S' v3 d% a& x+ x; j
- #define GPM1306_RST_SET P13=1
. C' i/ X" M) a; S9 e+ k% G - #define GPM1306_A0_CLR P14=0
! Y# O& F6 m! V' B* u - #define GPM1306_A0_SET P14=19 v G1 p, U! O: V) _( F. ]" t
- #define GPM1306_SDA_CLR P15=05 c7 F3 q8 a5 ?) z
- #define GPM1306_SDA_SET P15=1; N1 D( d a2 W8 {- v+ \' _/ O
- #define GPM1306_SCL_CLR P54=0
2 F8 ^/ h$ w! |; `! \ - #define GPM1306_SCL_SET P54=1' w) V) f% b0 C6 [+ d1 Q5 s
- 2 _! j# S% L" S, J+ B# D
- 5 v" |5 `) p+ Q) Z% ?
- void LCDWriteCmd(char cmd)
0 Q* E5 ]0 J2 W4 z7 S; [: U1 t8 Y - {
3 f. |* s0 N4 v! R$ h7 E( K* b8 D/ _ - unsigned char i ;% U2 r. l& A( M0 R+ d" e% t
- GPM1306_nCS_CLR; //使能芯片' g4 }4 X, p1 y/ y9 z U- ?, V
- GPM1306_A0_CLR;//写命令模式6 x3 J$ l' M+ J a$ r$ w5 ~
- for(i=0;i<8;i++)
& f) f8 z) w$ M5 |/ v( T - {
- c( H& T. `. l# I4 A; { - GPM1306_SCL_CLR;
2 O& J A4 I$ j4 F' G E) x - if(cmd&0x80) //先传高位字节,后传低位字节! S$ R- r" F" e6 {
- GPM1306_SDA_SET;
* j9 k6 K9 j' [; A - else% i0 Z6 X7 h `: M5 d' k
- GPM1306_SDA_CLR;: D- N2 t0 P, N6 x. u
- GPM1306_SCL_SET;: n' ^0 ?" N$ z7 Q, R2 U1 G
- cmd=cmd<<1;: F, `, a$ w5 k+ x
- }4 K: Q$ q0 j7 h! u5 J
- GPM1306_nCS_SET;; ^/ H* p7 K |% i2 z. {; o
- }& I8 I/ s E7 M
- void LCDWriteData(char cmd)% c j& h: E5 U# W0 p+ }
- {0 _' C* U; E5 ^( M* p
- unsigned char i ;
9 A1 H3 Z6 g3 w1 C - GPM1306_nCS_CLR; //使能芯片5 r) i* H" a) K
- GPM1306_A0_SET;//写数据模式5 {& o9 Z/ E7 Y
- for(i=0;i<8;i++)* z. D+ [4 l+ p% F }3 E( ]
- {# ~/ t& E: o, p/ }6 j8 E
- GPM1306_SCL_CLR;/ w& J- [ D9 Z) x& ?& u
- if(cmd&0x80) //先传高位字节,后传低位字节
% `6 O; D+ z; m) n+ o% y - GPM1306_SDA_SET;" {# n |- w% u0 }0 n1 I; n8 P
- else
3 B# z) g+ W) o" [( A - GPM1306_SDA_CLR;$ H x9 z8 \4 T6 _ s3 J& p/ S
- GPM1306_SCL_SET;
8 R) A, i) A6 b+ P1 a5 L - cmd=cmd<<1;
& o2 l# G j5 M0 b; z1 X - }$ K1 ~5 y* b1 K$ m5 Y: O
- GPM1306_nCS_SET;" A* V4 C6 C. S4 r# D
- }
% k$ v: T1 t- d& i5 Z9 ]9 l' s - //设置起始行列
4 L" y J( M5 s; ~0 ` X - //ys为起始行,xs为起始列, ye为结束行, xe为结束列 f# W+ V5 d* Q6 ?* L+ c$ T4 Z
- //xe与xs的差值即字的宽度, ye与ys的差值即字的高度
/ s: Y' c+ j) F7 h- J5 `$ F7 s, y* p - void LCDSetXY(char xs, char ys, char xe, char ye )* r' b" t% n6 X) \" F9 R; Q1 x8 N
- {8 G* `8 ]- `! F; J. s* Y
- LCDWriteCmd(0x2A); //设置列地址(横坐标)
$ j+ @1 p+ t4 F( u - LCDWriteData(0x00);
d3 @& i5 P( n7 x9 l0 \ g: m - LCDWriteData(xs);
2 q3 n/ k" n% f5 \9 L - LCDWriteData(0x00);
8 Q, ~6 F0 n4 G - LCDWriteData(xe);! E, n1 P4 n& n" j& q* X
- LCDWriteCmd(0x2B); //设置行地址(纵坐标)3 e& [* D5 _* p7 `$ a
- LCDWriteData(0x00);
: n: ~- R L9 n4 g1 N - LCDWriteData(ys);4 c5 u5 z" i2 x6 O$ s2 q3 [
- LCDWriteData(0x00);+ d8 y6 _8 }, B7 a# ?, s' t
- LCDWriteData(ye);5 W: t0 d" a; e3 B. K* t, d7 m
- }( [4 O8 P( k& X. l" P$ X9 u
- //清屏函数0 A" A2 v3 T% @5 U# @' ]6 e
- void LCD_ClrScreen(unsigned char value)% D7 A5 }& Q9 i: ~' H
- {; w9 l4 N j& t! c
- unsigned char i,j;
: L0 N- A N& y$ i* e* e. P - const unsigned char tt[]={0x00,0x49,0x92,0xff,};! R' F; }8 S$ a2 p: ? O
- value=value&0x03;( q' h1 q- ]9 [4 G: q
- value=tt[value];
5 X, ^, S; ?' j6 R( t' g - LCDSetXY(0,0,53,119);
9 @9 t% r: l% j: t; d! N; ^- j - LCDWriteCmd(0x2C); //向DDRAM写入显示数据/ `) e9 u3 u* i- }" Z
- for(i=0;i<120;i++); [( y* P8 E$ u2 a$ } A" [
- for(j=0;j<54;j++)% H. q9 w4 H5 E1 Q5 `( w
- LCDWriteData(value);
! @8 Y* g8 g3 S2 ?4 I% ^4 v - // P1 ^=BIT6;0 l% h& T" i+ ~6 b3 T& Y: y
- }8 G: q" ^& O. \& P: ~
- void GPM1306_DISBMP1(const unsigned char *BMP1)6 @3 Q# E8 `' z3 d% T
- {
# d# a a+ y1 K) v- N$ z - unsigned long MCx8x31;5 a# i* g; p7 z7 t, {: B7 h
- unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;
7 Z. n* I' W X4 N - signed char vaild_bit1=8;% K. `8 @ e) u
- ((unsigned char *)&MCx8x31)[2]=*BMP1;) v3 E/ c+ M) e2 |1 R' K$ u0 h
- BMP1++;& c5 O! q* {* t2 b% T
- LCDSetXY(10,0,36,60);* U1 ^: L2 D; m* v( Q- f" Y! R' E
- LCDWriteCmd(0x2C); //向DDRAM写入显示数据
% X/ W2 p# S# x5 P: [( q! S - for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)
' f1 y" ]9 A1 w4 o* ^7 M - {
9 q ~ v8 t) \, _) i - for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....1
4 X, [* N _% M! N7 V - {
) M/ k5 b7 h1 J( Q7 j - if(vaild_bit1<3)' U4 q3 y9 V, ~' M& D9 R- N
- {1 s( D/ k" [1 B4 u* z, _7 `
- MCx8x31=MCx8x31<<vaild_bit1;6 ~8 Z, R; W: k6 {3 F1 l0 Q( ~2 n
- ((unsigned char *)&MCx8x31)[2]=*BMP1;, H" |5 K. J1 Q' t5 T
- BMP1++;
' o: i, W( [5 M1 k; n7 V" @) x! N! g - MCx8x31=MCx8x31>>vaild_bit1;
8 _3 }& u q0 b% @0 K' ] - vaild_bit1=vaild_bit1+8;( K! @& G* |2 w
- }
' O$ r$ |1 f* B6 j& a; p# C - color1=0;
2 b+ Q' N- r$ g" B) B - t2=((unsigned char *)&MCx8x31)[2];
3 R, D7 Z/ l5 }. d8 p - if((t2&0x80))
7 z7 z% C9 L R# H2 W6 t - color1=0x03;& c) |0 H: w% f6 Y" b+ U
- if((t2&0x40))' E+ u) O' K+ u% u2 R( y
- color1=color1+0x1c;
! M2 B% C2 S; X4 j4 k - if((t2&0x20))1 a' e6 q* K. d
- color1=color1+0xe0;& w- T7 ~! b! @, U4 s/ I7 e, V8 G% H) d
- MCx8x31=MCx8x31<<3;* s8 C; S& x$ V# j: A5 I
- vaild_bit1=vaild_bit1-3;6 C6 {! t% Z p; y$ s- Y: k
- LCDWriteData(color1);
1 f2 s4 X' t3 ?/ i, [ - }4 z# ~# n2 X: n R
- if(vaild_bit1<3)
# ^0 u. w8 w6 A2 b. \ - {/ W1 n0 Y8 Y6 N
- MCx8x31=MCx8x31<<vaild_bit1;
- d5 c- o' K, Q - ((unsigned char *)&MCx8x31)[2]=*BMP1;
$ F# @# x6 F4 P x - BMP1++;- \( k8 K6 R" W, H( G: v
- MCx8x31=MCx8x31>>vaild_bit1;
" f# k$ `; ]1 ~& D$ I - vaild_bit1=vaild_bit1+8;
$ ]* }9 C& [+ o% ~8 Z - }6 R" M2 n* V7 O3 m p' | A
- color1=0;7 J. G1 S. i: d6 M/ \$ v y
- t2=((unsigned char *)&MCx8x31)[2];
+ f& }) p- l8 b/ E - if((t2&0x80))0 z# \& [5 h! o0 z; X' L& U g
- color1=0x03;
6 Z! b/ z- [ c - MCx8x31=MCx8x31<<1;% _7 s8 s: ^: X7 k ?& C* R
- vaild_bit1=vaild_bit1-1;; c0 u- @% y* j3 U
- LCDWriteData(color1);
- U( A$ K2 Z$ z1 x - }
, u7 `# ` T5 Y& k0 [9 P/ | - }
I( a, m9 p4 I4 r- s. [% ]* r - //初始化函数
" v; ^+ Y5 @& }. C3 c - void LCDInit(void)
' I; s1 J3 A& ~3 V. B - {
: }; a7 I4 e* n: n9 i! M$ g: h - GPM1306_RST_CLR;9 ~! Q# a" G( F* v/ i
- delay_us(20);6 N& k; U5 E- w5 E# P) f
- //__delay_cycles(Fosc*0.2);//Delay_ms(20) //延时20ms
* u. f9 @) [! A K& Q# b - GPM1306_RST_SET;- w0 K# ?0 d; ~+ n. r5 b. r
- delay_us(40);/ K# Q+ [+ ^/ L+ X* [
- //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms& O& p, _6 N! i: s; ^: C
- LCDWriteCmd(0x01); // soft reset( x( H- B w- e3 P
- delay_us(40);
( K/ j/ o. Z$ Y# P" p9 A) b - //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms
( j6 j% c, J( _; |9 L8 r8 { - LCDWriteCmd(0x11); //Set power save mode:Sleep out mode
5 b4 ?) ]; `: s# w/ S6 D7 g - LCDWriteCmd(0xC0); // Set Vop///
, E* t! B' N1 d1 P - LCDWriteData(0xf0); // Set Vop Low 8bit 30//全屏太黑或者太白调整这里
9 {/ z, v/ a" J% G/ z - LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits) 01//全屏太黑或者太白调整这里
0 V- Q0 [9 i% L$ j! h% m - LCDWriteCmd(0xC3); //Set BIAS system
$ T( A: {* ^9 j- p# d - LCDWriteData(0x04); // 03: BIAS = 1/11 0-59 Z5 w t! ?! t& J/ k( \, X3 M
- LCDWriteCmd(0xC4); // Set booster level
0 f" T6 R" B7 q! G8 R( q2 u' q - LCDWriteData(0x07); // 07:x8 Booster
! j2 g# U' T6 l5 C: T9 M% Z! j5 v7 t - LCDWriteCmd(0xD0); // Enable analog circuit
5 r$ ]6 x+ c0 Z. r( G" D - LCDWriteData(0x1D); // Enable analog circuit( \8 m) `4 B. z) h- O; V+ `2 D
- LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode
& q% h M$ ^. A9 A" t - LCDWriteCmd(0x3A); //Enable DDRAM interface) x: T: s. ?0 X) r/ T' ~1 q
- LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode, m- T0 n: N7 r% `
- LCDWriteCmd(0x36); // Display Control
* X& q2 {7 M* U' ?# V - LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG383
( Z. [; \. l! k, `6 z - LCDWriteCmd(0xB0); // Display Duty% }6 Y* ~) m/ |7 a
- LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160) DT=0x81(1/130)
7 n- c( [# v7 i - LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display# Z1 z; C7 M5 v2 z+ ~; B
- LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)
+ t' L( X( z1 D1 a - LCDWriteData(0x15);//Frame Rate 92.0Hz! o6 c, d* P- o0 M' y
- LCDWriteData(0x15);
: u2 V: e" k! [ R - LCDWriteData(0x15);# U% n' c! T b5 }. W* _; h9 }
- LCDWriteData(0x15);; ?# X4 o* w6 X& a; _
- LCDWriteCmd(0xb1); // First Output COM
4 v: O' w5 w4 I# k. f - LCDWriteData(0x00); // Set first output COM FC=00h(Start from COM0)4 o! Q/ B5 ~1 q, G, e: M0 z
- LCDWriteCmd(0x29); //Display ON
& X0 i$ t& v' E8 L - }
! F1 ?2 B( f- d8 N% K3 t( P1 }. ~7 c
/ S' w+ W) w+ u2 ]8 V0 K! T2 }5 n- void main()
' o, Q* `# x' K* r" }6 P - {1 Z7 J" r, Z& K, R: W
- & D. O- t3 x% M" H' [( ~% o
- LCDInit(); //初始化液晶2 ~( W; K) d. L2 }* b/ M
- LCD_ClrScreen(0);/ f' m' ^1 ^9 b/ E k4 e* r" ~$ J
- delay_us(10);
( Q ^' T; G4 a( X - LCD_ClrScreen(1);* ]. Y6 K& s# v% b1 W' m' F6 k) R
- delay_us(10);
7 Q! ^2 }# z5 J: `9 U0 X8 w7 Z - LCD_ClrScreen(2);
. w, }& L m. }4 y/ w4 r2 m( W& k - delay_us(10);
5 z0 E8 _9 Y/ p - LCD_ClrScreen(3);
' `0 k) M1 f$ M) j/ c - delay_us(10);+ S+ C) p: f& U9 i4 ^/ e2 u
- / B% Y) J7 y, a' e) {2 V
- while(1)
1 ~7 e( y' Y; \# E1 ? - {, w+ X2 ?' f6 O8 Z' A" q4 A$ a" Y
- // GPM1306_DISBMP1(gImage_bmp1);
& r2 Q* }+ t9 a' ~2 ? - GPM1306_DISBMP1(gImage_bmp2);9 [& I' n. u% ^6 p
- / ^! `2 s( R1 l9 a% k6 _1 n
- 4 v j" L' g2 J) O6 C: C. F4 q
- }/ S9 t% q$ X2 {& ?( c! g
- }" H2 C) w' `1 w: Y* G8 Z" i2 U
- ! n$ o0 P \: h* |* @1 }$ \
复制代码
% Z: J% D% L1 ^6 j/ A
. T2 ~4 y7 d2 x6 [" U
- c0 k" b! m8 H# A2 E# m K7 u1 Z, \/ l! f
& v# _% X) a% Z# ~# i1 y
|
|