




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51 单片机任意单片机任意 2 个个 IO 口驱动口驱动 LCD1602 相信大家对 1602 显示屏已经十分熟悉 驱动方式有 8 线制 需要 11 根线 和 4 线制 需要 7 根线 这里为大家推荐一种只需要 2 根线就能驱动 1602 的方法 之前在网上见到 Arduino 通过 IIC 驱动 1602 的实例 本人完全不懂 Arduino 程序 看 了一下驱动电路 发现 PCF8574 这个关键芯片 它就相当于一个桥梁 将 IIC 总线转换为 8 位准双向口 思路思路 1 单片机通过 单片机通过 IIC 与与 PCF8574 进行通信 进行通信 首先写好 IIC 通信程序 网上到处都是 IIC 通信程序 很容易找 PCF8574 的器件地址 为 40h 由于硬件地址引脚 A0 A2 可寻址 8 个器件 所以器件地址并不唯一 具体说明大 家去查查 PCF8574 芯片手册 2 单片机 单片机 4 线制驱动线制驱动 1602 网上也有很多相关程序 我就不再多说 4 线制驱动方式需要 7 个 IO 口 RS RW E 和 4 条数据线 而 PCF8574 提供了 8 位准双向口 所以管脚还有剩余 3 IIC 通信程序和通信程序和 1602 的的 4 线制驱动程序相结合线制驱动程序相结合 4 51 单片机任意单片机任意 2 个个 IO 口驱动口驱动 1602 成功 成功 我只是个业余爱好者 要是各位觉得太低端那就见谅了 驱动电路图驱动电路图 效果图效果图 实物图实物图 Proteus 仿真仿真 程序程序 include include sbit SCL P3 0 sbit SDA P3 1 bit ack unsigned char LCD data unsigned char code digit 0123456789 定义字符数组显示数字 延时 void delay nus unsigned int n N us 延时函数 unsigned int i 0 for i 0 i n i nop void delay nms unsigned int n N ms 延时函数 unsigned int i j for i 0 i n i for j 0 j4us 后 SCL 跳变 SCL 1 nop4 SDA 1 nop nop void Write A Byte unsigned char c unsigned char BitCnt for BitCnt 0 BitCnt 8 BitCnt 要传送的数据长度为 8 位 if c BitCnt 判断发送位 else SDA 0 nop SCL 1 置时钟线为高 通知被控器开始接收数据位 nop4 nop SCL 0 nop nop SDA 1 8 位发送完后释放数据线 准备接收应答位 nop nop SCL 1 nop nop nop if SDA 1 ack 0 else ack 1 判断是否接收到应答信号 SCL 0 nop nop bit Write Random Address Byte unsigned char add unsigned char dat Start 启动总线 Write A Byte add 发送器件地址 if ack 0 return 0 Write A Byte dat 发送数据 if ack 0 return 0 Stop 结束总线 return 1 液晶屏使能 void Enable LCD write LCD data 1 3 1 E 1 Write Random Address Byte 0 x40 LCD data delay nus 2 LCD data E 0 Write Random Address Byte 0 x40 LCD data 写命令 void LCD write command unsigned char command delay nus 16 LCD data RS 0 LCD data RW 0 Write Random Address Byte 0 x40 LCD data LCD data 清高四位 LCD data command 写高四位 Write Random Address Byte 0 x40 LCD data Enable LCD write command command 4 低四位移到高四位 LCD data 清高四位 LCD data command 写低四位 Write Random Address Byte 0 x40 LCD data Enable LCD write 写数据 void LCD write data unsigned char value delay nus 16 LCD data 1 1 1 RS 1 LCD data RW 0 Write Random Address Byte 0 x40 LCD data LCD data 清高四位 LCD data value 写高四位 Write Random Address Byte 0 x40 LCD data Enable LCD write value value 4 低四位移到高四位 LCD data 清高四位 LCD data value 写低四位 Write Random Address Byte 0 x40 LCD data Enable LCD write 设置显示位置 void set position unsigned char x unsigned char y unsigned char position if y 0 position 0 x80 x else position 0 xc0 x LCD write command position 显示字符串 void display string unsigned char x unsigned char y unsigned char s set position x y while s LCD write data s s 液晶初始化 void LCD init void LCD write command 0 x28 delay nus 40 LCD write command 0 x28 delay nus 40 Enable LCD write delay nus 40 LCD write command 0 x28 4 位显示 LCD write command 0 x0c 显示开 LCD write command 0 x01 清屏 delay nms 2 void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市便民服务外包合同
- 河北省十类数学试卷
- 广东省8年级数学试卷
- 长期供货及质量保证合同
- 汉川市2024数学试卷
- 黄山市今年中考数学试卷
- 河北近几年中考数学试卷
- 简阳初二数学试卷
- 嘉祥县初三二模数学试卷
- 湖南省高三考试数学试卷
- 2024年中国创新方法大赛考试题库(含答案)
- 中建幕墙施工专项方案
- 《电子级三氯氢硅的化学气相沉积评价方法》
- 2024-2030年中国工业防锈剂行业需求动态与应用前景预测报告
- (外研版3起)英语五年级上册单词字帖书写练习(手写体)高清打印版
- 人音版4年级上册第三单元快乐的校园
- 必考点01与三角形有关的线段(原卷版+解析)
- 年产10万吨连续玄武岩纤维项目可行性研究报告商业计划书
- 画家签约合同模板
- 建筑挡烟垂壁设计图集
- 2024年互联网营销师(中级)理论考试题库(附答案)
评论
0/150
提交评论