LCD12864液晶使用-ST7920
来源:互联网 发布:mac版谷歌dhc插件下载 编辑:程序博客网 时间:2024/04/30 06:08
LCD12864液晶型号为ST7920,位带字库液晶,同时也有图形县显示区,具体操作请看手册,这里只是简单说下使用,本教程是串行使用方式,本教程实现了液晶的画图,显示字和自定义字功能。
第一幅图为画图效果,画了一幅图;
第二幅图为用自身字符库,写了一首诗;
第三幅图为用CGRAM,4个16*16用户自定义字拼出一个32*32的字;
一、DDRAM
使用内部字库,写入DDRAM,字体大小只能为16*16,对应整个屏幕
地址:
X
----------------------------------->
|
| 80H,81H,82H,83H,84H,85H,86H,87H,
|
Y| 90H,91H,92H,93H,94H,95H,96H,97H,
|
| 88H,89H,8AH,8BH,8CH,8DH,8EH,8FH,
|
| 98H,99H,9AH,9BH,9CH,9DH,9EH,9FH,
v
32个地址,分别对应屏幕上32个16*16的点阵
使用方法:
1、设定DDRAM地址;
2、写入数据;
二、GDRAM
不使用内部字库,用户可以自定义字体或者画图,对应整个屏幕
地址:
X
----------------------------------->
|上半屏:
| 80H,81H,82H,83H,84H,85H,86H,87H,
|0
Y||
|31
|下半屏:
| 88H,89H,8AH,8BH,8CH,8DH,8EH,8FH,
|0
||
|31
v
X地址会自动加一,Y地址不会自动自加;
一个X地址对应水平两个字节,高字节在前,低字节在后;
对应方式: X=80H
-------------------------------->
. . . . . . . . . . . . . . . .
B7B6B5B4B3B2B1B0 B7B6B5B4B3B2B1B0
高字节 低字节
使用方法:
1、关闭绘图显示;
2、用扩充指令集设置GDRAM地址,先发Y,再发X;
3、用普通命令发数据;
4、打开绘图显示;
三、CGRAM
4个16*16的缓存区,可以定义字库没有的字或者字符,也可以拼成一个32*32的字符或者图像
,地址为 0000H 0002H 0004H 0006H
使用方法:
1、设置CGRAM地址;
2、写入16*2个数据;
3、设置DDRAM地址;
4、写入刚才的CGRAM地址;
四、经实践证明DDRAM和GDRAM显示是独立的显示缓存区,但是他们对应的显示区是一样的;
五、串行通信用法
串行数据1个字节数据传输共分三个字节完成:
第一个字节:串口控制--格式 11111ABC
A为数据传送方向控制:H数据从LCD到MCU;L数据从MCU到LCD;
B为数据类型选择: H表示是显示数据;L表示是控制命令;
C固定为0
要发送或者接收的字节XXXX XXXX分为两个字节:
第二个字节:数据的高四位放到第二个字节的高四位,其余位补0,格式:XXXX0000
第三个字节:数据的低四位放到第三个字节的高四位,其余位补0,格式:XXXX0000
六、在向液晶发送命令之前,必须检查液晶是否处于“忙”的状态;
七、向液晶的DDRAM写20H,是清除显示;
八、底层代码
//先发高位,再发低位
void ST7920_Serial_Write(unsigned char frame_header,unsigned char temp)
{
union Commonwealth_8 writeData;
unsigned char i=0;
ST7920_CS =1;
ST7920_SID_TRIS =OUTPUT_PIN;//双向口使用
//发送帧头
writeData.byte_8=frame_header;
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
//发送数据
writeData.byte_8=temp & 0xF0;
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.byte_8=((temp << 4) & 0xF0);
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID_TRIS =INPUT_PIN;//双向口使用
ST7920_CS =0;
}
unsigned char ST7920_Serial_ReadComm(void)
{
union Commonwealth_8 writeData;
unsigned char temp;
unsigned char i=0;
ST7920_CS =1;
ST7920_SID_TRIS =OUTPUT_PIN;//双向口使用
//发送帧头
writeData.byte_8=(LCD_Frame | LCDtoMCU | LCD_Command);//0xFC;
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID_TRIS =INPUT_PIN;//双向口使用
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit7 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit6 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit5 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit4 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit3 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit2 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit1 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit0 =ST7920_SID;
temp =writeData.byte_8 & 0xF0;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit7 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit6 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit5 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit4 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit3 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit2 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit1 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit0 =ST7920_SID;
temp |=((writeData.byte_8 >>4) & 0x0F);
ST7920_CS =0;
return temp;
}
BOOL LCD_Buay(void)
{
if(ST7920_Serial_ReadComm() & ST7920_BUSY)
{
return TRUE;
}
return FALSE;
}
第一幅图为画图效果,画了一幅图;
第二幅图为用自身字符库,写了一首诗;
第三幅图为用CGRAM,4个16*16用户自定义字拼出一个32*32的字;
一、DDRAM
使用内部字库,写入DDRAM,字体大小只能为16*16,对应整个屏幕
地址:
X
----------------------------------->
|
| 80H,81H,82H,83H,84H,85H,86H,87H,
|
Y| 90H,91H,92H,93H,94H,95H,96H,97H,
|
| 88H,89H,8AH,8BH,8CH,8DH,8EH,8FH,
|
| 98H,99H,9AH,9BH,9CH,9DH,9EH,9FH,
v
32个地址,分别对应屏幕上32个16*16的点阵
使用方法:
1、设定DDRAM地址;
2、写入数据;
二、GDRAM
不使用内部字库,用户可以自定义字体或者画图,对应整个屏幕
地址:
X
----------------------------------->
|上半屏:
| 80H,81H,82H,83H,84H,85H,86H,87H,
|0
Y||
|31
|下半屏:
| 88H,89H,8AH,8BH,8CH,8DH,8EH,8FH,
|0
||
|31
v
X地址会自动加一,Y地址不会自动自加;
一个X地址对应水平两个字节,高字节在前,低字节在后;
对应方式: X=80H
-------------------------------->
. . . . . . . . . . . . . . . .
B7B6B5B4B3B2B1B0 B7B6B5B4B3B2B1B0
高字节 低字节
使用方法:
1、关闭绘图显示;
2、用扩充指令集设置GDRAM地址,先发Y,再发X;
3、用普通命令发数据;
4、打开绘图显示;
三、CGRAM
4个16*16的缓存区,可以定义字库没有的字或者字符,也可以拼成一个32*32的字符或者图像
,地址为 0000H 0002H 0004H 0006H
使用方法:
1、设置CGRAM地址;
2、写入16*2个数据;
3、设置DDRAM地址;
4、写入刚才的CGRAM地址;
四、经实践证明DDRAM和GDRAM显示是独立的显示缓存区,但是他们对应的显示区是一样的;
五、串行通信用法
串行数据1个字节数据传输共分三个字节完成:
第一个字节:串口控制--格式 11111ABC
A为数据传送方向控制:H数据从LCD到MCU;L数据从MCU到LCD;
B为数据类型选择: H表示是显示数据;L表示是控制命令;
C固定为0
要发送或者接收的字节XXXX XXXX分为两个字节:
第二个字节:数据的高四位放到第二个字节的高四位,其余位补0,格式:XXXX0000
第三个字节:数据的低四位放到第三个字节的高四位,其余位补0,格式:XXXX0000
六、在向液晶发送命令之前,必须检查液晶是否处于“忙”的状态;
七、向液晶的DDRAM写20H,是清除显示;
八、底层代码
//先发高位,再发低位
void ST7920_Serial_Write(unsigned char frame_header,unsigned char temp)
{
union Commonwealth_8 writeData;
unsigned char i=0;
ST7920_CS =1;
ST7920_SID_TRIS =OUTPUT_PIN;//双向口使用
//发送帧头
writeData.byte_8=frame_header;
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
//发送数据
writeData.byte_8=temp & 0xF0;
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.byte_8=((temp << 4) & 0xF0);
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID_TRIS =INPUT_PIN;//双向口使用
ST7920_CS =0;
}
unsigned char ST7920_Serial_ReadComm(void)
{
union Commonwealth_8 writeData;
unsigned char temp;
unsigned char i=0;
ST7920_CS =1;
ST7920_SID_TRIS =OUTPUT_PIN;//双向口使用
//发送帧头
writeData.byte_8=(LCD_Frame | LCDtoMCU | LCD_Command);//0xFC;
ST7920_SID =writeData.Data_Uint8_bit.bit7;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit6;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit5;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit4;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit3;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit2;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit1;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID =writeData.Data_Uint8_bit.bit0;
i=4;
ST7920_CLK =1;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
ST7920_SID_TRIS =INPUT_PIN;//双向口使用
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit7 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit6 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit5 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit4 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit3 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit2 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit1 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit0 =ST7920_SID;
temp =writeData.byte_8 & 0xF0;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit7 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit6 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit5 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit4 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit3 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit2 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit1 =ST7920_SID;
ST7920_CLK =1;i=4;while(i--);//delay(1);
ST7920_CLK =0;i=4;while(i--);//delay(1);
writeData.Data_Uint8_bit.bit0 =ST7920_SID;
temp |=((writeData.byte_8 >>4) & 0x0F);
ST7920_CS =0;
return temp;
}
BOOL LCD_Buay(void)
{
if(ST7920_Serial_ReadComm() & ST7920_BUSY)
{
return TRUE;
}
return FALSE;
}
0 0
- LCD12864液晶使用-ST7920
- STM32 驱动液晶LCD12864
- ST7920液晶---DS1302时钟程序
- LCD12864 文本显示示例(控制芯片ST7920)
- 树莓派驱动LCD12864(st7920控制器)
- STM32驱动ST7920的12864液晶(串行方式)
- ST7920控制芯片的带字库12864液晶驱动程序
- LCD12864使用(链)
- 液晶使用
- LCD12864
- LCD12864
- ST7920 12864液晶图片取模,显示你想显示的图片。
- 12864-ST7920液晶绘图的介绍,注意地址对应屏幕位置
- 12864液晶使用例程
- 1602B液晶使用范例
- 1602B液晶使用范例
- lcd12864资料
- LCD12864.h
- 反射
- FaceBooK/infer-Mac下安装Java分析环境
- 【数据结构】跳跃列表 SkipList
- 时间格式化函数strftime
- Codeforces #186(div 2)D. Ilya and Roads
- LCD12864液晶使用-ST7920
- NIO系列6:流行 NIO Framework netty 和 mina 性能测评与分析
- Invert Binary Tree
- 二分+贪心
- OpenVPN下载、安装、配置及使用详解
- C#类的理解
- 用presentingViewController实现左右切换视图
- 数据库基线
- 针对cocos2d图片资源自定义加密的解密