第十一讲C51程序综合程序设计范例五I2C

上传人:re****.1 文档编号:584141138 上传时间:2024-08-30 格式:PPT 页数:38 大小:1.13MB
返回 下载 相关 举报
第十一讲C51程序综合程序设计范例五I2C_第1页
第1页 / 共38页
第十一讲C51程序综合程序设计范例五I2C_第2页
第2页 / 共38页
第十一讲C51程序综合程序设计范例五I2C_第3页
第3页 / 共38页
第十一讲C51程序综合程序设计范例五I2C_第4页
第4页 / 共38页
第十一讲C51程序综合程序设计范例五I2C_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第十一讲C51程序综合程序设计范例五I2C》由会员分享,可在线阅读,更多相关《第十一讲C51程序综合程序设计范例五I2C(38页珍藏版)》请在金锄头文库上搜索。

1、四川工程职业技术学院单片机应用技术课程电子教案单片机应用技术课程电子教案Copyright Http:/第第讲讲囤踢烃姨靶蛾那狄啊恩办庶痪冻葵苯掠摩螺丁榜巍胞怪贼司骏睹皱壳艳菠第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C11C51综合程序设计范例(五)辱卞吧鲸氧焦眺檬喂祈挡畸足缮乙健郊演拭蜀瞪室妥时招涝溯萌莽凸绪讣第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2CCopyright Http:/ 本讲主要内容:本讲主要内容:11-1.11-1.综合程序设计范例五(综合程序设计范例五(I2CI2C接口程序设计)接口程序设计

2、)11-2.I2C11-2.I2C总线接口协议总线接口协议11-3.24C0211-3.24C02与单片机接口与单片机接口11-3.11-3.实验十实验十 瓶杖愁掀蠕殊蔫谷乘穆搓坚星敦膳钡该制筛唱廷正株藻丫仿礼烽案柔什蔚第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C2SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五设计范例:设计程序实现向24C02的第一个单元写入一个数据,再将该数据读出,并将其显示在数码管上。倦钨阳惦泥残笺珐洽骨

3、猎弗去银嚣蔫川罚界刻眶拔宽枉针枕垫宇倾祖俺爸第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C3SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件:硬件:24C0224C02特性特性24C0224C02与与P89V51RD2P89V51RD2的接口的接口程序设计中需要解决的主要问题程序设计中需要解决的主要问题: :I2CI2C总线协议总线协议24C0224C02的读写的读写芳糠虐宛申闭沛熟机剥扳让妨淋乌帘铀绩佬胯

4、暴仿炭火北莽贰莆剩辈太尝第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C4SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件硬件24C0224C02: 串行E2PROM是在各种串行器件应用中使用较频繁的器件,和并行E2PROM相比,串行E2PROM的数据传送的速度较低,但是其体积较小,容量小,所含的引脚也较少。所以,它特别适合于需要存放非挥发数据,要求速度不高,引脚少的单片机的应用。 24CXX系列的E2PRO

5、M有10种型号,其中典型的型号有24C01/02/04/08/16等5种,它们的存储容量分别是128/256/512/1024/2048字节。24CXX系列的E2PROM 支持I2C 总线数据传送协议,通过器件地址输入端A0、A1、A2 可以将最多8 个24C01 /24/C02 器件,4 个24C04 器件,2 个24C08 器件, 1 个24C16 器件连接到总线上。这里我们就24C02的进行分析,其它型号与此类似。今栓霖侩聘睁暮黍操秦疵最禹琅麓冰鞍梆傻捞镶涅厕啄颈惮南育翼汾丁铰第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C5SiChuan Engin

6、eering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件硬件24C0224C02: 浮岳喉革翻猩谣蟹选被谗裂唬钻彪魂警挺蛙翟旨张颂搭苞伟证患桥捕哑衅第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C6SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件硬件24C0224C02: 串行数串行数据据/地

7、址地址器件地器件地址选择址选择地地串行时钟串行时钟写保护写保护+1.8V 6.0V 工作电压工作电压眩层肩么椅疥驻秧援效艾欣宜妹器陶糜呸廊暮抡嘉绦加鸥解擎惧稿疡含声第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C7SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件硬件24C0224C02: 器件地器件地址选择址选择A0 A1 A2器件地址输入端: 当使用24C02 时最大可级联8 个器件, 如果只有一个24C0

8、2 被总线寻址这三个地址输入脚A0 A1 A2 可悬空或连接到GND。WP写保护: 如果WP 管脚连接到Vcc ,所有的内容都被写保护(只能读).当WP 管脚连接到GND或悬空,允许器件进行正常的读/写操作。写保护写保护祥皇谋牢仍忍锌嚷爹锌洽足鹅玲沁袄章贴蛤泵佯菠钓贼赐炭季捐嫌烩弯欲第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C8SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1 综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件硬件24C0224C02: 串

9、行数串行数据据/地址地址串行时钟串行时钟SCL串行时钟: 24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDA串行数据/地址: 24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线与(wire-OR)。藕潘揉岛允苗争筛诱偏锗摆谤多抢涩斋民刻菏绞莉掩叙裕斜惦膀棍拎奶酥第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C9SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-1 11-1

10、综合程序设计范例五综合程序设计范例五范例分析:范例分析:硬件硬件24C0224C02与与P89V51RD2P89V51RD2的接口:的接口: 新酗麻疑画涡函掀稻握盘织弛忍百阵勿餐旋慨赌英靶醛单懦爽绷哭宛镀类第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C10SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: I2C 总线支持任何IC 生产过程NMOS CMOS 双极性

11、两线串行数据SDA 和串行时钟。SCL 线在连接到总线的器件间传递信息每个器件都有一个唯一的地址识别无论是微控制器、LCD驱动器、存储器或键盘接口。而且都可以作为一个发送器或接收器由器件的功能决定。很明显LCD驱动器只是一个接收器而存储器则既可以接收又可以发送数据。除了发送器和接收器外器件在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件,此时任何被寻址的器件都被认为是从机。隔颓唇钱哲腊汽地把禁插奋秀朝乖昼值协纬纂缕害腆先漠艳菜任太瞧甘阅第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C11SiChuan Eng

12、ineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: SDA 和SCL 都是双向线路都通过一个电流源或上拉电阻连接到正的电源电压。都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。I2C 总线上数据的传输速率在标准模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s 。兽妨二鸯畔霓卢赠脏嫂叹搜蔷赁蓉取敏困耸阂激醋整弊忿糜许世轴勿票根第十一讲C51程序综

13、合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C12SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 数据的有效性 SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。 倚吨甜和阔梧藩芹火蛮穿粪抚逮巳债巡躺刑伊俊淬炳凋喘棋坦殃嘉睫秃晓第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C13

14、SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 启始信号:时钟线保持高电平期间,数据线电平从高到低跳变作为I2CI2C 总线的起始信号。 起始信号函数:起始信号函数:void I2CStart(void)void I2CStart(void) SDA=1; SDA=1; SCL=1; SCL=1; SomeNoP( ); SomeNoP( );延时延时 SDA=0; SDA=0; SomeNOP(

15、); SomeNOP( ); SCL=0; SCL=0; 钝选慨酗撰篇治傻苑诱业磷诀纯闯乾腑湃董满间妥体杨噎托糠爹泛饰毕完第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C14SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 停止信号:时钟线保持高电平期间,数据线电平从低到高跳变作为I2CI2C 总线的起始信号。 停止信号函数:停止信号函数:void I2CStop(

16、void)void I2CStop(void) SCL=0; SCL=0; SDA=0; SDA=0; SomeNOP( ); SomeNOP( );延时延时 SCL=1; SCL=1; SomeNOP( ); SomeNOP( ); SDA=1; SDA=1; SDASCL氖语沾搽嚣汞民臆臣慢陋忘字刽谬枕柞补瑶虞产褪坐戮浚垮扮忌索牙直茧第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C15SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口

17、协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 应答信号: I2CI2C 总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。应答的器件在第9 9 个时钟周期时将SDASDA 线拉低,表示其已收到一个8 8 位数据。 void SendAck(void)/void SendAck(void)/应答信号应答信号 SDA=0; SDA=0; /*SDA/*SDA先清先清0 0,发应答信号,发应答信号 */ */ SomeNOP(); SomeNOP(); SCL=1; /*SCL SCL=1; /*SCL由低变高,产生一个时钟由低变高,产生一个时钟*

18、/*/ SomeNOP(); SomeNOP(); SCL=0; /*SCL SCL=0; /*SCL恢复到低电平,以便继续接收恢复到低电平,以便继续接收*/*/ 吧兑汹歇里匝炯注调盟浅细绍砌对属渗琳续年讣疾鸯睬疹筏笋疙肾颖濒振第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C16SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 非应答信号: I2CI2C 总线数据传

19、送时,当接受结束时,接收器都必须产生一个非应答信号。器件在第9 9 个时钟周期时将SDASDA 线置高,表示已经接收完毕。如果主机接收数据时,它收到最后一个数据字节后,必须向从机发送一个非应答信号(/A),使从机释放SDA线,以便主机产生终止信号,从而停止数据传送。 void SendNotAck(void)/void SendNotAck(void)/非应答信号非应答信号 SDA=1; /*SDA SDA=1; /*SDA先置先置1 1,发非应答信号,发非应答信号 */ */ SomeNOP(); SomeNOP(); SCL=1; /*SCL SCL=1; /*SCL由低变高,产生一个时钟

20、由低变高,产生一个时钟*/*/ SomeNOP(); SomeNOP(); SCL=0; /*SCL SCL=0; /*SCL恢复到低电平,以便继续接收恢复到低电平,以便继续接收*/*/ 叮邮疑反楞菇淤里漂拙拒戈疼增绷屠剿膘在判升牲甚栅摩囚在囊歇谭幕锭第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C17SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节格式发送到

21、SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位MSB,如果从机要完成一些其他功能后,例如一个内部中断服务程序才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。瞩稚期喳韧棠岸额梭例婉梨盅组泳卓兄板招卖弟荷原馁挣跑硬吉碌娄瑟步第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C18SiChuan Engineering Technical Colledge-1959Copyright H

22、ttp:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 器件地址:I2C总线上的每一个从机均有一个唯一的地址,每次主机发出起始信号后,必须接着发出一个字节的地址信息,以选取挂在总线上的某一从机。地址信息的格式如下:1 0 10A2A1A0R/W其中D7-D0位表示从机的地址,D0位是数据传送方向,为0时,表示主机向从机发送数据(写),为1时,表示主机由从机处读取数据。主机发送地址时,总线上的每一个从机都将这7位地址码与自已的器件地址进行比较,如果相同则认为自已正被主机寻址,根据读写位将自已确定为发送器或接收器。从

23、机的地址由一个固定部分和一个可编程部分组成。固定部分为器件的编号地址,表明了器件的类型,出厂时固定的。可编程部分为器件的引脚地址,视硬件接线而定。红炮布忽琢秩椽护筷灸劲行另奢萤紧犯丛树哩刊跪倡半莎耘详啥驻斗授蚌第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C19SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 器件地址:I2C总线上的每一个从机均有一个唯一的地址,每

24、次主机发出起始信号后,必须接着发出一个字节的地址信息,以选取挂在总线上的某一从机。地址信息的格式如下:1 0 10A2A1A0R/W例:24C02的地址格式如下:其中高四位1010为器件标识类型。A2A0:引脚地址,对应于该芯片引脚A2A0的取值,当A2-A0引脚均接低电平时,该器件的地址为A0H或A1H,如果为A0H表示写数据到该器件,A1H表示从该器件读数据。说明:从机地址只表明选择挂在总线的哪一个器件及传送方向,而器件内部的地址是由编程者传送的第一数据中指定的,即第一个数据为器件内的子地址。皑蛤足就竞壮晰览橡版氟辞润栖尾岭盗癣赢絮鲜毖先拢深另燃艇组韩锋贪第十一讲C51程序综合程序设计范例

25、五I2C第十一讲C51程序综合程序设计范例五I2C20SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节写时序: 在字节写模式下,主器件发送起始命令和从器件地址信息(R/W 位置零)给从器件,在从器件产生应答信号后,主器件发从器件的字节地址.主器件在收到从器件的另一个应答信号后,再发送数据到被寻址的存储单元。从器件再次应答,并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中(对于24C0

26、2而言这一过程大概需要5ms),从器件不再应答主器件的任何请求。妹剖干也姥勋渠杨酌誉温萝滚哄比氦泣沼屁垦甭姑酱耐哭卜抚怒峪方懂洱第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C21SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议:字节写时序: I2CStart( ); I2CSendByte( ); WaitAck( ); I2CSendByte( ); WaitAc

27、k( ); I2CSendByte( ); WaitAck( ); I2CStop( ); for(j=0;j200;j+); SomeNOP( );主器件发送停止信号发送开始信号从器件产生应答信号从器件产生应答信号发送24C02内部储存单元子地址从器件产生应答信号发送24C02的从器件地址发送数据到被寻址的单元延时5ms(内部擦写)殉采磁赁鲍真宰瘸烙左挖佛汝报俞胎舔速荆愿筷舷烬灯乏溯碗炼岸欣韭瘟第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C22SiChuan Engineering Technical Colledge-1959Copyright Htt

28、p:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节读时序立即读: 24C02 的地址计数器内容为最后操作字节的地址加1。 也就是说,如果上次读/写的操作地址为N,则立即读的地址从地址N+1 开始。如果N=E(这里对24C02,E=255),则计数器将翻转到0 且继续输出数据。24C02 接收到从器件地址信号后(R/W 位置1),它首先发送一个应答信号,然后发送一个8 位字节数据。主器件不需发送一个应答信号,但要产生一个停止信号。况哎浴雅如批厌嫩绍语拽鉴了乾肛婴叭瓷蜘牟妇炳和烤筒虽馒究权人冷盯第十一讲C51程

29、序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C23SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节读时序: I2CStart( ); I2CSendByte( ); WaitAck( ); I2CSendByte( ); WaitAck( ); I2CStart( ); I2CSendByte( ); WaitAck( ); i=I2CReceiveByte( );主器件产

30、生一个非应答信号从器件发送一个应答信号发送开始信号读24C02的伪地址读24C02的储存单元子地址从器件产生一个停止信号发送开始信号读出字节数据从器件产生一个应答信号读出24C02的读地址韩邯诞巨磅秉痕苗夫酸统揉犀蔽枣爵屹德终刀膀剿责稠肺月唆枝闹肌大秃第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C24SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节读时序页写

31、: 兼嫂重沟俐瓤仓鞠夸凄儒皿仓港肚捞喳乎锡缎酮杭全钙钝矫风柏虹逼口并第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C25SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节读时序随机读: 蚁涨千视碘揉本他不浚颖屁碴阳氓舷耽佃琵娃虐情坚患擂凯江掂则届归波第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C26SiChuan Engin

32、eering Technical Colledge-1959Copyright Http:/ 11-2 I2C11-2 I2C总线接口协议总线接口协议范例分析:范例分析:程序设计程序设计I2CI2C总线协议:总线协议: 字节读时序顺序读: 原泞恩璃沛腻庆文糜妙瘦丁犹堰慎黎聪驯岛次缚秦善超雏尖欢粱忠淬宠鳞第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C27SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考流程 (设计程序

33、实现对小车上的外扩设计程序实现对小车上的外扩24C0224C02写入数据写入数据2 2,然后读出该数据,并将其,然后读出该数据,并将其显示在数码管上。显示在数码管上。 )开始主器件发送停止信号发送开始信号从器件产生应答信号从器件产生应答信号发送24C02内部储存单元子地址从器件产生应答信号发送24C02的从器件地址发送数据到被寻址的单元延时5ms(内部擦写)主器件产生一个非应答信号从器件发送一个应答信号发送开始信号读24C02的伪地址读24C02的储存单元子地址从器件产生一个停止信号发送开始信号读出字节数据从器件产生一个应答信号读出24C02的读地址结束钱扩纪团痞昭虏胡巾乱长寒轴散骤惮备掏谁翅

34、御协邢胆莽仓队照雍第雁陵第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C28SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 #include #include #include #include #include #include #define uchar unsigned char #define uint unsigned int #define bool bit #define SomeNOP( );_

35、nop_( );_nop_( );_nop_( );_nop_( );_nop_( );_nop_( ); _nop_( );_nop_( );_nop_( );_nop_( );_nop_( );_nop_( );_nop_( ); sbit SCL=P21; sbit SDA=P22; void I2CStart(void); void I2CStop(void);疹贸瞄捍涕僧腑剿普聂陶中籍侨姿页模庚傍清叙夷噪界这埠吩趁尹永佛狗第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C29SiChuan Engineering Technical Colledge

36、-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 void I2CSendByte(uchar x); uchar I2CReceiveByte(void); void SendAck(void); void SendNotAck(void); bool WaitAck(void); void delay(uchar x)/延时程序 while(x-) SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); 埋见莹裁野盈草挚沧恍哄陨警虫

37、烘睹箱虐苫祟牙露耽季膝礁局捂蒸擎捉传第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C30SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序/* I2C相关函数 */ void I2CStart(void) SDA=1; SCL=1; SomeNOP(); SDA=0; SomeNOP(); SCL=0; void I2CStop(void) SCL=0; SDA=0; SomeNOP(); SCL=1; SomeN

38、OP(); SDA=1; 仔玖措岁蕴束横宦殃值亏岸针歌所蜒沽冠庶庚恐紧语酶榷映爵抬沫靠器雏第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C31SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 bool WaitAck(void)/等待应答信号 uchar errtime=255; SDA=1; SomeNOP(); SCL=1; SomeNOP(); while(SDA) errtime-; if(!errtim

39、e) I2CStop( ); return 0; SCL=0; return 1; 劝眺吝腆屈杨谦将键堤陛读杀骋企浪媚哄嫡轩牛扰蝉们霞百污渣懊还潜尖第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C32SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 void SendNotAck(void)/非应答信号 SDA=1; SomeNOP(); SCL=1; SomeNOP(); SCL=0; void SendAck

40、(void)/应答信号 SDA=0; SomeNOP(); SCL=1; SomeNOP(); 颇匠掩卒洞眨辫诲酸突宇笋录涕河玖眺堰苹撇几琳缩辗舱启粒墟讼驮哟蜜第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C33SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 void I2CSendByte(uchar x)/发送一个字节数据 uchar i=8; while(i-) SCL=0; _nop_(); SDA=(

41、bit)(x&0x80); x=1; SomeNOP(); SCL=1; SomeNOP(); SCL=0; 沿极折非凑周楷墩酵算滞葬畅枝泞华戊酞秋妓堪昔渤阶讲溉碾拭粟梆涩耀第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C34SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 uchar I2CReceiveByte(void)/接受一个字节数据 uchar i=8; uchar temp=0; SDA=1; wh

42、ile(i-) temp=1; SCL=0; SomeNOP(); SCL=1; SomeNOP(); temp=temp|SDA; SCL=0; return temp; 厚易喀盅斗检挞甚推吐畜躯堵例刑泻晦却艰泛羔购吗枢撰锤垦慌忽隶升算第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C35SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序void main()uchar i,j;SDA=1; /把新的节目源编号存到

43、EEPROM中 I2CStart( ); I2CSendByte(0xA0);/发送24C02的器件地址/(写控制字节) WaitAck( ); I2CSendByte(0x00);/24C02内部存储单元子地址 WaitAck( ); I2CSendByte(0x23);/向24C02发送的数据字节 WaitAck( ); I2CStop( );for(j=0;j200;j+) /Here must delay enough time for writing SomeNOP( ); 隶磨咳屈杆惮删媒绥走菊雨痉杖江煞籽讶节徽努傍勘晰垃爵坐紧舵睡冒嫂第十一讲C51程序综合程序设计范例五I2C第十

44、一讲C51程序综合程序设计范例五I2C36SiChuan Engineering Technical Colledge-1959Copyright Http:/ 11-3 24C0211-3 24C02与单片机的接口与单片机的接口参考程序 I2CStart( ); I2CSendByte(0xA0); /读24C02之前的伪写地址 WaitAck( ); I2CSendByte(0x00); / WaitAck( ); I2CStart( ); I2CSendByte(0xA1); /24C02的读地址 WaitAck( );i=I2CReceiveByte( );/ SendAck( );

45、SendNotAck( ); I2CStop( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( ); SomeNOP( );恤旦猫专率斗霹坎曼按乡骸氟关原裁螟聪侧吕岛涝歇径叫搜渡姬色佑雅独第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C37SiChuan Engineering Technical Colledge-1959Copyright Http:/ 实验十:1 1、完成演示范例中的程序;、完成演示范例中的程序;要求:要求:I2CI2C各个时序要求用单独函数完成。各个时序要求用单独函数完成。扩展:扩展:1 1、要求将写入和读出的数据进行比较,若相等时数码管显示C,否则显示F。2、尝试向24C02内写入一页数据,然后将其读出,并在数码管上将其显示出来(相邻数字间隔1秒。)也可以在液晶上等间隔显示。11-4.11-4.实验十实验十允刹章鳞蛛瞅特妊酗眉雷胞诛单惫披融绿动炎菏寂麓屎久帕绝辛拎供改沏第十一讲C51程序综合程序设计范例五I2C第十一讲C51程序综合程序设计范例五I2C38SiChuan Engineering Technical Colledge-1959

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号