📄 main_48.lst
字号:
186 1 wr_lcd (dat,chn[j*16+i]);
187 1 wr_lcd (comm,0x90);
188 1 j=1;
189 1 for (i=0;i<16;i++)
190 1 wr_lcd (dat,chn[j*16+i]);
191 1 }
192 /*----------------显示图形-----------------*/
193 void img_disp (uchar code *img)
194 {
195 1 uchar i,j;
196 1 for(j=0;j<32;j++)
197 1 {
198 2 for(i=0;i<8;i++)
199 2 {
200 3 wr_lcd (comm,0x34);
201 3 wr_lcd (comm,y+j);
202 3 wr_lcd (comm,x1+i);
203 3 wr_lcd (comm,0x30);
204 3 wr_lcd (dat,img[j*16+i*2]);
205 3 wr_lcd (dat,img[j*16+i*2+1]);
206 3 }
207 2 }
208 1 for(j=32;j<64;j++)
209 1 {
210 2 for(i=0;i<8;i++)
211 2 {
212 3 wr_lcd (comm,0x34);
213 3 wr_lcd (comm,y+j-32);
214 3 wr_lcd (comm,x2+i);
215 3 wr_lcd (comm,0x30);
216 3 wr_lcd (dat,img[j*16+i*2]);
217 3 wr_lcd (dat,img[j*16+i*2+1]);
218 3 }
219 2 }
220 1 wr_lcd (comm,0x36);
221 1 }
222 /*-------------下半屏显示图形--------------*/
223 void img_disp1 (uchar code *img)
224 {
225 1 uchar i,j;
226 1 for(j=0;j<32;j++)
227 1 {
228 2 for(i=0;i<8;i++)
229 2 {
230 3 wr_lcd (comm,0x34);
231 3 wr_lcd (comm,y+j);
232 3 wr_lcd (comm,x2+i);
233 3 wr_lcd (comm,0x30);
234 3 wr_lcd (dat,img[j*16+i*2]);
235 3 wr_lcd (dat,img[j*16+i*2+1]);
236 3 }
237 2 }
238 1 wr_lcd (comm,0x36);
239 1 }
240 /*--------------显示点阵----------------*/
241 void lat_disp (uchar data1,uchar data2)
C51 COMPILER V7.08 MAIN_48 10/09/2008 21:09:06 PAGE 5
242 {
243 1 uchar i,j,k,x;
244 1 x=x1;
245 1 for(k=0;k<2;k++)
246 1 {
247 2 for(j=0;j<16;j++)
248 2 {
249 3 for(i=0;i<8;i++)
250 3 {
251 4 wr_lcd (comm,0x34);
252 4 wr_lcd (comm,y+j*2);
253 4 wr_lcd (comm,x+i);
254 4 wr_lcd (comm,0x30);
255 4 wr_lcd (dat,data1);
256 4 wr_lcd (dat,data1);
257 4 }
258 3 for(i=0;i<8;i++)
259 3 {
260 4 wr_lcd (comm,0x34);
261 4 wr_lcd (comm,y+j*2+1);
262 4 wr_lcd (comm,x+i);
263 4 wr_lcd (comm,0x30);
264 4 wr_lcd (dat,data2);
265 4 wr_lcd (dat,data2);
266 4 }
267 3 }
268 2 x=x2;
269 2 }
270 1 wr_lcd (comm,0x36);
271 1 }
272 /*-----------------------------------------------*/
273 //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
274 void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
275 {
276 1 uchar i,j;
277 1 for(j=0;j<yl;j++)
278 1 {
279 2 for(i=0;i<xl;i++)
280 2 {
281 3 wr_lcd (comm,0x34);
282 3 wr_lcd (comm,y0+j);
283 3 wr_lcd (comm,x0+i);
284 3 wr_lcd (comm,0x30);
285 3 wr_lcd (dat,data1);
286 3 wr_lcd (dat,data2);
287 3 }
288 2 }
289 1 wr_lcd (comm,0x36);
290 1 }
291 /*--------------清DDRAM------------------*/
292 void clrram (void)
293 {
294 1 wr_lcd (comm,0x30);
295 1 wr_lcd (comm,0x01);
296 1 }
297 /*---------------------------------------*/
298 void wr_lcd (uchar dat_comm,uchar content)
299 {
300 1 chk_busy ();
301 1 if(dat_comm)
302 1 {
303 2 rs=1; //data
C51 COMPILER V7.08 MAIN_48 10/09/2008 21:09:06 PAGE 6
304 2 rw=0; //write
305 2 }
306 1 else
307 1 {
308 2 rs=0; //command
309 2 rw=0; //write
310 2 }
311 1 // P1=content; //output data or comm
312 1 dat_port = content; //output data or comm
313 1 e=1;
314 1 ;
315 1 e=0;
316 1 }
317
318 void chk_busy (void)
319 {
320 1 // P1=0xff;
321 1 dat_port = 0XFF;
322 1 rs=0;
323 1 rw=1;
324 1 e =1;
325 1 while(busy==1);
326 1 e =0;
327 1 }
328
329 void delay (uint us) //delay time
330 {
331 1 while(us--);
332 1 }
333 void delay1 (uint ms)
334 {
335 1 uint i,j;
336 1 for(i=0;i<ms;i++)
337 1 for(j=0;j<15;j++)
338 1 delay(1);
339 1 }
340 /*------------------主程序--------------------*/
341 void main ()
342 {
343 1 SP=0x5f;
344 1 init_lcd ();
345 1 while (1)
346 1 {
347 2 lat_disp (0x00,0x00);
348 2 chn_disp (tab1);
349 2 con_disp (0xff,0xff,0x8c,0x80,2,16);
350 2 delay1 (8000);
351 2 clrram();
352 2 lat_disp (0xcc,0xcc);
353 2 delay1 (8000);
354 2 lat_disp (0x00,0x00);
355 2 chn_disp1 (tab31);
356 2 img_disp1 (tab32);
357 2 delay1 (8000);
358 2 clrram();
359 2 lat_disp (0xff,0x00);
360 2 delay1 (8000);
361 2 img_disp (tab5);
362 2 delay1 (8000);
363 2 }
364 1 }
C51 COMPILER V7.08 MAIN_48 10/09/2008 21:09:06 PAGE 7
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1040 ----
CONSTANT SIZE = 1634 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 34
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 + -