摘要:液晶显示器分为段位式LCD、字符式LCD和点阵式LCD,具有机身薄,节省空间,省电,不产生高温,低辐射,益健康,画面柔和不伤眼等诸多优点,已经广泛的应用于各个领域。本文通过51单片机控制系统控制点阵式LCD12864显示来介绍LCD12864的工作原理及LCD12864的驱动程序设计编写方法。

关键词:51单片机 LCD12864 程序设计

0 引言

液晶显示器根据显示方式可分为:段位式、字符式和点阵式LCD,其中段位式与字符式只能显示数字与字符。而点阵式LCD不仅能显示数字与字符,还能显示各种图形、曲线及汉字等。本文研究的TG12864B是能显示曲线、图形及汉字的点阵式LCD。

1 TG12864介绍

TG12864是一款无字库的图形点阵显示器,其屏幕由64行×128列点阵组成,可以显示16点阵的4行×8列(32个)汉字、8点阵的8行×8列(64个)字母和128×64全屏幕点阵图形。

1.1 TG12864B内部功能器件介绍

在使用TG12864B前须了解其相关功能器件,如下所示:①指令寄存器(IR):用于寄存指令码。②数据寄存器(DR):用于寄存数据的。DR和显示数据存储器DDRAM(见表1)之间的数据传输是模块内部自动执行的。③显示数据RAM(DDRAM):DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。DDRAM与地址和显示位置的关系见DDRAM地址表。④XY地址计数器。XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。X地址计数器是没有记数功能的,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。

1.2 TG12864的控制指令

①开关显示:开显示,指令码为0X3F;关显示,指令码为0X3E。②设置Y地址:0x40~0x4f,其中0x40为第0列列地址,0x4f为第63列列地址。③设置X页地址:模块有64行,其中8行为一页,即有8页,A2~A0表示0~7页:如,当A2~A0为000时表示第0页,为111是表示第7页。页地址分别是0XB8~0XBF。④显示开始线:该指令中A5~A0为显示起始行的地址,它规定了显示屏起始行所对应的显示存储器的行地址。通过修改显示其实行寄存器的内容,可以实现显示屏向上或向下滚动。⑤读状态:BF:判断忙信号标志位。BF=1表示液晶屏正在处理MCU发过来的指令或者数据,此时接口电路被挂起,不能接受除读操作以外的任何操作,BF=0表示液晶屏接口控制电路处于空闲状态,可以接受外部数据和指令。

2 电路设计

图1 TG12864显示线路图

图1为AT89S51控制12864LCD线路图,图中DB0~DB7为TG12864的数据线,单片机通过该端口给TG12864写命令或读写数据;RS为寄存器与显示内存操作选择管脚,单片机通过P3.7脚与之连接,当RS脚为高电平时,对液晶显示器的数据寄存器进行读或写操作;当RS脚为低电平时,对命令寄存器进行操作;RW为读写控制脚,与单片机P3.6脚连接,当RW脚为高电平时,准备对液晶显示器执行读操作,低电平时执行写操作;E脚为使能端,与P3.5脚连接,下降沿有效;CS1为高电平是选择芯片(右半屏)信号,CS2为高电平时选择芯片(左半屏)信号;RST复位脚,低电平复位。

3 LCD12864的驱动程序设计

LCD12864驱动程序的编程要想让LCD12864显示出需要的内容,就得严格按照LCD12864的工作时序来进行编程。驱动LCD12864显示程序含有以下几个子程序:

sbit di=P3^7;//高电平写数据,低电平写命令

sbit rw=P3^6;//高电平读操作,低电平写操作

sbit e=P3^5;//读写使能端,下降沿有效

sbit cs1=P3^4;//定义P3.4为左半屏片选信号

sbit cs2=P3^3;//定义P3.3为右半屏片选信号

sbit rst=P3^2;//TG12864复位信号

sbit bf=P2^7;//检测LCD忙引脚

sbit res=P2^4;//检测是否处于复位状态,高电平处于复位,低电平正常。

define dataport P0 //定义P0口为LCD数据总线,用于传输指令命令和显示数据。

3.1 忙检测子程序

void check_busy(void)

{

dataport=0xff;

di=0;

rw=1;

delay(1);

e=1;

while(bf||res==1);

e=0;

}

3.2 写命令或数据子程序

void write( char dat_comm,char content)

{

Chk_busy;

di=dat_comm;//dat_comm为高电平写数据,低电平写命令

rw=0;

dataport=content;

e=1;

delay(1);

e=0;

}

3.3 初始化子程序

void init_lcd(void)

{

rst=0;

delay(50);

rst=1;

cs1=1;cs2=1;/左右半屏选中

write(comm,0x3e);//关显示

write(comm,0x3f);//开显示

}

4 总结

本文对TG12864B用通俗易懂的语言进行了简单的介绍,并对TG12864B的驱动程序进行了简单的设计,使读者能初步了解12864LCD的简单应用。要想熟练的掌握TG12864B,还需要不断的实践,不断的摸索,熟悉编程语言,不断提高TG12864B的编程技巧,使程序得到最大程度的优化。

参考文献:

[1]朱华光.浅议LCD1602的编程技巧[J].电脑知识与技术,

2010.6.

[2]林嘉.基于89S52的LCD1602程序设计[J].电脑知识与技术,2012.8.

[3]田开坤.基于LCD12864显示器的数字示波器设计[J].电子制作,2010.5.

相关信息:

摘要:从循环结构的特点出发分析连加连积类问题,总结出数列中数据的构造规律,给出该类问题的编程模板,列举实例进一步验证该类问题的编程方法。该教学设计在我校C语言教学中,效果非常明显。 关键词:C语言;程序...(查看全文)

摘要:在信息技术和国民经济发展的进程中,应用型计算机人才的培养变得尤为迫切。该文在介绍了成果导向教育理论的核心思想和特点的基础上,依据对地方性本科院校程序设计类课程教学现状的分析,提出了基于成果导向的...(查看全文)

摘要:全球IPv4地址已经分配殆尽,实现由IPv4向IPv6平滑过渡是制约下一代互联网发展的关键问题。4over6隧道技术目前已成为解决接入网IPv6过渡问题的一项主流技术方案。4over6支持IPv4通信节点间建立双向透明的IPv4...(查看全文)

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技...(查看全文)

我们组这次设计的程序是考勤管理系统,主要用于企事业单位的考勤,便于统计员工的出勤情况。  1.通过这一次的程序设计,使我能够进一步掌握用程序设计语言解决实际问题的方法,在操作当中把所学到的用于实际的...(查看全文)

lcd12864历程C语言程序,基于51单片机的LCD12864程序设计相关推荐

  1. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc

    基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...

  2. 湿度控制c语言程序,基于51单片机的湿度控制系统设计.doc

    基于51单片机的湿度控制系统设计 基于51单片机的湿度控制系统设计 摘要 关键词:单片机:湿度传感器:ADC0832数模转换 目 录 序 言1 第一章 系统的整体设计方案2 1.1设计内容2 1.2系 ...

  3. 51单片机的电子钟c语言程序,基于51单片机的电子钟C语言程序

    基于单片机C语言的电子钟程序代码与仿真 基于51单片机的电子钟C语言程序: 程序代码 #include #include #define uchar unsigned char #define uin ...

  4. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  5. 水塔水位测量c语言程序,基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)...

    基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)(任务书,开题报告,外文翻译,论文18000字) 摘  要 为了能实现水位监测与控制,以STC89C52作为核心控制芯片,进行了水位检测系统控 ...

  6. 51lcd显示光传感器c语言程序,基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例...

    基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例,系统由GY-30数字光照传感器.51单片机最小系统.1602液晶显示屏组成,电路简单,附件中的程序是实物验证过了的.1 ...

  7. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]

    /***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...

  8. 基于51单片机的光照强度检测c语言程序,基于51单片机光照强度检测报告.doc

    基于51单片机光照强度检测报告 课程设计报告 课程名称: 智能仪器课程设计 题 目: 基于51单片机的光照强度 摘要 光敏电阻测光强度系统,该系统可以自动检测光照强度的强弱并显示让人们知道此时光照强度 ...

  9. 收音机c语言程序,基于51单片机的数字FM调频收音机的设计(附接线图,主程序代码)...

    基于51单片机的数字FM调频收音机的设计(附接线图,主程序代码)(任务书,开题报告,论文15000字) 摘要 在当今的社会时代中,信息的传输扮演着极其重要的地位.随着科学技术的不断发展与进步,人类的生 ...

  10. 水质检测c语言程序,基于51单片机的水质监测系统的设计.doc

    基于51单片机的水质监测系统的设计 基于AT89C51单片机的水质监测系统的设计 摘要:现在水源污染已经成了社会密切关注的话题,所以对水质进行监测成了保护水资源的一项重要措施,基于此本文设计了一款能够 ...

最新文章

  1. JSON支持什么对象/类型?
  2. 海量数据库解决方案2011031701
  3. 400页《TensorFlow 2.0 深度学习算法实战》中文版教材免费下载(附随书代码+pdf)...
  4. php7.3安装yaf扩展(亲测)
  5. uva 10759 Dice Throwing
  6. 老男孩linux运维50期
  7. arraylist remove() java_执行ArrayList的remove(object)方法抛异常?
  8. 孪生神经网络--一个简单神奇的结构
  9. SpringBoot + Mybatis-puls + ClickHouse增删改查入门教程
  10. JSP实用教程 第三章 JSP内置对象
  11. 计算机usb端口没反应,usb接口没反应,小编教你电脑usb接口没反应怎么解决
  12. pandas数据清洗的一些操作
  13. 《如何阅读一本书》读后
  14. yii mysql 查询 类型转换_yii2 数据库查询结果字段类型的问题
  15. 关于网线水晶头的接法详解(2)
  16. RedisGeo实现增删改查 java计算指定坐标最近的距离并排序
  17. Vulkan_Shader_Day06—光照(多光源_Multiple lights)
  18. 把Excel批注的“红三角”放在单元格左上角_Excel的批注功能,全部知道的不足10%,你会用的仅仅是冰山一角...
  19. 百度同步盘linux客户端,技术|Linux下百度云的Python客户端(支持Unicode)
  20. 烎!GopherChina 2020 讲师全阵容发布,集结国内外Go语言最强力量

热门文章

  1. docker安装nacos并配置mysql数据库教程
  2. 一个校园网络的规划与设计
  3. 吉他扒和弦 扒谱工具Riffstation
  4. 抓包工具——【Mac】Charles的下载和安装
  5. 《21天学通Java(第6版)》—— 1.6 总结
  6. c语言实现统计过程控制,SPC统计过程控制的课程
  7. JavaWeb项目实战
  8. 张宇1000题高等数学 第十八章 多元函数积分学(一)
  9. Maven ojdbc错误:Cannot resolve com.oracle:ojdbc6:11.2.0.1.0
  10. Word文档批量替换工具