- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IIC总线协议程序
51单片机IO口模拟IIC总线协议
2008-01-13 15:01
2
I C 总线是 Philips 公司提出的一种集成电路 IC 器件之间相连接的总线协
议,其目的是使电子系统(不只限于单片机系统)各个IC 器件之间的连线变得
容易。因为使用传统的并行总线在IC器件之间连接,往往会使得IC 之间连线较
2
多,显得非常复杂。而I C 总线则使IC 器件之间只需SDA、SCL 两条连线就可
2
以传送数据,因而十分方便。由于I C在印刷体中不容易书写(需要上标),所
以实际书写时,还常见到 IIC、I2C 等书写方法,本文采用 IIC 的写法,敬请注
意。关于IIC 总线的知识,请参阅相关书籍,此处不再做进一步介绍。
下面我们用一个使用IIC 总线连接器件的例子来简单说明IIC 总线的仿真。
例.EEPROM24C02是采用IIC 接口的一种常用2Kbit(256×8bit)的存储器。
编写程序使用AT89C51的IO 口模拟实现IIC 总线协议进行通信,并向24C02存
储器内从字节0到字节FF 写入数字0到FF。
51系列单片机本身没有IIC 接口,但一些本身具有IIC 接口的单片机往往是
高端产品,一方面价格不菲,另一方面我们的系统也没有必要使用之。通常我们
就使用软件通过51系列单片机的IO 口来模拟实现IIC 总线通信。
本例事实上比较简单,但需要对IIC 总线时序有较好的理解。源文件如下图
所示(采用C51语言编写):
在Keil 中编辑好源文件以后,接下来就可以建立工程文件并生成相应的源
代码了,然后我们来绘制电路图。
此例的电路图极其简单。只需两个IC,即AT89C51和24C02C,和两个上
拉电阻,而且上拉电阻还可以省略。至于连接,就更为简单了。最后得到绘制好
的电路图如下图所示:
绘制好电路图,我们就可以将前面刚刚生成的程序源代码装入单片机了,
装入以后,下面我们就可以来进行仿真了。
首先点击仿真按钮,系统没有什么反映,只有高低电平变化的颜色。我们
要想查看结果,还要用前文中仿真扩展RAM 存储器的方法,先点击暂停,然后
点击“Debug”菜单下的“I2C Memory Internal Memory – U2”子菜单来打开U2即
EEPROM 存储器24C02C 的内容窗口“I2C Memory Internal Memory – U2”,然
后我们就看到了其中的内容,也就是
我们仿真程序的结果。如下图所示:
从图中我们能清楚地看到我们的仿真结果,程序完全正确地执行了我们的
命令。
当然,如果你过早地点击了暂停按钮,那么你得到的结果可能和上图略有
不同,那可能是因为程序尚未执行完毕。此时你可以继续点击运行按钮,或者点
击单步按钮来仔细查看程序执行过程中24C02C 存储器内容的改变情况。
/*
Acessthe eeprom--24c04
*/
#include intrins.h
#ifndef INT8U
#define INT8U unsigned char
#endif
#ifndef INT8S
#define INT8S signed char
#endif
#ifndef INT16U
#define INT16U unsigned int
#endif
#define I2C_DELAY;_nop_();_nop_();_nop_();_nop_();_nop_(); // =4.7uS
//
// delay 100us
//
void mDelay(INT8U k)
{
INT16U i ;
for(; k0; k--)
{
for(i=0; i93; i++)
;
}
}
//
//OK
//
void I2C_Start(void)
{
SDA = 1;
I2C_DELAY;
SCL = 1;
I2C_DELAY;
SDA = 0;
I2C_DELAY;
I2C_DELAY;
}
//
//OK
//
void I2C_Stop(void)
{
SDA = 0 ;
I2C_DELAY;
SCL = 1 ;
I2C_DELAY;
SDA = 1 ;
I2C_DELAY;
I2C_DELAY;
}
//
//
//
void sendA
您可能关注的文档
- GG-JXB-变压器中性点间隙接地保护成套装置.pdf
- GMP验证运行确认性能确认OQPQ模板.pdf
- GPON 实训指导书 - 移动通信技术与网络实验中心.pdf
- GPRS 环保数据采集系统应用方案一项目需求.pdf
- GPS结合GIS及GPRS建置车队管理系统之应用.pdf
- GrandMA控台自编灯库.pdf
- GSM网频率规划.pdf
- G小调第二十五交响曲莫扎特 单簧管乐谱.pdf
- G小调第二十五交响曲— 莫扎特.pdf
- Hartshorne习题.pdf
- Immigration Nation - ImmigrationWorks USA - Home移民的国家immigrationworks美国家庭.pdf
- INDUSTRIAL RELATIONS IN SOUTH AUSTRALIA 南澳洲劳资关系.pdf
- Induced Seismicity - Cornell Cooperative Extension诱发地震-康奈尔合作推广.pdf
- INTELLIGENT TECHNOLOGIES IN VEHICLE DEVELOPMENT在汽车开发的智能技术.pdf
- Interpersonal violence in Posttraumatic women brain networks triggered by trauma-related pictures.人际暴力创伤后女性大脑网络由创伤相关的图片.pdf
- IPO阶段的机构投资者私人资本和反兼并保护.pdf
- IPO 新政下企业的股票发行与上市.pdf
- ITLONG-IC卡售饭管理系统硬件用户手册.pdf
- it公司项目经理管理体制.pdf
- Java EE 应用中对前端用户的数据库操作的审计.pdf
文档评论(0)