注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

始めの一歩

不是世界变得无聊了,而是你变成了无聊的人……

 
 
 

日志

 
 

【51】单片机常用功能模块的使用 Part7. LCD 1602  

2012-04-16 22:13:03|  分类: Fateの51单片机の |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、基本常识:

①、好像也写成 LCM 1602,个人感觉和 LCD 1602 是一个东西,可能叫法不一样吧。

②、LCD 1602,本质上是一种“字符型液晶”,用来显示字母、数字、符号,基本不用来显示汉字。

③、由若干 5 x 7 或者 5 x 11 大小的点阵字符位组成,字符与字符之间有一个点距的间隔。

④、所谓的 LCD 1602,其实就是“显示内容为 16 x 2,每行 16 字符,显示 2 行”。

⑤、目前市面上“字符型液晶”绝大多数是基于 HD44780 液晶芯片的,控制原理完全相同,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

⑥、LCD 1602 样子如下图:

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり 

 

2、LCD 1602 引脚定义:

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

 

3、LCD 1602 硬件连接:

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

 

4、HD44780 的使用:

上面也说了,LCD 1602 中使用的是 HD44780 液晶芯片,也就是说,所谓的对 LCD 1602 编程,其实是掌握 HD44780 指令集的过程,这里为了严谨,写作 HD44780 液晶芯片的使用。

 

(1)、DDRAM(显示数据存储 RAM)

DDRAM 用来寄存要显示的字符,并在屏幕对应位置上显示。DDRAM 不是寄存器,是类似于内存一样的东西,更具体来说是像缓存一样的东西,因此,DDRAM 是有一组地址的,其中,每一个地址对应屏幕上的一个位置。使用时,向某地址写入数据,就能在对应的屏幕位置上显示出来。其地址与屏幕的对应关系如下:

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

每行有 40 个地址,但是 LCD 1602 每行只有 16 个字符,因此,只需要使用 1-16 号地址即可,后边的可能是用来扩展使用的,比如突然想用 HD44780 来制作 20 x 2 的 LCD 了等等,大概是为了便于扩展吧……

因此,对于 LCD 1602,使用如下对应关系:

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

 

(2)、CGROM(字符存储 ROM)

自带 160 个字符,存在 CGROM 中,字符与代码的对应如下:

例:在第一行第三个字符位置,显示字符 A,第一行第三个字符位置对应地址为 02H(查上表),字符 A 对应代码为 41H(查下表),将对应代码放入对应地址就能在 LCD 上显示。(具体用法参见 5.(8),有需要注意的地方)

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

注:上图 ROM 型号为 A00,好像还有个 ROM A02,似乎是另一种类的 CGROM,存的东西不太一样:

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり 

 

(3)、CGRAM(自定义字符存储 RAM)

存储自定义字符,具体没用过,等用过了再更新……

 

5、HD44780 指令集:

基本操作:


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

 

(1)、清屏

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:<1> 清除液晶显示器,将 DDRAM 的内容全部填入“空白”的字符码 20H;
   <2> 光标归位,即将光标撤回液晶显示屏的左上方;
   <3> 将地址计数器 (AC) 的值设为 0。

 

(2)、光标归位

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:<1> 把光标撤回到显示器的左上方;
   <2> 把地址计数器 (AC) 的值设置为 0;
   <3> 保持 DDRAM 的内容不变。

 

(3)、输入模式设置指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:设定每次写入 1 位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。
   I/D         0=写入新数据后光标左移               1=写入新数据后光标右移
   S           0=写入新数据后显示屏不移动        1=写入新数据后显示屏整体右移 1 个字

 

(4)、显示开关控制指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:控制 显示器开/关、光标显示/关闭 以及 光标是否闪烁。
   D           0=显示功能关           1=显示功能开
   C           0=无光标                  1=有光标
   B           0=光标不闪烁           1=光标闪烁

 

(5)、设定显示屏或光标移动方向指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:使光标移位或使整个显示屏幕移位。
   S/C     R/L
     0         0         光标左移 1 格,且 AC 值减 1
     0         1         光标右移 1 格,且 AC 值加 1
     1         0         显示器上字符全部左移一格,但光标不动
     1         1         显示器上字符全部右移一格,但光标不动

 

(6)、功能设定指令:(重要)

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:设定数据总线位数、显示的行数及字型。
   DL          0=数据总线为 4 位          1=数据总线为 8 位
   N            0=显示 1 行                     1=显示 2 行
   F            0=5×7 点阵/每字符          1=5×10 点阵/每字符

 

(7)、设定 CGRAM 地址指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:设定下一个要存入数据的 CGRAM 的地址。

 

(8)、设定 DDRAM 地址指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり 

功能:设定下一个要存入数据的 CGRAM 的地址。(注意这里我们送地址的时候应该是 80H + Address,因为上面的 DB7=1)

 

(9)、读取忙信号或 AC 地址指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:<1> 读取忙信号 BF 的内容;
     BF=1  液晶显示器忙,暂时无法接收单片机送来的数据或指令
     BF=0  液晶显示器可以接收单片机送来的数据或指令
   <2> 读取地址计数器 (AC) 的内容。

 

(10)、数据写入 DDRAM 或 CGRAM 指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:<1> 将字符码写入 DDRAM,以使液晶显示屏显示出相对应的字符;
   <2> 将用户自己设计的图形存入 CGRAM。

 

(11)、从 DDRAM 或 CGRAM 读取数据指令

【51】技巧 2 -- 单片机常用功能模块的使用 Part7. LCD 1602 - 灼眼のFate - 運命の始まり

功能:读取 DDRAM 或 CGRAM 中的内容。

 

6、程序示例:

http://gaebolg.blog.163.com/blog/static/19826906820123218152826/

  评论这张
 
阅读(269)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018