;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;连线图:
;//LCM---89C52// //LCM---89C52// //LCM-------89C52// //LCM----------89C52// //
;//DB0---P0.0// //DB4---P0.4// //D/I-------P2.6// //CS1----------P2.4// //
;//DB1---P0.1// //DB5---P0.5// //R/W-------P2.7// //CS2----------P2.5// //
;//DB2---P0.2// //DB6---P0.6// //RST--------VCC// //CS3----------P3.2// //
;//DB3---P0.3// //DB7---P0.7// //E---------P2.3// //
;注:89C52的晶振频率为12MHz //
;///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//画线部分请参照avr的c程序。
///#pragma src ///生成ASM文件开关,必要时打开 ///
#include
#include
#include
#define Uchar unsigned char
///////////////////////液晶显示器接口引脚定义///////////////////////////////
sbit Elcm= P2^3; //
sbit CS1LCM= P2^4; //
sbit CS2LCM= P2^5; //
sbit CS3LCM= P3^2; ///这个连接只是做实验的临时接法。///
sbit Dilcm= P2^6; //
sbit Rwlcm= P2^7; //
sfr Datalcm= 0x80; //数据口
unsigned char testi[]={"浸渠叁绳漱塔烃威牺晓玄瑶"};
///////////////////////常用操作命令和参数定义///////////////////////////////
#define DISPON 0x3f ///显示on ///
#define DISPOFF 0x3e ///显示off ///
#define DISPFIRST 0xc0 ///显示起始行定义 ///
#define SETX 0x40 ///X定位设定指令(页) ///
#define SETY 0xb8 ///Y定位设定指令(列) ///
#define Lcdbusy 0x80 ///LCM忙判断位 ///
/////////////////////////////显示分区边界位置///////////////////////////////////
#define MODL 0x00 ///左区 ///
#define MODM 0x40 ///左区和中区分界 ///
#define MODR 0x80 ///中区和右区分界 ///
#define LCMLIMIT 0xC0 ///显示区的右边界 ///
/////////////////////////////////全局变量定义///////////////////////////////////////
Uchar col,row,cbyte; ///列x,行(页)y,输出数据 ///
bit xy; ///画线方向标志:1水平 ///
///////////////////////////////////函数列表/////////////////////////////////////////////
void Lcminit(void); ///液晶模块初始化 ///
void Delay(Uchar); ///延时,入口数为Ms ///
void lcdbusyL(void); ///busy判断、等待(左区) ///
void lcdbusyM(void); ///busy判断、等待(中区) ///
void lcdbusyR(void); ///busy判断、等待(右区) ///
void Putedot(Uchar); ///半角字符输出 ///
void Putcdot(Uchar); ///全角(汉字)输出 ///
void Wrdata(Uchar); ///数据输出给LCM ///
void Lcmcls( void ); ///LCM全屏幕清零(填充0) ///
void wtcom(void); ///公用busy等待 ///
void Locatexy(void); ///光标定位 ///
void WrcmdL(Uchar); ///左区命令输出 ///
void WrcmdM(Uchar); ///中区命令输出 ///
void WrcmdR(Uchar); ///右区命令输出 ///
void Putstr(Uchar //puts,Uchar i); ///中英文字符串输出 ///
void Rollscreen(Uchar x); ///屏幕向上滚动演示 ///
void Rddata(void); /// 从液晶片上读数据 ///
void Linehv(Uchar length); ///横(竖)方向画线 ///
void point(void); ///打点 ///
void Linexy(Uchar endx,Uchar endy);
/////////////////////////////////////数组列表///////////////////////////////////////////
Uchar code Ezk[]; ///ASCII常规字符点阵码表 ///
Uchar code Hzk[]; ///自用汉字点阵码表 ///
Uchar code STR1[]; ///自定义字符串 ///
Uchar code STR2[]; //
Uchar code STR3[]; //
Uchar code STR4[]; //
//////////////////////////////////////////////////////////////////
/// 演示主程序 ///
//////////////////////////////////////////////////////////////////
void main(void)
{
Uchar x,y;
col=0;
row=0;
Delay(40); ///延时大约40Ms,等待外设准备好 ///
Lcminit(); ///液晶模块初始化,包括全屏幕清屏///
Putstr(STR2,24); ///第一行字符输出,24字节 ///
col=0;
row=2;
Putstr(STR1,12); ///第二行字符输出,12字节 ///
col=0;
row=4;
Putstr(STR3,24); ///第三行字符输出,24字节 ///
col=0;
row=6;
Putstr(STR4,24); ///第四行字符输出,12字节 ///
x=0;
col=0;
row=0;
xy = 1; ///方向标志。定为水平方向 ///
Linehv(192); ///画一条横线(0,0)-(191,0) ///
col=0;
row=15;
xy = 1;
Linehv(192); ///画一条横线(0,15)-(191,15) ///
col=0;
row=32;
xy = 1;
Linehv(192); ///画一条横线(0,32)-(191,32) ///
col=0;
row=1;
xy = 0; ///方向标志。定为垂直方向 ///
Linehv(31); ///画一条竖线(0,1)-(0,31) ///
col=191;
row=1;
xy = 0;
Linehv(31); ///画一条竖线(191,1)-(191,31) ///
col=0; ///设定斜线的起点坐标 ///
row=63;
Linexy(44,31); ///画一段斜线(0,63)-(44,31) ///
col=44;
row=31;
Linexy(190,62); ///继续画斜线(44,31)-(191,63) ///
while(1){
Rollscreen(y); ///定位新的显示起///
y++;
y %=8;
x=testi[y];
Delay(100); ///延时,控制滚动速度 ///
};
}
//////////////////////////////////////////////////////////////////////////////////////////////////
///画线。任意方向的斜线,不支持垂直的或水平线 ///
//////////////////////////////////////////////////////////////////////////////////////////////////
void Linexy(Uchar endx,Uchar endy)
{
register Uchar t;
int xerr=0,yerr=0,delta_x,delta_y,distance;
Uchar incx,incy;
/// compute the distance in both directions ///
delta_x=endx-col;
delta_y=endy-row;
/// compute the direction of the increment ,
an increment of "0" means either a vertical or horizontal lines ///
if(delta_x>0) incx=1;
else if( delta_x==0 ) incx=0;
else incx=-1;
if(delta_y>0) incy=1;
else if( delta_y==0 ) incy=0;
else incy=-1;
/// determine which distance is greater ///
delta_x = cabs( delta_x );
delta_y = cabs( delta_y );
if( delta_x > delta_y ) distance=delta_x;
else distance=delta_y;
/// draw the line ///
for( t=0;t = distance+1; t++ ) {
point();
xerr += delta_x ;
yerr += delta_y ;
if( xerr > distance ) {
xerr-=distance;
col+=incx;
}
if( yerr > distance ) {
yerr-=distance;
row+=incy;
}
}
}
//////////////////////////////////////////////////////////////////////////////////
///画线。只提供X或Y方向的,不支持斜线 ///
//////////////////////////////////////////////////////////////////////////////////
void Linehv(Uchar length)
{
Uchar xs,ys;
if (xy){ys = col;
for (xs=0;xs
col = ys + xs;
point();}
}
else {xs = row;
for (ys=0;ys
row = xs + ys;
point();}
}
}
//////////////////////////////////////////////////////////////////////////////////
/// 画点 ///
//////////////////////////////////////////////////////////////////////////////////
void point(void)
{
Uchar x1,y1,x,y;
x1=col;
y1=row;
row=y1>>3; ///取Y方向分页地址 ///
Rddata();
y=y1&0x07; ///字节内位置计算 ///
x=0x01;
x=x< ///移入所画点 ///
Wrdata(cbyte|x); ///画上屏幕 ///
col=x1; ///恢复xy坐标 ///
row=y1;
}
//////////////////////////////////////////////////////////////////////////////////
/// 屏幕滚动定位 ///
//////////////////////////////////////////////////////////////////////////////////
void Rollscreen(Uchar x)
{
cbyte = DISPFIRST|x; ///定义显示起始行为x?///
WrcmdL(cbyte);
WrcmdM(cbyte);
WrcmdR(cbyte);
}
//////////////////////////////////////////////////////////////////////////////////
/// 一个字串的输出 ///
//////////////////////////////////////////////////////////////////////////////////
void Putstr(Uchar //puts,Uchar i)
{
Uchar j,X;
for (j=0;j
{
X = puts[j];
if (X&0x80)
{
Putcdot(X&0x7f); ///只保留低7位///
}
else Putedot(X-0x20); ///ascii码表从0x20开始///
}
}
//////////////////////////////////////////////////////////////////////////////////
/// 半角字符点阵码数据输出 ///
//////////////////////////////////////////////////////////////////////////////////
void Putedot(Uchar Order)
{
Uchar i,bakerx,bakery; ///共定义4个局部变量 ///
int x; ///偏移量,字符量少的可以定义为UCHAR ///
bakerx = col; ///暂存x,y坐标,已备下半个字符使用 ///
bakery = row;
x=Order // 0x10; ///半角字符,每个字符16字节 ///
///上半个字符输出,8列 ///
for(i=0;i<8;i++)
{
cbyte = Ezk[x]; ///取点阵码,rom数组 ///
Wrdata(cbyte); ///写输出一字节 ///
x++;
col++;
if (col==LCMLIMIT){col=0;row++;row++;}; ///下一列,如果列越界换行///
if (row>7) row=0; ///如果行越界,返回首行 ///
} ///上半个字符输出结束 ///
col = bakerx; ///列对齐 ///
row = bakery+1; ///指向下半个字符行 ///
///下半个字符输出,8列 ///
for(i=0;i<8;i++)
{
cbyte = Ezk[x]; ///取点阵码 ///
Wrdata(cbyte); ///写输出一字节 ///
x++;
col++;
if (col==LCMLIMIT){col=0;row=row+2;}; ///下一列,如果列越界换行///
if (row>7) row=1; ///如果行越界,返回首行 ///
} ///下半个字符输出结束 ///
row=bakery;
} ///整个字符输出结束 ///
[page]
//////////////////////////////////////////////////////////////////////////////////
/// 全角字符点阵码数据输出 ///
//////////////////////////////////////////////////////////////////////////////////
void Putcdot(Uchar Order)
{
Uchar i,bakerx,bakery; ///共定义3个局部变量 ///
int x; ///偏移量,字符量少的可以定义为UCHAR ///
bakerx = col; ///暂存x,y坐标,已备下半个字符使用 ///
bakery = row;
x=Order // 0x20; ///每个字符32字节 ///
///上半个字符输出,16列 ///
for(i=0;i<16;i++)
{
Wrdata(Hzk[x]); ///写输出一字节 ///
x++;
col++;
if (col==LCMLIMIT){ col=0;row++;row++;} ///下一列,如果列越界换行///
if (row>6) row=0; ///如果行越界,返回首行 ///
} ///上半个字符输出结束 ///
///下半个字符输出,16列 ///
col = bakerx;
row = bakery+1;
for(i=0;i<16;i++) ///下半部分///
{
Wrdata(Hzk[x]);
x++;
col++;
if (col==LCMLIMIT){col=0;row++;row++;} ///下一列,如果列越界换行///
if (row>7) row=1; ///如果行越界,返回首行 ///
} ///下半个字符输出结束 ///
row = bakery;
} ///整个字符输出结束 ///
//////////////////////////////////////////////////////////////////////////////////
/// 清屏,全屏幕清零 ///
//////////////////////////////////////////////////////////////////////////////////
void Lcmcls( void )
{
for(row=0;row<8;row++)
for(col=0;col
}
//////////////////////////////////////////////////////////////////////////////////
/// 从液晶片上读数据,保留在全局变量中 ///
//////////////////////////////////////////////////////////////////////////////////
void Rddata(void)
{
Locatexy(); ///坐标定位,返回时保留分区状态不变 ///
Datalcm=0xFF;
Dilcm = 1; ///数据///
Rwlcm = 1; ///读数据///
Elcm = 1; ///读入到LCM///
_nop_();
cbyte = Datalcm; ///虚读一次 ///
Elcm = 0;
Locatexy(); ///坐标定位,返回时保留分区状态不变 ///
Datalcm=0xFF;
_nop_();
Dilcm = 1; ///数据///
Rwlcm = 1; ///读数据///
Elcm = 1; ///读入到LCM///
_nop_();
cbyte = Datalcm; ///从数据口读数据,真读 ///
Elcm = 0;
}
//////////////////////////////////////////////////////////////////////////////////
/// 数据写输出 ///
//////////////////////////////////////////////////////////////////////////////////
void Wrdata(Uchar X)
{
Locatexy(); ///坐标定位,返回时保留分区状态不变 ///
// wtcom();
Dilcm = 1; ///数据输出///
Rwlcm = 0; ///写输出 ///
Datalcm = X; ///数据输出到数据口 ///
Elcm = 1; ///读入到LCM///
_nop_();
Elcm = 0;
}
//////////////////////////////////////////////////////////////////////////////////
/// 命令输出,每次输出一个分区控制口 ///
//////////////////////////////////////////////////////////////////////////////////
///void Wrcmd(Uchar X)
// {
// Locatexy(); ///确定分区,返回时保留分区状态不变 ///
// wtcom(); ///等待LCM操作允许 ///
// Dilcm = 0; ///数据操作 ///
// Rwlcm = 0; ///写输出 ///
// Datalcm = X; ///数据输出到数据口 ///
// Elcm = 1;_nop_();Elcm = 0; ///读入到LCM///
// }
//////////////////////////////////////////////////////////////////
/// 命令输出到左区控制口 ///
//////////////////////////////////////////////////////////////////
void WrcmdL(Uchar X)
{
lcdbusyL(); ///确定分区,返回时保留分区状态不变///
Dilcm = 0; ///命令操作 ///
Rwlcm = 0; ///写输出 ///
Datalcm = X; ///数据输出到数据口 ///
Elcm = 1;_nop_();Elcm = 0; ///读入到LCM///
}
//////////////////////////////////////////////////////////////////
/// 命令输出到中区控制口 ///
//////////////////////////////////////////////////////////////////
void WrcmdM(Uchar X)
{
lcdbusyM(); ///确定分区,返回时保留分区状态不变///
Dilcm = 0; ///命令操作 ///
Rwlcm = 0; ///写输出 ///
Datalcm = X; ///命令输出到数据口 ///
Elcm = 1;_nop_();Elcm = 0; ///读入到LCM///
}
//////////////////////////////////////////////////////////////////
/// 命令输出到右区控制口 ///
//////////////////////////////////////////////////////////////////
void WrcmdR(Uchar X)
{
lcdbusyR(); ///确定分区,返回时保留分区状态不变 ///
Dilcm = 0; ///命令操作 ///
Rwlcm = 0; ///写输出 ///
Datalcm = X; ///命令输出到数据口 ///
Elcm = 1;_nop_();Elcm = 0; ///读入到LCM///
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// 分区操作允许等待,返回时保留分区选择状态 ///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void lcdbusyL(void)
{
CS1LCM = 0; ///CLR CS1 ///
CS2LCM = 1; ///SETB CS2 ///
CS3LCM = 1; ///SETB CS3 ///
wtcom(); /// waitting for enable ///
}
void lcdbusyM(void)
{
CS1LCM = 1; ///SETB CS1 ///
CS2LCM = 0; ///CLR CS2 ///
CS3LCM = 1; ///SETB CS3 ///
wtcom(); /// waitting for enable ///
}
void lcdbusyR(void)
{
CS1LCM = 1; ///SETB CS1 ///
CS2LCM = 1; ///SETB CS2 ///
CS3LCM = 0; ///CLR CS3 ///
wtcom(); /// waitting for enable ///
}
void wtcom(void)
{
Dilcm = 0; ///CLR DI ///
Rwlcm = 1; ///SETB RW ///
Datalcm = 0xFF; ///MOV DATA_LCM,#0FFH ///
Elcm = 1;_nop_();
while(Datalcm & Lcdbusy);
Elcm = 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///根据设定的坐标数据,定位LCM上的下一个操作单元位置 ///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Locatexy(void)
{
unsigned char x,y;
switch (col&0xc0) /// col.and.0xC0 ///
{ ///条件分支执行 ///
case 0: {lcdbusyL();break;} ///左区 ///
case 0x40: {lcdbusyM();break;} ///中区 ///
case 0x80: {lcdbusyR();break;} ///右区 ///
}
x = col&0x3F|SETX; /// col.and.0x3f.or.setx ///
y = row&0x07|SETY; /// row.and.0x07.or.sety ///
wtcom(); /// waitting for enable ///
Dilcm = 0; ///CLR DI ///
Rwlcm = 0; ///CLR RW ///
Datalcm = y; ///MOV P0,Y ///
Elcm = 1;_nop_();Elcm = 0;
wtcom(); /// waitting for enable ///
Dilcm = 0; ///CLR DI ///
Rwlcm = 0; ///CLR RW ///
Datalcm = x; ///MOV P0,X ///
Elcm = 1;_nop_();Elcm = 0;
}
//////////////////////////////////////////////////////////////////
///液晶屏初始化 ///
//////////////////////////////////////////////////////////////////
void Lcminit(void)
{
cbyte = DISPOFF; ///关闭显示屏 ///
WrcmdL(cbyte);
WrcmdM(cbyte);
WrcmdR(cbyte);
cbyte = DISPON; ///打开显示屏 ///
WrcmdL(cbyte);
WrcmdM(cbyte);
WrcmdR(cbyte);
cbyte = DISPFIRST; ///定义显示起始行为零 ///
WrcmdL(cbyte);
WrcmdM(cbyte);
WrcmdR(cbyte);
Lcmcls();
col=0; ///清屏 ///
row=0;
Locatexy();
}
//////////////////////////////////////////////////////////////////
/// 延时 ///
//////////////////////////////////////////////////////////////////
void Delay(Uchar MS)
{
Uchar us,usn;
while(MS!=0)
{ usn = 4;
while(usn!=0)
{
us=0xf0;
while (us!=0){us--;};
usn--;
}
MS--;
}
}
//////////////////////////////////////////////////////////////////
//定义字符串数组 ///
//////////////////////////////////////////////////////////////////
Uchar code STR1[]=
{
0x80,0x81,0x82,0x83,0x84,0x85,
0x86,0x87,0x88,0x89,0x8a,0x8B
};
Uchar code STR2[]="Our friend over the wold";
Uchar code STR3[]="Program by Keil C51 6.12";
Uchar code STR4[]="Thank you ~v~ 1234567890";
[page]
//////////////////////////////////////////////////////////////////
/// 定义中文字库 ///
//////////////////////////////////////////////////////////////////
Uchar code Hzk[]={
///茂 C3515 0 ///
0x04,0x04,0xC4,0x44,0x5F,0x44,0x44,0xF4,
0x44,0x4F,0x54,0x64,0x44,0x46,0x04,0x00,
0x80,0x40,0x3F,0x00,0x40,0x40,0x20,0x20,
0x13,0x0C,0x18,0x24,0x43,0x80,0xE0,0x00,
///兴 C4843 1 ///
0x00,0xFE,0x4A,0x4A,0x00,0xFE,0xEA,0xAA,
0xAA,0xFE,0x00,0x4A,0x4A,0xFE,0x00,0x00,
0x02,0x83,0x42,0x22,0x12,0x1B,0x02,0x02,
0x02,0x0B,0x12,0x22,0x62,0xC3,0x02,0x00,
///国 C2590 2 ///
0x00,0xFE,0x02,0xD2,0x52,0x52,0xD2,0x3E,
0xD2,0x16,0x1A,0x12,0xFF,0x02,0x00,0x00,
0x00,0xFF,0x50,0x53,0x52,0x4A,0x6B,0x50,
0x4F,0x54,0x7B,0x40,0xFF,0x00,0x00,0x00,
///际 C2842 3 ///
0x00,0xFE,0x22,0xD2,0x0E,0x20,0xB8,0x4F,
0xB2,0x9E,0x80,0x9F,0x72,0x8A,0x06,0x00,
0x00,0xFF,0x04,0x08,0x07,0x21,0x12,0x0A,
0x46,0x82,0x7E,0x06,0x0A,0x12,0x31,0x00,
///( C0308 4 ///
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xC0,0x30,0x08,0x04,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0x0C,0x10,0x20,0x40,0x00,0x00,
///广 C2567 5 ///
0x00,0x00,0xFC,0x44,0x54,0x54,0x7C,0x55,
0xD6,0x54,0x7C,0x54,0x54,0x44,0x44,0x00,
0x80,0x60,0x1F,0x80,0x9F,0x55,0x35,0x15,
0x1F,0x15,0x15,0x35,0x5F,0x80,0x00,0x00,
///东 C2211 6 ///
0x00,0x08,0xE8,0xA8,0xA8,0xA8,0xA8,0xFF,
0xA8,0xA8,0xA8,0xA8,0xE8,0x0C,0x08,0x00,
0x00,0x40,0x23,0x12,0x0A,0x06,0x02,0xFF,
0x02,0x06,0x0A,0x12,0x23,0x60,0x20,0x00,
///) C0309 7 ///
0x00,0x00,0x02,0x04,0x08,0x30,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
///有 C5148 8 ///
0x04,0x04,0x04,0x84,0xE4,0x3C,0x27,0x24,
0x24,0x24,0x24,0xF4,0x24,0x06,0x04,0x00,
0x04,0x02,0x01,0x00,0xFF,0x09,0x09,0x09,
0x09,0x49,0x89,0x7F,0x00,0x00,0x00,0x00,
///限 C4762 9 ///
0x00,0xFE,0x02,0x22,0xDA,0x06,0x00,0xFE,
0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00,
0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0xFF,
0x42,0x24,0x08,0x14,0x22,0x61,0x20,0x00,
///公 C2511 10 ///
0x00,0x00,0x80,0x40,0x30,0x0C,0x00,0xC0,
0x07,0x1A,0x20,0x40,0x80,0x80,0x80,0x00,
0x01,0x01,0x20,0x70,0x28,0x24,0x23,0x20,
0x20,0x28,0x30,0x60,0x00,0x01,0x00,0x00,
///司 C4330 11 ///
0x10,0x10,0x92,0x92,0x92,0x92,0x92,0x92,
0xD2,0x9A,0x12,0x02,0xFF,0x02,0x00,0x00,
0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,
0x3F,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,
};
//////////////////////////////////////////////////////////////////////////////////
/// 定义ASCII字库8列//16行 ///
//////////////////////////////////////////////////////////////////////////////////
Uchar code Ezk[]={
///-文字: --0x20 ///
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:!--0x21 ///
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x00,
///-文字:"--0x22 ///
0x00,0x08,0x04,0x02,0x08,0x04,0x02,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:#--0x23 ///
0x40,0x40,0xF8,0x40,0x40,0xF8,0x40,0x00,
0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,
///-文字:$--0x24 ///
0x00,0x70,0x88,0xFC,0x08,0x08,0x30,0x00,
0x00,0x1C,0x20,0xFF,0x21,0x22,0x1C,0x00,
///-文字:%--0x25 ///
0xF0,0x08,0xF0,0x80,0x70,0x08,0x00,0x00,
0x00,0x31,0x0E,0x01,0x1E,0x21,0x1E,0x00,
///-文字:&--0x26 ///
0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,
0x1E,0x21,0x23,0x24,0x18,0x16,0x20,0x00,
///-文字:'--0x27 ///
0x20,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:(--0x28 ///
0x00,0x00,0x00,0x00,0xC0,0x30,0x08,0x04,
0x00,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,
///-文字:)--0x29 ///
0x04,0x08,0x30,0xC0,0x00,0x00,0x00,0x00,
0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,
///-文字://--0x2a ///
0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,
0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,
///-文字:+--0x2b ///
0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x0F,0x01,0x01,0x01,0x00,
///-文字:,--0x2c ///
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:---0x2d ///
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
///-文字:.--0x2e ///
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:/--ox2f ///
0x00,0x00,0x00,0x00,0x00,0xE0,0x18,0x04,
0x00,0x40,0x30,0x0C,0x03,0x00,0x00,0x00,
///-文字:0--0x30 ///
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
///-文字:1--0x31 ///
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
///-文字:2--0x32 ///
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
///-文字:3--0x33 ///
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,
0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
///-文字:4--0x34 ///
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
///-文字:5--0x35 ///
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,
0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
///-文字:6--0x36 ///
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,
0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
///-文字:7--0x37 ///
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:8--0x38 ///
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
///-文字:9--0x39 ///
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
///-文字::-- ///
0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
///-文字:/-- ///
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,
///-文字:<-- ///
0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,
0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,
///-文字:=-- ///
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,
///-文字:>-- ///
0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,
0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,
///-文字:?-- ///
0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,
0x00,0x00,0x00,0x26,0x01,0x00,0x00,0x00,
///-文字:@-- ///
0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,
0x07,0x18,0x27,0x28,0x27,0x28,0x07,0x00,
///-文字:A-- ///
0x00,0x00,0xE0,0x18,0x18,0xE0,0x00,0x00,
0x30,0x0F,0x04,0x04,0x04,0x04,0x0F,0x30,
///-文字:B-- ///
0xF8,0x08,0x08,0x08,0x08,0x90,0x60,0x00,
0x3F,0x21,0x21,0x21,0x21,0x12,0x0C,0x00,
///-文字:C-- ///
0xE0,0x10,0x08,0x08,0x08,0x10,0x60,0x00,
0x0F,0x10,0x20,0x20,0x20,0x10,0x0C,0x00,
///-文字:D-- ///
0xF8,0x08,0x08,0x08,0x08,0x10,0xE0,0x00,
0x3F,0x20,0x20,0x20,0x20,0x10,0x0F,0x00,
///-文字:E-- ///
0x00,0xF8,0x08,0x08,0x08,0x08,0x08,0x00,
0x00,0x3F,0x21,0x21,0x21,0x21,0x20,0x00,
///-文字:F-- ///
0xF8,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
0x3F,0x01,0x01,0x01,0x01,0x01,0x00,0x00,
///-文字:G-- ///
0xE0,0x10,0x08,0x08,0x08,0x10,0x60,0x00,
0x0F,0x10,0x20,0x20,0x21,0x11,0x3F,0x00,
///-文字:H-- ///
0x00,0xF8,0x00,0x00,0x00,0x00,0xF8,0x00,
0x00,0x3F,0x01,0x01,0x01,0x01,0x3F,0x00,
///-文字:I-- ///
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:J-- ///
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,
0x00,0x1C,0x20,0x20,0x20,0x20,0x1F,0x00,
///-文字:K-- ///
0x00,0xF8,0x00,0x80,0x40,0x20,0x10,0x08,
0x00,0x3F,0x01,0x00,0x03,0x04,0x18,0x20,
///-文字:L-- ///
0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
///-文字:M-- ///
0xF8,0xE0,0x00,0x00,0x00,0xE0,0xF8,0x00,
0x3F,0x00,0x0F,0x30,0x0F,0x00,0x3F,0x00,
///-文字:N-- ///
0x00,0xF8,0x30,0xC0,0x00,0x00,0xF8,0x00,
0x00,0x3F,0x00,0x01,0x06,0x18,0x3F,0x00,
///-文字:O-- ///
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
///-文字:P-- ///
0xF8,0x08,0x08,0x08,0x08,0x10,0xE0,0x00,
0x3F,0x02,0x02,0x02,0x02,0x01,0x00,0x00,
///-文字:Q-- ///
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x0F,0x10,0x20,0x2C,0x10,0x2F,0x00,
///-文字:R-- ///
0xF8,0x08,0x08,0x08,0x08,0x90,0x60,0x00,
0x3F,0x01,0x01,0x01,0x07,0x18,0x20,0x00,
///-文字:S-- ///
0x60,0x90,0x88,0x08,0x08,0x10,0x20,0x00,
0x0C,0x10,0x20,0x21,0x21,0x12,0x0C,0x00,
///-文字:T-- ///
0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:U-- ///
0xF8,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,
0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,
///-文字:V-- ///
0x18,0xE0,0x00,0x00,0x00,0xE0,0x18,0x00,
0x00,0x01,0x0E,0x30,0x0E,0x01,0x00,0x00,
///-文字:W-- ///
0xF8,0x00,0xC0,0x38,0xC0,0x00,0xF8,0x00,
0x03,0x3C,0x03,0x00,0x03,0x3C,0x03,0x00,
///-文字:X-- ///
0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x00,
0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x00,
///-文字:Y-- ///
0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:Z-- ///
0x08,0x08,0x08,0x08,0xC8,0x28,0x18,0x00,
0x30,0x2C,0x22,0x21,0x20,0x20,0x20,0x00,
///-文字:{-- ///
0x00,0x00,0x00,0x80,0x7E,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0x20,0x00,0x00,
///-文字:-- ///
0x00,0x08,0x70,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x0E,0x30,0xC0,0x00,
///-文字:}-- ///
0x00,0x02,0x7E,0x80,0x00,0x00,0x00,0x00,
0x00,0x20,0x3F,0x00,0x00,0x00,0x00,0x00,
///-文字:^-- ///
0x00,0x08,0x04,0x02,0x02,0x04,0x08,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:_-- ///
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
///-文字:`-- ///
0x00,0x00,0x02,0x06,0x04,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
///-文字:a-- ///
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x00,0x19,0x24,0x24,0x24,0x14,0x3F,0x00,
///-文字:b-- ///
0x00,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,
0x00,0x3F,0x11,0x20,0x20,0x20,0x1F,0x00,
///-文字:c-- ///
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x0E,0x11,0x20,0x20,0x20,0x20,0x11,0x00,
///-文字:d-- ///
0x00,0x00,0x80,0x80,0x80,0x00,0xF8,0x00,
0x00,0x1F,0x20,0x20,0x20,0x11,0x3F,0x00,
///-文字:e-- ///
0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,
0x0E,0x15,0x24,0x24,0x24,0x25,0x16,0x00,
///-文字:f-- ///
0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:g-- ///
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
0x40,0xB7,0xA8,0xA8,0xA8,0xA7,0x40,0x00,
///-文字:h-- ///
0x00,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,
0x00,0x3F,0x01,0x00,0x00,0x00,0x3F,0x00,
///-文字:i-- ///
0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:j-- ///
0x00,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
0x00,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,
///-文字:k-- ///
0x00,0xF8,0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x3F,0x04,0x02,0x0D,0x10,0x20,0x00,
///-文字:l-- ///
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
///-文字:m-- ///
0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,
0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,
///-文字:n-- ///
0x00,0x80,0x00,0x80,0x80,0x80,0x00,0x00,
0x00,0x3F,0x01,0x00,0x00,0x00,0x3F,0x00,
///-文字:o-- ///
0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,
0x0E,0x11,0x20,0x20,0x20,0x11,0x0E,0x00,
///-文字:p-- ///
0x00,0x80,0x00,0x80,0x80,0x80,0x00,0x00,
0x00,0xFF,0x11,0x20,0x20,0x20,0x1F,0x00,
///-文字:q-- ///
0x00,0x00,0x80,0x80,0x80,0x00,0x80,0x00,
0x00,0x1F,0x20,0x20,0x20,0x11,0xFF,0x00,
///-文字:r-- ///
0x00,0x00,0x80,0x00,0x00,0x80,0x80,0x00,
0x00,0x00,0x3F,0x01,0x01,0x00,0x00,0x00,
///-文字:s-- ///
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x00,0x13,0x24,0x24,0x24,0x24,0x19,0x00,
///-文字:t-- ///
0x00,0x80,0x80,0xE0,0x80,0x80,0x80,0x00,
0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x00,
///-文字:u-- ///
0x00,0x80,0x00,0x00,0x00,0x00,0x80,0x00,
0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x00,
///-文字:v-- ///
0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,
0x00,0x07,0x18,0x20,0x18,0x07,0x00,0x00,
///-文字:w-- ///
0x80,0x00,0x00,0x80,0x00,0x00,0x80,0x00,
0x0F,0x30,0x0E,0x01,0x0E,0x30,0x0F,0x00,
///-文字:x-- ///
0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,
0x20,0x11,0x0A,0x04,0x0A,0x11,0x20,0x00,
///-文字:y-- ///
0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,
0x00,0x87,0x98,0x60,0x18,0x07,0x00,0x00,
///-文字:z-- ///
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x20,0x00,
///-文字:{-- ///
0x00,0x00,0x00,0x80,0x7E,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0x20,0x00,0x00,
///-文字:|-- ///
0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
///-文字:}-- ///
0x00,0x02,0x7E,0x80,0x00,0x00,0x00,0x00,
0x00,0x20,0x3F,0x00,0x00,0x00,0x00,0x00,
///-文字:~-- ///
0x00,0x06,0x01,0x01,0x06,0x04,0x03,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
关键字:51单片机 模拟时序控制 点阵图形液晶
引用地址:
51单片机采用模拟时序控制点阵图形液晶程序