用12864串口模式写程序,抑制了一部分,发现下面这部分看不懂,各位大侠能帮我讲一下吗
假如我给一个显示
LCD12864_write_word(“电子工程世界”);
请问它是怎么显示出来的呢?
/*************************************************************************************
//写连续字符函数
//*************************************************************************************
void LCD12864_write_word(unsigned char *s)
{
LCD12864_COM_Write(0X30);
while(*s>0)
{
LCD12864_Data_Write(*s);
s++;
}
}
/*************************************************************************************
写数据
*************************************************************************************/
void LCD12864_Data_Write(unsigned char ddata) //写数据
{
unsigned char Hdata,Ldata;
Hdata=ddata&0xf0; //取高四位
Ldata=(ddata<<4)&0xf0; //取低四位
LCD12864_SendByte(0xfA); //发送起始信号
delaynms(5); //延时是必须的
LCD12864_SendByte(Hdata); //发送高四位
delaynms(1); //延时是必须的
LCD12864_SendByte(Ldata); //发送低四位
delaynms(1); //延时是必须的
}
/*************************************************************************************
发送一个字节
*************************************************************************************/
void LCD12864_SendByte(unsigned char bbyte) //发送一个字节
{
unsigned char i;
//LCD12864_RS_PORT_H;
for(i=0;i<8;i++)
{
if((bbyte&0x80) == 0) //取出最高位
{
LCD12864_RW_PORT_L;
}
else
{
LCD12864_RW_PORT_H;
}
LCD12864_EN_PORT_H; //充当时钟
Delay_Nms(500);
LCD12864_EN_PORT_L;
Delay_Nms(500);
bbyte<<=1; //左移
}
}