📄 st7787-37pin.lst
字号:
C51 COMPILER V7.01 ST7787_37PIN 09/22/2007 14:09:10 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE ST7787_37PIN
OBJECT MODULE PLACED IN ST7787-37pin.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ST7787-37pin.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.H>
2 #include <stdio.H>
3 #include <intrins.H>
4 #include "board.c"
5 #include "readrom.c"
6 #include "page_sel.c"
7 #include "Trans_romdat.c"
8 #include "init_ILI9320.c"
9 #define CHANNEL_X 0x90
10 #define CHANNEL_Y 0xd0
11 #define ID 0xe0
12
13
14 sbit DCLK = P3^4;
15 sbit tpCS = P3^5;
16 sbit DIN = P3^6;
17 sbit BUSY = P1^7;
18 sbit DOUT = P1^5;
19 sbit PENIRQ = P1^4;
20
21 void Pause()
22 {
23 1 while(!(P3&0x08));
24 1 }
25
26 void set_x(unsigned int x_star,unsigned x_end)
27 {
28 1 Trans_Com_16(0x0050);
29 1 Trans_Dat_16(x_star);
30 1 Trans_Com_16(0x0051);
31 1 Trans_Dat_16(x_end);
32 1 }
33
34 void set_y(unsigned int y_star,unsigned y_end )
35 {
36 1 Trans_Com_16(0x0052);
37 1 Trans_Dat_16(y_star);
38 1 Trans_Com_16(0x0053);
39 1 Trans_Dat_16(y_end);
40 1 }
41
42 void Display(unsigned int c1,unsigned char x,unsigned int y)
43 {
44 1 unsigned int i,j;
45 1
46 1 set_x(0x0000,0x00ef);
47 1 set_y(0x0000,0x013f);
48 1 Trans_Com_16(0x0022);
49 1
50 1 for(i=0;i<y;i++)
51 1 {
52 2 for(j=0;j<x;j++)
53 2 {
54 3 Trans_Dat_16(c1);
55 3 }
C51 COMPILER V7.01 ST7787_37PIN 09/22/2007 14:09:10 PAGE 2
56 2 }
57 1 }
58
59 void Display101(unsigned int c1)
60 {
61 1 int i,j,k,l,a=0;
62 1
63 1 set_x(0x0000,0x00ef);
64 1 set_y(0x0000,0x013f);
65 1 Trans_Com_16(0x0022);
66 1
67 1 for(i=0;i<40;i++)
68 1 {
69 2 for(l=0;l<120;l++)
70 2 {for(j=0;j<8;j++)
71 3 Trans_Dat_16( c1); // Red.
72 3 for(k=0;k<8;k++)
73 3 Trans_Dat_16(~c1);
74 3 }
75 2 c1=~c1;
76 2 }
77 1 }
78
79 void Disp_rom(unsigned char page,unsigned int addr,unsigned char x,unsigned int y)
80 {
81 1 unsigned int j,k;
82 1 unsigned char high8,low8;
83 1
84 1 set_x(0x0000,0x00ef);
85 1 set_y(0x0000,0x013f);
86 1 page_se(page);
87 1 Trans_Com_16(0x0022);
88 1
89 1 for(j=0;j<y;j++)
90 1 {
91 2 for(k=0;k<x;k++)
92 2 {
93 3 high8=read_rom(addr++);
94 3 low8=read_rom(addr++);
95 3 Trans_romdat(high8,low8);
96 3 while (addr==0x0000)
97 3 {page_se(++page);break;}
98 3 }
99 2 }
100 1 }
101
102
103
104 void SPI_WriteCharTo7643(unsigned char cmd) // SPI写数据
105 {
106 1 unsigned char i;
107 1
108 1 for(i=0; i<8; i++)
109 1 {
110 2 DIN=cmd&0x80;
111 2 //DIN = CY;
112 2 DCLK = 0; // DCLK 上升沿 将DIN 数据发送出去 ...
113 2 _nop_();_nop_();_nop_();
114 2 DCLK = 1;
115 2 _nop_();_nop_();_nop_();
116 2 cmd <<= 1;
117 2 }
C51 COMPILER V7.01 ST7787_37PIN 09/22/2007 14:09:10 PAGE 3
118 1 DCLK = 0;
119 1 _nop_();_nop_();_nop_();
120 1 }
121
122 unsigned int SPI_ReadACharFrom7643(void) // SPI 读数据
123 {
124 1 unsigned char i;
125 1 unsigned int value=0;
126 1
127 1 for(i=0; i<12; i++)
128 1 {
129 2 DOUT = 1;
130 2 value <<= 1;
131 2 DCLK = 1; // 下降沿有效
132 2 _nop_();_nop_();_nop_();
133 2 DCLK = 0;
134 2 _nop_();_nop_();_nop_();
135 2 if(DOUT){
136 3 value++;
137 3 }
138 2
139 2 }
140 1 return value;
141 1 }
142
143 void IdleClock(void)
144 {
145 1 unsigned char i;
146 1
147 1 for(i=0;i<4;i++)
148 1 {
149 2 DCLK = 1;
150 2 _nop_();_nop_();_nop_();
151 2 DCLK = 0;
152 2 _nop_();_nop_();_nop_();
153 2 }
154 1 }
155
156 unsigned int ReadADC(unsigned char cmd)
157 {
158 1 unsigned int value;
159 1
160 1 tpCS = 0;
161 1 _nop_();_nop_();_nop_();
162 1 _nop_();_nop_();_nop_();
163 1 _nop_();_nop_();_nop_();
164 1 SPI_WriteCharTo7643(cmd); // 8 clocks
165 1 while(BUSY==0);
166 1 value = SPI_ReadACharFrom7643(); // 12 clock
167 1 IdleClock(); // 4 clocks
168 1 tpCS = 1;
169 1 _nop_();_nop_();_nop_();
170 1 _nop_();_nop_();_nop_();
171 1 _nop_();_nop_();_nop_();
172 1 return value;
173 1 }
174
175 void Init_7643(void)
176 {
177 1 DCLK = 0;
178 1 tpCS = 1;
179 1 DIN = 1;
C51 COMPILER V7.01 ST7787_37PIN 09/22/2007 14:09:10 PAGE 4
180 1 BUSY = 1;
181 1 DOUT = 1;
182 1 PENIRQ = 1;
183 1
184 1 ReadADC(CHANNEL_X); // Enable PENIRQ
185 1 }
186
187
188 void main(void)
189 {
190 1 while(1)
191 1 {
192 2 init_LCD();
193 2 Init_7643();
194 2 while(PENIRQ)
195 2 {;}
196 2 ReadADC(ID);
197 2 Display(0xF800,240,320);
198 2 Pause();
199 2 //Display(0x07E0,240,320);
200 2 //Pause();
201 2 //Display(0x001F,240,320);
202 2 //Pause();
203 2 //Display(0x0000,240,320);
204 2 //Pause();
205 2 //Display(0xFFFF,240,320);
206 2 //Pause();
207 2 //Display101(0xFFFF);
208 2 //Pause();
209 2 //Disp_rom(0x02,0x5d00,240,320);
210 2 //Pause();
211 2 //Disp_rom(0x04,0xb500,240,320);
212 2 //Pause();
213 2 }
214 1 }
215
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1380 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 18
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 + -