|
在STM32控制12864屏发送数据时为什么高4位和低4位分开发送?
[复制链接]
/***********************************************************
函数名称:LCD_write_byte
函数功能:写一个字节的数据到12864液晶,包括指令或数据
入口参数:RW、RS、W_data
出口参数:无
备 注:RW=1,从液晶读数据到MCU;RW=0,写一个数据到液晶;
(一般RW都设为0,即只向液晶写数据,不读数据)
RS=1,写入的是数据;RS=0,写入的是指令;
一般模式:RW=0,RS=1;写数据
RW="0",RS=0;写指令
***********************************************************/
void LCD_write_byte(unsigned char RW, unsigned char RS, unsigned char W_data)
{
unsigned int H_data,L_data,S_ID = 0xf8; //11111RWRS0
if(RW == 0) //RW=0,MCU写一个数据到液晶;
{
S_ID &=~ 0x04;
}
else //RW=1,从液晶读数据到MCU
{
S_ID |= 0X04;
}
if(RS == 0) //RS=1,写入的是数据
{
S_ID &=~ 0x02;
}
else //RS=0,写入的是指令;
{
S_ID |= 0X02;
}
H_data = W_data;
H_data &= 0xf0; //屏蔽低4位的数据
L_data = W_data; //xxxx0000格式
L_data &= 0x0f; //屏蔽高4位的数据
L_data <<= 4; //xxxx0000格式
LCD_CS = 1;
serial_write_byte(S_ID); //发送S_ID
serial_write_byte(H_data); //发送H_data
serial_write_byte(L_data); //发送L_data
LCD_CS = 0;
}
求大神讲解,急急急!!!
|
|