用STC单片机模拟21C02
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
用STC单片机模拟21C02  2012/3/1
浙江 黄松正本文介绍一种用STC12C2052单片机的I/O口模拟I2C总线的从模式,进而模拟和替代E2PROM(24C02)工作的方法。其意义在于,用户可以根据需要让处于I2C主模式的芯片以不同的启动配置启动,而不需要烧录不同内容的E2PROM,也不需要增加额外的I/O口。为满足程序加载时按用户的要求配置某I2C接口芯片的寄存器,笔者用STC单片机模拟24C02。I2C主模式的模拟技术比较普遍,但该I2C芯片复位后处于主模式,使得STC要配置它只能处于从

浙江  黄松正

本文介绍一种用STC12C2052单片机的I/O口模拟I2C总线的从模式,进而模拟和替代E2PROM(24C02)工作的方法。其意义在于,用户可以根据需要让处于I2C主模式的芯片以不同的启动配置启动,而不需要烧录不同内容的E2PROM,也不需要增加额外的I/O口。

为满足程序加载时按用户的要求配置某I2C接口芯片的寄存器,笔者用STC单片机模拟24C02。I2C主模式的模拟技术比较普遍,但该I2C芯片复位后处于主模式,使得STC要配置它只能处于从模式状态,而I2C从模式的模拟很少有现成的代码参考。下面给出开始和停止条件判断、数据读取、应答位判断部分的编程思路,至于数据和应答位发送部分,参考文章较多,这里不再描述。

1.开始和停止条件判断分析

I2C总线开始和结束时序(见图1)。

处于从模式的STC12C2052单片机要判断开始条件,就要实时检测SCL、SDA线上的电平变化,当SCL为高电平且SDA为低电平时,判断为开始条件成立。

需要注意的是,为方便之后的数据判断,开始成立条件需要从时钟线高电平到时钟低电平为止才退出判断,不可在SCL为高电平时发现SDA低电平跳变就退出判断。开始条件判断的程序代码如下:

相对开始条件判断,停止条件判断就没这么严格:只要时钟为高,数据线从低到高跳变,就可以判断为条件成立。结束条件判断代码如下:

2.数据读取

STC2052在读取SDA上的数据时,要按照SCL上电平跳变来判断数据在何时才是有效的。如图2所示,在SCL线为低电平时等待,当等待结束时读取数据,然后在SCL为高电平时继续等待(防止重复读取),进入下一位数据的读取,如此循环,直到8位数据读取完毕。代码如下:

3.应答位判断

图3是从模式下STC12C2052判断主机ACK回应的时序图,与数据位的读取颇为相似。代码如下:

有了上述分析基础,模拟24C02就容易了。按照24C02数据手册的说明,24C02字节选择读1个字节的时序(见图4),24C02连续读可以由选择读模式启动。这样就可以写出STC12C2052单片机模拟24C02的选择连续读程序,流程图见图5,器件地址以0X00为例。

与《用STC单片机模拟21C02》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095