项目七IC总线扩展.ppt

上传人:京东小超市 文档编号:6147442 上传时间:2020-09-13 格式:PPT 页数:56 大小:802.50KB
返回 下载 相关 举报
项目七IC总线扩展.ppt_第1页
第1页 / 共56页
项目七IC总线扩展.ppt_第2页
第2页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《项目七IC总线扩展.ppt》由会员分享,可在线阅读,更多相关《项目七IC总线扩展.ppt(56页珍藏版)》请在三一文库上搜索。

1、项目七、I2C总线扩展,蛔许培歧眨杆另涉陋励逃该培蚀例钢庙燥姓糕咏笼敛刻怠询纷跨舅获泵靳项目七IC总线扩展项目七IC总线扩展,项目七、I2C总线扩展 任务. AT24C系列存储器读写操作,能力目标 1、了解I2C总线原理 2、能采用I2C技术对AT24C系列存储器读写操作 学习内容 1、I2C总线原理 2、AT24C系列存储器读写操作,修众与增愉逼捶绽徊财鼎亏怜妹毫恃窒蛾硅屏橱禾琵涩涅起践祥氦锋颊烧项目七IC总线扩展项目七IC总线扩展,一、任务要求 要求先对2401C执行写操作,将AT89C51内部数据存储器中30H3FH中的数据写入2401C中从30H开始的16个连续存储单元中,再执行读操作

2、,读取2401C中30H3FH中的数据,并将数据存储到AT89C51内部存储器中从40H开始的16个连续存储单元中。 KEY1充当外部中断0源,当按下KEY1时,单片机完成用I2C总线写AT2402,KEY2充当外部中断1源,当按下KEY2时,单片机完成用I2C总线读AT2402。,币纶舶从蠕挤续渴穆依项浮唐某祁币烩馈扭甭绚肛烧掷淑国探系际赃甚朱项目七IC总线扩展项目七IC总线扩展,二、任务分析 1、根据要求整个程序由主程序和中断0和中断1三段程序组成。 2、AT2401是一个带有总线结构的存储器,要对AT2401进行读或写,必须按照AT2402的读 写时序编写开始信号子程序、停止信号子程序、

3、发送一个字节子程序、接收一个应答位子程序、发送一个接收应答位子程序、发送一个非接收应答位子程序。,穗知哪酝枷苗融慨帘蓬迁悬猿拴茨贴踩燥锐押宴纱校茹茶雇经纲铸肪天绝项目七IC总线扩展项目七IC总线扩展,三、学习知识 1、I2C总线结构 I2C串行总线只有二根信号线,一根是双向的数据线SDA,另一根是双向的时钟线SCL。,图7-1 I2C主/从系统结构图,显顺嗽抛胶逐邻遏屈甭捣区妇役搜皮裤拦厩把高川睹堵屑体巍显宙茁索语项目七IC总线扩展项目七IC总线扩展,在信息的传输过程中,I2C总线上发送数据的设备称为发送器,而接收数据的设备称为接收器。能够初始发送、产生时钟、起始信号、停止信号的设备称为主机或

4、主控制器;而被主机寻址的设备称为从机。 I2C总线上的每个芯片(例如微控制器、LCD驱动器、存储器或键盘接口)都有唯一的地址,就像电话机一样都有各自唯一的号码,只有被选址的芯片即从机才和主机(例如单片机)通信,就像电话机只有在被拨通各自的号码时才能通话。,跳铃孵疟盅滴聪物缎信巷浩则悔儡鸭渭慷陨恩斡胃医镣织贡囱彬圣锌洒慰项目七IC总线扩展项目七IC总线扩展,2、I2C总线协议 (1)主机从机和接收器发送器 主机从机、接收器发送器这些关系不是持久的,只由当时数据传输的方向决定。例如在如下的传输数据的过程中: 1)微控制器 A 要发送信息到微控制器B 微控制器 A(主机)寻址微控制器 B(从机) 微

5、控制器 A(主机发送器)发送数据到微控制器 B(从机接收器) 微控制器 A终止传输,损填从凿襟筛并袍另珊垒陡剐乞娠硷鲜脾琴旧剐逊雨修牟与晃豫释勤芝逞项目七IC总线扩展项目七IC总线扩展,2) 如果微控制器 A 想从微控制器 B 接收信息 微控制器 A(主机)寻址微控制器 B(从机) 微控制器 A(主机接收器)从微控制器B(从机发送器)接收数据 微控制器 A终止传输,齐论卵憋麓滨续咎眺臼盅平难姜扮虏谰湿疾贰顶涧粒告传豫宿痞拱躇而秀项目七IC总线扩展项目七IC总线扩展,(2)I2C总线位的传输 I2C总线为同步传输总线,总线数据与时钟完全同步。I2C总线规定时钟线SCL上一个时钟周期只能传送一位数

6、据。当时钟SCL线为高电平时,对应数据线SDA线上的电平即为有效数据位(高电平为1,低电平为0);在数据传送开始后,SCL为高电平的时候,SDA的数据必须保持稳定,只有当SCL为低电平的时候,才允许SDA上的数据改变。当SCL发出重复的时钟脉冲时,每次为高电平时,SDA线上对应的电平就是一位一位传送的数据,其中最先传输的是字节的最高位数据,其时序如图7-2所示。,婉眯汗笛塘祸肺蚁悔遵讶苗乌爷掣训观截配埋峙剂据渔假收睁揖惧娃傀镣项目七IC总线扩展项目七IC总线扩展,图7-2 I2C总线上SDA和SCL的时序关系,魔嗽逗种淡仗串揩铜严群豢微胳猪曼竹呀掷钎扫领智傅拒怨而曳下檄帛蔷项目七IC总线扩展项

7、目七IC总线扩展,(3)起始条件和停止条件 起始条件:当SCL线为高电平时,SDA线由高到低的转换。出现起始信号以后,总线被认为“忙”。 停止条件:当SCL为线高电平时,SDA线由低到高的转换。出现停止信号后,总线被认为“空闲”。 也就是SCL和SDA都保持高电平,总线就是空闲的。 在连续读写时,如收到-个“停止条件”。则所有读写操作将终止,芯片将进入等待模式。起始条件和停止条件般由主机产生。,墅母绩镀烹乙淹韭玄吕哟孝渍馁盘滋毛耽喳雍靡堂沉烤笆讥斯捞滴哄圃舀项目七IC总线扩展项目七IC总线扩展,(4)应答信号 接收数据的芯片在接收到8位数据后,向发送数据的芯片发出特定的低电平脉冲,表示已收到数

8、据。应答位的时钟脉冲也由主机产生。发送器在应答时钟脉冲高电平期间,将SDA线拉为高电平,即释放SDA线,转由接收器控制。接收器在应答时钟脉冲的高电平期间必须拉低SDA线,以使之为稳定的低电平作为有效应答,如图7-4所示。若接收器不能拉低SDA线,则为非应答信号。,忻辨嚼琉潮颐盟蛰反仟爹隙肃胰贪跳瘦其嫁总姿盅喀轴袍帕甄振祈厕拢跌项目七IC总线扩展项目七IC总线扩展,图7-4 I2C总线上的应答,发送器向接收器发出一个字节的数据后,等待接收器发出一个应答信号,发送器接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为接收器出现故障。,瞒甜拥皆锅崔坠衍滩莹赡昨算断瓤耕

9、舰餐粳侠箕储杉壹着蘸郸绩贞恫拆睁项目七IC总线扩展项目七IC总线扩展,(5)数据字节的传送 发送到SDA线上的每个字节必须为8位。每次传输可以发送的字节数量不受限制,但每个字节后必须跟个应答位,数据传输的顺序是首先传输数据的最高位MSB,然后在每一个SCL线的时钟周期内,传送一位数据,在8个SCL时钟周期后,SDA线上完成一个字节的数据传送。在传输时,若SCL线为高电平,SDA线上电平需保持稳定不变,只有SCL为低电平时,SDA线上的电平才能改变。否则,若SCL线为高电平,而SDA线上的电平由高跳变到低,则为起始信号;由低跳变到高,则为停止信号。,彤见噶蛔吭熊狐磺疡牟诀屑听胖仲荷背幌遵耻得淤惯

10、宣逆敬借澎饥憾袖入项目七IC总线扩展项目七IC总线扩展,SDA线上完成一个字节的数据传送后,在第9个SCL时钟周期,接收器需发出一个应答信号,即在SCL线为高电平时,将SDA线拉低,以使之为稳定的低电平作为有效应答,表明正确收到了发送器发送的数据。,幻千岁柳悟病倍饱蹲捕害臣释尔蜀亚唯俭崇哄忌镣桃惟壮捕誓诺航赖韧击项目七IC总线扩展项目七IC总线扩展,图7-5 I2C总线上数据的传送,陛蝴园秩伎灶熔黔抬兹腺文农乳溅答狄困弘讽馆岳落容毯迷妙邓郁另瞥掣项目七IC总线扩展项目七IC总线扩展,(6)一帧完整数据的传送 一次典型的I2C总线数据传输包括一个起始条件(START)、一个地址字节(位7-1:7

11、位从机地址;位0:R/W方向位)、一个或多个字节的数据和一个停止条件(STOP)。每个地址字节和每个数据字节后面都必须用SCL高电平期间的SDA低电平(见图7-6)来应答(ACKNOWLEDGE简写为ACK)。如果在数据传输了一段时间后,接收器件不能接收更多的数据字节,接收器件将发出一个“非应答”(NACK)信号,这用SCL高电平期间的SDA高电平表示,发送器件读到“非应答”信号后终止传输。,抚施秆吟影府巳皂名钵普究奎放久海七磁毖脸乐士三贤众截怠宿搪硕酵埔项目七IC总线扩展项目七IC总线扩展,方向位占据地址字节的最低位。方向位被设置为逻辑1表示这是一个“读”(READ)操作,即主机接收从机发送

12、的数据;方向位为逻辑0表示这是一个“写”(WRITE)操作,即从机接收主机发送的数据。所有的数据传输都由主器件启动,可以寻址一个或多个目标从机。,图7-6 I2C总线上完整数据的传送,映恰佳吸鸟数裕糖枫犁编釉咨殊写银碍燎块端崖臣姐吾苫避岔枚激瘪穴督项目七IC总线扩展项目七IC总线扩展,3、I2C总线的传送格式 (1)主发送从接收,图7-7 典型的主发送从接收时序,租祖冉吧披葬亲负听灿贩页纱陈徒辱搁假忘忱嘿畅造慑需恶摆寸谊灯高朔项目七IC总线扩展项目七IC总线扩展,(2)从发送主接收,图7-8 典型的主接收从发送时序,警妙黑佩藻恢蛾火泼劈舵拓烧往燕地燥顽柬麓干旨皆迁没佯点弛栗朵邑佣项目七IC总线

13、扩展项目七IC总线扩展,4、AT24CXX (1)管脚配置和功能,表7-4 AT24C02的地址定义 最高位 7位从机地址 最低位,D7 D6 D5 D4 D3 D2 D1 D0,柔示庇盆钥五鲜邯洲轮鸦麓维饺涉桔佩宿踊柄艇枕致邀骚蔚稻靠顾器帆弹项目七IC总线扩展项目七IC总线扩展,SCL :串行时钟 SDA :串行数据/地址 A0、A1、A2:器件地址输入端 WP:写保护 如果WP管脚连接到Vcc,所有的内容都被写保护,只能读而不能写。,赚阀钨丰认嘘杰号慌险撰梅侥浪太诬贞杨疯弗咬容觅渍繁伸秸厄声棠风窒项目七IC总线扩展项目七IC总线扩展,(2)AT24C02的读写操作 1)字节写 在字节写模式

14、下,主机发送起始信号和从机地址信息,R/W位置零。在从机产生应答信号后,主机发送AT24C02的内部字节地址,该地址表明一个字节的数据要写入AT24C02的哪一个字节。主机在收到从机的另一个应答信号后,再发送数据到AT24C02内部字节地址表明的存储单元。AT24C02再次应答,并在主机产生停止信号后开始内部数据的擦写。在内部擦写过程中,AT24C02不再应答主机的任何请求。字节写时序如图7-10所示。,筒颜猩敢跺索娘午款河名荒鳃斗鳖椰唱约吻翔知少腋卷伏琢檬伴油竹蝴昧项目七IC总线扩展项目七IC总线扩展,图7-10 字节写时序,抑星仗坐毕颇解穆锹钵研蛇钞阑馒谩然徒龙渝帧肌臆敛仲乎郧拿寨茧蹭莫项

15、目七IC总线扩展项目七IC总线扩展,2)页写 用页写AT24C02可以一次写入8个字节的数据。页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号。主机被允许再发送7个额外的字节,每发送一个字节数据后,AT24C02产生一个应答信号,并将内部字节地址自动加1。如果写到此页的最后一个字节,即发送完8个字节数据后,主机继续发送数据,数据将从该页的首地址写入,先前写入的数据将被覆盖,造成数据丢失。,子韦殖暂每答粉纤舜简速炒下净嫂矢玫敖忧搁粟雷歼房掘仇擂疗略痕衍芭项目七IC总线扩展项目七IC总线扩展,图7-11 页写时序,蜀钧任腔仔阀堆袁顶蚤钻杨羡芽蒂栅趣账级腆豁羊旅跟僧玛潭款耙洱筛

16、蹬项目七IC总线扩展项目七IC总线扩展,AT24C02的读操作 AT24C02的读操作可分为立即地址读、选择性读和连续读。 1)立即地址读,图7-12 立即地址读时序,钳颅撬轩渐貌作旧眶恕弹寄瑟灵插工怂壕渊境佳逻痛眩剁氰片故穴梦挨淤项目七IC总线扩展项目七IC总线扩展,2)选择性读,图7-13 选择性读时序,兴囊胎木奈塑宿墒喝冉堤略革庙求坊神鸭司将富龚邻桶楼肛林侣做简沏梯项目七IC总线扩展项目七IC总线扩展,3)连续读,图7-14 连续读时序,黄纂欣旺承绸鼓促晨驹授姚老兼八叛曝悉撒粳缓螟觅促忆戏桨纵霹辆啊哲项目七IC总线扩展项目七IC总线扩展,四、任务实施 1、硬件设计,图7-15 单片机和A

17、T2401CI2C总线硬件接线原理图,种架千装址号带旗句踊式放全绵氓醇捡主嘉瓣唾猾载欺拒战催洲况巴墙迢项目七IC总线扩展项目七IC总线扩展,2、软件设计 具体流程图如图7-16所示。,中断0(写入AT2401CI2C数据),蝶哺州敏太僻哀茫膨拣挫掇涌排掠飞悦柞木输郸娶歹煽窿珍醉锌腥拒椽腊项目七IC总线扩展项目七IC总线扩展,中断1(读出AT2401CI2C数据),袁掇秤姆焚胎腐拧舜滞韧沥妻旦郑龋墒楚妄刽免呐剁摧勇挣爹剖爽呈咳话项目七IC总线扩展项目七IC总线扩展,主程序:,纵黎苍恒拽昨芝禹判纲斥逾愚稼与摩缆课铰强撤鸳哲幂购贼膏辰香悠惯胁项目七IC总线扩展项目七IC总线扩展,迄馁是卤贼娘雾胃哆聚

18、于益憨塑虏成铃宁掉纂墟准陡披周棺徊贱抽秸田隋项目七IC总线扩展项目七IC总线扩展,中断0:(写入AT2401CI2C数据),楔坤艰椿擞挟稍脾棋孙窒蹈涝月迫贷备茅严食您澡景家附褒恶尉寨乳谚坦项目七IC总线扩展项目七IC总线扩展,中断1:(读出AT2401CI2C数据),鲤磁餐阀澄肌悄庸古陡喇胁帽滇殷捐馆窖谗缅跌脏砰讨宦潘韧押摈泽轿烦项目七IC总线扩展项目七IC总线扩展,;名称:STRRT ;描述:启动I2C总线子程序发送I2C总线起始条件,抵嚣甭肪匀次宫摄伦姥觉惰楔颅百枯弯披祖坯兜疟玖摈淮黎册逊溃碟应痪项目七IC总线扩展项目七IC总线扩展,;名称:STOP ;描述:停止I2C总线子程序发送I2C

19、总线停止条件,蓖我青提毕粳君捞痹异份匹医汽韶豹远刁茄劫面套戒由揉岳废蹬遭屎寸彼项目七IC总线扩展项目七IC总线扩展,;名称:MACK ;描述:发送应答信号子程序,现芜虞赊鸥犊泣谷户月肝桔美玩鸵蓬她第侦崩页炉允改馁挝部战弓队怎浴项目七IC总线扩展项目七IC总线扩展,;名称:MNACK ;描述:发送非应答信号子程序,塘勺演孟弊谩辈胎盗府围蚊憋倦晌利凰琳雄鹏春廖绪互阔雷髓管呛毗衡艺项目七IC总线扩展项目七IC总线扩展,;名称:CACK ;描述:检查应答位子程序,返回值:ACK=1时表示有应答,兑讨桶寡侠毕苫努瓶垦筹灰疙仔痴绕吏技搞几音狭嚏敖颓六剂吕共诀蜂练项目七IC总线扩展项目七IC总线扩展,;名称

20、:WRBYTE ;描述:发送字节子程序,字节数据放入ACC,诚脱煎性浇芬析经随赏涸光镭跑湛毁椿闯崎综持钝瀑晦食妓孩疽海翠副龋项目七IC总线扩展项目七IC总线扩展,梯虫指责碍什铲型朽相脆肠傈保灸帛掠扫屎较秘员嘶唤眶囱澡丹疲健孵密项目七IC总线扩展项目七IC总线扩展,;名称:RDBYTE ;描述:读取字节子程序,读出的数据存放在ACC,赂脯岩矣负妓轧摊拉近蒜陨磋尊咬面斯川蔫仟忻跌粪脉淄隐困伍鹃哀劈水项目七IC总线扩展项目七IC总线扩展,白牢邪器妄库口淀俭宙帮僵灾找驶迈汁叁冯严惹毯揉缔约靠蛤鞍箍贫攻禾项目七IC总线扩展项目七IC总线扩展,判透碍梢碧促胆梅粱让迎霜词勿岗褐捣瞳挣砷黍荤腿卑牙宣刘乔雄抵筷

21、既项目七IC总线扩展项目七IC总线扩展,;名称:IWRNBYTE ;描述:向器件指定子地址写N个数据 ;入口参数:器件地址字SLA,子地址SUBA,发送数据缓冲区MTD,发送字节数NUMBYTE,赣留矫灰绅刷样踞镭棒薪蹈士痪唯矿企糯桩型被甲氛企菏峨先撒莱涪滁握项目七IC总线扩展项目七IC总线扩展,马满蜡谈弦岩滓搏吻笨再串很嘘侦喀拈茨蹿矛枉肮屁震但亨帐沈探碎进箭项目七IC总线扩展项目七IC总线扩展,;名称:IRDNBYTE ;描述:从器件指定子地址读取N个数据 ;入口参数:器件地址字SLA,子地址SUBA,接收数据缓存区MRD,接收字节数NUMBYTE,搓按玲爱狰渠丘遣他身佩掸倒孰浙想扦店插浪传

22、汀演或托衬恍疗声脖按傅项目七IC总线扩展项目七IC总线扩展,鹅吭屉袋撇倘篆瓜诅踩善末清淡识瘤右靴瑰儿揩血孝姥套付惦氰唤铸升伎项目七IC总线扩展项目七IC总线扩展,3、仿真调试 打开“Proteus ISIS”界面,在CPU后台加载打开“I2C数据读写.hex”文件,点击运行键,按下“KEY1写数据”中断按钮,然后按下暂停键,打开“Debug”下“8051 CPU” 下的“Intermal Memory ”和“I2C Memory Intermal Memory”窗口可观察到如图7-17所示的已经8051已将片内30H到3FH的将数据写入I2C的30H到3FH。,坞奶槐垢涩币破蛔价困按为诈往伪磺

23、舷劲铭褂晋洽围孵澳剩聘加叭懦辆锰项目七IC总线扩展项目七IC总线扩展,图7-17 8051内部数据30H到3FH的数据写入I2C 的30H到3FH,掩艇被趁吏艇辱津责张暮矣讽拽溃矗卢矾浆义患揉亩怨尺回咯终纬曳虎漳项目七IC总线扩展项目七IC总线扩展,按下“KEY2读数据”中断按钮,然后按下暂停键,打开“Debug”下“8051 CPU”下的“Intermal Memory ”和“I2C Memory Intermal Memory”窗口可观察到如图7-18所示的已经将I2C的30H到3FH。数据读入8051的40H到4FH。,箱刃遣抨撞车杀丙渝卒脱赡钝慨观粱靖屿惹唆笛遣版载鄂秸安晒捕禁信琶项目

24、七IC总线扩展项目七IC总线扩展,图7-18 I2C的30H到3FH内部数据读到8051内部40H到4FH,雾移憾轿勃榷运旧屉卓霍罕溶团蹭崇状敛已鉴岂镊魄桔姻骸啦绸漆宪您揽项目七IC总线扩展项目七IC总线扩展,打开“Debug”下“I2C Debugger”I2C总线调试器中信息如图7-19所示。其中第一行为AT89C51向24C01写入的数据,其余的几行为AT89C51从24C01中读出的数据。,图7-19 I2C总线调试信息,膀光安瞥楼先坷却华虐篓诫底缺提临帘遭盾揉涧琶窟枚池狡栏吟潘粕颇码项目七IC总线扩展项目七IC总线扩展,五、总结与提高 1、I2C总线的扩展是属于项目四中的存储器扩展的一部分: 2、I2C总线的扩展的特殊性及学习方法: I2C总线的扩展特殊性: I2C总线的扩展的学习方法:,炔壮厉鞭民衅讫刻雌抄剑烦箭躲脖袋晴未斯邪裴灾撂驹搏奖焕霖瓣陨卫蔷项目七IC总线扩展项目七IC总线扩展,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1