📄 lcddrive12864.lst
字号:
263 2 outsi(0xc0); //设置显示起始行
264 2 outsi(0xb8|lcdrow); //设置页地址
265 2 outsi(0x40|(lcdline-64)); //设置列地址
266 2 j=datanumber*16;
267 2 for(i=0;i<16;i++)
268 2 {
269 3 if(DotNot==1)
270 3 {
271 4 outsd(~lcd_lattice16_8[i+j]);
272 4 }
273 3 else
274 3 {
275 4 outsd(lcd_lattice16_8[i+j]);
276 4 }
277 3 if(i==7)
278 3 {
279 4 outsi(0xb8|(lcdrow+1)); //设置页地址
280 4 outsi(0x40|(lcdline-64)); //设置列地址
281 4 }
282 3 }
283 2 }
284 1 }
285 /*********************************************************************************************************
286 ** 函数名称: Display5X8
287 ** 功能描述: 在指定的行列绘8X8点阵
288 ** 输 入:
289 ** 输 出:
290 ** 全局变量:
291 ** 调用模块:
292 **
293 ** 作 者: 刘宝贵
294 ** 日 期: 2005年1月26日
295 **-------------------------------------------------------------------------------------------------------
296 ** 修改人:
297 ** 日 期:
298 **-------------------------------------------------------------------------------------------------------
299 *********************************************************************************************************/
300 void Display5X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber,uint8 DotNot) //display 8x8 data
301 {
302 1 uint8 i;
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 6
303 1 uint16 j;
304 1 outmi(0xc0);
305 1 outsi(0xc0); //设置显示起始行
306 1 if(lcdline<64)
307 1 {
308 2 outmi(0xb8|lcdrow); //设置页地址
309 2 outmi(0x40|lcdline); //设置列地址
310 2 j=datanumber*8;
311 2 for(i=0;i<6;i++)
312 2 {
313 3 if(DotNot==1)
314 3 {
315 4 outmd(~lcd_lattice8_8[i+j]);
316 4 }
317 3 else
318 3 {
319 4 outmd(lcd_lattice8_8[i+j]);
320 4 }
321 3 }
322 2 }
323 1 else
324 1 {
325 2 outsi(0xb8|lcdrow); //设置页地址
326 2 outsi(0x40|(lcdline-64)); //设置列地址
327 2 j=datanumber*8;
328 2 for(i=0;i<6;i++)
329 2 {
330 3 if(DotNot==1)
331 3 {
332 4 outsd(~lcd_lattice8_8[i+j]);
333 4 }
334 3 else
335 3 {
336 4 outsd(lcd_lattice8_8[i+j]);
337 4 }
338 3 }
339 2 }
340 1 }
341 /*********************************************************************************************************
342 ** 函数名称: Display16X4
343 ** 功能描述: 在指定的行列绘16X4点阵
344 ** 输 入:
345 ** 输 出:
346 ** 全局变量:
347 ** 调用模块:
348 **
349 ** 作 者: 刘宝贵
350 ** 日 期: 2005年1月26日
351 **-------------------------------------------------------------------------------------------------------
352 ** 修改人:
353 ** 日 期:
354 **-------------------------------------------------------------------------------------------------------
355 *********************************************************************************************************/
356 /*void Display16X4(uint8 lcdrow,uint8 lcdline,uint8 datanumber) // display 16x4 data
357 {
358 uint8 i;
359 uint16 j;
360 if(lcdline<64)
361 {
362 // outmi(0xc0);
363 outmi(0xb8|lcdrow); //设置页地址
364 outmi(0x40|lcdline); //设置列地址
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 7
365 j=datanumber*8;
366 for(i=0;i<8;i++)
367 {
368 if(DotNot==1)
369 {
370 outmd(~lcd_lattice16_4[i+j]);
371 }
372 else
373 {
374 outmd(lcd_lattice16_4[i+j]);
375 }
376 if(i==3)
377 {
378 outmi(0xb8|(lcdrow+1)); //设置页地址
379 outmi(0x40|lcdline); //设置列地址
380 }
381 }
382 }
383 else if(lcdline<121)
384 {
385 // outsi(0xc0); //设置显示起始行
386 outsi(0xb8|lcdrow); //设置页地址
387 if(lcdline<121)
388 {
389 outsi(0x40|(lcdline-64)); //设置列地址
390 }
391 j=datanumber*8;
392 for(i=0;i<8;i++)
393 {
394 if(DotNot==1)
395 {
396 outsd(~lcd_lattice16_4[i+j]);
397 }
398 else
399 {
400 outsd(lcd_lattice16_4[i+j]);
401 }
402 if(i==3)
403 {
404 outsi(0xb8|(lcdrow+1)); //设置页地址
405 outsi(0x40|(lcdline-64)); //设置列地址
406 }
407 }
408 }
409 }
410 /*********************************************************************************************************
411 ** 函数名称: Display6X8
412 ** 功能描述: 在指定的行列绘16X8点阵
413 ** 输 入:
414 ** 输 出:
415 ** 全局变量:
416 ** 调用模块:
417 **
418 ** 作 者: 刘宝贵
419 ** 日 期: 2005年1月26日
420 **-------------------------------------------------------------------------------------------------------
421 ** 修改人:
422 ** 日 期:
423 **-------------------------------------------------------------------------------------------------------
424 *********************************************************************************************************/
425 /*void Display6X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber) //display 6x8 data
426 {
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 8
427 uint8 i;
428 uint16 j;
429 outmi(0xc0);
430 outsi(0xc0); //设置显示起始行
431 if(lcdline<64)
432 {
433 outmi(0xb8|lcdrow); //设置页地址
434 outmi(0x40|lcdline); //设置列地址
435 j=datanumber*8;
436 for(i=0;i<6;i++)
437 {
438 outmd(lcd_lattice8_8[i+j]);
439 }
440 }
441 else
442 {
443 outsi(0xb8|lcdrow); //设置页地址
444 outsi(0x40|(lcdline-64)); //设置列地址
445 j=datanumber*8;
446 for(i=0;i<6;i++)
447 {
448 outsd(lcd_lattice8_8[i+j]);
449 }
450 }
451 }
452 /*********************************************************************************************************
453 ** 函数名称: Display2X8
454 ** 功能描述: 在指定的行列绘2X8点阵
455 ** 输 入:
456 ** 输 出:
457 ** 全局变量:
458 ** 调用模块:
459 **
460 ** 作 者: 刘宝贵
461 ** 日 期: 2005年1月26日
462 **-------------------------------------------------------------------------------------------------------
463 ** 修改人:
464 ** 日 期:
465 **-------------------------------------------------------------------------------------------------------
466 *********************************************************************************************************/
467 /*void Display2X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber) //display 6x8 data
468 {
469 uint8 i;
470 uint16 j;
471 outmi(0xc0);
472 outsi(0xc0); //设置显示起始行
473 if(lcdline<64)
474 {
475 outmi(0xb8|lcdrow); //设置页地址
476 outmi(0x40|(lcdline-1)); //设置列地址
477 j=datanumber*8;
478 for(i=0;i<2;i++)
479 {
480 outmd(lcd_lattice8_8[i+j]);
481 }
482 outmd(0);
483 }
484 else
485 {
486 outsi(0xb8|lcdrow); //设置页地址
487 outsi(0x40|(lcdline-64-1)); //设置列地址
488 j=datanumber*8;
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 9
489 for(i=0;i<2;i++)
490 {
491 outsd(lcd_lattice8_8[i+j]);
492 }
493 outsd(0);
494 }
495 }
496 /*********************************************************************************************************
497 ** 函数名称: DisplayCls
498 ** 功能描述: 清屏
499 ** 输 入:
500 ** 输 出:
501 ** 全局变量:
502 ** 调用模块:
503 **
504 ** 作 者: 刘宝贵
505 ** 日 期: 2005年1月26日
506 **-------------------------------------------------------------------------------------------------------
507 ** 修改人:
508 ** 日 期:
509 **-------------------------------------------------------------------------------------------------------
510 *********************************************************************************************************/
511 void DisplayCls(void)
512 {
513 1 uint8 i;
514 1 uint8 j;
515 1 lcdinit();
516 1 outmi(0xc0);
517 1 outsi(0xc0); //设置显示起始行
518 1 for(i=0;i<8;i++)
519 1 {
520 2 outmi(0xb8|i); //设置页地址
521 2 outmi(0x40|0); //设置列地址
522 2 for(j=0;j<64;j++)
523 2 {
524 3 outmd(0);
525 3 }
526 2 }
527 1 for(i=0;i<8;i++)
528 1 {
529 2 outsi(0xb8|i); //设置页地址
530 2 outsi(0x40|0); //设置列地址
531 2 for(j=0;j<64;j++)
532 2 {
533 3 outsd(0);
534 3 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -