第一范文网 - 专业文章范例文档资料分享平台

lcd1602液晶资料

来源:用户分享 时间:2025/6/1 12:36:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

1602忙标志

就是说那个引脚是1602告诉单片机:我现在没有有空接受你的指令?

对1602发指令,它要有个时间延迟,才能执行完成,才可以接受下一条指令,这样的话, 你要等待,多长时间呢?直到忙碌标志位告诉单片机不忙为止(BF=0) 但一般不用管它,指令间隔几个空时钟周期就可以了。

追问

#include //包含单片机寄存器的头文件 #include //包含_nop_()函数定义的头文件 sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚 sbit BF=P0^7; //忙碌标志位,,将BF位定义为P0.7引脚 这样该如何接线呢?p0^7不是已经接1602液晶的14脚了吗???

追答

只要你程序中保证每条对液晶的指令都有一 定的间隔,BF连不连都行,忽视它的存在好了

HD44780内置了DDRAM、CGROM和CGRAM。

CGROM和CGRAM就是内置192个常用字符产生器,用户自定义的字符产生器RAM DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:

显示位置: 1 2 3 4 5 6 7 8 ..... 40 第一行: 00H 01H 02H 03H 04H 05H 06H 07H ..... 27H 第二行: 40H 41H 42H 43H 44H 45H 46H 47H ..... 67H */

1602LCD的RAM地址映射

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在,哪里显示字符,图是1602的内部显示地址。 也就是说想要在LCD1602屏幕的第一行第一列显示一个\字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下: DDRAM地址与显示位置的对应关系

图五:LCD1602内部显示地址

例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位

D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)

+10000000B(80H)=11000000B(C0H)。

/*

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

序号 指令 RS R/W 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 * *

D3=1移字符 D3=0移光标 D2=1右移 D2=0左移

6 功能设置 0 0 0 0 1 DL N F * *

DL=1总线8位 DL=0总线4位 N=0显单行 N=1显双行

F=0 5X7点阵 F=1 5X10点阵

7 置字符发生器地址 0 0 0 1 -字符发生存贮器地址(6位)- 8 置数据存贮器地址 0 0 1 --显示数据存贮器地址(7位)--- 9 读忙标志或地址 0 1 BF ----计数器地址(7位)---------

10 写CGRAM或DDRAM 1 0 --------要写的数据内容(8位------ 11 读CGRAM或DDRAM 1 1 --------读出的数据内容(8位)----- */

// 51单片机对lcd1602一些基础程序

/* 基本操作时序:

写指令输入:RS=0,RW=0,E=下降沿脉冲,DB0~DB7=指令码输出:无 写数据输入:RS=1,RW=0,E=下降沿脉冲,DB0~DB7=数据输出:无 读状态输入:RS=0,RW=1,E=1输出:DB0~DB7=状态字 读数据输入:RS=1,RW=1,E=1输出:DB0~DB7=数据/ */ /*

lcd_1602指令:

指令位 D7 D6 D5 D4 D3 D2 D1 D0 功能设置 0 0 1 DL N F * * DL=1总线8位 DL=0总线4位 N=0显单行 N=1显双行

F=0 5X7点阵 F=1 5X10点阵

lcd_1602指令汇总

0x28 设置16*2显示,5*7点阵,4位数据接口 0x38 设置16*2显示,5*7点阵,8位数据接口 0x01 清屏,光标复位到地址00H位置

0x02 光标归原点,DDRAM中内容不变,地址计数器AC=0;(此时地址为0x80)

0x0F 开显示,显示光标,光标闪烁 0x0e 开显示,显示光标,光标不闪烁 0x0c 开显示,不显示光标 0x08 只开显示

0x06 地址加一,当写入数据的时候光标右移 设定显示屏或光标移动方向指令

0x18 字符全部左移一格,但光标不动 0x1c 字符全部右移一格,但光标不动 0x10 光标左移1格,且AC值减1 0x14 光标右移1格,且AC值加1 */

#include #define dataport P1 sbit RS=P2^ 6; sbit RW=P2^5; sbit EN=P2^4;

void waitfor() //检测忙信号函数 {

dataport=0xff;

RS=0;

RW=1; //选择指令寄存器读操作 RS=0指令 RS=1数据; RW=0写 RW=1读 EN=1; //使能操作

while(dataport&0x80); //如果最高位是1 表示1602正忙原地踏步忙完后芯片会将高位拉低

EN=0; }

void writedata(unsigned char dataw) //写数据到LCD1602 {

waitfor(); //测忙

RS=1;

RW=0; //选择数据寄存器写操作 RS=0指令 RS=1数据; RW=0写RW=1读

dataport=dataw; //将数据送到数据口 EN=1;

EN=0; //使能下降沿脉冲 }

搜索更多关于: lcd1602液晶资料 的文档
lcd1602液晶资料.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5szp23mr697z7sh75m1a072ie1yhw200mz7_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top