📄 lcd19264.c
字号:
IOCLR0 = 0x0000ff00 - (Command << 8);
IOSET0 = 1<<LCDOE; // LCDOE =1
IOCLR0 = 1<<LCDOE; // LCDOE =0
}
void WriteMiddleData(unsigned char nData)
{
unsigned char nStatus;
unsigned long Data;
Data = invertchar(nData);
IOSET1 = (1<<LCDCS1) | (1<<LCDCS3);
IOCLR1 = (1<<LCDCS2) | (1<<LCDCOMMAND);
IOSET0 = (1<<LCDRD);
IODIR0 &= 0xFFFF00FF; //P0.15:8 input
do
{
IOSET0 = 1<<LCDOE; // LCDOE =1
nStatus = (unsigned char) (IOPIN0 >> 8);
IOCLR0 = 1<<LCDOE; // LCDOE =0
}while(nStatus & 0x01);
IOSET1 = 1<<LCDDATA;
IOCLR0 = (1<<LCDWR);
IODIR0 |= 0x0000FF00; //P0.15:8 output
IOSET0 = Data << 8;
IOCLR0 = 0x0000ff00 - (Data << 8);
IOSET0 = 1<<LCDOE; // LCDOE =1
IOCLR0 = 1<<LCDOE; // LCDOE =0
}
void WriteRightCommand(unsigned char nCommand)
{
unsigned char nStatus;
unsigned long Command;
Command = invertchar(nCommand);
IOSET1 = (1<<LCDCS1) | (1<<LCDCS2) ;
IOCLR1 = (1<<LCDCS3) | (1<<LCDCOMMAND);
IOSET0 = (1<<LCDRD);
IODIR0 &= 0xFFFF00FF; //P0.15:8 input
do
{
IOSET0 = 1<<LCDOE; // LCDOE =1
nStatus = (unsigned char) (IOPIN0 >> 8);
IOCLR0 = 1<<LCDOE; // LCDOE =0
}while(nStatus & 0x01);
IOCLR0 = (1<<LCDWR);
IODIR0 |= 0x0000FF00; //P0.15:8 output
IOSET0 = Command << 8;
IOCLR0 = 0x0000ff00 - (Command << 8);
IOSET0 = 1<<LCDOE; // LCDOE =1
IOCLR0 = 1<<LCDOE; // LCDOE =0
}
void WriteRightData(unsigned char nData)
{
unsigned char nStatus;
unsigned long Data;
Data = invertchar(nData);
IOSET1 = (1<<LCDCS1) | (1<<LCDCS2);
IOCLR1 = (1<<LCDCS3) | (1<<LCDCOMMAND); //读状态
IOSET0 = (1<<LCDRD);
IODIR0 &= 0xFFFF00FF; //P0.15:8 input
do
{
IOSET0 = 1<<LCDOE; // LCDOE =1
nStatus = (unsigned char) (IOPIN0 >> 8);
IOCLR0 = 1<<LCDOE; // LCDOE =0
}while(nStatus & 0x01);
IOSET1 = 1<<LCDDATA; //写数据
IOCLR0 = (1<<LCDWR);
IODIR0 |= 0x0000FF00; //P0.15:8 output
IOSET0 = Data << 8;
IOCLR0 = 0x0000ff00 - (Data << 8);
IOSET0 = 1<<LCDOE; // LCDOE =1
IOCLR0 = 1<<LCDOE; // LCDOE =0
}
void Clear_Lcd(void)
{
unsigned char i,j;
WriteLeftCommand(0xC0); // 设置起始行行号为0
WriteMiddleCommand(0xC0);
WriteRightCommand(0xC0);
WriteLeftCommand(0x3F); //开显示
WriteMiddleCommand(0x3F);
WriteRightCommand(0x3F);
for(i=0;i<8;i++)
{
for(j=0;j<64;j++)
{
WriteLeftCommand(i | 0xB8);
WriteLeftCommand(j | 0x40);
WriteLeftData(0x00);
}
}
for(i=0;i<8;i++)
{
for(j=0;j<64;j++)
{
WriteMiddleCommand(i | 0xB8);
WriteMiddleCommand(j | 0x40);
WriteMiddleData(0x00);
}
}
for(i=0;i<8;i++)
{
for(j=0;j<64;j++)
{
WriteRightCommand(i | 0xB8); //页地址
WriteRightCommand(j | 0x40); // 列地
WriteRightData(0x00);
}
}
}
void ShowData(unsigned char xPos,unsigned char yPos,unsigned char nData)
{
unsigned char xNum = xPos/64;
switch(xNum)
{
case 0:
WriteLeftCommand(yPos/8 | 0xB8);//页
WriteLeftCommand((xPos-64*xNum) | 0x40); //列
WriteLeftData(nData);
break;
case 1:
WriteMiddleCommand(yPos/8 | 0xB8);
WriteMiddleCommand((xPos-64*xNum) | 0x40);
WriteMiddleData(nData);
break;
case 2:
WriteRightCommand(yPos/8 | 0xB8);
WriteRightCommand((xPos-64*xNum) | 0x40);
WriteRightData(nData);
break;
}
}
/* 显示汉字 */
void ShowHZ(unsigned char xOrigin, unsigned char yOrigin, unsigned char nIndex)
{
unsigned char i,j,xpos,ypos;
for(i=0;i<16;i++)
{
xpos = xOrigin+i;
for(j=0;j<2;j++)
{
ypos = yOrigin+j*8;
ShowData(xpos,ypos,HZCode[nIndex][j*16+i]);
}
}
}
/* 反相显示汉字 */
void ShowInvHZ(unsigned char xOrigin, unsigned char yOrigin, unsigned char nIndex)
{
unsigned char i,j,xpos,ypos;
for(i=0;i<16;i++)
{
xpos = xOrigin+i;
for(j=0;j<2;j++)
{
ypos = yOrigin+j*8;
ShowData(xpos,ypos,~HZCode[nIndex][j*16+i]);
}
}
}
/* 显示数字 */
void ShowNum(unsigned char xOrigin,unsigned char yOrigin,unsigned char ndata)
{
unsigned char i,j,xpos,ypos;
for(i=0;i<8;i++)
{
xpos = xOrigin+i;
for(j=0;j<2;j++)
{
ypos = yOrigin+j*8;
ShowData(xpos,ypos,NumCode[ndata][j*8+i]);
}
}
}
/* 反相显示数字 */
void ShowInvNum(unsigned char xOrigin,unsigned char yOrigin,unsigned char ndata)
{
unsigned char i,j,xpos,ypos;
for(i=0;i<8;i++)
{
xpos = xOrigin+i;
for(j=0;j<2;j++)
{
ypos = yOrigin+j*8;
ShowData(xpos,ypos,~NumCode[ndata][j*8+i]);
}
}
}
void DrawLeftLine()
{
ShowData(48,16,0x01); ShowData(49,17,0x02); ShowData(50,18,0x04); ShowData(51,19,0x08); ShowData(52,20,0x10);
ShowData(53,21,0x20); ShowData(54,22,0x40); ShowData(55,23,0x80); ShowData(56,24,0x01); ShowData(57,25,0x06);
ShowData(58,27,0x08); ShowData(59,28,0x10); ShowData(60,29,0x20); ShowData(61,30,0x40); ShowData(62,31,0x80);
ShowData(63,32,0x01); ShowData(64,33,0x02); ShowData(65,34,0x04); ShowData(66,35,0x18); ShowData(67,37,0x20);
ShowData(68,38,0x40); ShowData(69,39,0x80); ShowData(70,40,0x01); ShowData(71,41,0x02); ShowData(72,42,0x04);
ShowData(73,43,0x08); ShowData(74,44,0x10); ShowData(75,45,0x60); ShowData(76,47,0x80); ShowData(77,48,0x01);
ShowData(78,49,0x02); ShowData(79,50,0x04); ShowData(80,51,0x08); ShowData(81,52,0x10); ShowData(82,53,0x20);
ShowData(83,54,0x40); ShowData(84,55,0x80); ShowData(85,56,0x01); ShowData(86,57,0x02); ShowData(87,58,0x04);
}
void DrawRightLine()
{
ShowData(104,58,0x04); ShowData(105,57,0x02); ShowData(106,56,0x01); ShowData(107,55,0x80); ShowData(108,54,0x40);
ShowData(109,53,0x20); ShowData(110,52,0x10); ShowData(111,51,0x08); ShowData(112,50,0x04); ShowData(113,49,0x02);
ShowData(114,48,0x01); ShowData(115,47,0x80); ShowData(116,45,0x60); ShowData(117,44,0x10); ShowData(118,43,0x08);
ShowData(119,42,0x04); ShowData(120,41,0x02); ShowData(121,40,0x01); ShowData(122,39,0x80); ShowData(123,38,0x40);
ShowData(124,37,0x20); ShowData(125,35,0x18); ShowData(126,34,0x04); ShowData(127,33,0x02); ShowData(128,32,0x01);
ShowData(129,31,0x80); ShowData(130,30,0x40); ShowData(131,29,0x20); ShowData(132,28,0x10); ShowData(133,27,0x08);
ShowData(134,25,0x06); ShowData(135,24,0x01); ShowData(136,23,0x80); ShowData(137,22,0x40); ShowData(138,21,0x20);
ShowData(139,20,0x10); ShowData(140,19,0x08); ShowData(141,18,0x04); ShowData(142,17,0x02); ShowData(143,16,0x01);
}
/* 显示欢呼界面 */
/*
恒茂科技
ZL-1型
卷染机恒张力控制系统
0512-63564002
*/
void ShowWelcomeLog(void)
{
unsigned long x;
Clear_Lcd();
/* 第一行: 恒茂科技 */
x = 64;
ShowInvHZ(x, 0, 28); x += 16;
ShowHZ(x, 0, 29); x += 16;
ShowHZ(x, 0, 30); x += 16;
ShowHZ(x, 0, 31);
/* 第二行: ZL-1型 */
x = 72;
ShowHZ(x, 16, 32); x += 16;
ShowHZ(x, 16, 33); x += 16;
ShowHZ(x, 16, 34);
/* 第三行: 卷染机恒张力控制系统 */
x = 16;
ShowHZ(x, 32, 35); x += 16;
ShowHZ(x, 32, 36); x += 16;
ShowHZ(x, 32, 37); x += 16;
ShowHZ(x, 32, 28); x += 16;
ShowHZ(x, 32, 38); x += 16;
ShowHZ(x, 32, 39); x += 16;
ShowHZ(x, 32, 40); x += 16;
ShowHZ(x, 32, 41); x += 16;
ShowHZ(x, 32, 42); x += 16;
ShowHZ(x, 32, 43);
/* 第四行: 0512-63564002 */
x = 40;
ShowNum(x, 48, 0); x += 8;
ShowNum(x, 48, 5); x += 8;
ShowNum(x, 48, 1); x += 8;
ShowNum(x, 48, 2); x += 8;
ShowHZ(x, 48, 44); x += 16;
ShowNum(x, 48, 6); x += 8;
ShowNum(x, 48, 3); x += 8;
ShowNum(x, 48, 5); x += 8;
ShowNum(x, 48, 6); x += 8;
ShowNum(x, 48, 4); x += 8;
ShowNum(x, 48, 0); x += 8;
ShowNum(x, 48, 0); x += 8;
ShowNum(x, 48, 2); x += 8;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -