单片机模拟IIC时序读写24C02

一、什么是IIC总线
IIC即集成电路总线,也是一种非常常用的总线是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。

注意:IIC芯片在工业上的应用也是非常重要的,与串口、SPI、CAN等总线齐名。


二、IIC总线协议简介

IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。同时为了保证数据可靠地传送,任一时刻总线只能由某一台主机控制。


在I2C总线传输过程中,将两种特定的情况定义为开始和停止条件:当SCL保持"高"时,SDA由"高"变为"低"为开始条件;当SCL保持"高"且SDA由"低"变为"高"时为停止条件。开始和停止条件均由主控制器产生。使用硬件接口可以很容易地检测到开始和停止条件,没有这种接口的微机必须以每时钟周期至少两次对SDA取样,以检测这种变化。且SDA线上的数据在时钟"高"期间必须是稳定的,只有当SCL线上的时钟信号为低时,数据线上的"高"或"低"状态才可以改变。输出到SDA线上的每个字节必须是8位,每次传输的字节不受限制,但每个字节必须要有一个应答ACK。如果一接收器件在完成其他功能(如一内部中断)前不能接收另一数据的完整字节时,它可以保持时钟线SCL为低,以促使发送器进入等待状态;当接收器准备好接受数据的其它字节并释放时钟SCL后,数据传输继续进行。



IIC数据传输格式如下:

  • 16
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
void start 开始信号 void stop 停止信号 void Ack 发确认信号 void NoAck 发无确认信号 void init 初始化信号 拉高SDA和SCL两条总线 bit write byte uchar date 一字节 将 date 入AT24C02 中 uchar read byte 读一字节 从 AT24C02 中读一字节 bit busy 应答查询 stop 后 启动AT24C02内部周期 启动查询 初始化EEPROM子程序内容为0XFF nPage 0 31 void Init Flash uchar nPage 8 bytes 1 page init 0xFF void write add uchar address uchar date 向 AT24C02数据 从AT24C02中给定的地址nAddr起 将存放在以指针nContent开头的存储空间中的nLen个字节数据 连续入AT24C02 void write flash uchar nContent uchar nAddr uchar nLen uchar read add uchar address 从 AT24C02 中读出数据 从AT24C02中给定的地址nAddr起 读取nLen个字节数据存放在以指针nContent开头的存储空间 void read flash uchar nContent uchar nAddr uchar nLen 单片机P2口接74HC138(三八译码器)P2 3 74HC138: EI P2 2 74HC138:A2 P2 1 74HC138:A1 P2 0 74HC138:A0 译码器输出 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7均低电平有效 分别选通1 8个数码管 包括2个四位一体数码管LG3641BH 共2x4 8个数码管 数码管数据口为P0口 数码管为共阳4位一体数码管 功能: 译码器输出为1 8个数码管的段选信号 轮流选择1 8数码管 void display uchar nContent uchar nLen 功能:在8段数码管上显示nLen个字符 这些字符存储在指针nContent开头的往下的内容中 显示原理: 1 送出要显示的段数 2 P2译码 选择要显示的位 3 延时1 2ms 时间不能太长 否则会闪烁 也不能太短 否则会很暗 4 取消段选 消隐 若要显示多段 重复以上4步 ">void start 开始信号 void stop 停止信号 void Ack 发确认信号 void NoAck 发无确认信号 void init 初始化信号 拉高SDA和SCL两条总线 bit write byte uchar date 一字节 将 date 入AT24C02 中 uchar read byte 读一字节 从 AT24C02 中读一 [更多]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值