12864LCD液晶显示原理及使用方法Word文档格式.docx

上传人:b****3 文档编号:15202308 上传时间:2022-10-28 格式:DOCX 页数:12 大小:218.99KB
下载 相关 举报
12864LCD液晶显示原理及使用方法Word文档格式.docx_第1页
第1页 / 共12页
12864LCD液晶显示原理及使用方法Word文档格式.docx_第2页
第2页 / 共12页
12864LCD液晶显示原理及使用方法Word文档格式.docx_第3页
第3页 / 共12页
12864LCD液晶显示原理及使用方法Word文档格式.docx_第4页
第4页 / 共12页
12864LCD液晶显示原理及使用方法Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

12864LCD液晶显示原理及使用方法Word文档格式.docx

《12864LCD液晶显示原理及使用方法Word文档格式.docx》由会员分享,可在线阅读,更多相关《12864LCD液晶显示原理及使用方法Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

12864LCD液晶显示原理及使用方法Word文档格式.docx

1GND0电源地

2VCC+5.0V电源电压

3VLCD-液晶显示器驱动电压

4RS(D/I)H/LD/I=“H”,表示DB7∽DB0为显示数据

D/I=“L”,表示DB7∽DB0为显示指令数据

5R/WH/LR/W=“H”,E=“H”数据被读到DB7∽DB0

R/W=“L”,E=“H→L”数据被写到IR或DR

6ENH/LR/W=“L”,E信号下降沿锁存DB7∽DB0

R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0

7DB0H/L数据线

8DB1H/L数据线

9DB2H/L数据线

10DB3H/L数据线

11DB4H/L数据线

12DB5H/L数据线

13DB6H/L数据线

14DB7H/L数据线

15CS1H/LH:

选择芯片(右半屏)信号

16CS2H/LH:

选择芯片(左半屏)信号

17RETH/L复位信号,低电平复位

18VEE-10VLCD驱动负电压

19LED+-LED背光板电源

20LED--LED背光板电源

12864LCD点阵图形液晶模块应用连接电路

液晶驱动设置

在理解12864LCD硬件原理和管脚功能之后,可以针对LCD进行驱动的编写,分两种情况:

仿真环境下和实物开发板编程。

仿真驱动定义如下:

#defineuint8unsignedchar

#defineuint32unsignedint

#defineLCD_databusP0//LCD8位数据口

sbitDI=P2^2;

//DI为0写指令或读状态;

1数据

sbitRW=P2^1;

//RW为1写;

0读

sbitEN=P2^0;

//使能端

sbitCS1=P2^4;

//片选1低电平有效,控制左半屏

sbitCS2=P2^3;

//片选1低电平有效,控制右半屏

实物开发板驱动接线和定义如下

#defineLCD_PORT_NUM0//LCD端口P0

#defineDATA_PORT_NUM1//数据端口P1

#defineCS1_PIN23//片选1低电平有效,控制左半屏

#defineCS2_PIN24//片选1低电平有效,控制右半屏

#defineRST_PIN21//复位信号低电平有效

#defineRW_PIN20//RW为1写;

#defineDI_PIN19//DI为0写指令或读状态;

#defineEN_PIN22//使能端

ucharDIN[8]={24,23,20,21,28,29,19,22};

//8位数据线的接线方式P2.24,P2.23,…P2.22对于D0,D1,…D7,低位到高位

涉及到的一些控制指令:

0x3E关显示,0x3F开显示;

总共有八页,一页占八行点阵点,页的首地址为0xB8;

行的起始地址为0xC0,有规律的改变起始行号可以实现滚屏的效果;

列的起始地址为0x40一直到0x7F共64列;

读状态指令时,数据位最高位D7为1内部忙,为0空闲;

对应接线为P2.22;

通过GPIO_ReadValue获取P2端口的32位数据P2.0到P2.31,然后进行相应的与或操作进行判断。

仿真环境下的驱动程序编写:

voiddelay(uint8i)//延时函数

{

while(--i);

}

voidRead_busy()//读忙函数——数据位的最高位D7为1则忙

P0=0X00;

DI=0;

RW=1;

EN=1

while(P0&

0x80)

;

EN=0;

voidwrite_LCD_command(uint8value)//写命令函数

Read_busy();

//每次读写都要忙判断

//选择命令

RW=0;

//读操作

LCD_databus=value;

EN=1;

//EN由1—0锁存有效数据

_nop_();

voidwrite_LCD_data(uint8value)//写数据函数

DI=1;

//选择数据

voidSet_page(uint8page)//设置显示起始页

page=0xB8|page;

//页的首地址为0xB8

wite_LCD_command(page);

voidSet_line(uint8startline)//设置显示的起始行

startline=0xC0|startline;

write_LCD_command(startline);

voidSet_column(uint8column)//设置显示的列

column=column&

0x3F;

//列的最大值为64

column=column|0x40;

//列的首地址为0x40

write_LCD_command(column);

voidSetOnOff(uint8onoff)//显示开关函数;

0x3E是关显示,0x3F是开显示

onoff=0x3E|onoff;

write_LCD_command(onoff);

voidSelectScreen(uint8screen)//选择屏幕

switch(screen)

case0:

CS1=0;

CS2=0;

break;

//全屏

case1:

CS2=1;

//左半屏

case2:

CS1=1;

//右半屏

default:

voidClearScreen(uint8screen)//清屏

uint8i,j;

SelectScreen(screen);

for(i=0;

i<

8;

i++)

Set_page(i);

Set_column(0);

for(j=0;

j<

64;

j++)

write_LCD_data(0x00);

//写入0,地址指针自动加1

 

voidInitLCD()//LCD初始化

SelectScreen(0);

SetOnOff(0);

//关显示

SetOnOff

(1);

//开显示

ClearScreen(0);

Set_line(0);

连接开发板实物的底层应用程序:

voidLCD_Check_Busy(void)

unsignedintvalue=0,rvalue=0;

GPIO_SetDir(DATA_PORT_NUM,0x31F80000L,0);

GPIO_ClearValue(LCD_PORT_NUM,(1<

<

DI_PIN));

GPIO_SetValue(LCD_PORT_NUM,(1<

RW_PIN));

EN_PIN));

while

(1)

{

value=GPIO_ReadValue(DATA_PORT_NUM);

//获取值为32位P2.0到P2.31

/*数据位最高位D7为1内部忙,为0空闲;

对应接线为P2.22*/

rvalue=value&

0x400000;

if(0x0==rvalue)

{

break;

}

GPIO_SetDir(DATA_PORT_NUM,0x31F80000L,1);

data_setpin(0);

}

其他的函数按照上面的进行设置,其中函数GPIO_SetValue将对应的位置1,;

函数GPIO_ClearValue将对应的位置0;

函数GPIO_ReadValue获取对应端口的数据,函数GPIO_SetDir设置相应端口的相应位的方向——输入输出。

字库原理及其制作

在前面我们分析了如何点亮一个或者多个点阵,通过有意识的点亮一些点阵可以在液晶屏上看到数字、字母和汉字的显示。

那么一个字母或者汉字对应着那些位置的点阵呢,是否可以通过计算得到其字模数据?

现在可以在网上下载到各种字模软件,对单个的字符取模,也可以对ASCII码、汉字库取模生成字库bin文件。

在取模之前要对其进行相应的设置,以便能够正确的显示(当取模方式和液晶屏的设置不一样时会显示出乱码)。

需要注意的是横纵向取模的区别,字节正序和字节倒序的差别。

下面介绍字模的数据的获取,字节正序和倒序、横纵向取模的差别。

字模是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'

A'

在字模的记载方式如图1所示:

16的ASCII码点阵,左边的为横行取模,字节正序(即高位在前),右边的为纵向取模,字节倒序(即高位在下)。

图1“A”字模图

而中文的“你”在字模中的记载却如图2所示:

下面的取模方式只介绍了横向取模、字节正序。

如果要对其进行纵向取模、字节倒序,方法类似于“A”字模。

图2“你”字模图

当通过字模软件生成字库bin文件之后如何对其进行应用?

可以通过以下方法:

1.把字库放入SD卡中。

需要带SD卡,需要使用文件系统,软硬件成本较高。

2.把字库放入代码中一起编译,后下载到单片机中。

对单片机的FLASH要求比较大,而且代码编写调式速度比较慢。

3.购买字库IC。

不够灵活。

4.把字库放入FLASHIC中。

这种方法比较灵活

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1