LCD1602快速上手

①介绍

LCD(Liquid Crystal Display),LCD1602模块,其中16表示每一行可以显示”16”个字符,”02”表示一共有两行。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的两条线是背光电源线VCC和地线GND,控制原理与14脚的LCD完全一样。

字符LCD的引脚定义如下图1所示。

                                     图1 字符型LCD引脚定义表

使用LCD1602显示模块实现显示的主要思路就是,首先确定显示的位置(在LCD显示屏上有32个空格),然后是确定要显示的内容或字符。LCD的DB0~7为输入输出的接口,在确定显示位置和内容时要通过这些端口传输数据。

在确定显示位置时,由于只有32个空格,不需要用一个字节来确定。所以最高位(bit7)固定为1。剩下的七位的数据与确定的显示位置的关系如下图2所示。

                                图2 DDRAM地址与显示位置的对应关系

在确定了显示位置后,要确定的是显示内容。同样用到的是一个字节的数据来确定要显示的字符。数据与显示字符的对应关系如下图3所示。

                          图3 CGROM中字符码与字字符字模关系对照表

②指令功能

LCD1602模块共有11条指令,包括:清屏指令、光标归位指令、进入模式设置指令、显示开关控制指令、设定显示屏或光标移动方向指令、功能设定指令、设定CGRAM指令、设定DDRAM地址指令、读取忙信号或AC地址指令、数据写入DDRAM或CGRAM指令、从CGRAM或DDRAM读出数据指令。

有图1中对于RS引脚的作用描述可以看出,当RS=0时,LCD收到的数据作为指令;当RS=1,LCD收到的数据作为数据。要注意的是,在输入指令或是数据后,要使E接收到一个下降沿后才会生效。

③函数

在此次实验过程中用到的有关LCD的函数,主要是光标位置的改变、显示字符。

  1. 光标位置函数
void lcdwrc4bit(long c)		  //读取八位数据改变光标位置
{	
	while(readbusy());
	GPIO_ResetBits(GPIOB,rs);		//将rs置为零,表示后边输入指令
	GPIO_ResetBits(GPIOB,rw);
	GPIO_ResetBits(GPIOB,e);
	delayms(1);
	GPIOB->BSRR = c<<8 & 0xf000;  //将数据送到P0口
    GPIOB->BRR = ((~c)<<8) & 0xf000;
	delayms(1);
	GPIO_SetBits(GPIOB,e);
	delayms(1);
	GPIO_ResetBits(GPIOB,e);//执行指令
	delayms(1);

	GPIOB->BSRR = c<<12 & 0xf000;  //将数据送到P0口
    GPIOB->BRR = ((~c)<<12) & 0xf000;
	delayms(1);
	GPIO_SetBits(GPIOB,e);
	delayms(1);
	GPIO_ResetBits(GPIOB,e);//执行指令
	delayms(1);
}

 

(b)显示字符函数

void lcdwrd(long dat)			//读八位数据通过4个引脚
{
	while(readbusy());		
	GPIO_SetBits(GPIOB,rs);		
	GPIO_ResetBits(GPIOB,rw);
	GPIO_ResetBits(GPIOB,e);
	delayms(1);
	GPIOB->BSRR = dat<<8 & 0xf000;  //将数据送到P0口 
    GPIOB->BRR = ((~dat)<<8) & 0xf000;
	delayms(1);
	GPIO_SetBits(GPIOB,e);
	delayms(1);
	GPIO_ResetBits(GPIOB,e);//执行指令
	delayms(1);
	GPIOB->BSRR = dat<<12 & 0xf000;  //将数据送到P0口 
    GPIOB->BRR = ((~dat)<<12) & 0xf000;
	delayms(1);
	GPIO_SetBits(GPIOB,e);
	delayms(1);
	GPIO_ResetBits(GPIOB,e);//执行指令
	delayms(1);
	GPIO_ResetBits(GPIOB,rs);
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值