|
发表于 2019-1-30 13:15:37
|
显示全部楼层
unsigned char CheckFlagST01(void)
{
unsigned char i,j;
for(i=10;i>0;i--)
{
//8080时序
LCD_PORT_SET_OUT();
LCD_PORT_OUT(0xff);
CS = 0;
RW_WR = 1;
RS = 1;
E_RD = 0;
Delay_Xus(2);
LCD_PORT_SET_IN();
j = LCD_PORT_IN;
E_RD = 1;
Delay_Xus(2);
CS = 1;
if((j & 0x03) == 0x03) break;
}
return (i);
}
unsigned char CheckFlagST3(void)
{
unsigned char i,j;
for(i=10;i>0;i--)
{
//8080时序
LCD_PORT_SET_OUT();
LCD_PORT_OUT(0xff);
CS = 0;
RW_WR = 1;
RS = 1;
E_RD = 0;
Delay_Xus(2);
LCD_PORT_SET_IN();
j = LCD_PORT_IN;
E_RD = 1;
Delay_Xus(2);
CS = 1;
if((j & 0x08) == 0x08)
break;
}
return i;
}
void T6963_WriteComd_NoParameter(unsigned char comd)
{
while(CheckFlagST01() == 0);
//8080时序
CS = 0;
RS = 1;
E_RD = 1;
Delay_Xus(2);
LCD_PORT_SET_OUT();
LCD_PORT_OUT(comd);
RW_WR = 0;
Delay_Xus(2);
RW_WR = 1;
Delay_Xus(2);
CS = 1;
}
void T6963_WriteComd_TwoParameter(unsigned char comd,unsigned char dat1,unsigned char dat2)
{
//8080时序
while(CheckFlagST01() == 0);
CS = 0;
RS = 0;
E_RD = 1;
LCD_PORT_SET_OUT();
LCD_PORT_OUT(dat1);
RW_WR = 0;
Delay_Xus(2);
RW_WR = 1;
Delay_Xus(2);
CS = 1;
while(CheckFlagST01() == 0);
CS = 0;
RS = 0;
E_RD = 1;
LCD_PORT_SET_OUT();
LCD_PORT_OUT(dat2);
RW_WR = 0;
Delay_Xus(2);
RW_WR = 1;
Delay_Xus(2);
CS = 1;
while(CheckFlagST01() == 0);
CS = 0;
RS = 1;
E_RD = 1;
LCD_PORT_SET_OUT();
LCD_PORT_OUT(comd);
RW_WR = 0;
Delay_Xus(2);
RW_WR = 1;
Delay_Xus(2);
CS = 1;
}
void T6963_WriteData(unsigned char dat)
{
while(CheckFlagST3() == 0);
//8080时序
CS = 0;
RS = 0;
E_RD = 1;
LCD_PORT_SET_OUT();
LCD_PORT_OUT(dat);
RW_WR = 0;
Delay_Xus(2);
RW_WR = 1;
Delay_Xus(2);
CS = 1;
}
相关忙标志判断与读写函数,看是否有参考意义 |
|