PIC16F877单片机的图形液晶显示模块接口技术

发布者:吉州古玩斋最新更新时间:2012-01-14 关键字:PIC16F877  图形液晶显示 手机看文章 扫描二维码
随时随地手机看文章

  引言
  
  由于液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄等其他显示器无法比拟的优点,它广泛用于各种智能型仪器和低功耗电子产品中。点阵式(或图形式) LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。本文在简介液晶显示器MG-12232的驱动器SED1520F0A的结构、功能的基础上,介绍了PIC16F877单片机的LCD硬件接口电路和软件编程特点。

  一、PIC16F877与MG-12232的硬件接口电路

  1.SED1520F0A的接口信号

  SED1520F0A属行列驱动及控制合一的小规模液晶显示驱动芯片,电路简单,经济实用,内含振荡器,只须外接振荡电阻即可工作。模块工作的稳定性好。SED1520F0A与微处理器的接口信号如下。

  DB0~DB7:数据总线。
  A0:数据/指令选择信号。A0=1表示出现在数据总线上的是数据;A0=0,表示出现在数据总线上的是指令或读出的状态。
  RES:接口时序类型选择。RES=1为M6800时序,其操作信号是E和R/W;RES=0为Intel8080时序,操作信号是RD和WR。
  RD(E):在Intel 8080时序时为读,低电平有效;在M6800时序时为使能信号,是个正脉冲,在下降沿处为写操作,在高电平时为读操作。
  WR(R/W):在Intel 8080时序时为写,低电平有效;在M6800时序时为读、写选择信号,R/W=1为读,R/W=0为写。

  SED1520F0A与两种总线的接口信号和时序的详细资料见液晶显示模块使用手册。

  2.MG-12232模块的引脚说明

  MG-12232模块共有18个引脚,各引脚定义如表1所列。

  表1 MG-12232模块的引脚定义

  3.PIC16F877与MG-12232模块的接口电路
    
  现以功能强、价格低的PIC16F877为例说明 PIC与MG-12232模块的硬件接口电路。其接口控制时序采用M6800操作时序,这样 SED1520F0A引出的控制信号R/W,A0,E1和E2由PIC16F877的I/O端口portb的4个脚控制。接口电路如图1所示。图中利用可调电阻R3实现液晶的背光亮度调节,直接用电阻R2驱动液晶的背光灯。由于PIC16F877的位操作指令丰富,所以用软件不难模拟出M6800操作时序。

  二、接口软件编程

  1.SED1520F0A指令集

  SED1520F0A液晶显示驱动器有13条指令。表2所列的以与M6800系列MPU接口为例(RES=1)而总结出的指令。

  表2 SED1520F0A指令集

  2.MG-12232模块的编程

  下面是以图1的接口电路为例编写的只含E1主方式的程序(表1中E1=1,E2=0)。E2从方式(表1中E1=0,E2=1)的程序类推。

  在系统程序的初始化部分应该对程序中用到的寄存器和临时变量作说明,如:

  lcdfial equ 0x20 ;存放标志位
  sbdata equ lcdflag+1 ;存放显示数据
  clmadd equ sbdata+1 ;存放列地址
  pageadd equ clmadd+1 ;存放页地址
  pagenum equ pageadd+1 ;存放总页数
  clmsum equ pagenum+1 ;存放总列数
  intscode equ clmsum+1 ;存放指令代码
  读液晶显示器状态子程序
  Ste bsf STATUS,RP0;选中存储区1
  movlw 0xff
  movwf TRISD ;设置D口为输入
  bcf STATUS,RP0;选中存储区0
  bsf PORTB,4 ;E1=1
  bsf PORTB,1 ;R/W=1
  bcf PORTB,0 ;A0=0
  Tae movf PORTD,0 ;将状态字读入W中
  movwf lcdfiag ;将W中的状态字存入lcdfiag中
  btfsc lcdflag,7 ;判断D7位是否为0
  goto Tae ;D7=1,为忙状态
  return
  对液晶显示器发指令子程序(指令保存在W寄存器中)
  Cwe
  Movwf intscode ;指令暂存intscode
  Bcf PORTB,1 ;R/W=0
  Bcf PORTB,0 ;A0=0
  movf intscode,0
  movwf PORTD
  bcf PORTB,4 ;E1=0写入指令
  return
  对液晶显示器写数据子程序(数据保存在W寄存器中)
  Dwe
  Movwf sbdata ;数据暂存sbdata
  Movf clmadd,0
  Call Cwe ;设置列地址
  Call Ste
  Bsf STATUS,RP0
  clrf TRISD ;设置D口为输出方式
  bcf STATUS,RP0
  bsf PORTB,4 ;E1=1
  bcf PORTB,1 ;R/W=0
  bsf PORTB,0 ;A0=1
  movf sbdata,0
  movwf PORTD
  bcf PORTB,4 ;E1=0,写入数据
  call Ste
  inct clmadd,1 ;列地址加1
  return
  液晶显示器开显示、关显示和清屏子程序
  Disp ;开E1显示
  movlw 0xal ;将控制命令放在W中
  call Cwe
  bsf PORTB,4 ;E1=1
  call Ste ;判是否忙
  bsf STATUS,RP0
  clrf TRISD ;设置D口输出方式
  bcf STATUS,RP0
  bsf PORTB,4 ;E1=1
  bsf PORTB,1 ;R/W=1
  bcf PORTB,0 ;A0=0
  bsf STATUS,RP0
  movlw 0xff
  movwf TRISD ;设置D口输入方式
  bcf STATUS,RP0
  movf PORTD,0
  movwf lcdflag ;读入状态并查询
  btfsc lcdflag,5 ;是否确定打开
  goto Disp
  return
  Disoff ;关E1显示
  movlw 0xae ;控制命令入在W中
  call Cwe
  bsf PORTB,4 ;E1=1
  bsf PORTB,1 ;R/W=1
  bcf PORTB,0 ;A0=0
  bsf STATUS,RP0
  movlw 0xff
  movwf TRISD
  bcf STATUS,RP0
  movf PORTD,0
  movwf lcdfiag ;读入状态并查询
  btfss lcdfiag,5 ;判是否关闭
  gogo Disoff
  return
  Cler ;清屏
  movlw 0xb8 ;设置页地址代码
  movwf pageadd
  movlw 0x04
  movwf pagenum ;设置总页数
  clr1 movf pageadd,0
  call Cwe
  movlw 0x50 ;设置总列数
  movwf clmsum ;80或60列
  movlw 0x00
  movwf clmadd ;设置起始列
  clr2 movlw 0x00
  call Dwe ;写入00H
  clar decfsz clmsum,1 ;本页未清完
  goto pageadd,1 ;页号增1
  decfsz pagenum,1 ;4页未清完
  goto clr1 ;返回继续
  return

  有了以上的通用子程序,就可以构造出各种显示程序,如字符、汉字、曲线等。当然,在这些程序执行前必须对液晶进行初始化。初始化的顺序为:关显示→正常显示驱动设置→占空比设置→复位→ADC选择→清屏→开显示。程序如下:

  初始化子程序
  Lcdinit
  call Disoff ;关显示
  movlw 0xa4 ;静态显示驱动
  call Cwe
  movlw 0xe2 ;复位
  call Cwe
  movlw 0xa0 ;ADC选择正常输出
  call Cwe
  movlw 0x9 ;占空比为1/32
  call Cwe
  call Cler ;清零
  call Disp ;开显示
  return

  对于字符、汉字和曲线显示的原理是类似的。它们都是以字节为单位进行显示。关键在于形成字模库时必须保证每个上字节数据的最高位是与每一列最下面一个点相对应,最低位与每一列最上面点相对应。当然,这可以用专门的软件来生成相应的代码,然后再将这些代码逐字节地写到相应的页和列。

  结束语

  PIC单片机与液晶模块的接口只在硬件上满足液晶模块的接口要求,软件上能够模拟出要求的时序,并且初始化正确后,就可以随心所欲地显示信息了。

  以上接口电路和程序在PIC试验板上调试通过,可作为其他单片机与LCD接口的参考。

关键字:PIC16F877  图形液晶显示 引用地址:PIC16F877单片机的图形液晶显示模块接口技术

上一篇:基于单片机的舵机控制
下一篇:用PIC16F874单片机进行GPS串口数据接收

推荐阅读最新更新时间:2024-03-16 12:50

PIC16F877单片机在直流电机闭环调速系统中的应用
0引 言        现代工业生产中,电动机是主要的驱动设备,目前在电力拖动系统中已大量采用晶闸管(即可控硅)装置向电动机供电的KZ-D拖动系统,取代了笨重的发电动一电动机的F-D系统,又伴随着微电子技术的不断发展,中小功率直流电机采用单片机控制,调速系统具有频率高,响应快,本文论述了采用PIC16F877单片机作为主控制元件,充分利用了PIC16F877单片机捕捉、比较、模/数转换模块的特点作为触发电路,其优点是:结构简单,能与主电路同步,能平稳移相且有足够的移相范围,控制角可达10000步,能够实现电机的无级平滑控制,脉冲前沿陡且有足够的幅值,脉宽可设定,稳定性与抗干扰性能好等。       1 直流电机调速原理分析   
[工业控制]
图形点阵式液晶显示模块的控制技术
    摘要: 分析了图形点阵式液晶显示模块LCD240128A的内部结构及工作原理,结合AT89S58单片机给出了MPU与液晶显示模块LCD240128的接口电路,并根据LCD240128A模块中T6963A液晶驱动器的文本与图形两种模式的指令特性,给出了相应的控制软件。     关键词: 液晶 微控制器 显示器 LCD240128A AT89S58 T6963A 1 模块简介 图形点阵式液晶显示模块具有尺寸小、功耗小、可靠性高、成本低等优点,可显示各种图像与文本信息,因此在电子仪器中得到广泛的应用。 LCD240128A是热致液晶STN型图形点阵式显示模块,它由STN型液晶板、液晶显示控制器、液
[电源管理]
51XA单片机与图形液晶显示器的接口设计
0 引言 P51XA是PHILIPS公司的一种16位单片机,可管理的存储器空间大,运行速度快,支持实时多任务系统的增强了实现高级语言的支持,可以运用在需要复杂、高速控制的场合,在体系结构上与MCS-5高度兼容,便于实现向高性能微控制器的快速、平滑转移。北京精电蓬远显示技术有限公司的MGLS240128T是一种240×128点阵的图形LCD(液晶显示器),可以显示图形、曲线,全屏可显示15×8个汉字,适宜用在需要有较多显示内容的场合,它内含T6963C控制器,能直接与INTEL系列的微处理器接口。 1 P51XAG37单片机和T6963C简介 P51XA单片机的内部结构和外部数据总线均为16位结构,支持扩展的外部存储器空间为1
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved