2022 06月17日
作者: 显示行家
  • 浏览: 38
  • 收藏:0
  • 点赞:1
液晶显示(四)-----汉字字符显示控制IC-ST7920应用

        ST7920是台湾矽创(SITRONIX)公司早期推出的适用汉字字符显示的LCD控制器,可以实现常规汉字、数字、英文显示,与MCU接口非常简单易用。现在有AIP31020(无锡中微)系列替代产品面市。

一、主要特点

1.1 工作电压范围宽,2.7V-5.5V;

1.2 支持8BIT,4BIT,串口通讯;

1.3 内置64x16位显示缓存(DDRAM);

1.4 内置64x256位图形显示缓存(GDRAM);

1.5 内置16Kbit 半宽字符存储器(HCGROM),支持126个8BIT宽度字符显示(16x8 dots);

1.6 自带32com/64segment驱动,支持4x2行全点阵汉字显示(16x16 dots);

1.7 上电自动复位/外部复位;

1.8 与ST7921搭配可扩展字符显示到16x2(或8x4,256x32点阵)行全点阵汉字显示;

1.9 内置RC振荡器,可通过外部电阻调节;

1.10 功耗低:正常工作450uA(VDD=5V),省电模式30uA(VDD=5V);

1.11 内置VLCD升压,可达到7.0V;

1.12 COB封装

二、选型参考

    ST7920支持简体汉字、繁体汉字、简繁日文、简繁日韩文显示,应根据不同要求,选用不同字库IC,型号对照如下ST7920选型.png

三、VLCD设置

    ST7920只能支持33com(含光标行)驱动,根据前面介绍的LCD特性,当驱动路数越高,VLCD电压尽量提高,以到达好的显示效果。在用ST7920设计LCD时,通常选用33duty,1/5或1/6Bias,Vlcd 6.5V;因为Vlcd超过了VCC电压,需要外部输入或者用内部升压方式才能满足Vlcd要求。

外部输入.png

外部输入VLCD电路,R10可以调节,当VLCD大于VCC时,需从外部输入VLCD;内部升压.png

内部升压VLCD,适用于VDD=3.3V的场合,注意无论外部输入还是内部升压,VLCD不能超过7.0V。

四、指令简介

    ST7920分为基本指令集和扩展指令集,通常我们用基本指令即可,需要特殊显示效果可用扩展指令。基本指令.png

扩展指令.png

五、应用原理图(仅参考)

原理图.png

    图中是16032的原理图,实际ST7920最大可以扩展到256x32路输出。(ST7920+2个ST7921)

六、参考例程(通过51编译,读者需根据实际情况修改)

//G16032测试程序
//日期:2005-2-18
#include
#include
#include "16032.h"
#include "16032_1.h"
//#include "16032_2.h"
#include "log.h"
#define uchar unsigned char 
#define uint unsigned int

//12864液晶操作口
sbit rs = P2^7;          
sbit rw = P2^6;
sbit en = P2^5;
#define Pdata P1	// 并行数据口DB0-DB7接入到口

//=================延时=========================================
void delay(uint t) 		
{   
	uint i,j;
    for(i=0;i2) 
   {
    x= 0x88;
    y=(( yy-3 )<<4)+0x80;
   }
   else
   {
    x=0x80; 
    y=((yy-1)<<4)+0x80;
   }
   writecommand(0x36);         
   for (i=0;i<16;i++)          
   { 
    writecommand(y++);writecommand(x); 
    for (j=0;j<16;j++)   //一行宽度是16的点
     writedata(0xff);
   }
   writecommand(0x30);            
}*/
//===========字符显示============================================
void display(uchar y, uchar x, uchar *p) 
{
 
switch (y)
{ 
   case 1:writecommand(0x7f+x); break; //液晶第一行
   case 2:writecommand(0x8f+x); break; //0x90+(x-1)
   default:break;
}
while(*p)    
writedata(*p++); 
}
//===========图片显示============================================
void dis_BMP(uchar *P)
{
unsigned char i,j,com;
	writecommand(0x01); delay(10);	 //清屏
	writecommand(0x32); delay(10);	 //功能设置---8BIT控制界面,绘图显示ON
	writecommand(0x36); delay(10);	 //功能设置---8BIT控制界面,扩充指令集
 	//以上是显示图命令设置
	com=0x80;
	for(i=0;i<32;i++)	 //	 ,32行,(双屏结构中上半屏)
	{
		writecommand(com);  //垂直坐标
		com=com+1;
		writecommand(0x80); //水平坐标
	   	for(j=0;j<20;j++)
	    {
		 	writedata(P[j+i*20]);  //图形数据入口地址
		 }
	}  
}

//===========图片显示============================================
void dis(uchar A,B)
{
unsigned char i,j,com;
	writecommand(0x01); delay(10);	 //清屏
	writecommand(0x32); delay(10);	 //功能设置---8BIT控制界面,绘图显示ON
	writecommand(0x36); delay(10);	 //功能设置---8BIT控制界面,扩充指令集
 	//以上是显示图命令设置
	com=0x80;
	for(i=0;i<32;i++)	 //	 ,32行,(双屏结构中上半屏)
	{
		writecommand(com);  //垂直坐标
		com=com+1;
		writecommand(0x80); //水平坐标
	   	for(j=0;j<20;j++)
	    {
		 	if(i%2==0)writedata(A);  //
			else      writedata(B);  //
			
		 }
	}  
}

//==============================================================
/*                           主函数                           */
//==============================================================
void main(void)            
{ 

lcdset();
delay(10);
lcdset(); //调用两次可以解决上电后液晶不能自动复位问题 
while(1)
	{

	dis_BMP(gImage_log);
	delay(65500);delay(655);

	writecommand(0x30); //基本指令集
	writecommand(0x01); //清屏,DDRAM的地址归零

	display(1,4,"欢迎光临"); 
	display(2,1,"  简单 高效 创新 ");
	delay(50000);

      dis_BMP(gImage_16032);
	delay(65500);delay(50000);


	dis_BMP(gImage_16032_1);
	delay(50000);
	
	dis(0X55,0XAA);                    //以下是行列测试
	delay(50000);
	dis(0Xaa,0X55);
	delay(50000);
	dis(0X55,0X55);
	delay(50000);
	dis(0Xaa,0XAA);
	delay(50000);
	dis(0X00,0Xff);
	delay(50000);
	dis(0Xff,0X00);
	delay(50000);
	}
}

完成编译后,就能看到如图显示(图片内容与例程不同)

效果图.png


  

发表评论

评论列表


没有评论

筛选

文章分类

热门文章

投稿及奖励(必看)

2022-03-18  浏览:50404次

企业网址

2022-03-22  浏览:50364次

2021年秋招经历

2022-03-15  浏览:288次

浅谈学习单片机的前景

2022-03-15  浏览:251次

怎样才能学好单片机

2022-03-28  浏览:246次