📄 sc52x+
字号:
C51 COMPILER V6.12 ST7735 08/09/2012 16:08:04 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
19 sbit WM=P1^0; //数码管使能
20 sbit DM2=P1^1; //数码管使能
21 sbit LSD=P1^2; //流水灯管使能
22 sbit DZ=P1^3; //点阵使能
23
24
25 uchar bdata bitdata;
26 sbit bit7=bitdata^7;
27 sbit bit6=bitdata^6;
28 sbit bit5=bitdata^5;
29 sbit bit4=bitdata^4;
30 sbit bit3=bitdata^3;
31 sbit bit2=bitdata^2;
32 sbit bit1=bitdata^1;
33 sbit bit0=bitdata^0;
34
35 void delay(uint time)
36 {
37 1 uint i,j;
38 1 for(i=0;i<time;i++)
39 1 for(j=0;j<250;j++);
40 1 }
41
42 void LCD_commandWrite_IC(uchar c)
43 {
44 1 bitdata=c;
45 1 cs=0;
46 1 rs=0;
47 1 sda=bit7;scl=0;scl=1;
48 1 sda=bit6;scl=0;scl=1;
49 1 sda=bit5;scl=0;scl=1;
50 1 sda=bit4;scl=0;scl=1;
51 1 sda=bit3;scl=0;scl=1;
52 1 sda=bit2;scl=0;scl=1;
53 1 sda=bit1;scl=0;scl=1;
54 1 sda=bit0;scl=0;scl=1;
C51 COMPILER V6.12 ST7735 08/09/2012 16:08:04 PAGE 2
55 1 cs=1;
56 1
57 1
58 1 }
59 void LCD_DataWrite_IC(uchar d)
60 {
61 1
62 1 bitdata=d;
63 1 cs=0;
64 1 rs=1;
65 1 sda=bit7;scl=0;scl=1;
66 1 sda=bit6;scl=0;scl=1;
67 1 sda=bit5;scl=0;scl=1;
68 1 sda=bit4;scl=0;scl=1;
69 1 sda=bit3;scl=0;scl=1;
70 1 sda=bit2;scl=0;scl=1;
71 1 sda=bit1;scl=0;scl=1;
72 1 sda=bit0;scl=0;scl=1;
73 1 cs=1;
74 1 }
75
76 void LCD_DataWrite(uchar LCD_DataH,uchar LCD_DataL)
77 {
78 1 LCD_DataWrite_IC(LCD_DataH);
79 1 LCD_DataWrite_IC(LCD_DataL);
80 1 }
81
82
83 void write_command(uchar c)
84 {
85 1 bitdata=c;
86 1 cs=0;
87 1 rs=0;
88 1 sda=bit7;scl=0;scl=1;
89 1 sda=bit6;scl=0;scl=1;
90 1 sda=bit5;scl=0;scl=1;
91 1 sda=bit4;scl=0;scl=1;
92 1 sda=bit3;scl=0;scl=1;
93 1 sda=bit2;scl=0;scl=1;
94 1 sda=bit1;scl=0;scl=1;
95 1 sda=bit0;scl=0;scl=1;
96 1 cs=1;
97 1 }
98
99 void write_data(uchar d)
100 {
101 1 bitdata=d;
102 1 cs=0;
103 1 rs=1;
104 1 sda=bit7;scl=0;scl=1;
105 1 sda=bit6;scl=0;scl=1;
106 1 sda=bit5;scl=0;scl=1;
107 1 sda=bit4;scl=0;scl=1;
108 1 sda=bit3;scl=0;scl=1;
109 1 sda=bit2;scl=0;scl=1;
110 1 sda=bit1;scl=0;scl=1;
111 1 sda=bit0;scl=0;scl=1;
112 1 cs=1;
113 1 }
114
115 //TFT初始化设置
116
C51 COMPILER V6.12 ST7735 08/09/2012 16:08:04 PAGE 3
117 //////////////////////////////////////////////////////////////////////////////////////////////
118
119 void lcd_initial()
120 {
121 1
122 1 reset=0;
123 1 delay(100);
124 1 reset=1;
125 1 delay(100);
126 1
127 1 //------------------------------------------------------------------//
128 1 //-------------------Software Reset-------------------------------//
129 1
130 1 write_command(0x11);//Sleep exit
131 1 delay (120);
132 1
133 1 //ST7735R Frame Rate 帧速率设置
134 1 write_command(0xB1); //正常模式全色彩
135 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
136 1 write_command(0xB2);//在待机模式
137 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
138 1 write_command(0xB3);//在部分模式全彩
139 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
140 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
141 1
142 1 write_command(0xB4); //Column inversion 显示逆控制
143 1 write_data(0x07);
144 1
145 1 //ST7735R Power Sequence
146 1 write_command(0xC0);//功率控制1
147 1 write_data(0xA2); write_data(0x02); write_data(0x84);
148 1 write_command(0xC1); write_data(0xC5); //功率控制2
149 1 write_command(0xC2); //功率控制3 (正常模式/全彩)
150 1 write_data(0x06); write_data(0x00);
151 1 write_command(0xC3);//控制功率4在空闲模式
152 1 write_data(0x8A); write_data(0x2A);
153 1 write_command(0xC4);//功率控制5在部分模式/全彩
154 1 write_data(0x8A); write_data(0xEE);
155 1
156 1 write_command(0xC5); //VCOM 控制11
157 1 write_data(0x0E);
158 1
159 1 write_command(0x36); //MX, MY, RGB mode
160 1 write_data(0xC8);
161 1
162 1 //ST7735R Gamma Sequence +伽码校正特性设置
163 1 write_command(0xe0);
164 1 write_data(0x0f); write_data(0x1a);
165 1 write_data(0x0f); write_data(0x18);
166 1 write_data(0x2f); write_data(0x28);
167 1 write_data(0x20); write_data(0x22);
168 1 write_data(0x1f); write_data(0x1b);
169 1 write_data(0x23); write_data(0x37); write_data(0x00);
170 1
171 1 write_data(0x07);
172 1 write_data(0x02); write_data(0x10);
173 1 write_command(0xe1);//-伽码校正特性设置
174 1 write_data(0x0f); write_data(0x1b);
175 1 write_data(0x0f); write_data(0x17);
176 1 write_data(0x33); write_data(0x2c);
177 1 write_data(0x29); write_data(0x2e);
178 1 write_data(0x30); write_data(0x30);
C51 COMPILER V6.12 ST7735 08/09/2012 16:08:04 PAGE 4
179 1 write_data(0x39); write_data(0x3f);
180 1 write_data(0x00); write_data(0x07);
181 1 write_data(0x03); write_data(0x10);
182 1
183 1 write_command(0x2a);//列地址设置
184 1 write_data(0x00);write_data(0x00);
185 1 write_data(0x00);write_data(0x7f);
186 1 write_command(0x2b);//行地址设置
187 1 write_data(0x00);write_data(0x00);
188 1 write_data(0x00);write_data(0x9f);
189 1
190 1 write_command(0xF0); //Enable test command 使能测试命令
191 1 write_data(0x01);
192 1 write_command(0xF6); //Disable ram power save mode
193 1 write_data(0x00);
194 1
195 1 write_command(0x3A); //65k mode 接口像素格式
196 1 write_data(0x05); //18-bit/pixel
197 1
198 1
199 1 write_command(0x29);//Display on
200 1 }
201
202
203 //刷屏函数
204 /***********************************************************************************
205 ***********************************************************************************
206 **********************************************************************************/
207
208 void dsp_single_colour(DH,DL)
209 {
210 1 uchar i,j;
211 1 //RamAdressSet();
212 1 for (i=0;i<160;i++)
213 1 for (j=0;j<128;j++)
214 1 LCD_DataWrite(DH,DL);
215 1 }
216
217
218 //主函数
219 /*****************************************************************
220 *****************************************************************
221 *****************************************************************/
222
223 main()
224 {
225 1
226 1 P0=0XFF;
227 1 WM=DM2=LSD=DZ=0;
228 1 lcd_initial();
229 1
230 1 while(1)
231 1 {
232 2 write_command(0x2C);
233 2 // Disp_gradscal(); //灰阶
234 2 // delay(500);
235 2
236 2 dsp_single_colour(0x84,0x10);//灰色
237 2 delay(500);
238 2
239 2 dsp_single_colour(0xff,0xff);//白色
240 2 delay(500);
C51 COMPILER V6.12 ST7735 08/09/2012 16:08:04 PAGE 5
241 2
242 2 dsp_single_colour(0x00,0x00);//黑色
243 2 delay(500);
244 2
245 2 dsp_single_colour(0xf8,0x00);//红色
246 2 delay(500);
247 2
248 2 dsp_single_colour(0x07,0xe0);//绿色
249 2 delay(500);
250 2
251 2 dsp_single_colour(0x00,0x1f);//蓝色
252 2 delay(500);
253 2
254 2 dsp_single_colour(0x07,0xff);//青
255 2 delay(500);
256 2
257 2 dsp_single_colour(0xff,0xe0);//黄
258 2 delay(500);
259 2
260 2 dsp_single_colour(0x7b,0xef);//紫
261 2 delay(500);
262 2 }
263 1
264 1 }
265
266
267
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 902 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -