📄 lcd11_4.txt
字号:
{
LCD_WR_CMD(0x4c); //光标右移
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(0xFF); //左字节数据
}
}
void lcdWrLineVertical(Uint16 screen, Uint16 o_x, Uint16 o_y,Uint16 n)
{
Uint16 dram_addr;
dram_addr=o_x+o_y*40; //得到显存区首址
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8); //CSRH
LCD_WR_CMD(0x4F); //光标
LCD_WR_CMD(0x42); //MWRITE代码
while(n)
{
LCD_WR_DAT(0xC0);
n--;
}
}
void lcdWrLineVerticalR(Uint16 screen, Uint16 o_x, Uint16 o_y,Uint16 n)
{
Uint16 dram_addr;
dram_addr=o_x+o_y*40; //得到显存区首址
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8); //CSRH
LCD_WR_CMD(0x4E); //光标
LCD_WR_CMD(0x42);
while(n)
{
LCD_WR_DAT(0x03);
n--;
}
}
void lcdWrLineVerticalR1(Uint16 screen, Uint16 o_x, Uint16 o_y,Uint16 n)
{
Uint16 dram_addr,i;
dram_addr=o_x+o_y*40; //得到显存区首址
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8); //CSRH
LCD_WR_CMD(0x4F);
for(i=0;i<n;i++)
{
LCD_WR_CMD(0x42);
LCD_WR_DAT(0x03);
}
}
void lcdWrWord(Uint16 screen,Uint16 string[], Uint16 o_x,Uint16 o_y)
{
Uint16 dram_addr,i;
dram_addr=o_x+o_y*40;
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8);
for(i=0;i<16;i++)
{
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(string[2*i]);
LCD_WR_CMD(0x4F); //光标
}
dram_addr=o_x+1+o_y*40;
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8);
for(i=0;i<16;i++)
{
LCD_WR_CMD(0x42);
LCD_WR_DAT(string[2*i+1]);
LCD_WR_CMD(0x4F); //光标
}
}
void lcdWrWord1(Uint16 screen,Uint16 string[], Uint16 o_x,Uint16 o_y)
{
Uint16 dram_addr,i;
for(i=0;i<16;i++)
{
dram_addr=o_x+(o_y+i)*40;
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8);
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(string[2*i]);
LCD_WR_CMD(0x4C); //光标
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(string[2*i+1]);
}
}
void lcdWrLetter(Uint16 Screen,Uint16 string[], Uint16 o_x,Uint16 o_y)
{
Uint16 dram_addr,i;
dram_addr=o_x+o_y*40;
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8);
LCD_WR_CMD(0x4F); //光标
for(i=0;i<16;i++)
{
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(string[i]);
}
}
/******************** 将指定屏的坐标处连续n个字节单元反显 ************************
参数: screen --屏代码,范围0~5
o_x --横坐标,范围0~39
o_y --纵坐标,范围0~9
n --反显字节单元的个数
**********************************************************************************/
void lcdNegDis(Uint16 screen, Uint16 o_x, Uint16 o_y,Uint16 n)
{
Uint16 dram_addr,temp;
Uint16 x;
dram_addr=o_x+o_y*40; //得到显存区首址
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT(dram_addr>>8); //CSRH
LCD_WR_CMD(0x4c); //光标右移
//反显一行
LCD_WR_CMD(0x46); //写光标指针代码
for(x=0;x<n;x++)
{
dram_addr=o_x+x+o_y*40; //得到显存区首址
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT(dram_addr>>8); //CSRH
LCD_WR_CMD(0x43); /*MREAD 代码*/
Delay(3);
temp=LCD_RD_DAT(); /* 读出数据 */
Delay(5);
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(~temp); /* 取反后写入,数据一次写指令,地址加1 */
}
}
void lcdNegDis1(Uint16 screen, Uint16 o_x, Uint16 o_y,Uint16 n)
{
Uint16 j,temp,dram_addr;
dram_addr=o_x+o_y*40;
LCD_WR_CMD(0x4F);
LCD_WR_CMD(0x46);
LCD_WR_DAT(dram_addr);
LCD_WR_DAT((dram_addr)>>8);
for(j=0;j<21;j++)
{
temp=0;
LCD_WR_CMD(0x43);
Delay(10);
temp=LCD_RD_DAT();
Delay(10);
LCD_WR_CMD(0x42);
LCD_WR_DAT(~temp);
}
}
void lcdNegDis2(Uint16 screen, Uint16 o_x, Uint16 o_y,Uint16 n)
{
Uint16 cnt,dram_addr,temp;
Uint16 x=0;
dram_addr=o_x+o_y*40; //得到显存区首址
for(cnt=0;cnt<16;cnt++)
{
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr+cnt*40); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr+cnt*40)>>8); //CSRH
LCD_WR_CMD(0x4C);
//反显一行
for(x=0;x<n;x++)
{
temp=0;
LCD_WR_CMD(0x43); /*MREAD 代码*/
Delay(10);
temp=LCD_RD_DAT(); /* 读出数据 */
Delay(10);
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr+cnt*40+x+2); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr+cnt*40+x+2)>>8); //CSRH
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(temp); /* 取反后写入,数据一次写指令,地址加1 */
}
}
/* dram_addr=o_x+2+o_y*40;
for(i=0;i<16;i++)
{
dram_addr=o_x+2+(o_y+i)*40;
LCD_WR_CMD(0x46); //写光标指针代码
LCD_WR_DAT(dram_addr); //写光标指针地址CSRL
LCD_WR_DAT((dram_addr)>>8);
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(temp[2*i]);
LCD_WR_CMD(0x4C); //光标
LCD_WR_CMD(0x42); //MWRITE代码
LCD_WR_DAT(temp[2*i+1]);
}
*/
}
void Screen0Display()
{
lcdWrLineHorizontal(0, 0, 0,8);
lcdWrLineHorizontal(0, 0, 238,8);
lcdWrLineVertical(0, 0, 2,28);
lcdWrLineVertical(0, 0, 31,29);
lcdWrLineVertical(0, 0, 61,29);
lcdWrLineVertical(0, 0, 91,29);
lcdWrLineVertical(0, 0, 121,29);
lcdWrLineVertical(0, 0, 151,29);
lcdWrLineVertical(0, 0, 181,29);
lcdWrLineVertical(0, 0, 211,27);
lcdWrLineVertical(0, 10, 31,179);
lcdWrLineVerticalR1(0, 39, 2,28);
lcdWrLineVerticalR1(0, 39, 31,179);
lcdWrLineVerticalR1(0, 39, 211,27);
lcdWrWord(0, Data_Dian, 12, 5);
lcdWrWord(0, Data_Ji, 14, 5);
lcdWrWord(0, Data_Dian, 16, 5);
lcdWrWord(0, Data_Liang, 18, 5);
lcdWrWord(0, Data_Ce, 20, 5);
lcdWrWord(0, Data_Shi4, 22, 5);
lcdWrWord(0, Data_Yi, 24, 5);
lcdWrLineHorizontal(0, 0, 30,4);
lcdWrLineHorizontal(0, 0, 60,1);
lcdWrLineHorizontal(0, 0, 90,1);
lcdWrLineHorizontal(0, 0, 120,1);
lcdWrLineHorizontal(0, 0, 150,1);
lcdWrLineHorizontal(0, 0, 180,1);
lcdWrLineHorizontal(0, 0, 210,4);
lcdWrLetter(0, Data_R, 2,35);
lcdWrLetter(0, Data_M, 3,35);
lcdWrLetter(0, Data_S, 4,35);
lcdWrWord(0, Data_Ce, 5, 35);
lcdWrWord(0, Data_Liang, 7, 35);
lcdWrWord(0, Data_Xie, 1, 65);
lcdWrWord(0, Data_Bo, 3, 65);
lcdWrWord(0, Data_Han2, 5, 65);
lcdWrWord(0, Data_Liang, 7, 65);
lcdWrWord(0, Data_Shun, 1, 95);
lcdWrWord(0, Data_Tai, 3, 95);
lcdWrWord(0, Data_JI, 5, 95);
lcdWrWord(0, Data_Lu, 7, 95);
lcdWrWord(0, Data_Bu, 1, 125);
lcdWrWord(0, Data_Ping, 3, 125);
lcdWrWord(0, Data_Heng, 5, 125);
lcdWrWord(0, Data_Du, 7, 125);
lcdWrWord(0, Data_Xuan, 1, 155);
lcdWrWord(0, Data_Xiang, 7, 155);
lcdWrWord(0, Data_Xi, 1, 185);
lcdWrWord(0, Data_Tong, 3, 185);
lcdWrWord(0, Data_Jiao, 5, 185);
lcdWrWord(0, Data_Zhun, 7, 185);
lcdWrWord(0, Data_Wu, 6, 215);
lcdWrWord(0, Data_Han4, 8, 215);
lcdWrWord(0, Data_Hua, 10, 215);
lcdWrWord(0, Data_Da, 12, 215);
lcdWrWord(0, Data_Xin, 14, 215);
lcdWrWord(0, Data_Xing, 16, 215);
lcdWrWord(0, Data_Dian, 18, 215);
lcdWrWord(0, Data_Ji, 20, 215);
lcdWrWord(0, Data_Ke, 22, 215);
lcdWrWord(0, Data_Ji4, 24, 215);
lcdWrWord(0, Data_Gu, 26, 215);
lcdWrWord(0, Data_Fen, 28, 215);
lcdWrWord(0, Data_You, 30, 215);
lcdWrWord(0, Data_Xian, 32, 215);
lcdWrWord(0, Data_Gong, 34, 215);
lcdWrWord(0, Data_Si, 36, 215);
}
void Screen1Display()
{
Uint16 i,j;
lcdWrLineHorizontal(1, 0, 0,8);
lcdWrLineHorizontal(1, 0, 238,8);
lcdWrLineHorizontal(1, 0, 24,4);
lcdWrLineVertical(1,0,2,22);
for(i=1;i<9;i++)
{
lcdWrLineVertical(1, 0, 24*i+1, 23);
}
lcdWrLineVertical(1,0,216,22);
for(j=2;j<10;j++)
{
lcdWrLineHorizontal(1,0,24*j,2);
}
lcdWrLineVertical(1, 20, 25,213);
lcdWrLineVerticalR1(1, 39, 2,22);
lcdWrLineVerticalR1(1, 39, 25,213);
lcdWrWord(1,Data_Xuan, 10, 5);
lcdWrWord(1,Data_Xiang,30, 5);
lcdWrWord(1,Data_Dan,2,28 );
lcdWrWord(1,Data_Xiang,6,28 );
lcdWrWord(1,Data_Wei,30,28);
lcdWrWord(1,Data_Xuan,32,28);
lcdWrWord(1,Data_Ze,34,28);
lcdWrWord(1,Data_San,2,52 );
lcdWrWord(1,Data_Xiang,6,52 );
lcdWrWord(1,Data_Wei,30,52);
lcdWrWord(1,Data_Xuan,32,52);
lcdWrWord(1,Data_Ze,34,52);
lcdWrWord(1,Data_Dian,2,76 );
lcdWrWord(1,Data_Ya,6,76 );
lcdWrWord(1,Data_Wei,30,76);
lcdWrWord(1,Data_Xuan,32,76);
lcdWrWord(1,Data_Ze,34,76);
lcdWrWord(1,Data_Dian,2,100);
lcdWrWord(1,Data_Liu,6,100 );
lcdWrWord(1,Data_Wei,30,100);
lcdWrWord(1,Data_Xuan,32,100);
lcdWrWord(1,Data_Ze,34,100);
lcdWrWord(1,Data_Dian,2,124 );
lcdWrWord(1,Data_Ya,4,124 );
lcdWrWord(1,Data_Dian,6,124 );
lcdWrWord(1,Data_Liu,8,124 );
lcdWrWord(1,Data_Wei,30,124);
lcdWrWord(1,Data_Xuan,32,124);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -