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

上传人:b****7 文档编号:8878292 上传时间:2023-02-02 格式:DOCX 页数:9 大小:123.99KB
下载 相关 举报
资料液晶显示屏模块资料附程序.docx_第1页
第1页 / 共9页
资料液晶显示屏模块资料附程序.docx_第2页
第2页 / 共9页
资料液晶显示屏模块资料附程序.docx_第3页
第3页 / 共9页
资料液晶显示屏模块资料附程序.docx_第4页
第4页 / 共9页
资料液晶显示屏模块资料附程序.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

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

《资料液晶显示屏模块资料附程序.docx》由会员分享,可在线阅读,更多相关《资料液晶显示屏模块资料附程序.docx(9页珍藏版)》请在冰豆网上搜索。

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

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

液晶显示屏模块说明

一.功能说明:

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

二.硬件设计:

核心控制:

FreescaleMC9S12D64单片机系统板

执行部分:

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

引脚

9

10

11

12

13

14

15

16

接口

PA2

PA3

PA4

PA5

PA6

PA7

PB6

接地

三:

液晶模块的读写与光标控制指令:

  

指令

RS

RW

D7

D6

D5

D4

D3

D2

D1

D0

1

清屏

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示控制

0

0

0

0

0

0

1

D

C

B

5

光标/字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志和地址

0

1

BF

计数器地址

10

写数据到指令7.8所设地址

1

0

要写的数据

11

从指令7.8所设的地址读数据

1

1

读出的数据

指令说明:

指令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为指令寄存器(InstructionRegister,简称IR)负责存储MCU要写给LCD的指令码,当RS及R/W引脚信号为0且Enable引脚信号由1变为0时,D0-D7引脚上的数据便会存入到IR寄存器中;

DR为数据寄存器(DataRegister,简称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;使能发送器和接受器

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

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

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

BSETTIE,#%00000001;TC0开中断

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

MOVW#125,TC0

BSETTSCR1,#%10000000;定时器使能,标志位正常清除

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

MOVB#$FF,DDRA

MOVB#$FF,DDRB

MOVB#$FF,DDRE

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

JSRENABLE

BSETPORTB,#%01000000;开背光

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

MOVB#%00001110,PORTA;开显示,光标开,不允许光标闪烁JSRENABLE

MOVB#%10000000,PORTA;写入显示1地址(第一行第一个)

JSRENABLE

LDX#ABC_1

LDAB#16;显示1

JSRSHUJU

MOVB#%11000000,PORTA;写入显示2的地址(第二行第一个)

JSRENABLE

LDX#ABC_2;显示2

LDAB#16

JSRSHUJU

;**********************主程序******************************

mainLoop:

NOP

JMPmainLoop

;**********************地址******************************

SHUJU:

MOVBX,PORTA

JSRENABLE_1;调用写入数据子程序

INX

DBNEB,SHUJU

RTS

;*****************写入命令子程序*************************

ENABLE:

BCLRPORTE,#%00001100

BCLRPORTB,#%10000000

JSRYANSHI_1MS

BSETPORTB,#%10000000

RTS

;*******************写入数据子程序*************************

ENABLE_1:

BSETPORTE,#%00000100

BCLRPORTE,#%00001000

BCLRPORTB,#%10000000

JSRYANSHI_1MS

BSETPORTB,#%10000000

RTS

;*****************定时器延时子程序*********************

YANSHI_1MS:

MOVB#25,R1

Y1:

LDAAR1

CMPA#0

BNEY1;变量循环

RTS

YANSHI_2S:

LDX#2000

AAA:

JSRYANSHI_1MS

DBNEX,AAA

RTS

;*******************显示字母表***************************

ABC_1:

FCB$44,$65,$73,$69,$67,$6e,$65,$72,$A0,$62,$79,$A0,$63,$68,$65,$6e

ABC_2:

FCB$A0,$A0,$A0,$32,$30,$31,$31,$2e,$30,$37,$2e,$32,$35,$A0,$A0,$A0

;****************定时器中断子程序********************

ZHONGDUAN:

BSETTFLG1,#%0000001;清零0通道位LDDTC0将TC0通道的值给D寄存器

ADDD#125;D的内容加上125存在D中

STDTC0

LDAAR1

DECA

STAAR1

RTI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1