1602液晶显示屏显示AWord格式文档下载.docx
- 文档编号:3914106
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:9
- 大小:236.98KB
1602液晶显示屏显示AWord格式文档下载.docx
《1602液晶显示屏显示AWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《1602液晶显示屏显示AWord格式文档下载.docx(9页珍藏版)》请在冰点文库上搜索。
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
模块使能端
14
D7
7
D0
15
BLK
背光源地
8
D1
16
BLA
背光源正极
注意事项:
从该模块的正面看,引脚排列从右向左为:
15脚、16脚,然后才是1-14脚(线路板上已经标明)。
VDD:
电源正极,4.5-5.5V,通常使用5V电压;
VL:
LCD对比度调节端,电压调节范围为0-5V。
接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:
MCU写入数据或者指令选择端。
MCU要写入指令时,使RS为低电平;
MCU要写入数据时,使RS为高电平;
R/W:
读写控制端。
R/W为高电平时,读取数据;
R/W为低电平时,写入数据;
E:
LCD模块使能信号控制端。
写数据时,需要下降沿触发模块。
D0-D7:
8位数据总线,三态双向。
如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。
本充电器就是采用4位数据传送方式;
BLA:
LED背光正极。
需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK:
LED背光地端。
1.41602操作时序
(1)读操作时序
(2)写操作时序
(3)基本操作时序
二、实例
2.1proteus仿真
2.2程序
*LCD.h文件-------------------------------------------------------------
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.h"
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(
y
)
//写地址函数
address;
if
(y
==
0)
address
=
0x80
+
x;
else
0xc0
LCD_write_command(
address);
*s)
//列x=0~15,行y=0,1
X,
Y
);
//写地址
while
(*s)
//
写显示字符
LCD_write_data(
*s
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.c文件
#include"
main(void)
init_devices();
LCD_write_string(1,0,"
Hi!
!
for(;
)
LCD_write_string(0,1,"
archeng504"
LCD_write_char(6,0,'
8'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1602 液晶显示屏 显示