📄 mra8806.lst
字号:
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MRA8806
OBJECT MODULE PLACED IN mra8806.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mra8806.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2
3 #include<mra8806.h>
4 extern uchar code gImage_pic1[];
5 sbit bWRZ=P3^4;
6 sbit bRDZ=P3^5;
7 sbit bCSZ=P3^7;
8 sbit RS=P1^0;
9 sbit RST=P1^1;
10 sbit DATA=P0;
11 void delay1ms(unsigned int z)
12 {
13 1 unsigned int x,y;
14 1
15 1 for(x=z;x>0;x--)
16 1 for(y=110;y>0;y--);
17 1 }
18 void Delay2us(uchar Counter)
19 {
20 1 while(--Counter);
21 1 }
22 void delay100us(uchar Counter)
23 {
24 1 while(Counter--)
25 1 { Delay2us(150);
26 2 }
27 1 }
28 unsigned char Read_Status(void)
29 {
30 1 unsigned char temp=0;
31 1 RS=1;
32 1 bCSZ=0;
33 1 bWRZ=1;
34 1 bRDZ=0;
35 1 temp=P0;
36 1 bRDZ=1;
37 1 bCSZ=1;
38 1 P0=0xff;
39 1 RS=0;
40 1 return (temp);
41 1 }
42 void Wr_Data(unsigned char Addr,unsigned char Data)
43 {
44 1 RS=1;
45 1 bCSZ=0;
46 1 bWRZ=0;
47 1 bRDZ=1;
48 1 P0=Addr;
49 1 bWRZ=1;
50 1 bCSZ=1;
51 1 RS=0;
52 1 bCSZ=0;
53 1 bWRZ=0;
54 1 P0=Data;
55 1 bWRZ=1;
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 2
56 1 bCSZ=1;
57 1 RS=1;
58 1 P0=0xff;
59 1
60 1 }
61 void Wrr_Addr(unsigned char cmd)
62 {
63 1 _nop_();
64 1 bCSZ = 0;
65 1 RS = 1;
66 1 bWRZ = 0;
67 1 P0 = cmd;
68 1 bWRZ = 1;
69 1 bCSZ = 1;
70 1 P0 = 0xff;
71 1 RS = 0;
72 1 }
73 void Wrr_Data(unsigned char Data)
74 {
75 1 _nop_();
76 1 bCSZ = 0;
77 1 RS = 0;
78 1 bWRZ = 0;
79 1 P0 = Data;
80 1 bWRZ = 1;
81 1 bCSZ = 1;
82 1 P0 = 0xff;
83 1 RS = 1;
84 1 }
85 unsigned char Read_Data(void)
86 {
87 1 uchar temp;
88 1 bWRZ = 1;
89 1 bCSZ = 0;
90 1 RS = 0;
91 1 bRDZ = 0;
92 1 temp = P0;
93 1 bRDZ = 1;
94 1 bCSZ = 1;
95 1 RS = 1;
96 1 return(temp);
97 1 }
98 void Rst()
99 {
100 1
101 1 RST=0;
102 1 delay1ms(30);
103 1 RST=1;
104 1 delay1ms(20);
105 1 }
106
107 void Lcd_On(void)
108 {
109 1 uchar temp;
110 1
111 1 Wrr_Addr(WLCR);
112 1 temp = Read_Data();
113 1 temp |= cSetb2;
114 1 Wrr_Addr(WLCR);
115 1 Wrr_Data(temp);
116 1 }
117 void Lcd_Graphic(void)
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 3
118 {
119 1 unsigned char temp;
120 1 temp=0;
121 1 Wrr_Addr(0);
122 1 temp = Read_Data();
123 1 temp &= 0xf7;
124 1 Wrr_Addr(0);
125 1 Wrr_Data(temp);
126 1 }
127 void Access_2Pages(void)
128 {
129 1 unsigned char temp;
130 1 temp=0;
131 1 Wrr_Addr(0x12);
132 1 temp=Read_Data();
133 1 temp|=0x02;
134 1 temp|=0x01;
135 1 Wrr_Addr(0x12);
136 1 Wrr_Data(temp);
137 1 }
138 void Set_Fill_PNTR_to_DDRAM(void)
139 {
140 1 unsigned temp;
141 1 temp=0;
142 1
143 1 Wrr_Addr(0xf0);
144 1 temp=Read_Data();
145 1 temp|=0x08;
146 1 Wr_Data(0xf0,temp);
147 1 do{
148 2 _nop_();
149 2 _nop_();
150 2 }while(Read_Status()&0x80);
151 1 }
152 void Lcd_Clear(void)
153 {
154 1 Lcd_Graphic();
155 1 //Access_2Pages();
156 1
157 1 Wr_Data(0xe0,0x00);
158 1 Set_Fill_PNTR_to_DDRAM();
159 1 }
160 void Access_Page1(void)
161 {
162 1 uchar temp;
163 1
164 1 Wrr_Addr(MAMR);
165 1 temp = Read_Data();
166 1 temp &= cClrb1;
167 1 temp |= cSetb0;
168 1 Wrr_Addr(MAMR);
169 1 Wrr_Data(temp);
170 1 }
171 void Access_Page2(void)
172 {
173 1 uchar temp;
174 1
175 1 Wrr_Addr(MAMR);
176 1 temp = Read_Data();
177 1 temp &= cClrb0;
178 1 temp |= cSetb1;
179 1 Wrr_Addr(MAMR);
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 4
180 1 Wrr_Data(temp);
181 1 }
182 void Only_Show_Page1(void)
183 {
184 1 uchar temp;
185 1
186 1 Wrr_Addr(MAMR);
187 1 temp = Read_Data();
188 1 temp &= cClrb6;
189 1 temp &= cClrb5;
190 1 temp |= cSetb4;
191 1 Wrr_Addr(MAMR);
192 1 Wrr_Data(temp);
193 1 }
194 void Only_Show_Page2(void)
195 {
196 1 uchar temp;
197 1
198 1 Wrr_Addr(MAMR);
199 1 temp = Read_Data();
200 1 temp &= cClrb6;
201 1 temp &= cClrb4;
202 1 temp |= cSetb5;
203 1 Wrr_Addr(MAMR);
204 1 Wrr_Data(temp);
205 1 }
206 void Show_Two_Layer(void)
207 {
208 1 uchar temp;
209 1
210 1 Wrr_Addr(MAMR);
211 1 temp = Read_Data();
212 1 temp &= cClrb6;
213 1 temp |= cSetb5;
214 1 temp |= cSetb4;
215 1 Wrr_Addr(MAMR);
216 1 Wrr_Data(temp);
217 1 }
218 void LCD_Text(void)
219 {
220 1 uchar temp;
221 1
222 1 Wrr_Addr(WLCR);
223 1 temp = Read_Data();
224 1 temp |= cSetb3;
225 1 Wrr_Addr(WLCR);
226 1 Wrr_Data(temp);
227 1 }
228 void LCD_GotoXY(uchar x, uchar y)
229 {
230 1 Wrr_Addr(CURX);
231 1 Wrr_Data(x);
232 1
233 1
234 1
235 1 Wrr_Addr(CURY);
236 1 Wrr_Data(y);
237 1
238 1 }
239 void LCD_FontSize(uchar buf)//15为四倍字体,10为三倍字体,5为两倍字体
240 {
241 1 uchar temp;
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 5
242 1 buf = buf << 4;
243 1 temp = (buf & 0xF0) | (0x0F);
244 1 Wrr_Addr(FVHT);
245 1 Wrr_Data(temp);
246 1 }
247 void LCD_Inv(void)//写入数据取反显示
248 {
249 1 uchar temp;
250 1
251 1 Wrr_Addr(WCCR);
252 1 temp = Read_Data();
253 1 temp |= cSetb5;
254 1 Wrr_Addr(WCCR);
255 1 Wrr_Data(temp);
256 1 }
257 void LCD_NoInv(void)
258 {
259 1 uchar temp;
260 1
261 1 Wrr_Addr(WCCR);
262 1 temp = Read_Data();
263 1 temp &= cClrb5;
264 1 Wrr_Addr(WCCR);
265 1 Wrr_Data(temp);
266 1 }
267 void LCD_Bold(void)//显示粗体字
268 {
269 1 uchar temp;
270 1
271 1 Wrr_Addr(WCCR);
272 1 temp = Read_Data();
273 1 temp |= cSetb4;
274 1 Wrr_Addr(WCCR);
275 1 Wrr_Data(temp);
276 1 }
277 void LCD_NoBold(void)
278 {
279 1 uchar temp;
280 1
281 1 Wrr_Addr(WCCR);
282 1 temp = Read_Data();
283 1 temp &= cClrb4;
284 1 Wrr_Addr(WCCR);
285 1 Wrr_Data(temp);
286 1 }
287 void Gray_Mode(void)//灰度模式,不支持汉字
288 {
289 1 uchar temp;
290 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -