登录 |  注册

当前位置: 主页 >> 毕设技巧 >> 专业知识 >>

LCD12864点阵型液晶介绍

时间:2017-04-03 来源: 作者:5UBS-3 点击:

LCD12864点阵型液晶简介:

      12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵)汉字。

LCD12864介绍
 

LCD12864 引脚介绍:

管脚号
管脚名称
LEVER
管脚功能描述
1
VSS
0
电源地
2
VDD
+5.0V
电源电压
3
V0
-
液晶显示器驱动电压
4
D/I(RS)
H/L
D/I=“H”,表示DB7∽DB0为显示数据
D/I=“L”,表示DB7∽DB0为显示指令数据
5
R/W
H/L
R/W=“H”,E=“H”数据被读到DB7∽DB0
R/W=“L”,E=“H→L”数据被写到IR或DR
6
E
H/L
R/W=“L”,E信号下降沿锁存DB7∽DB0
R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0
7
DB0
H/L
数据线
8
DB1
H/L
数据线
9
DB2
H/L
数据线
10
DB3
H/L
数据线
11
DB4
H/L
数据线
12
DB5
H/L
数据线
13
DB6
H/L
数据线
14
DB7
H/L
数据线
15
CS1
H/L
H:选择芯片(右半屏)信号
16
CS2
H/L
H:选择芯片(左半屏)信号
17
RET
H/L
复位信号,低电平复位
18
VOUT
-10V
LCD驱动负电压
19
LED+
-
LED背光板电源
20
LED-
-
LED背光板电源

 

LCD12864液晶屏幕原理图:

12864液晶屏幕原理图

LCD12864液晶屏幕驱动程序:

//12864液晶操作口
sbit rs = P1^0;
sbit rw = P1^1;
sbit en = P1^2;
/*******12864驱动程序************/
//===========液晶写指令==========
void writecommand(uchar command)
 {
checkbusy();
rs=0;
rw=0;
en=1;
P0=command;  //液晶数据线P0
en=0;
 }
//============液晶写数据=========================================
void writedata(uchar date)
 {
checkbusy();
rs=1;
rw=0; 
en=1;
P0=date; 
en=0;
 }
//==============液晶设置=========================================
 void lcdset(void)
 {
writecommand(0x30); //基本指令集
writecommand(0x01); //清屏,DDRAM的地址归零
writecommand(0x02); //地址归位
writecommand(0x0c); //显示开,光标关,反白关 
writecommand(0x06); //DDRAM地址加1
 }
//===========设置光标=============================================
void cursor(uchar y,uchar x)
{
uchar command = 0x80;
writecommand(0x0f); //开光标 闪烁
  if( y == 2)
      y = 3;
  else if(y == 3)
      y = 2;
  command |= (y-1) << 3;
  command += (x-1);
  writecommand(command);  
}

//===========字符显示============================================
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)
   case 3:writecommand(0x87+x);break;
   case 4:writecommand(0x97+x);break;
   default:break;
}
while(*p)
writedata(*p++); 
}
//=========显示数字===============================================
void displayNumber(uchar y,uchar x,uchar number)
{
switch (number)
{ //引号内数字为中文全角输入 占据一个汉字位置
case 0:display(y,x,"0");break;
case 1:display(y,x,"1");break;
case 2:display(y,x,"2");break;
case 3:display(y,x,"3");break;
case 4:display(y,x,"4");break;
case 5:display(y,x,"5");break;
case 6:display(y,x,"6");break;
case 7:display(y,x,"7");break;
case 8:display(y,x,"8");break;
case 9:display(y,x,"9");break;
default:break;
}}
 void displaytime0(void)   //静态数据
 {
display(1, 2, "智能作息系统");
display(2, 3, "年");
display(2, 6, "月"); 
display(3, 1, "星期"); 
display(3, 8, "℃"); 
display(4, 3, "-");  //全角输入
display(4, 6, "-");
 }
/*******12864主程序调用************/
 
 lcdset();
delay(1000);
lcdset(); //调用两次可以解决上电后液晶不能自动复位问题
/*显示版本信息*/
display(1,3,"welcome!");
display(2,2,"智能作息系统");
display(3,3,"版本1.0");
display(4,1,"制作人: 马云");
writecommand(0x01); //清屏

LCD12864液晶屏幕显示效果:

12864液晶屏幕程序显示图
【转载请注明出处:https://www.5ubs.com/skill/zhuanyezhishi/457.html
    顶一下
    (1)
    100%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    评论内容 查看评论>>
    发表评论
    遵守互联网法律法规,严禁发布违法的言论。
    评价:
    用户名: 验证码: 点击我更换图片
    栏目列表
    毕设方法