📄 lcd12864a.c
字号:
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=0;zmseg<8;zmseg++)
{
wdata(success[cod*8+zmseg]); // 连续写入8个数据
}
}
/********************************************/
/* 西文字符写入函数:CW_PR 16*16 */
void cwpr16(unsigned char cod,unsigned char page,unsigned char seg)
{ unsigned char zmseg;
wcom(0xaf);// 开显示
wcom(0xb0+page); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=0;zmseg<16;zmseg++)
{
wdata(largedigtal[cod*32+zmseg]); // 连续写入16个数据
}
wcom(0xb0+page-1); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=16;zmseg<32;zmseg++)
{
wdata(largedigtal[cod*32+zmseg]); // 连续写入16个数据
}
}
/********************************************/
/* 西文字符写入函数:CW_PR 16*8 */
/* 写入数字和英文字母 16行 8列 */
/********************************************/
void writedigital(unsigned char cod,unsigned char page,unsigned char seg)
{ unsigned char zmseg;
wcom(0xaf);// 开显示
wcom(0xb0+page); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=8;zmseg>0;zmseg--)
{
wdata(largedigtal[cod*16+zmseg]); // 连续写入16个数据
}
wcom(0xb0+page-1); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=16;zmseg>8;zmseg--)
{
wdata(largedigtal[cod*16+zmseg]); // 连续写入16个数据
}
}
/********************************************/
/* 中文字符写入函数:CW_PR 16*16 */
/* 写入一个汉字 */
/* */
/********************************************/
void writeone(unsigned char cod,unsigned char page,unsigned char seg)
{ unsigned char zmseg;
wcom(0xaf);// 开显示
wcom(0xb0+page); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=16;zmseg>0;zmseg--)
{
wdata(hanzi[cod*32+zmseg]); // 连续写入16个数据
}
wcom(0xb0+page-1); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=32;zmseg>16;zmseg--)
{
wdata(hanzi[cod*32+zmseg]); // 连续写入16个数据
}
}
/********************************************/
/* 中文字符写入函数:CW_PR 32*32 */
/* 写入一个汉字 */
/* */
/********************************************/
void writeonebig(unsigned char cod,unsigned char page,unsigned char seg)
{ unsigned char zmseg;
wcom(0xaf);// 开显示
wcom(0xb0+page); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=32;zmseg>0;zmseg--)
{
wdata(hanzibig[cod*128+zmseg]); // 连续写入32个数据
}
wcom(0xb0+page-1); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=64;zmseg>32;zmseg--)
{
wdata(hanzibig[cod*128+zmseg]); // 连续写入32个数据
}
wcom(0xb0+page-2); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=96;zmseg>64;zmseg--)
{
wdata(hanzibig[cod*128+zmseg]); // 连续写入32个数据
}
wcom(0xb0+page-3); // 设定页地址,设定page命令是0xB0,共 9 page
wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131 , 写高四位列地址
wcom(0x0f&seg); // 写低四位列地址
for(zmseg=128;zmseg>96;zmseg--)
{
wdata(hanzibig[cod*128+zmseg]); // 连续写入32个数据
}
}
/*16*16汉字写入子程序*/
void ccwpr(unsigned char cod,unsigned char page,unsigned char seg)
{ unsigned char zmseg;
wcom(0xaf);//开显示
wcom(0xb0+page); //设定页地址
wcom(0x10+(0x0f&(seg>>4))); //列地址 高四位
wcom(0x0f&seg); //列地址 低四位
for(zmseg=0;zmseg<=15;zmseg++)
{
// wdata(CCTAB[cod*32+zmseg]); //连续写入16个字节数据
}
wcom(0xb0+page+1); //跳到下一页
wcom(0x10+(0x0f&(seg>>4)));
wcom(0x0f&seg);
for(zmseg=16;zmseg<=31;zmseg++) //连续写入16个字节数据
{
// wdata(CCTAB[cod*32+zmseg]);
}
}
/*************************************************/
//写disdate_a数据
/*************************************************/
void disdate_a(unsigned char dat_a,unsigned char dat_b)
{
int seg;
unsigned char page;
for(page=0xb0;page<0xb9;page++) //写页地址共9页 0xb8----0xb9
{ wcom(page); //如下汉字可改
wcom(0x10); //设列地址高四位
wcom(0x00); //设列地址低四位
for(seg=0;seg<64;seg++)
{ wdata(dat_a);
wdata(dat_b);
}
}
wcom(0xaf); /*开显示指令*/
}
/*************************************************/
//写disdate_b数据全屏写数据
/*************************************************/
void disdate_b(unsigned char *p)
{
int seg;
unsigned char page;
wcom(0xaf);/*开显示*/
for(page=0xb0;page<0xb8;page++) //写页地址共8页 0xb0----0xb8
{
wcom(page);
wcom(0x10);
wcom(0x00);
for(seg=0;seg<128;seg++)
{
wdata(*p++);
}
}
}
void clr_blank() /*-----清屏幕-----*/
{
writeone(15,7,112);
writeone(15,7,96);
writeone(15,7,80); /*----不显示------*/
writeone(15,7,64);
writeone(15,7,48);
writeone(15,7,32);
writeone(15,7,16);
writeone(15,7,0);
writeone(15,5,112);
writeone(15,5,96);
writeone(15,5,80); /*----不显示------*/
writeone(15,5,64);
writeone(15,5,48);
writeone(15,5,32);
writeone(15,5,16);
writeone(15,5,0);
writeone(15,3,112);
writeone(15,3,96);
writeone(15,3,80); /*----不显示------*/
writeone(15,3,64);
writeone(15,3,48);
writeone(15,3,32);
writeone(15,3,16);
writeone(15,3,0);
writeone(15,1,112);
writeone(15,1,96);
writeone(15,1,80); /*----不显示------*/
writeone(15,1,64);
writeone(15,1,48);
writeone(15,1,32);
writeone(15,1,16);
writeone(15,1,0);
}
/*-- 进入开机画面函数--------*/
void entermenu() /*进入开机画面*/
{
writeonebig(0,7,96); /*飞*/
delay1();
delay1();
delay1();
writeonebig(1,7,64); /*拓*/
delay1();
delay1();
delay1();
writeonebig(2,7,32); /*电*/
delay1();
delay1();
delay1();
writeonebig(3,7,0); /*子*/
delay1();
delay1();
delay1();
writeonebig(4,3,96); /*欢*/
delay1();
delay1();
delay1();
writeonebig(5,3,64); /*迎*/
delay1();
delay1();
delay1();
writeonebig(6,3,32); /*您*/
delay1();
delay1();
delay1();
writeonebig(7,3,0); /*!*/
delay1();
delay1();
delay1();
delay1();
delay1();
delay1();
delay1();
clr_blank(); /*清屏幕*/
delay1();
delay1();
delay1();
delay1();
delay1();
delay1();
delay1();
writeone(0,6,96); /*杭*/
writeone(1,6,80); /*州*/
writeone(2,6,64); /*飞*/
writeone(3,6,48); /*拓*/
writeone(4,6,32); /*科*/
writeone(5,6,16); /*技*/
writeone(6,3,112); /*当*/
writeone(7,3,96); /*前*/
writeone(8,3,80); /*温*/
writeone(9,3,64); /*度*/
writedigital(20,3,56); /*:*/
writedigital(12,1,112); /*w*/
writedigital(12,1,104); /*w*/
writedigital(12,1,96); /*w*/
writedigital(13,1,88); /*.*/
writedigital(14,1,80); /*f*/
writedigital(15,1,72); /*y*/
writedigital(16,1,64); /*t*/
writedigital(17,1,56); /*o*/
writedigital(17,1,48); /*o*/
writedigital(13,1,40); /*.*/
writedigital(18,1,32); /*c*/
writedigital(17,1,24); /*o*/
writedigital(19,1,16); /*m*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -