📄 ra8803.lst
字号:
C51 COMPILER V8.08 RA8803 02/27/2008 14:45:55 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE RA8803
OBJECT MODULE PLACED IN RA8803.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE RA8803.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 *
3 * Filename: RA8803.c
4 *
5 * Author: Duke Chang
6 * Company: RAiO Technology Inc.
7 * Case: 320x240
8 * Device: MXIC MX10E8050IQC at 18.432MHz
9 * Date: 2005/10/1
10 * Modifier: Duke Chang
11 * Modify Date: 2005/10/13
12 * Visions: 1.0
13 * Compiled Using Keil C v7.50
14 *
15 *******************************************************************************/
16
17 #include "RA8803.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_0010); //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, B0000_0111); //Frame Rate
C51 COMPILER V8.08 RA8803 02/27/2008 14:45:55 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 while(BUSY==1);
76 1 bCSZ = 0;
77 1 bRS = 0;
78 1 DATA_BUS = Addr; //Reg Addr
79 1 bWRZ = 0;
80 1 bWRZ = 1;
81 1
82 1 DATA_BUS = Data; //Reg Data
83 1 bWRZ = 0;
84 1 bWRZ = 1;
85 1 bCSZ = 1;
86 1 DATA_BUS = 0xff;
87 1 #endif
88 1 }
89
90 //==============================================================================
91 //Subroutine: CmdRead
92 //Function:
93 //==============================================================================
94 uchar LCD_CmdRead(uchar Addr)
95 {
96 1 uchar Data;
97 1
98 1 #ifdef Parallel_8080
99 1 bCSZ = 0;
100 1 bRS = 0;
101 1 DATA_BUS = Addr; //Reg Addr
102 1 bWRZ = 0;
103 1 bWRZ = 1;
104 1
105 1 DATA_BUS = 0xff;
106 1 bRDZ = 0;
107 1 Data = DATA_BUS;
108 1 bRDZ = 1;
109 1 bCSZ = 1;
110 1 #endif
111 1 return Data;
112 1 }
113
114 //==============================================================================
115 //Subroutine: LCD_DataWrite
116 //Function:
117 //==============================================================================
C51 COMPILER V8.08 RA8803 02/27/2008 14:45:55 PAGE 3
118 void LCD_DataWrite(uchar Data)
119 {
120 1 LCD_ChkBusy();
121 1
122 1 #ifdef Parallel_8080
123 1 while(BUSY==1);
124 1 bCSZ = 0;
125 1 bRS = 1;
126 1 DATA_BUS = Data;
127 1 bWRZ = 0;
128 1 bWRZ = 1;
129 1 bCSZ = 1;
130 1 DATA_BUS = 0xff;
131 1 #endif
132 1 }
133
134 //==============================================================================
135 //Subroutine: LCD_DataRead
136 //Function:
137 //==============================================================================
138 uchar LCD_DataRead(void)
139 {
140 1 uchar Data;
141 1
142 1 LCD_ChkBusy();
143 1
144 1 #ifdef Parallel_8080
145 1 bCSZ = 0;
146 1 bRS = 1;
147 1 bRDZ = 0;
148 1 Data = DATA_BUS;
149 1 bRDZ = 1;
150 1 bCSZ = 1;
151 1 #endif
152 1
153 1 return Data;
154 1 }
155
156 //==============================================================================
157 //Subroutine: LCD_ChkBusy
158 //Function:
159 //==============================================================================
160 void LCD_ChkBusy(void)
161 {
162 1 // uchar temp;
163 1
164 1 // do
165 1 // {
166 1 // temp = LCD_CmdRead(ISR);
167 1 // }while(temp & cTestb7);
168 1 }
169
170 //==============================================================================
171 //Subroutine: LCD_On
172 //Function:
173 //==============================================================================
174 void LCD_ON(void)
175 {
176 1 uchar temp;
177 1
178 1 temp = LCD_CmdRead(WLCR);
179 1 temp |= cSetb2;
C51 COMPILER V8.08 RA8803 02/27/2008 14:45:55 PAGE 4
180 1 LCD_CmdWrite(WLCR, temp);
181 1 }
182
183 void LCD_OFF(void)
184 {
185 1 uchar temp;
186 1
187 1 temp = LCD_CmdRead(WLCR);
188 1 temp &= cClrb2;
189 1 LCD_CmdWrite(WLCR, temp);
190 1 }
191
192 //==============================================================================
193 //Subroutine: LCD_GotoXY
194 //Function: LCD Cursor X-Y
195 //==============================================================================
196 void LCD_GotoXY(uchar x, uchar y)
197 {
198 1 LCD_CmdWrite(CPXR, (x & B0011_1111));
199 1 LCD_CmdWrite(CPYR, (y & B1111_1111));
200 1 }
201
202 //==============================================================================
203 //Subroutine: LCD_Graphic
204 //Function:
205 //==============================================================================
206 void LCD_Graphic(void)
207 {
208 1 uchar temp;
209 1
210 1 temp = LCD_CmdRead(WLCR);
211 1 temp &= cClrb3;
212 1 LCD_CmdWrite(WLCR, temp);
213 1 }
214
215 void LCD_Text(void)
216 {
217 1 uchar temp;
218 1
219 1 temp = LCD_CmdRead(WLCR);
220 1 temp |= cSetb3;
221 1 LCD_CmdWrite(WLCR, temp);
222 1 }
223
224 //==============================================================================
225 //Subroutine: LCD_PrintStr 1
226 //Function:
227 //==============================================================================
228 void LCD_PrintStrD100ms(uchar *ptr, uchar x, uchar y, uchar time)
229 {
230 1 LCD_GotoXY(x, y);
231 1
232 1 while(*ptr != 0)
233 1 {
234 2 LCD_DataWrite(*ptr);
235 2 ptr++;
236 2 Delay100ms(time);
237 2 }
238 1 }
239
240 //==============================================================================
241 //Subroutine: LCD_PrintStr 2
C51 COMPILER V8.08 RA8803 02/27/2008 14:45:55 PAGE 5
242 //Function:
243 //==============================================================================
244 void LCD_PrintStr(uchar *ptr, uchar cXSize)
245 {
246 1 uchar temp;
247 1
248 1 for(temp=0 ; temp<cXSize ; temp++)
249 1 {
250 2 LCD_DataWrite(*ptr);
251 2 ptr++;
252 2 }
253 1 }
254
255 //==============================================================================
256 //Subroutine: Bold
257 //Function:
258 //==============================================================================
259 void LCD_Bold(void)
260 {
261 1 uchar temp;
262 1
263 1 temp = LCD_CmdRead(WCCR);
264 1 temp |= cSetb4;
265 1 LCD_CmdWrite(WCCR, temp);
266 1 }
267
268 void LCD_NoBold(void)
269 {
270 1 uchar temp;
271 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -