armfly 发表于 2013-5-12 10:09:07

流行的12864液晶模块的种类 ST7920,ks0108, t6963c 等

http://zhidao.baidu.com/question/249583824.html











12864液晶种类繁多,光常用的控制器就有4种,每一种都有自己的特点。当然指令也各不相同。学习者不搞明白液晶类型,肯定是无从下手。
1. 12864液晶的型号
   通常的型号是XX12864A,XX12864B,XX12864C,XX12864-1,XX12864-2,XX12864-3之类。前面的XX是厂家的标志,中间的12864指的是12864点阵,后面的A,B,C,-1,-2,-3是液晶的编号。一个厂家生产的12864液晶有许多种,于是ABCDE或者12345的一路往下排。比如有的网友给一个型号12864B,这不是一个规范的型号,不能给使用者提供任何信息,这种不规范型号的液晶通常不是正规厂家生产的。找到规范的型号,用户可以自己搜索到正规厂家的网站,然后下载资料。

2. 12864液晶的控制器
上文提到的4种这里介绍一下。
(1)ST7920类 这种控制器带中文字库,为用户免除了编制字库的麻烦,该控制器的液晶还支持画图方式。该类液晶支持68时序8位和4位并口以及串口。
(2)KS0108类 这种控制器指令简单,不带字库。支持68时序8位并口。
(3)T6963C类这种控制器功能强大,带西文字库。有文本和图形两种显示方式。有文本和图形两个图层,并且支持两个图层的叠加显示。支持80时序8位并口。
(4)COG类常见的控制器有S6B0724和ST7565,这两个控制器指令兼容。支持68时序8位并口,80时序8位并口和串口。COG类液晶的特点是结构轻便,成本低。各种控制器的接口定义:

接口定义

ST7920
GND
VCC
V0
RS
R/W
E
DB0-DB7
PSB
RES
VOUT
BLA
BLK

KS0108
GND
VCC
V0
RS
R/W
E
DB0-DB7
CS1
CS2
RES
VOUT
BLA
BLK

T6963C
FG
GND
VCC
V0
WR
RD
DB0-DB7
RS
CS
RES
FS
BLA
BLK

S6B0724
GND
VCC
RS
WR
RD
CS
DB0-DB7
RES
BLA
BLK

其中PSB是ST7920类液晶的标志性引脚;CS1和CS2是KS0108类引脚的标志性引脚;FS是T6963C类液晶的标志性引脚。
如果你拿到的液晶接口有丝印指示,就可以按照上表来判断液晶的类型。


12864液晶显示动态波形,最近不少网友对这个课题感兴趣。

这里说两点: 一是12864点阵分辨率太低,显示波形效果不好,特别是高频波形。二是建议选择KS0108控制器的,虽然ST7920控制器的也有画图方式,但是用它显示动态波形会浪费你很多时间,大概是16倍的数据处理时间。为什么?大家可以研究一下两种控制器的显示RAM与DB0-DB7输入的数据对应的关系就明白了。   附件中是我新拍的实物照片。即使没有资料,大家对比一下手中的液晶,至少可以看出是属于哪种控制器的。   三个芯片大小差不多的是KS0108的,一个大两个小的是ST7920的,这两种芯片都封装为黑色钮扣状,T6963的是贴片封装的,大家主要看T6963(当然有的厂家用的是替代型号)以及和它配套使用的存储器62256,之余其它芯片,形状会有多种,不要太关注.

armfly 发表于 2013-5-12 10:38:48

http://hi.baidu.com/chumingyu/item/b6c3a62a54b57b86af48f5ae

QC12864B 串行方式接口keil c51好用程序


   串行一共四个引脚 :RS(CS) 串行的片选信号 ; R/W(SID) 串行的数据口; E(CLK)串行的同步时钟; PSB并/串行接口选择:H-并行,L-串行。

   其中的PSB引脚为串并选择, QC12864B这个型号的显示屏厂家把它的PSB直接用一个零欧电阻接到VDD上了。这样的话咱再去把它接地当然是短路啦。这个零欧电阻是QC12864B后面的R9把它焊掉就OK啦。

    串行程序是几年前编的,好用。如下

#include“reg52.h”

sbit lcd_cs=P0^0;      //12864 RS(CS)   并行的指令/数据选择信号;串行的片选信号

sbit lcd_sid=P0^1;       //12864 R/W(SID) 并行的读写选择信号;串行的数据口

sbit lcd_sclk=P0^2;      //12864 E(CLK)   并行的使能信号;串行的同步时钟

sbit PSB=P0^3;         //12864 PSB      并/串行接口选择:H-并行;L-串行



void lcd_w_cmd(unsigned char cmd)       //功能设定
{                                    
unsigned char i,j;
lcd_cs=1;
for (i=0;i<5;i++ )
{
lcd_sclk=0;
lcd_sid=1;
lcd_sclk=1;
_nop_();_nop_();
}
for(j=0;j<3;j++)
{
lcd_sclk=0;
lcd_sid=0;
lcd_sclk=1;
_nop_();_nop_();
}
trans_bit(cmd);
delay_ms(1);
lcd_cs=0;
}
void lcd_w_data(unsigned char dat)   
{                                    
unsigned char i,j;
lcd_cs=1;
for(i=0;i<5;i++)
{
lcd_sclk=0;
lcd_sid=1;
lcd_sclk=1;
_nop_();_nop_();
}
for(j=0;j<3;j++)
{
if(j==1)
{
   lcd_sclk=0;
   lcd_sid=1 ;
   lcd_sclk=1;
   _nop_();_nop_();
}
else
{
   lcd_sclk=0;
   lcd_sid=0;
   lcd_sclk=1;
   _nop_();_nop_();
}
}
trans_bit(dat);
delay_ms(1);
lcd_cs=0;
}
void lcd_display(char *disp,unsigned char ddram ) //Display on
{
int i;
ddram=ddram|0x80;
lcd_w_cmd(ddram);
for(i=0;disp!='\\0';i++)
{
lcd_w_data(disp);
delay_ms(1);
}
}

void lcd_initial()
{
delay_ms(50);
lcd_w_cmd(0x30);//00110000);                  //30
delay_ms(1);
lcd_w_cmd(0x30);//00110000);//功能设定      //30
delay_ms(1);
lcd_w_cmd(0x0c);//00001110);//Display on    //0c
delay_ms(1);
lcd_w_cmd(0x01);//00000001);//清楚显示      //01
delay_ms(20);
lcd_w_cmd(0x06);//00000110);//光标右移      //06
}

lansing1648 发表于 2014-4-4 09:48:14

大家知道12864显示8行英文的是什么型号吗?
字体估计是5*8的.
大家有这方面的例程么?求指导.

eric2013 发表于 2014-4-4 09:53:18

回 lansing1648 的帖子

lansing1648:大家知道12864显示8行英文的是什么型号吗?
字体估计是5*8的.
大家有这方面的例程么?求指导. (2014-04-04 09:48) images/back.gif

好久没有用了,表示帮不上啊
页: [1]
查看完整版本: 流行的12864液晶模块的种类 ST7920,ks0108, t6963c 等