[求助] 12864串口写数据看不懂,求助……

jianhong0425   2015-7-22 09:35 楼主
用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; //左移



  }



}

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复