LCM12864液晶显示模块与单片机接口

阅读: 评论:0

LCM12864液晶显示模块与单片机接口
一、LCM12864液晶显示模块简介
LCM12864液晶显示模块是由128列64行液晶显示点阵和其控制电路组成,整个电路板外形、尺寸如图8-1所示。该显示模块不仅可以显示数字,还可以显示汉字和图形。模块电路板下端有20个接线引脚,其中VDD与VSS引脚是LCM12864液晶模块电源与地接入端,VOUT是LCM12864液晶模块自生成负电压输出端。VO 需要一个外部的0V~-10V 负压输入,可接入电位器调整液晶灰度。在背光电路中需要串接5 欧姆电阻,直接将背光接入电源可能会造成损坏。其余引脚由单片机控制。
8-1 LCM12864液晶显示模块外型图
LCM12864液晶显示模块的引脚定义如表8-1所示。
8-1 LCM12864引脚说明
挂墙柜
标号
名称
参数
说明
1
VSS
GND 0V
模块电源地
2
VDD
+5V
模块电源 +5V DC
3
VO
0V ~-10V
外部液晶偏置电压输入端
4
D/I
H/L
H:数据;L:指令
5
R/W
H/L
H:MPU LCM读数据;L:MPU  LCM写数据
6
E
H/L
LCM使能
7
DB0
H/L
数据线 0(H表示高电平,L表示低电平
8
DB1
H/L
数据线 1
9
DB2
H/L
数据线 2
10
DB3
H/L
数据线 3
11
DB4
H/L
数据线 4
12
DB5
H/L
数据线 5
13
DB6
H/L
数据线 6
14
DB7
H/L
数据线 7
15
CS1
H/L
左半屏使能(低电平有效)
16
CS2
H/L
右半屏使能(低电平有效)
17
/RST
H/L
LCM复位(低电平有效)
18
VOUT
GND 0V
模块电源地
19
SLA
+5V
LED背光电源+5V DC
真空脱蜡炉
20
SLK精炼渣
GND 0V
LED背光电源 地
二、LCM12864驱动电路
MSP430F169单片机与LCM12864接口电路如图8-3所示。
电动美容仪8-3单片机与LCM12864接口电路
三、单片机与LCM12864接口时序
完成硬件连接后,显示内容由程序控制。编程时可认为LCM12864模块是一个可双向数据传输的外设,当输出、输入数据(含模块命令)时,必须按时序控制其命令线和数据线。LCM12864模块接收到数据(含模块命令)后,根据命令线状态和数据内容进行译码,完成相应操作。
写数据时序图如图8-4所示。当读/写线为低电平时,单片机通过数据线向LCM12864液晶显示模块中写入数据。当使能端由低电平变高电平时,数据写入。当CS1输入低电平时,为左半屏使能,在左半屏显示数据。当CS2输入低电平时,为右半屏使能,在右半屏显示数据。当D/I输入为高电平时,为输入数据,当输入为低电平时,为输入指令。读数据时序图如图8-5所示。当R/W输入为高电平、使能端由低电平变高电平时,单片机读数据。
8-4写数据时序图
8-5读数据时序图
5.单片机与LCM12864接口程序设计
具体显示驱动程序如下:
/**************************************************************************
* 文件名称:main.c
* 文件说明:显示"Hello"
**************************************************************************/
#include <msp430x41x.h>
#define TOP    0        // 竖直方向零点
#define BOTTOM 64        // 竖直方向坐标最大值
#define LEFT  0        // 水平方向坐标最小值
#define RIGHT  128      // 水平方向坐标最大值
#define EN_WIDTH 40      // Hello 字符串的长度
#define CH_WIDTH 96      // 中文字符串的长度
#define OP_CHINESE    1  // 选择显示中文字符
#define OP_ENGLISH    2  // 选择显示英文字符
unsigned char showData[]={//16*8点阵的“Hello”       
          0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,
          0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,//H (0)
          0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,
          0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,//e (1)
          0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,
背胶橡皮布
          0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,//l (2)
          0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,
          0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,//l (3)
          0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,
          0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,//o (4)     
};
unsigned char px,                              // 显示字符串的X位置
              py,                              // 显示字符串的Y位置
              width;                            // 字符串的宽度
//write_Command(),用于写命令到LCD,CS(片选)在此函数外设置
void write_Command(char cmd)
{
    P3OUT &= 0xfb;            //禁止 EN
    P5DIR =  0xff;
脚踏式垃圾桶    P3OUT &= 0xfc;            //rs=0 ,r/w=0
    P5OUT  = cmd;
    P3OUT |= 0x04;            //使能
    P3OUT &= 0xfb;            //禁止   
}
// 设置显示的位置,含片选
void move_To(char x,char y)
{
    unsigned char tmp;
    tmp=(y&0x7f);
    if(tmp<64)                      //如果位置在Chip1
    {     
        P3OUT &= 0xbf;                //cs2=0
        P3OUT |= 0x08;                //cs1=1
        write_Command(0xb8 + x);      //设置 x
        write_Command(0x40 + tmp);    //设置 y
    }else if(tmp>63)                //在 chip2
    {
        P3OUT &= 0xF7;                //cs1=0   
        P3OUT |= 0x40;                //cs2=1
        write_Command(0xb8 + x);      //设置 x
        write_Command(0x40 + tmp-64); //设置 y
    }
}
// write data
void write_Data(char content)
{
    P5DIR =  0x00;            // 置位输入模式
    P3OUT |= 0x02;            // r/w=1 读状态
    P3OUT |= 0x04;            // chip 使能
    while((P5IN & 0x80)==0x80);//检测LCD是否忙
    P3OUT &= 0xfb;            //disable EN
    P5DIR =  0xff;
    P3OUT &= 0xfc;            //rs=0 ,r/w=0
    P3OUT |= 0x01;            //rs=1
    P5OUT  = content;
    P3OUT |= 0x04;            //p2.2=1 使能
    P3OUT &= 0xfb;            //p2.2=0 禁止
}
// 在指定的位置显示字符串"Hello" ,x是行坐标,y是列坐标,0=<x<=RIGHT - 字符串长度
//  0=<y<=BOTTOM-字符串高度
void drawStr(unsigned char x,unsigned char y)  //显示程序
{
    unsigned char tmpv;
      for(tmpv=y;tmpv<y+width;tmpv++)
      {

本文发布于:2023-05-26 08:28:10,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/114576.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:显示   输入   模块   数据   字符串   低电平
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图