📄 ra8822.lst
字号:
C51 COMPILER V7.50 RA8822 11/09/2005 10:16:16 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RA8822
OBJECT MODULE PLACED IN RA8822.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RA8822.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 *
3 * Filename: RA8822.c
4 *
5 * Author: Duke Chang
6 * Company: RAiO Technology Inc.
7 * Case: 240x128
8 * Device: MXIC MX10E8050IQC at 18.432MHz
9 * Date: 2005/10/12
10 * Modifier: Duke Chang
11 * Modify Date: 2005/10/12
12 * Visions: 1.0
13 * Compiled Using Keil C v7.50
14 *
15 *******************************************************************************/
16
17 #include "RA8822.h"
18
19 /******************************************************************************/
20 /*Sub program area */
21 /******************************************************************************/
22
23 //==============================================================================
24 //Subroutine: LCD_Reset
25 //Function:
26 //==============================================================================
27 void LCD_Reset(void)
28 {
29 1 bRST = 0;
30 1 Delay100ms(5);
31 1 bRST = 1;
32 1 Delay100ms(2);
33 1 }
34
35 //==============================================================================
36 //Subroutine: LCD_Initial
37 //Function:
38 //==============================================================================
39 void LCD_Initial(void)
40 {
41 1 LCD_CmdWrite(WLCR, B1100_0101); //Normal Power
42 1 LCD_CmdWrite(MISC, B0000_0011); //8Mhz
43 1
44 1 LCD_CmdWrite(WCCR, B0110_1011); //
45 1
46 1 LCD_CmdWrite(AWRR, cAWRR);
47 1 LCD_CmdWrite(AWBR, cAWBR);
48 1 LCD_CmdWrite(AWLR, B0000_0000);
49 1 LCD_CmdWrite(AWTR, B0000_0000);
50 1 LCD_CmdWrite(DWRR, cDWRR);
51 1 LCD_CmdWrite(DWBR, cDWBR);
52 1 LCD_CmdWrite(DWLR, B0000_0000);
53 1 LCD_CmdWrite(DWTR, B0000_0000);
54 1
55 1 LCD_CmdWrite(SCCR, B0001_1100); //Frame Rate
C51 COMPILER V7.50 RA8822 11/09/2005 10:16:16 PAGE 2
56 1 LCD_CmdWrite(INTR, B0000_0000);
57 1 LCD_CmdWrite(TPCR, B1100_0000);
58 1 LCD_CmdWrite(TPSR, B0011_0101);
59 1
60 1 LCD_CmdWrite(PNTR, B0000_0000); //Fill Data=00
61 1 LCD_CmdWrite(LCCR, B0000_0000); //DAC Off
62 1
63 1 LCD_CmdWrite(FNCR, cFNCR); //GB Code or BIG5 Code
64 1 }
65
66 //==============================================================================
67 //Subroutine: LCD_CmdWrite
68 //Function:
69 //==============================================================================
70 void LCD_CmdWrite(uchar Addr, uchar Data)
71 {
72 1 LCD_ChkBusy();
73 1
74 1 #ifdef Parallel_8080
75 1 bCSZ = 0;
76 1 bRS = 0;
77 1 DATA_BUS = Addr; //Reg Addr
78 1 bWRZ = 0;
79 1 bWRZ = 1;
80 1
81 1 DATA_BUS = Data; //Reg Data
82 1 bWRZ = 0;
83 1 bWRZ = 1;
84 1 bCSZ = 1;
85 1 DATA_BUS = 0xff;
86 1 #endif
87 1
88 1 #ifdef Parallel_6800
bCSZ = 0;
bRS = 0;
bWRZ = 0;
DATA_BUS = Addr; //Reg Addr
bRDZ = 1;
bRDZ = 0;
DATA_BUS = 0xff;
DATA_BUS = Data; //Reg Data
bRDZ = 1;
bRDZ = 0;
DATA_BUS = 0xff;
bWRZ = 1;
bCSZ = 1;
#endif
104 1 }
105
106 //==============================================================================
107 //Subroutine: CmdRead
108 //Function:
109 //==============================================================================
110 uchar LCD_CmdRead(uchar Addr)
111 {
112 1 uchar Data;
113 1
114 1 #ifdef Parallel_8080
115 1 bCSZ = 0;
116 1 bRS = 0;
117 1 DATA_BUS = Addr; //Reg Addr
C51 COMPILER V7.50 RA8822 11/09/2005 10:16:16 PAGE 3
118 1 bWRZ = 0;
119 1 bWRZ = 1;
120 1
121 1 DATA_BUS = 0xff;
122 1 bRDZ = 0;
123 1 Data = DATA_BUS;
124 1 bRDZ = 1;
125 1 bCSZ = 1;
126 1 #endif
127 1
128 1 #ifdef Parallel_6800
bCSZ = 0;
bRS = 0;
bWRZ = 0;
DATA_BUS = Addr; //Reg Addr
bRDZ = 1;
bRDZ = 0;
DATA_BUS = 0xff;
bWRZ = 1;
bCSZ = 0;
bRDZ = 1;
Data = DATA_BUS;
bRDZ = 0;
bCSZ = 1;
#endif
144 1 return Data;
145 1 }
146
147 //==============================================================================
148 //Subroutine: LCD_DataWrite
149 //Function:
150 //==============================================================================
151 void LCD_DataWrite(uchar Data)
152 {
153 1 LCD_ChkBusy();
154 1
155 1 #ifdef Parallel_8080
156 1 bCSZ = 0;
157 1 bRS = 1;
158 1 DATA_BUS = Data;
159 1 bWRZ = 0;
160 1 bWRZ = 1;
161 1 bCSZ = 1;
162 1 DATA_BUS = 0xff;
163 1 #endif
164 1
165 1 #ifdef Parallel_6800
bCSZ = 0;
bRS = 1;
bWRZ = 0;
DATA_BUS = Data;
bRDZ = 1;
bRDZ = 0;
DATA_BUS = 0xff;
bWRZ = 1;
bRS = 0;
bCSZ = 1;
#endif
177 1 }
178
179 //==============================================================================
C51 COMPILER V7.50 RA8822 11/09/2005 10:16:16 PAGE 4
180 //Subroutine: LCD_DataRead
181 //Function:
182 //==============================================================================
183 uchar LCD_DataRead(void)
184 {
185 1 uchar Data;
186 1
187 1 LCD_ChkBusy();
188 1
189 1 #ifdef Parallel_8080
190 1 bCSZ = 0;
191 1 bRS = 1;
192 1 bRDZ = 0;
193 1 Data = DATA_BUS;
194 1 bRDZ = 1;
195 1 bCSZ = 1;
196 1 #endif
197 1
198 1 #ifdef Parallel_6800
bCSZ = 0;
bRS = 1;
bRDZ = 1;
Data = DATA_BUS;
bRDZ = 0;
bRS = 0;
bCSZ = 1;
#endif
207 1 return Data;
208 1 }
209
210 //==============================================================================
211 //Subroutine: LCD_ChkBusy
212 //Function:
213 //==============================================================================
214 void LCD_ChkBusy(void)
215 {
216 1 // uchar temp;
217 1
218 1 // do
219 1 // {
220 1 // temp = LCD_CmdRead(ISR);
221 1 // }while(temp & cTestb7);
222 1 }
223
224 //==============================================================================
225 //Subroutine: LCD_On
226 //Function:
227 //==============================================================================
228 void LCD_ON(void)
229 {
230 1 uchar temp;
231 1
232 1 temp = LCD_CmdRead(WLCR);
233 1 temp |= cSetb2;
234 1 LCD_CmdWrite(WLCR, temp);
235 1 }
236
237 void LCD_OFF(void)
238 {
239 1 uchar temp;
240 1
241 1 temp = LCD_CmdRead(WLCR);
C51 COMPILER V7.50 RA8822 11/09/2005 10:16:16 PAGE 5
242 1 temp &= cClrb2;
243 1 LCD_CmdWrite(WLCR, temp);
244 1 }
245
246 //==============================================================================
247 //Subroutine: LCD_GotoXY
248 //Function: LCD Cursor X-Y
249 //==============================================================================
250 void LCD_GotoXY(uchar x, uchar y)
251 {
252 1 LCD_CmdWrite(CPXR, (x & B0011_1111));
253 1 LCD_CmdWrite(CPYR, (y & B1111_1111));
254 1 }
255
256 //==============================================================================
257 //Subroutine: LCD_Graphic
258 //Function:
259 //==============================================================================
260 void LCD_Graphic(void)
261 {
262 1 uchar temp;
263 1
264 1 temp = LCD_CmdRead(WLCR);
265 1 temp &= cClrb3;
266 1 LCD_CmdWrite(WLCR, temp);
267 1 }
268
269 void LCD_Text(void)
270 {
271 1 uchar temp;
272 1
273 1 temp = LCD_CmdRead(WLCR);
274 1 temp |= cSetb3;
275 1 LCD_CmdWrite(WLCR, temp);
276 1 }
277
278 //==============================================================================
279 //Subroutine: LCD_PrintStr 1
280 //Function:
281 //==============================================================================
282 void LCD_PrintStrD100ms(uchar *ptr, uchar cXSize, uchar time)
283 {
284 1 uchar temp;
285 1
286 1 for(temp=0 ; temp<cXSize ; temp++)
287 1 {
288 2 LCD_DataWrite(*ptr);
289 2 ptr++;
290 2 Delay100ms(time);
291 2 }
292 1 }
293
294 //==============================================================================
295 //Subroutine: LCD_PrintStr 2
296 //Function:
297 //==============================================================================
298 void LCD_PrintStr(uchar *ptr, uchar cXSize)
299 {
300 1 uchar temp;
301 1
302 1 for(temp=0 ; temp<cXSize ; temp++)
303 1 {
C51 COMPILER V7.50 RA8822 11/09/2005 10:16:16 PAGE 6
304 2 LCD_DataWrite(*ptr);
305 2 ptr++;
306 2 }
307 1 }
308
309 //==============================================================================
310 //Subroutine: Bold
311 //Function:
312 //==============================================================================
313 void LCD_Bold(void)
314 {
315 1 uchar temp;
316 1
317 1 temp = LCD_CmdRead(WCCR);
318 1 temp |= cSetb4;
319 1 LCD_CmdWrite(WCCR, temp);
320 1 }
321
322 void LCD_NoBold(void)
323 {
324 1 uchar temp;
325 1
326 1 temp = LCD_CmdRead(WCCR);
327 1 temp &= cClrb4;
328 1 LCD_CmdWrite(WCCR, temp);
329 1 }
330
331 //==============================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -