📄 sc52x+
字号:
C51 COMPILER V6.12 ST7735 08/09/2012 16:09:15 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 LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Out Hex\ST7735.lst
-) OBJECT(.\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 OTP_Program();
36 void delay(uint t);
37 void Contrast_Adjust();
38 uchar code Zk_ASCII8X16[];
39 unsigned char code picture1[];
40
41
42 void delay(uint time)
43 {
44 1 uint i,j;
45 1 for(i=0;i<time;i++)
46 1 for(j=0;j<250;j++);
47 1 }
48
49
50
51
52 void LCD_CtrlWrite_IC(uchar c)
53 {
54 1 bitdata=c;
C51 COMPILER V6.12 ST7735 08/09/2012 16:09:15 PAGE 2
55 1 cs=0;
56 1 rs=0;
57 1 sda=bit7;scl=0;scl=1;
58 1 sda=bit6;scl=0;scl=1;
59 1 sda=bit5;scl=0;scl=1;
60 1 sda=bit4;scl=0;scl=1;
61 1 sda=bit3;scl=0;scl=1;
62 1 sda=bit2;scl=0;scl=1;
63 1 sda=bit1;scl=0;scl=1;
64 1 sda=bit0;scl=0;scl=1;
65 1 cs=1;
66 1
67 1
68 1 }
69 void LCD_DataWrite_IC(uchar d)
70 {
71 1
72 1 bitdata=d;
73 1 cs=0;
74 1 rs=1;
75 1 sda=bit7;scl=0;scl=1;
76 1 sda=bit6;scl=0;scl=1;
77 1 sda=bit5;scl=0;scl=1;
78 1 sda=bit4;scl=0;scl=1;
79 1 sda=bit3;scl=0;scl=1;
80 1 sda=bit2;scl=0;scl=1;
81 1 sda=bit1;scl=0;scl=1;
82 1 sda=bit0;scl=0;scl=1;
83 1 cs=1;
84 1 }
85
86 void LCD_DataWrite(uchar LCD_DataH,uchar LCD_DataL)
87 {
88 1 LCD_DataWrite_IC(LCD_DataH);
89 1 LCD_DataWrite_IC(LCD_DataL);
90 1 }
91
92 void LCD_DataWrite_4K(uchar LCD_DataH,uchar LCD_DataM,uchar LCD_DataL)
93 {
94 1 LCD_DataWrite_IC(LCD_DataH);
95 1 LCD_DataWrite_IC(LCD_DataM);
96 1 LCD_DataWrite_IC(LCD_DataL);
97 1 }
98
99 void write_command(uchar c)
100 {
101 1 bitdata=c;
102 1 cs=0;
103 1 rs=0;
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 void write_data(uchar d)
116 {
C51 COMPILER V6.12 ST7735 08/09/2012 16:09:15 PAGE 3
117 1 bitdata=d;
118 1 cs=0;
119 1 rs=1;
120 1 sda=bit7;scl=0;scl=1;
121 1 sda=bit6;scl=0;scl=1;
122 1 sda=bit5;scl=0;scl=1;
123 1 sda=bit4;scl=0;scl=1;
124 1 sda=bit3;scl=0;scl=1;
125 1 sda=bit2;scl=0;scl=1;
126 1 sda=bit1;scl=0;scl=1;
127 1 sda=bit0;scl=0;scl=1;
128 1 cs=1;
129 1 }
130
131
132 void Reset()
133 {
134 1 reset=0;
135 1 delay(100);
136 1 reset=1;
137 1 delay(100);
138 1 }
139
140
141 //////////////////////////////////////////////////////////////////////////////////////////////
142
143 void lcd_initial()
144 {
145 1
146 1 reset=0;
147 1 delay(100);
148 1 reset=1;
149 1 delay(100);
150 1
151 1 //------------------------------------------------------------------//
152 1 //-------------------Software Reset-------------------------------//
153 1
154 1 write_command(0x11);//Sleep exit
155 1 delay (120);
156 1
157 1 //ST7735R Frame Rate 帧速率设置
158 1 write_command(0xB1); //正常模式全色彩
159 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
160 1 write_command(0xB2);//在待机模式
161 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
162 1 write_command(0xB3);//在部分模式全彩
163 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
164 1 write_data(0x02); write_data(0x2C); write_data(0x2D);
165 1
166 1 write_command(0xB4); //Column inversion 显示逆控制
167 1 write_data(0x07);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -