液晶显示屏模块资料附程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

液晶显示屏模块说明

一.功能说明:该模块可以通过单片机控制并行口数据16字×2行的字符型液晶模块的显示。

二.硬件设计:

核心控制:Freescale MC9S12D64 单片机系统板

执行部分:16字X2行的字符型液晶模块

操作部分:通过USBDM将已写好的程序刷入单片机

指示部分:单片机上的发光二极管

电源部分:提供给电机5V的直流稳压电源

硬件说明:

一.液晶显示屏引脚的定义:1602采用标准的16脚接口,其中:(模块背面有标注)。

1脚VSS:接地;

2脚Vdd:接+5V电源;

3脚VO:对比度调整端,LCD驱动电压范围为Vdd~VO。当VO接地时,对比度最强;

4脚RS:寄存器选择端,RS为0时,选择命令寄存器IR;

RS为1时,选择数据寄存器DR;

5脚:读写控制端,为1时,选择读出;为0时,则选择写入;

6脚Enable:使能控制端,Enable为1时,使能;Enable 为0,禁止;

7脚~14脚D0~D7:数据总线;

15脚LED+:背景光源,接+5V;

16脚LED-:背景光源,接地。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字

母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。

其内部还有自定义字符(CGRAM),可用业存储自已定义的字符。

二.硬件的连接(单片机与液晶的连接。注:表的上行是液晶显示的1-16个引脚,下行是单片机接出的部分I/O口以及一些接口的定义):

1 2 3 4 5 6 7 8

接口GND +5V 电位

PE2 PE3 PB7 PA0 PA1

指令说明:

指令1:清显示屏;

指令2:光标复位;

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。R/L,高向左,低向右。

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(再这个液晶屏中选择5×7或5×10的效果一样)。指令7:写入字符,可以直接参看ASCII字符码。

指令8:置显示字符的地址,第一行为:00——0F,第二行为:40——4F(十六进制的)。

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。所以,在写数据或指令到LCD之前,必须查看BF是否为0(在实际操作过程中,可以用一个短暂的延时来跳过这个忙指令即可)。

指令10:写数据。

指令11:读数据。

以上共有11条控制指令,其中9条是针对命令寄存器IR的,两条是针对数据寄存器DR的(以下两条指令对写程序来控制液晶显示是很重要的,看的话要理解清楚)。

IR为指令寄存器(Instruction Register,简称IR)负责存储MCU要写给LCD的指令码,当RS及R/W引脚信号为0且

Enable引脚信号由1变为0时,D0-D7引脚上的数据便会存入到IR寄存器中;

DR为数据寄存器(Data Register,简称DR),它们负责存储微机要写到CGRAM或DDRAM的数据,或者存储MCU要从CGRAM或DDRAM的数据。因此,可将DR视为一个数据缓存冲区,当RS及R/W引脚信号为1且Enable引脚信号由一变为0时,读取数据;当RS引脚信号为1,R/W引脚信号为0且Enable引脚信号由1变为0时,存入数据。

三.软件说明:

1.用户程序结构:该程序的主程序中未作任何有意义的工作。液晶显示在初始化 ,子程序,以及中断程序实现.为是程序模块化,将初始化,中断均在子程序中.为防止出现片内外设使用冲突,故将各模块使能设置寄存器放在主程序前设置。

1.用户变量(EQU)设置;

2.用户RMB设置;

3.中断设置(定时器通道0中断);

4.开机初始化;

5.各个模块的开关:

(1)开启LCD模块;

(2)开启定时器模块;

(3)开中断;

6.主程序(空操作):

7.子程序:

(1)写入地址

(2)写入命令

(3)写入数据

(4)定时器中断

2.流程图:该程序就是一个单线条的,比较简单,在

这里就不说了。

3.程序设计:

;********************SCI初始化**************************** MOVB #$00,SCI0BDH

MOVB #$A2,SCI0BDL ;波特率9600

MOVB #$00,SCI0CR1

MOVB #$0C,SCI0CR2 ;使能发送器和接受器

;*****************定时器初始化************************

BSET TIOS,#%00000001 ;0通道为输出比较定时

MOVB #%00000011,TSCR2 ;禁止溢出中断,8分频

BSET TIE,#%00000001 ;TC0开中断

MOVB #%10000000,TSCR1 ;开定时器,标志位正常清除

MOVW #125,TC0 BSET TSCR1,#%10000000 ;定时器使能,标志位正常清除

;***************液晶显示初始化************************

MOVB #$FF,DDRA

MOVB #$FF,DDRB

MOVB #$FF,DDRE

BSET PORTA,#%00000011 ;清屏和光标复位

JSR ENABLE

BSET PORTB,#%01000000 ;开背光

MOVB #%00111000,PORTA ;8位总线,双行,5*7的点阵字符

JSR ENABLE

相关文档
最新文档