微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SPCE061A与液晶模块HS12864-1的接口及其编程

SPCE061A与液晶模块HS12864-1的接口及其编程

时间:05-05 来源:互联网 点击:

摘要:介绍了液晶显示模块HS12864-1的结构和功能特点,设计了其与凌阳SPCE061A单片机的接口电路以及字符显示控制程序,实现了所需字符的显示功能。

1  引言
在以单片机为核心的嵌入式测控系统中,单片机与显示器件的接口是一个必不可少的环节,具体工作包括选择显示的器件类型,接口采用串行或并行方式以及显示驱动的确定等问题。典型的显示器件是LED数码管,其亮度高,适应于大多数应用场合。缺点是接口电路复杂,功耗高。液晶显示器件是利用液晶的电光效应制作的,具有功耗低、接口控制方便等优点[1],而且模块的接口信号和操作指令具有广泛的兼容性,并能直接与单片机接口,它还具有专用指令,可方便地实现各种不同的操作,同样的显示面积LCD其功耗比LED显示器小几百倍,所以它特别适宜与COMS电路直接相配,液晶显示器件已成为当代高新技术产业(信息产业中最重要的信息处理手段之一,在各类测量及控制仪表中被广泛的应用。
液晶显示器件可分为波段式、字符式和点阵式。其中,点阵式液晶显示器件不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现分区开窗口、反转、闪烁等动态显示功能,当在点阵式LCD上显示汉字时,应先取得汉字的点阵构成数据,然后将其写入点阵式LCD的显示存储器中进行显示。本文介绍基于凌阳SPCE061A单片机的液晶显示控制设计。

2HS12864-1液晶模块的工作原理

HS12864-1是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可实现图形显示,也可以显示8×4个(16×16点阵)汉字。HS12864-1液晶内置HD61102图形液晶显示模块,驱动和控制系统是由1片HD61102 作为64 路行驱动器,同时HD61102配备了一套显示存储器的管理电路和与MCU接口电路,可以直接与MCU的总线连接[5]。HS12864-1的结构见图1。


图1 HS12864-1的结构

HS12864-1具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能,共有7 条指令,单片机只需通过D/I、R/W、DB0~DB7送入数据或指令便可显示其指定内容或显示方式。表1为HS12864-1的指令一览表。

表1 HS12864-1指令表

指 令

指 令 码

功能

R/W

D/I

D7

D6

D5

D4

D3

D2

D1

D0

显示

0

0

0

0

1

1

1

1

1

1/0

控制显示器的开关,

起始行

0

0

1

1

显示起始行(0····63)

指定开始显示行

设置X地址

0

0

1

0

1

1

1

X:0···7

设置X地址

设置Y地址

0

0

0

1

Y地址(0···63)

设置地址(Y地址)

1

0

B

U

S

Y

0

ON/

OFF

R

S

T

0

0

0

0

读取状态RST 1:复位0:正常ON/OFF 1:显示开 0:显示关BUSY 0:READY 1:IN OPERATION

写数据

0

1

显示数据

数据写入DDRAM

读数据

1

1

显示数据

数据读入DDRAM

3 HS12864-1与SPCE061A单片机的硬件接口设计

SPCE061A 是继SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。CPU内核采用凌阳最新推出的16位u nsp微处理器芯片,比MCS-51 8位机的MCU集成度更高,使用更加灵活方便,缩短了开发周期和成本。
采用RISC 的SPCE061A 比8位的MCS 51系列执行效率高,速度更快,较宽的工作电压,低功耗抗干扰的设计,使061A在电池供电的应用领域更具特色,其内置2K字SRAM和32K FLASH,32位通用可编程输入/输出端口,具有WatchDog等功能,在仪器仪表、工业控制和通讯产品等方面应用日益广泛。
在程序设计方面μ'nSP?单片机的汇编指令针对C语言进行了优化,所以其汇编的指令格式很多地方直接类似于C语言。另外其开发仿真环境IDE也直接提供了C语言的开发环境,C函数和汇编函数可以方便地进行相互调用[2,3]。HS12864-1与SPCE061A单片机的硬件接口电路见图2。

图2中采用并行通信方式,单片机的IOA0-IOA7口与液晶模块的DB0-DB7口相连作为数据输入输出用;即IOB0- IOB 4口与液晶模组的CS1、CS2、D/I、R/W、E相连作为单片机对液晶的控制口。

4显示程序设计

在液晶上显示整屏字符或图像有两种方法:一种是将所要显示的字模数据一次性发送到显示数据RAM中;另外一种是在屏幕上指定位置进行单独显示[4]。两种方法都要在控制器空闲的条件下进行操作,在操作之前都要先读取忙标志,判断控制器是否处于忙状态,在一般情况下,可以用延时等待的方法代替。
本系统程序主要包括主程序和几个子程序块: LCD初始化, 液晶显示屏选择,LCD显示,还有若干个控制子程序。主程序分别调用这些子程序实现对液晶显示器操作控制。程序流程图见图3。


图3 程序流程图

凌阳单片机的编程语言常用的有二种:汇编语言和C语言。汇编语言的机器代码生成效率很高但可读性不强,而C语言在大多数情况下其机器代码生

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top