📄 sc52x+
字号:
C51 COMPILER V6.12 ST7735 08/09/2012 16:04:01 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE ST7735
OBJECT MODULE PLACED IN .\Out Hex\ST7735.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Program\ST7735.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Out Hex\ST7735.lst) OBJE
-CT(.\Out Hex\ST7735.obj)
stmt level source
1
2 //
3 /***************************************************/
4
5 #include<reg51.h>
6 #include<absacc.h>
7 #include<intrins.h>
8 #include<string.h>
9 #define uchar unsigned char
10 #define uint unsigned int
11
12 sbit cs =P0^3;
13 sbit rs =P0^0;
14 sbit sda =P0^1;
15 sbit scl =P0^2;
16 sbit reset =P1^7;
17
18 sbit aa=P1^0;
19 sbit bb=P1^1;
20 sbit cc=P1^2;
21 sbit dd=P1^3;
22
23 sbit ConAdd =P3^1;
24 sbit ConSub =P3^0;
25 sbit PAUSE =P3^3;
26
27 sbit Type =P3^5; //0-成品检测,1-半成品检测
28 sbit Mtp =P3^2; //MTP Burn
29
30
31 uchar code map1[];
32 uchar code map2[];
33
34 uchar bdata bitdata;
35 sbit bit7=bitdata^7;
36 sbit bit6=bitdata^6;
37 sbit bit5=bitdata^5;
38 sbit bit4=bitdata^4;
39 sbit bit3=bitdata^3;
40 sbit bit2=bitdata^2;
41 sbit bit1=bitdata^1;
42 sbit bit0=bitdata^0;
43
44 void OTP_Program();
45 void delay(uint t);
46 void Contrast_Adjust();
47 uchar code Zk_ASCII8X16[];
48
49 void Display_Desc();
50 void Output_Pixel(uint x,uint y);
51 void Display_ASCII8X16(uint x0,uint y0,uchar *s);
52 void Test_FinshGoods();
53 void Test_HalfFinshGoods();
54 void EEPROM_ERASE();
C51 COMPILER V6.12 ST7735 08/09/2012 16:04:01 PAGE 2
55 void EEPROM_Writing();
56
57 void delay(uint time)
58 {
59 1 uint i,j;
60 1 for(i=0;i<time;i++)
61 1 for(j=0;j<250;j++);
62 1 }
63
64 void Pause() interrupt 2
65 {
66 1 delay(100);
67 1 while(!PAUSE);
68 1 delay(100);
69 1 while(PAUSE);
70 1 delay(100);
71 1 while(!PAUSE);
72 1 delay(100);
73 1 }
74
75
76
77 void LCD_CtrlWrite_IC(uchar c)
78 {
79 1 bitdata=c;
80 1 cs=0;
81 1 rs=0;
82 1 sda=bit7;scl=0;scl=1;
83 1 sda=bit6;scl=0;scl=1;
84 1 sda=bit5;scl=0;scl=1;
85 1 sda=bit4;scl=0;scl=1;
86 1 sda=bit3;scl=0;scl=1;
87 1 sda=bit2;scl=0;scl=1;
88 1 sda=bit1;scl=0;scl=1;
89 1 sda=bit0;scl=0;scl=1;
90 1 cs=1;
91 1
92 1
93 1 }
94 void LCD_DataWrite_IC(uchar d)
95 {
96 1
97 1 bitdata=d;
98 1 cs=0;
99 1 rs=1;
100 1 sda=bit7;scl=0;scl=1;
101 1 sda=bit6;scl=0;scl=1;
102 1 sda=bit5;scl=0;scl=1;
103 1 sda=bit4;scl=0;scl=1;
104 1 sda=bit3;scl=0;scl=1;
105 1 sda=bit2;scl=0;scl=1;
106 1 sda=bit1;scl=0;scl=1;
107 1 sda=bit0;scl=0;scl=1;
108 1 cs=1;
109 1 }
110
111 void LCD_DataWrite(uchar LCD_DataH,uchar LCD_DataL)
112 {
113 1 LCD_DataWrite_IC(LCD_DataH);
114 1 LCD_DataWrite_IC(LCD_DataL);
115 1 }
116
C51 COMPILER V6.12 ST7735 08/09/2012 16:04:01 PAGE 3
117
118 void write_command(uchar c)
119 {
120 1 bitdata=c;
121 1 cs=0;
122 1 rs=0;
123 1 sda=bit7;scl=0;scl=1;
124 1 sda=bit6;scl=0;scl=1;
125 1 sda=bit5;scl=0;scl=1;
126 1 sda=bit4;scl=0;scl=1;
127 1 sda=bit3;scl=0;scl=1;
128 1 sda=bit2;scl=0;scl=1;
129 1 sda=bit1;scl=0;scl=1;
130 1 sda=bit0;scl=0;scl=1;
131 1 cs=1;
132 1 }
133
134 void write_data(uchar d)
135 {
136 1 bitdata=d;
137 1 cs=0;
138 1 rs=1;
139 1 sda=bit7;scl=0;scl=1;
140 1 sda=bit6;scl=0;scl=1;
141 1 sda=bit5;scl=0;scl=1;
142 1 sda=bit4;scl=0;scl=1;
143 1 sda=bit3;scl=0;scl=1;
144 1 sda=bit2;scl=0;scl=1;
145 1 sda=bit1;scl=0;scl=1;
146 1 sda=bit0;scl=0;scl=1;
147 1 cs=1;
148 1 }
149
150 //////////////////////////////////////////////////////////////////////////////////////////////
151
152 void lcd_initial()
153 {
154 1
155 1 reset=0;
156 1 delay(100);
157 1 reset=1;
158 1 delay(100);
159 1
160 1 //------------------------------------------------------------------//
161 1 //-------------------Software Reset-------------------------------//
162 1
163 1 write_command(0x11);//Sleep exit
164 1 delay (120);
165 1
166 1 //ST7735R Frame Rate 帧速率设置
167 1 write_command(0xB1); //正常模式全色彩
168 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
169 1 write_command(0xB2);//在待机模式
170 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
171 1 write_command(0xB3);//在部分模式全彩
172 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
173 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
174 1
175 1 write_command(0xB4); //Column inversion 显示逆控制
176 1 write_data(0x07);
177 1
178 1 //ST7735R Power Sequence
C51 COMPILER V6.12 ST7735 08/09/2012 16:04:01 PAGE 4
179 1 write_command(0xC0);//功率控制1
180 1 write_data(0xA2); write_data(0x02); write_data(0x84);
181 1 write_command(0xC1); write_data(0xC5); //功率控制2
182 1 write_command(0xC2); //功率控制3 (正常模式/全彩)
183 1 write_data(0x06); write_data(0x00);
184 1 write_command(0xC3);//控制功率4在空闲模式
185 1 write_data(0x8A); write_data(0x2A);
186 1 write_command(0xC4);//功率控制5在部分模式/全彩
187 1 write_data(0x8A); write_data(0xEE);
188 1
189 1 write_command(0xC5); //VCOM 控制11
190 1 write_data(0x0E);
191 1
192 1 write_command(0x36); //MX, MY, RGB mode
193 1 write_data(0xC8);
194 1
195 1 //ST7735R Gamma Sequence +伽码校正特性设置
196 1 write_command(0xe0);
197 1 write_data(0x0f); write_data(0x1a);
198 1 write_data(0x0f); write_data(0x18);
199 1 write_data(0x2f); write_data(0x28);
200 1 write_data(0x20); write_data(0x22);
201 1 write_data(0x1f); write_data(0x1b);
202 1 write_data(0x23); write_data(0x37); write_data(0x00);
203 1
204 1 write_data(0x07);
205 1 write_data(0x02); write_data(0x10);
206 1 write_command(0xe1);//-伽码校正特性设置
207 1 write_data(0x0f); write_data(0x1b);
208 1 write_data(0x0f); write_data(0x17);
209 1 write_data(0x33); write_data(0x2c);
210 1 write_data(0x29); write_data(0x2e);
211 1 write_data(0x30); write_data(0x30);
212 1 write_data(0x39); write_data(0x3f);
213 1 write_data(0x00); write_data(0x07);
214 1 write_data(0x03); write_data(0x10);
215 1
216 1 write_command(0x2a);//列地址设置
217 1 write_data(0x00);write_data(0x00);
218 1 write_data(0x00);write_data(0x7f);
219 1 write_command(0x2b);//行地址设置
220 1 write_data(0x00);write_data(0x00);
221 1 write_data(0x00);write_data(0x9f);
222 1
223 1 write_command(0xF0); //Enable test command 使能测试命令
224 1 write_data(0x01);
225 1 write_command(0xF6); //Disable ram power save mode
226 1 write_data(0x00);
227 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -