📄 lcdtest.c
字号:
/**************************************************************************
LCD测试程序
魏东 2004-11-22 10:15
8051,频率:7.372848MHz
**************************************************************************/
#include <stdio.h>
#define __SRC
#include "def_port.h"
#undef __SRC
#include "lcddrv.h"
#define CON_OSC 7372848 /* 振荡频率 */
#define CON_BPS 256 - ( CON_OSC / 12 / 32 / 19200 ) /* 19200BPS时间常数 */
#define CON_MSC CON_OSC/36000 /* 延时 */
/* 函数定义 */
void main_init (void); /* 初始化 */
void delay_ms(unsigned char); /* 延时(单位:毫秒) */
/***********************************************************************************/
/* 延时(单位:1毫秒) */
void delay_ms(unsigned char cn)
{ unsigned char cm;
while(cn)
{ for(cm=0;cm<CON_MSC;cm++) ; /* 延时(12/CON_OSC)*3 */
/* 编译为汇编如下:
delay_ub: INC R6 ;1
CJNE R6,delay_ub ;2
*/
cn --;
}
}
/* 初始化 */
void main_init (void)
{
SCON=0x50; /* 置串口工作方式1(T1用作串口波特率发生) */
TMOD=0x20; /* 置定时器1工作方式2 */
TH1=CON_BPS; /* 波特率时间常数 */
TL1=CON_BPS;
TR1=1; /* 启动定时器1 */
ET1=0; /* 禁止定时器1中断 */
EA=0; /* 禁止中断 */
ES=0; /* 关串口中断 */
TI=1; /* 调试:set TI to send first char of UART */
}
/***********************************************************************************/
void main (void)
{ unsigned char ci,cx,cy;
unsigned int ui;
main_init(); /* 初始化 */
while(1)
{
lcd_id=0;
printf("lcdtest.....\n");
lcd_id=1;
lcd_reset();
lcd_fill(0);
for(cy=0;cy<64;cy++)
{ for(cx=0;cx<128;cx++)
{ lcd_dot(cx,cy,1);
}
}
for(ui=0;ui<5;ui++) delay_ms(100);
lcd_fill(0xff);
for(cy=0;cy<64;cy++)
{ for(cx=0;cx<128;cx++)
{ lcd_dot(cx,cy,0);
}
}
for(ui=0;ui<5;ui++) delay_ms(100);
lcd_fill(0);
for(cy=0;cy<64;cy++)
{ for(cx=0;cx<128;cx++)
{ lcd_dot(127-cx,63-cy,1);
}
}
for(ui=0;ui<5;ui++) delay_ms(100);
lcd_fill(0xff);
for(cy=0;cy<64;cy++)
{ for(cx=0;cx<128;cx++)
{ lcd_dot(127-cx,63-cy,0);
}
}
for(ui=0;ui<5;ui++) delay_ms(100);
L_LED=0; /* 背光亮 */
lcd_fill(0);
lcd_set_chlib(3);
lcd_moveto(16,0);
printf("汉字液晶");
lcd_set_chlib(2);
lcd_moveto(0,6);
printf("16x16点阵字库");
lcd_set_chlib(1);
lcd_moveto(0,10);
printf("12x12点阵字库");
lcd_moveto(100,13);
printf("魏东");
for(ui=0;ui<25;ui++) delay_ms(100);
lcd_set_chlib(0);
lcd_moveto(0,14);
printf("lcd_off");
for(ci=0;ci<5;ci++)
{ if(ci&1) lcd_on();
else lcd_off();
delay_ms(100);
}
lcd_on();
lcd_set_chlib(0);
lcd_moveto(0,14);
printf("lcd_roll");
for(ci=1;ci<64;ci++)
{ lcd_roll(ci);
delay_ms(50);
}
lcd_roll(0);
lcd_fill(0);
lcd_set_chlib(1);
printf("12x12点阵字库小字体,128x64液晶满屏可显示5行每行10个汉字。显示函\xca\xfd中可自动处理英文字母显示位置。"); /*?"数"?*/
for(ui=0;ui<50;ui++) delay_ms(100);
lcd_fill(0xff);
lcd_set_chlib(0x83);
printf("汉字液晶 ");
lcd_set_chlib(0x81);
printf("翻黑\n\n");
lcd_set_chlib(0x80);
printf("\n1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
for(ui=0;ui<50;ui++) delay_ms(100);
L_LED=0; /* 背光灭 */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -