1602液晶使用范例Word下载.docx

上传人:b****3 文档编号:6358210 上传时间:2023-05-06 格式:DOCX 页数:13 大小:452.72KB
下载 相关 举报
1602液晶使用范例Word下载.docx_第1页
第1页 / 共13页
1602液晶使用范例Word下载.docx_第2页
第2页 / 共13页
1602液晶使用范例Word下载.docx_第3页
第3页 / 共13页
1602液晶使用范例Word下载.docx_第4页
第4页 / 共13页
1602液晶使用范例Word下载.docx_第5页
第5页 / 共13页
1602液晶使用范例Word下载.docx_第6页
第6页 / 共13页
1602液晶使用范例Word下载.docx_第7页
第7页 / 共13页
1602液晶使用范例Word下载.docx_第8页
第8页 / 共13页
1602液晶使用范例Word下载.docx_第9页
第9页 / 共13页
1602液晶使用范例Word下载.docx_第10页
第10页 / 共13页
1602液晶使用范例Word下载.docx_第11页
第11页 / 共13页
1602液晶使用范例Word下载.docx_第12页
第12页 / 共13页
1602液晶使用范例Word下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

1602液晶使用范例Word下载.docx

《1602液晶使用范例Word下载.docx》由会员分享,可在线阅读,更多相关《1602液晶使用范例Word下载.docx(13页珍藏版)》请在冰点文库上搜索。

1602液晶使用范例Word下载.docx

7

D0

15

BLK

背光源地

8

D1

16

BLA

背光源正极

注意事项:

从该模块的正面看,引脚排列从右向左为:

15脚、16脚,然后才是1-14脚(线路板上已经标明)。

第1脚:

VSS为地电源

第2脚:

VDD接5V正电源

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15~16脚:

BLA(BL1):

LED背光正极。

需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右,一般接一个几十欧姆的电阻,47欧、33欧等;

BLK(BL2):

LED背光地端。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

1602液晶模块内部的控制器共有11条控制指令,如表2所示,

它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:

1为高电平、0为低电平)

指令1:

清显示,指令码01H,光标复位到地址00H位置

指令2:

光标复位,光标返回到地址00H

指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁

指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL:

高电平时为8位总线,低电平时为4位总线)

指令7:

字符发生器RAM地址设置

指令8:

DDRAM地址设置

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:

写数据

指令11:

读数据

DM-1602液晶显示模块可以和单片机AT89C51直接接口,电路如图1所示。

为了节约I/O口也可以采用6线接法,只用4根数据线,高低位分别传输,把RW接地,只写不读。

这样可以省下5根I/O口线。

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是DM-162的内部显示地址.

比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?

这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)

以下是在液晶模块的第二行第一个字符的位置显示字母“A”的程序:

ORG0000H

RSEQUP3.7;

确定具体硬件的连接方式

RWEQUP3.6;

确定具体硬件的连接方式

EEQUP3.5;

MOVP1,#00000001B;

清屏并光标复位

ACALLENABLE;

调用写入命令子程序

MOVP1,#00111000B;

设置显示模式:

8位2行5x7点阵

ACALLENABLE;

MOVP1,#00001111B;

显示器开、光标开、光标允许闪烁

调用写入命令子程序

MOVP1,#00000110B;

文字不动,光标自动右移

MOVP1,#0C0H;

写入显示起始地址(第二行第一个位置)

MOVP1,#01000001B;

字母A的代码

SETBRS;

RS=1

CLRRW;

RW=0;

准备写入数据

CLRE;

E=0;

执行显示命令

ACALLDELAY;

判断液晶模块是否忙?

SETBE;

E=1;

显示完成,程序停车

AJMP$

ENABLE:

CLRRS;

写入控制命令的子程序

CLRRW

CLRE

ACALLDELAY

SETBE

RET

DELAY:

MOVP1,#0FFH;

判断液晶显示器是否忙的子程序

CLRRS

SETBRW

NOP

JBP1.7,DELAY;

如果P1.7为高电平表示忙就循环等待

RET

END

程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。

注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序DELAY,然后输入显示位置的地址0C0H,最后输入要显示的字符A的代码41H。

6线范例:

//编译器:

ICC-AVR 

v6.31A 

日期:

2005-11-24 

20:

29:

57

//目标芯片 

:

M16

//时钟:

8.0000Mhz

/*-------------------------------------------------------------

LCD引脚定义

1---GND 

2---VCC

3---VO

4---RS

5---RW

6---EN

7到14--D0-D7

15--背景灯+

16--背景灯-

-----------------------------------------------------------------*/

#include 

<

iom16v.h>

macros.h>

/*---------------------------------------------------------------

下面是AVR与LCD连接信息

PA2 

->

RS

PA3 

EN

地 

RW

PA4 

D4

PA5 

D5

PA6 

D6

PA7 

D7

要使用本驱动,改变下面配置信息即可

#define 

LCD_EN_PORT 

PORTA 

//以下2个要设为同一个口

LCD_EN_DDR 

DDRA

LCD_RS_PORT 

LCD_RS_DDR 

LCD_DATA_PORT 

//以下3个要设为同一个口

LCD_DATA_DDR 

DDRA 

//一定要用高4位

LCD_DATA_PIN 

PINA

LCD_RS 

(1<

PA2) 

//0x04 

portA2 

out

LCD_EN 

PA3) 

//0x08 

portA3 

LCD_DATA 

((1<

PA4)|(1<

PA5)|(1<

PA6)|(1<

PA7)) 

//0xf0 

portA4/5/6/7 

/*------------------------------------------------------------------------------

函数说明

------------------------------------------------------------------------------*/

void 

LCD_init(void);

LCD_en_write(void);

LCD_write_command(unsigned 

char 

command) 

;

LCD_write_data(unsigned 

data);

LCD_set_xy 

(unsigned 

x, 

unsigned 

y);

LCD_write_string(unsigned 

X,unsigned 

Y,unsigned 

*s);

LCD_write_char(unsigned 

delay_nus(unsigned 

int 

n);

delay_nms(unsigned 

/*==========================================================*/

LCD_init(void) 

//液晶初始化

{

LCD_DATA_DDR|=LCD_DATA;

//数据口方向为输出

LCD_EN_DDR|=LCD_EN;

//设置EN方向为输出

LCD_RS_DDR|=LCD_RS;

//设置RS方向为输出

LCD_write_command(0x28);

LCD_en_write();

delay_nus(40);

//4位显示

LCD_write_command(0x0c);

//显示开

LCD_write_command(0x01);

//清屏

delay_nms

(2);

}

LCD_en_write(void) 

//液晶使能

LCD_EN_PORT|=LCD_EN;

delay_nus

(1);

LCD_EN_PORT&

=~LCD_EN;

//写指令

delay_nus(16);

LCD_RS_PORT&

=~LCD_RS;

//RS=0

LCD_DATA_PORT&

=0X0f;

//清高四位

LCD_DATA_PORT|=command&

0xf0;

//写高四位

command=command<

4;

//低四位移到高四位

=0x0f;

//写低四位

data) 

//写数据

LCD_RS_PORT|=LCD_RS;

//RS=1

LCD_DATA_PORT|=data&

data=data<

LCD_set_xy( 

) 

//写地址函数

address;

if 

(y 

== 

0) 

address 

0x80 

x;

else 

0xc0 

LCD_write_command( 

address);

*s) 

//列x=0~15,行y=0,1

X, 

);

//写地址 

while 

(*s) 

// 

写显示字符

LCD_write_data( 

*s 

++;

//写地址

/*=============================================================*/

delay_1us(void) 

//1us延时函数

asm("

nop"

n) 

//N 

us延时函数

i=0;

for 

(i=0;

i<

n;

i++)

delay_1us();

delay_1ms(void) 

//1ms延时函数

i;

1140;

i++);

ms延时函数

delay_1ms();

/*============================================================*/

init_devices(void)

CLI();

//disable 

all 

interrupts

LCD_init();

MCUCR 

0x00;

GICR 

TIMSK 

//timer 

interrupt 

sources

SEI();

//re-enable 

main(void)

init_devices();

LCD_write_string(1,0,"

Hi!

!

"

for(;

LCD_write_string(0,1,"

archeng504"

LCD_write_char(6,0,'

8'

}

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2