技术中心
 
 

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

   日期:2011-05-05     来源:互联网    
核心提示:摘要:介绍了液晶显示模块HS12864-1的结构和功能特点,设计了其与凌阳SPCE061A单片机的接口电路以及字符显示控制程序,实现了所需字符
摘要:介绍了液晶显示模块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语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,用C语言的开发周期通常要小于汇编语言很多。综合以上C语言的优点,在设计时选择了C语言。
这里给出右半屏送命令/数据程序,说明SPCE061A单片机程序设计中对IOA /IOB口的设置。凌阳单片机控制液晶显示部分程序如下:
本系统调试采用的是凌阳61板(即SPCE061A EMU BOARD)和u'nSP IDE 集成开发环境。硬件调试较为简单,只需调节好液晶的对比度和背光亮度即可;在软件方面,使用凌阳u'nSP IDE 软件来编译调试液晶程序。
在调试中字模数据来自字模生成软件Zimo3,其生成的字模数据在本程序中不能直接使用,运行结果会出现字体的上下部分颠倒,需要将其顺序反转。
调试效果达到了程序设计的要求。
 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢