液晶显示屏模块资料附程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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