/***********************************************************
函数名称: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;
}
求大神讲解,急急急!!!
此帖出自
小平头技术问答
首先送入启动字节?送入5个连续的“1”用来启动一个周期?此时传输计
数被重置?并且串行传输被同步。紧接的两个位指定传输方向?RW?确定读还
是写?和传输性质?RS?确定是命令寄存器还是数据寄存器??最后的第八位是
一个“0”。
送完启动字节之后?可以送入指令或是显示数据?或是字型代码?。指令或
者代码是以字节为单位的?每个字节的内容?指令或数据?在被送入时分为两个
字节来处理?高四位放在第一个字节的高四位?低四位放在第二个字节的高四位。
无关位都补“0”
一周热门 更多>