📄 ra8820.lst
字号:
C51 COMPILER V7.02b RA8820 12/26/2005 13:06:04 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE RA8820
OBJECT MODULE PLACED IN RA8820.OBJ
COMPILER INVOKED BY: C:\Keil\C51\Bin\c51.exe RA8820.c DB OE SMALL ROM(LARGE)
stmt level source
1 /*jcg160160a02-01.c*/
2 #include <stdio.h>
3 #include <INTRINS.H>
4 #include <REG52.H>
5
6 #include"jcg160160a.txt"
7 #include"jcg160160b.txt"
8 #include"jcg160160c.txt"
9 #include"jcg160160d.txt"
10 sbit RST=P1^4;
11 sbit CS1= P1^3;
12 sbit E= P1^0;
13 sbit RW=P1^1;
14 sbit RS=P1^2;
15
16 #define LCD_Command P0
17 #define LCD_Data P0
18
19
20 void DelayXms(unsigned int i)
21 {
22 1 unsigned char a;
23 1 unsigned int b;
24 1 for(b=0;b<i;b++)
25 1 for(a=0;a<255;a++);
26 1 }
27
28 void DelayXs(unsigned char i)
29 {
30 1 unsigned char a;
31 1 for(a=0;a<i;a++)
32 1 DelayXms(1000);
33 1 }
34
35 void LCD_Reset(void)
36 {
37 1 //CS1=0;
38 1 //CS2=1;
39 1 RST = 1;
40 1 DelayXms(20);//10
41 1 RST = 0;
42 1 DelayXms(30);//50
43 1 RST = 1;
44 1 DelayXms(50);//150
45 1
46 1 }
47
48 void LCD_CmdWrite(unsigned char Cmd_Data)
49 {
50 1 /*LCD_ChkBusy(); */ //Call LCD_ChkBusy to Check Busy Bit
51 1 LCD_Command = Cmd_Data;
52 1
53 1 //CS1=0;
54 1 RST=1;
55 1 RS=1;
C51 COMPILER V7.02b RA8820 12/26/2005 13:06:04 PAGE 2
56 1 RW=0;
57 1
58 1 E=1;
59 1 _nop_();
60 1 _nop_();
61 1 E=0;
62 1 _nop_();
63 1 _nop_();
64 1
65 1 RW=1;
66 1 RS=1;
67 1
68 1 }
69
70 void LCD_DataWrite(unsigned char Data_Data)
71 {
72 1 /*LCD_ChkBusy();*/ //Call LCD_ChkBusy to Check Busy Bit
73 1 LCD_Data = Data_Data;
74 1
75 1 //CS1=0;
76 1 RST=1;
77 1 RS=0;
78 1 RW=0;
79 1 //E=0;
80 1
81 1 E=1;
82 1 _nop_();
83 1 _nop_();
84 1 E=0;
85 1 _nop_();
86 1 _nop_();
87 1
88 1 RW=1;
89 1 RS=1;
90 1 }
91
92 unsigned char LCD_CmdRead(unsigned char REG_Addr)
93 {
94 1 unsigned char REG_READ;
95 1 LCD_CmdWrite(REG_Addr);
96 1
97 1 RST = 1;
98 1 RW=1;
99 1 RS=1;
100 1 //CS1=0;
101 1
102 1 E=1;
103 1 _nop_();
104 1 REG_READ = LCD_Command;
105 1 _nop_();
106 1 E=0;
107 1 RS=1;
108 1 return REG_READ;
109 1 }
110
111 void LCD_CursorX(unsigned char Cursor)
112 {
113 1 LCD_CmdWrite(0x60);
114 1 LCD_CmdWrite(Cursor);
115 1 }
116
117 void LCD_CursorY(unsigned char Cursor)
C51 COMPILER V7.02b RA8820 12/26/2005 13:06:04 PAGE 3
118 {
119 1 LCD_CmdWrite(0x70);
120 1 LCD_CmdWrite(Cursor);
121 1 }
122
123 void LCD_Clear(void)
124 {
125 1 unsigned char REG_TMP;
126 1 LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00);
127 1 REG_TMP = LCD_CmdRead(0xF0);
128 1 REG_TMP &= (0xF7);
129 1 REG_TMP |= (0x08);
130 1 LCD_CmdWrite(0xF0);
131 1 LCD_CmdWrite(REG_TMP);
132 1 DelayXms(1);
133 1 }
134
135 void writebmp(unsigned char *bmp)
136 {
137 1 unsigned char i,j;
138 1
139 1 DelayXms(20);
140 1 LCD_Clear();
141 1 LCD_CmdWrite(0x0);
142 1 LCD_CmdWrite(0xC5);
143 1 for(i=0;i<160;i++)
144 1 { LCD_CursorX(0x00);
145 2 LCD_CursorY(i);
146 2 for(j=0;j<20;j++)
147 2 {
148 3 LCD_DataWrite(*bmp++);
149 3
150 3 }
151 2 }
152 1 DelayXs(10);
153 1 }
154
155
156
157
158
159
160
161
162 init()
163 {
164 1 CS1=0;
165 1 LCD_Reset();
166 1 DelayXms(50);
167 1
168 1 LCD_CmdWrite(0x00);LCD_CmdWrite(0xC1); /*LCD Controller register*/
169 1 LCD_CmdWrite(0x08);LCD_CmdWrite(0x4F); /*4f.Misc register*/
170 1 LCD_CmdWrite(0x10);LCD_CmdWrite(0x23); /*Cursor Controller*/
171 1 LCD_CmdWrite(0x18);LCD_CmdWrite(0x10); /*cursor size register*/
172 1
173 1 LCD_CmdWrite(0x20);LCD_CmdWrite(0x13); /*Active windows set default*/
174 1 LCD_CmdWrite(0x30);LCD_CmdWrite(0x9F); /*Active windows set default*/
175 1 LCD_CmdWrite(0x40);LCD_CmdWrite(0x00); /*Active windows set default*/
176 1 LCD_CmdWrite(0x50);LCD_CmdWrite(0x00); /*Active windows set default*/
177 1
178 1 LCD_CmdWrite(0x28);LCD_CmdWrite(0x13); /*display windows set*/
179 1 LCD_CmdWrite(0x38);LCD_CmdWrite(0x9F); /*display windows set*/
C51 COMPILER V7.02b RA8820 12/26/2005 13:06:04 PAGE 4
180 1 LCD_CmdWrite(0x48);LCD_CmdWrite(0x00); /*display windows set*/
181 1 LCD_CmdWrite(0x58);LCD_CmdWrite(0x00); /*display windows set*/
182 1
183 1 LCD_CmdWrite(0x60);LCD_CmdWrite(0x00); /*cursor position X register*/
184 1 LCD_CmdWrite(0x70);LCD_CmdWrite(0x00); /*cursor position Y register*/
185 1
186 1 LCD_CmdWrite(0x80);LCD_CmdWrite(0x23); /*Cursor Controller time*/
187 1 LCD_CmdWrite(0x90);LCD_CmdWrite(0x1D); /*21 shift clock control register*/
188 1
189 1 LCD_CmdWrite(0xB0);LCD_CmdWrite(0x13); /*intx default*///13
190 1 LCD_CmdWrite(0xA0);LCD_CmdWrite(0x00); /*intr*/
191 1 LCD_CmdWrite(0xB8);LCD_CmdWrite(0x9F); /*inty default*/
192 1
193 1
194 1 LCD_CmdWrite(0xC0);LCD_CmdWrite(0xF0); /*touch panel control register*/
195 1 LCD_CmdWrite(0xD0);LCD_CmdWrite(0x23); /*LCD contrast adjust register*/
196 1 LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00); /*pattern dta register*/
197 1 LCD_CmdWrite(0xF0);LCD_CmdWrite(0xA8); /*font control register*/
198 1
199 1 LCD_Clear();
200 1
201 1 LCD_CmdWrite(0x10);LCD_CmdWrite(0x3b);
202 1 LCD_CmdWrite(0x10);LCD_CmdWrite(0x2b);
203 1 }
204
205 void main(void)
206 {
207 1
208 1
209 1
210 1 init();
211 1
212 1 while(1)
213 1 {
214 2 writebmp(jcg160160a);
215 2 writebmp(jcg160160b);
216 2 writebmp(jcg160160c);
217 2 writebmp(jcg160160d);
218 2 }
219 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 534 ----
CONSTANT SIZE = 12800 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -