OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12671|回复: 27

51单片机任意2个IO口驱动LCD1602

[复制链接]

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
发表于 2015-8-9 19:07:46 | 显示全部楼层 |阅读模式

相信大家对1602显示屏已经十分熟悉,驱动方式有8线制(需要11根线)和4线制(需要7根线),这里为大家推荐一种只需要2根线就能驱动1602的方法。之前在网上见到Arduino通过IIC驱动1602的实例,本人完全不懂Arduino程序,看了一下驱动电路,发现PCF8574这个关键芯片,它就相当于一个桥梁,将IIC总线转换为8位准双向口,于是有了想法。

思路

1、单片机通过IICPCF8574进行通信。

首先写好IIC通信程序,网上到处都是IIC通信程序,很容易找。PCF8574 的器件地址为40h,由于硬件地址引脚A0-A2可寻址8 个器件,所以器件地址并不唯一,具体说明大家去查查PCF8574芯片手册。

2、单片机4线制驱动1602

网上也有很多相关程序,我就不再多说。4线制驱动方式需要7IO口(RSRWE4条数据线),而PCF8574提供了8位准双向口,所以管脚还有剩余。

3IIC通信程序和16024线制驱动程序相结合

451单片机任意2IO口驱动1602成功!!!。

(我只是个业余爱好者,要是各位觉得太低端那就见谅了)

 

驱动电路图(实际制作时没有焊接R1和R2)

效果图

 


控制部分(单片机型号是STC15F104E)


驱动部分


程序和仿真都已经上传,有兴趣的可以看看。

程序还不够完美,希望各位能够提出修改意见。

IIC驱动1602.zip

53.12 KB, 下载次数: 1308

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
发表于 2015-12-13 12:09:25 | 显示全部楼层
原来是用IC扩展I/O口,这有什么大惊小怪的。。
要是用个单片机焊在背面,还能单线通信,或者无线呢。。
回复 支持 1 反对 0

使用道具 举报

2

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2015-7-30
在线时间
1 小时
发表于 2015-8-9 21:12:23 | 显示全部楼层
呵呵,很好学习了赞一个!
方法比问题多,思路决定出路,人生无极限贵在坚持。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-8-9 21:39:02 | 显示全部楼层
不错,谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2015-8-10 08:17:57 | 显示全部楼层
好方式,创新模式,高!
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2015-8-10 20:19:27 | 显示全部楼层
回复【4楼】1501697860:
---------------------------------
谢谢,希望能提出改进意见
回复 支持 反对

使用道具 举报

6

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-8-18
在线时间
41 小时
发表于 2016-9-18 11:07:15 | 显示全部楼层
文章可以转载么?我会注明作者是你以及原始链接
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2016-11-7 08:14:16 | 显示全部楼层
季夏木槿 发表于 2016-9-18 11:07
文章可以转载么?我会注明作者是你以及原始链接

当然可以,自己琢磨东西就是希望和大家分享
回复 支持 反对

使用道具 举报

28

主题

218

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2013-11-19
在线时间
92 小时
发表于 2016-11-15 23:20:56 | 显示全部楼层
我还以为LCD1602有IIC接口,原来是使用了IO口扩展芯片
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2016-11-16 08:18:58 | 显示全部楼层
1375917982gxut 发表于 2016-11-15 23:20
我还以为LCD1602有IIC接口,原来是使用了IO口扩展芯片

LCD1602都不带IIC,这个板子是参考某宝的LCD1602 IIC驱动板制作的,本人只是电子制作爱好者,自娱自乐罢了
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
发表于 2017-7-28 22:15:10 来自手机 | 显示全部楼层
程序有毒能重新发吗
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2017-9-2 17:18:44 | 显示全部楼层
hack906447 发表于 2017-7-28 22:15
程序有毒能重新发吗

可以,给个邮箱
回复 支持 反对

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-9-3 08:39:04 来自手机 | 显示全部楼层
104是个好东西,改造定时器,遥控接受板,温控器的最佳选择!哈哈哈!用你这个做显示和调试很不错的。谢谢分享
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
发表于 2017-9-5 13:18:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2017-9-5 16:53:32 | 显示全部楼层
l6931639 发表于 2017-9-3 08:39
104是个好东西,改造定时器,遥控接受板,温控器的最佳选择!哈哈哈!用你这个做显示和调试很不错的。谢谢 ...

STC15F104E的外部中断不起作用,可以用STC15F104W代替,STC15F104E、STC15F104W都没有串口。最近发现个STC15W201S系列,DIP8封装的管脚和STC15F104W差不多,有4个外部中断,还有串口
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2017-9-5
在线时间
9 小时
发表于 2017-9-5 21:50:33 | 显示全部楼层
楼主,程序烧录后没反应还是显示方框。请问如何解决。
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2017-9-6 14:36:24 | 显示全部楼层
稻弋轩鹤 发表于 2017-9-5 21:50
楼主,程序烧录后没反应还是显示方框。请问如何解决。

把电源开关2、3次
回复 支持 反对

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-9-6 15:05:58 | 显示全部楼层
imxuheng 发表于 2017-9-5 16:53
STC15F104E的外部中断不起作用,可以用STC15F104W代替,STC15F104E、STC15F104W都没有串口。最近发现个ST ...

我一直用的15W104,外部中断没有问题,只是没有串口,兼容3.3V和5V电源。15F104E我没有接触过,哈哈哈。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2017-9-5
在线时间
9 小时
发表于 2017-9-6 15:47:05 | 显示全部楼层
楼主,我试了好几次都不行。我用的是淘宝买的IIC 1602和你的有区别吗?
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2017-9-10 15:24:19 | 显示全部楼层
l6931639 发表于 2017-9-6 15:05
我一直用的15W104,外部中断没有问题,只是没有串口,兼容3.3V和5V电源。15F104E我没有接触过,哈哈哈。

嗯,15W系列的正常
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2017-9-10 15:29:14 | 显示全部楼层
稻弋轩鹤 发表于 2017-9-6 15:47
楼主,我试了好几次都不行。我用的是淘宝买的IIC 1602和你的有区别吗?

虽然都是PCF8574,但是结尾的字母不同的话地址是不同的,A0、A1、A2三个管脚悬空时PCF8574 的器件地址为40h, PCF8574A 的器件地址为70h
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-7-22
在线时间
16 小时
发表于 2018-12-25 19:00:09 | 显示全部楼层
你的这个代码,没有背光控制功能,一旦烧进去,背光是关闭的,时隔两年,撸主可增加了背光功能?
回复 支持 反对

使用道具 举报

0

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2019-2-10
在线时间
6 小时
发表于 2019-2-28 17:03:41 | 显示全部楼层
想问一下PCF8574t和这里的PCF8574有啥区别呢?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-4-28
在线时间
1 小时
发表于 2019-4-29 16:21:49 | 显示全部楼层
perfect123 发表于 2018-12-25 19:00
你的这个代码,没有背光控制功能,一旦烧进去,背光是关闭的,时隔两年,撸主可增加了背光功能?

背光控制功能是什么?我的LCD1602能显示,但是屏幕亮度很差,背面的亮度调节也调不了,不知道是什么原因
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-4-28
在线时间
1 小时
发表于 2019-4-29 21:29:53 | 显示全部楼层
我也是这样IIC操作LCD1602,接的VCC是5v,可以正常显示字符,但是屏幕很暗,有大神知道是什么原因吗
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-5-17
在线时间
12 小时
发表于 2019-7-30 20:36:26 | 显示全部楼层
网站翻了好几天,终于找到了
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-5-17
在线时间
12 小时
发表于 2019-8-13 16:59:42 | 显示全部楼层
我在Arduino下地址是0x3f  ,屏不知道是否支持4位传输,在STC15W408AS单片机下,用你的程序,改了好几个地址都不行
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-4-20
在线时间
52 小时
 楼主| 发表于 2020-10-4 14:10:14 | 显示全部楼层
zxy2266 发表于 2019-8-13 16:59
我在Arduino下地址是0x3f  ,屏不知道是否支持4位传输,在STC15W408AS单片机下,用你的程序,改了好几个地址 ...

看看你的PCF8574结尾的字母和地址引脚的接线情况。A0、A1、A2三个管脚接地时PCF8574 的器件地址为40h, 而PCF8574A 的器件地址为70h
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 07:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表