LCD1602 的4线接法
2016-01-25 11:46
302 查看
虽然LCD1602的显示屏幕与显示字符都较小,实用性并不强,但是在一般的教学实验中,它仍不失为一个常用的输出显示设备。
LCD1602与单片机连接的线路共有11条,其中有8条数据线,3条控制线。如果把它们都连接上,将占用较多的单片机的接口。
LCD1602还有一种使用高4位数据线的接法,可以减少单片机的负担。
另外,RW的控制也并非是必用的,如果仅仅是用于读取LCD1602“忙”的状态,就可以用稍事等待来代替。这样一来,RW就可以直接接地,使LCD1602永远处于写入的状态。
那么,LCD1602和单片机之间就仅仅需要6条线了,这就是LCD1602最简洁的连接方法。
下面的一个例子是使用P0口的高4位连接到LCD1602的高4位数据线,P2.0连接到RS,P2.1连接到EN。
对LCD1602写入输出的子程序如下:
LCD_W_DATA: ;LCD1602数据线D7~D4接P0口高四位
CALL WAIT5MS ;稍等
PUSH ACC ;保存
SETB LCD_RS ;RS=1, 数据
ORL A, #0FH ;低4位置一
MOV P0, A ;写高四位
CALL ENABLE ;在EN给出正脉冲
POP ACC ;恢复
SWAP A ;高低四位交换
ORL A, #0FH ;低4位置一
MOV P0, A ;写低四位
CALL ENABLE ;在EN给出正脉冲
RET
程序中,先输出高4位,再输出低4位,这是按照LCD1602的4线接法的数据传输规范进行的。
输出时,对P0口的低4位进行了置1,目的是使其处于输入状态,这样,低4位可以用做按键的输入接口。
此方案也得到了网友的认可,可见:http://zhidao.baidu.com/question/149007735.html
对LCD1602写入命令的子程序,和上面的程序类似,只是要有RS=0。
但是要注意,初始化为4位的时候,应该使用8位的形式。
利用LCD1602、DS18B20制作万年历温度计的电路如下:
图片链接:http://xiangce.baidu.com/picture/detail/474b7b1a07e01de9be975a679f07b4bd593fe377
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/fa074f3f4094c2a8838b13b2.html
这个电路已经制作成实物,经过多日的实际测量,可以看出时间精度很高,并不亚于使用DS1302的方案。
温度的显示程序,可以显示零下、以及超过100度的温度。
可以使用4个按键进行控制,长按“设置”,方可进入设置状态;之后再短按“设置”,即可依次改变当前设置的项目。
只有再长按“设置”,方可退出设置状态。
在设置状态,当前选定的项目,将以闪烁显示,此时再按下“加”、“减”,即可进行修改。
程序中,具有自动计算平闰年、计算星期几的功能,所以只需要设置年月日即可。
程序中,设计了一个闹钟功能,可以设置一个精确到秒的闹时时刻。闹时,也可以设置为闹或不闹。
实际上,多设计几个闹时也是可轻易办到的,这样就可以做为定时控制器了,比如用于校园打铃。
LCD1602与单片机连接的线路共有11条,其中有8条数据线,3条控制线。如果把它们都连接上,将占用较多的单片机的接口。
LCD1602还有一种使用高4位数据线的接法,可以减少单片机的负担。
另外,RW的控制也并非是必用的,如果仅仅是用于读取LCD1602“忙”的状态,就可以用稍事等待来代替。这样一来,RW就可以直接接地,使LCD1602永远处于写入的状态。
那么,LCD1602和单片机之间就仅仅需要6条线了,这就是LCD1602最简洁的连接方法。
下面的一个例子是使用P0口的高4位连接到LCD1602的高4位数据线,P2.0连接到RS,P2.1连接到EN。
对LCD1602写入输出的子程序如下:
LCD_W_DATA: ;LCD1602数据线D7~D4接P0口高四位
CALL WAIT5MS ;稍等
PUSH ACC ;保存
SETB LCD_RS ;RS=1, 数据
ORL A, #0FH ;低4位置一
MOV P0, A ;写高四位
CALL ENABLE ;在EN给出正脉冲
POP ACC ;恢复
SWAP A ;高低四位交换
ORL A, #0FH ;低4位置一
MOV P0, A ;写低四位
CALL ENABLE ;在EN给出正脉冲
RET
程序中,先输出高4位,再输出低4位,这是按照LCD1602的4线接法的数据传输规范进行的。
输出时,对P0口的低4位进行了置1,目的是使其处于输入状态,这样,低4位可以用做按键的输入接口。
此方案也得到了网友的认可,可见:http://zhidao.baidu.com/question/149007735.html
对LCD1602写入命令的子程序,和上面的程序类似,只是要有RS=0。
但是要注意,初始化为4位的时候,应该使用8位的形式。
利用LCD1602、DS18B20制作万年历温度计的电路如下:
图片链接:http://xiangce.baidu.com/picture/detail/474b7b1a07e01de9be975a679f07b4bd593fe377
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/fa074f3f4094c2a8838b13b2.html
这个电路已经制作成实物,经过多日的实际测量,可以看出时间精度很高,并不亚于使用DS1302的方案。
温度的显示程序,可以显示零下、以及超过100度的温度。
可以使用4个按键进行控制,长按“设置”,方可进入设置状态;之后再短按“设置”,即可依次改变当前设置的项目。
只有再长按“设置”,方可退出设置状态。
在设置状态,当前选定的项目,将以闪烁显示,此时再按下“加”、“减”,即可进行修改。
程序中,具有自动计算平闰年、计算星期几的功能,所以只需要设置年月日即可。
程序中,设计了一个闹钟功能,可以设置一个精确到秒的闹时时刻。闹时,也可以设置为闹或不闹。
实际上,多设计几个闹时也是可轻易办到的,这样就可以做为定时控制器了,比如用于校园打铃。
相关文章推荐
- 摩尔斯电码
- 二十一世纪什么最贵?和谐……,有了基于单片机的分歧终端机,一切皆可解决
- 线段树 (转)
- 逻辑运算与51单片机的位操作指令
- 利用74HC595在串行口扩充8位的并行输出接口
- 这些人也是弱势群体呀,后面还有两家呢
- 用fontAwesome代替网页icon小图标
- 8个月偷逃过路费竟达368万元,这真是一条金光大道啊!
- leetcode18. 4Sum
- Ft5x06_ts驱动程序的重写
- 发现一个百度的新产品挺好用~
- Python开发基础-day2
- 子曰:“以德报怨,何以报德?以直报怨,以德报德!”
- 转载:血沃河山(二十一)——仁安羌大捷
- 51单片机,C语言编程,控制指示灯闪烁的频率
- 用51单片机做信号发生器,同时输出四种频率的方波
- 用 74hc138 和 74hc595 驱动 8x8 点阵显示
- 原码、反码和补码
- C51单片机的压缩BCD码相加程序
- C语言编程:密码解密