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

发布者:zcyzwj最新更新时间:2013-03-21 来源: dzsc关键字: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模块的引脚定义

序  号 符  号 状  态 功  能  说  明
1 Vcc - 逻辑电源正
2 GND - 逻辑电源地
3 V0 - 液晶显示驱动电源
4 RES - 接口时序类型选择
5 E2 输入 主工作方式IC使能信号
6 E2 输入 从工作方式IC使能信号
7 R/W 输入 读/写选择信号
8 A0 输入 寄存器选择信号
9~16 DB0~DB7 三态 数据总线(低位)
17 SLA -  
18 SLK - 背光灯负电源

  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操作时序。[page]
 

  二、接口软件编程

      1.SED1520F0A指令集

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

       表2 SED1520F0A指令集

指 令 名 称 控 制 信 号 控  制  代  码
R/W   A0 D7 D6 D5 D4 D3 D2 D1 D0
显示开/关指令 0 0 1 0 1 0 1 1 1 I/O
显示起始行设置 0 0 1 1 0 显示起行(0~31)
设置页地址 0 0 1 0 1 1 1 0 页地址(0~3)
设置列地址 0 0
0
列地址(0~79)
读状态指令 1 0 BUSY ADC OFF/ON RESET 0 0 0 0
写数据 0 1 显示的数据
读数据 1 1 显示的数据
ADC选择指令 0 0 1 0 1 0 0 0 0 0/1
静态驱动开/关 0 0 1 0 1 0 0 1 0 0/1
占空比选择 0 0 1 0 1 0 1 0 0 0/1
改写开始指令 0 0 1 1 1 0 0 0 0 0
改写结束指令 0 0 1 1 1 0 1 1 1 0
复位 0 0 1 1 1 0 0 0 1 0

  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
       液晶显示器开显示、关显示和清屏子程序[page]
       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单片机的液晶显示模块接口技术

上一篇:最全的关于PIC单片机入门宝典
下一篇:PIC16C72单片机的空调控制系统设计

推荐阅读最新更新时间:2024-03-16 13:20

C8051F单片机在远端测控装置中的应用
C8051F单片机是完全集成的混合信号系统芯片(SoC),具有与8051指令集完全兼容的CIP-51内核和高速、高性能、高集成度等特点。在本文设计的一套远端测控装置中取得了较好的效果。 系统简介 远端测控装置是一种现场可编程的控制器,它能完成数据的采集控制,而通过远程通信的方式(如电台、CDMA、拨号等)将数据上传至中心站或接收中心站的遥控指令。它往往被安装在比较分散、环境比较恶劣、无电源保障(经常断电或使用太阳能)且无人值守的地方,因此它运行的可靠性和功耗就显得尤为重要了。C8051F单片机的工业级工作温度(-40℃~+84℃)、低电压、低功耗、自带看门狗和多复位源等特点满足了此系统的要求。 基于此系统的定位,选用C8051F0
[单片机]
单片机有前景吗?单片机入门基础知识
任何一个行业,都难免会看到一群喷子,喷行业辣鸡,喷职业苦逼。 最近看到很多喷单片机这个行业的,说这个行业工资低,学的东西又多,没前途。 还不如去学习纯软件,收入上限高。 一、无际对这个行业的看法(当小说看) 首先从工资上来说,在前几年,这个行业确实像大家说的工资没纯软件高。 不过谈论这个没有意义,虽然都需要学编程,但本身是两个不同的行业,所学的知识体系和学习深度都不一样,没有可比性。 还有就是纯软件基本没什么硬件成本,产品卖出去大多数都是纯利润。 但是每个行业都肯定有优缺点,纯软虽然成本低利润高,但也面临着激烈的竞争,实际情况并没想象这么美好。 做电子产品开发的公司虽然有硬件成本,但产品相对没那么容易被替代,因为涉及到外壳、
[单片机]
单片机系统制作概述
单片机是一门实践性很强的课程(是半软半硬的东西),所以必须是理论联系实践,我试过很多种教学法,还是觉得平凡老师创立的“任务教学法”的效果最好。同时我也接触了德国最先进的教学法:行动导向教学法。因此本人的课程将按行动导向教学法、项目教学法“任务教学法”这个教学思路来编写。完全按照人的认知规律来写,注重对学者的能力的培养。也是我提到的“学习的知识不如学习知识的能力重要”。 单片机是一个很多人都想学习的东西,但是如果没有必要的条件是很难学会单片机的。我建议大家需要准备学习单片机的条件是: 1、要有一台电脑,最好在586或者586以上,P2,P3和P4更好。 2、要有一个编程器,用来把编译好的程序写入单片机的ROM里面,把写好后的芯片插到
[单片机]
<font color='red'>单片机</font>系统制作概述
Microchip推出40MHz PIC MCU
微芯科技最新推出的PIC微控制器(MCU)PIC18F45J10,电压为3V时频率可达40MHz。 这款8位MCU在单个28引脚封装中集成了模数转换器(ADC)、比较器、USART、SPI、I2C和PWM外设,以及32KB编程闪存。这些特性使PIC18F45J10系列器件特别适用于消费电子、家电、医疗和工业设备等各种成本价格敏感的应用领域。 从家电到消费电子等一系列成本敏感型设备的设计人员对其使用的8位MCU的性能和成本有更高的要求。PIC18F45J10、PIC18F44J10、PIC18F25J10和PIC18F24J10器件在降低了成本(降低了30%)和工作电压(3V)的同时维持了40MHz的工作性能,这是许多5
[嵌入式]
单片机的基本结构
单片机的五个组成部份: 运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行; 控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作; 存储器:用于存放程序和数据;(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘) 输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪); 输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。 注:1、通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。 2、通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。
[单片机]
<font color='red'>单片机</font>的基本结构
51单片机数字温度计+灯光报警的proteus仿真+注释详细的源码
制作出来的实物图如下: 仿真原理图如下 单片机源程序如下: #include reg52.h //包含reg52.h库文件 #include math.h //包含绝对值函数 #define uint unsigned int //宏定义uint #define uchar unsigned char //宏定义uchar sbit lcden=P2^0; //液晶使能端 sbit lcdrw=P2^1; sbit lcdr
[单片机]
51<font color='red'>单片机</font>数字温度计+灯光报警的proteus仿真+注释详细的源码
雅特力120MHz超值型微控制器,打造Cortex -M4内核性价比新高度
8月28日,雅特力正式推出主频高达120MHz的AT32F421系列超值型微控制器新品,这是继AT32F415之后推出的第二款超值型MCU。新产品依然采用高性能M4内核,提供丰富接口与各种功能,并着眼于超低开发预算需求,更适合成本敏感型嵌入式应用。目前,该系列产品已经开始发送样片并在今年10月正式投入量产供货,TSSOP20 基础型号批量订货价格低至 0.195美金,是目前业界极具性价比优势的 MCU产品。 AT32F421系列MCU内置高速嵌入式存储器,最高可支持64KB闪存存储器(Flash)及16KB随机存取存储器(SRAM),并内建数字信号处理器(DSP)。AT32F421系列提供了18个产品型号,包括LQFP48、L
[嵌入式]
雅特力120MHz超值型<font color='red'>微控制器</font>,打造Cortex -M4内核性价比新高度
使用电容器降低MCU的电源噪声
STM32是广泛应用的MCU,涵盖Cortex-M0、M3、M4和M7内核,共有1236多个系列,包含STM32主流MCU、STM32高性能MCU、STM32超低功耗MCU、STM32无线MCU、STM32 Arm Cortex MPUs等门类。 STM32 MCU内置高级12位ADC(取决于器件),提供自校准功能。在涉及模数转换的应用中,ADC精度会影响整体的系统质量和效率。而ADC精度不仅取决于ADC性能和功能,还取决于ADC周围的整体应用设计,例如电源噪声,这些恰恰可以能通过电容器过滤掉。 在电源线和地线之间,建议连接具有优良高频特性的电容。也就是说,应在靠近电源的位置安装一个0.1μF和一个1至10μF的电容,这些
[单片机]
使用电容器降低<font color='red'>MCU</font>的电源噪声
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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