电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

24c02读写程序

34页
  • 卖家[上传人]:夏**
  • 文档编号:483351930
  • 上传时间:2022-11-18
  • 文档格式:DOC
  • 文档大小:153.51KB
  • / 34 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、E2PROM芯片24C02的读写程序 一、实验目的: 给24C02的内部RAM写入一组数据,数据从24C02内部RAM的01h开始存放。然后再把这组数据读出来,检验写入和读出是否正确。 在这里我们给24C02中写入0、1、2的段码,然后把它读出来,送到数码管显示。二、理论知识准备:上面两个实验主要学习的是利用单片机的串口进行通讯,本实验要介绍的是基于I2C总线的串行通讯方法,下面我们先介绍一下I2C总线的相关理论知识。(一)、I2C总线概念I2C总线是一种双向二线制总线,它的结构简单,可靠性和抗干扰性能好。目前很多公司都推出了基于I2C总线的外围器件,例如我们学习板上的24C02芯片,就是一个带有I2C总线接口的E2PROM存储器,具有掉电记忆的功能,方便进行数据的长期保存。(二)、I2C总线结构I2C总线结构很简单,只有两条线,包括一条数据线(SDA)和一条串行时钟线(SCL)。具有I2C接口的器件可以通过这两根线接到总线上,进行相互之间的信息传递。连接到总线的器件具有不同的地址,CPU根据不同的地址进行识别,从而实现对硬件系统简单灵活的控制。一个典型的I2C总线应用系统的组成结构如

      2、下图所示(假设图中的微控制器、LCD驱动、E2PROM、ADC各器件都是具有I2C总线接口的器件):我们知道单片机串行通讯的发送和接收一般都各用一条线TXD和RXD,而I2C总线的数据线既可以发送也可以接受,工作方式可以通过软件设置。所以,I2C总线结构的硬件结构非常简洁。当某器件向总线上发送信息时,它就是发送器,而当其从总线上接收信息时,又成为接收器。(三)、I2C总线上的数据传送下面我们看看I2C总线是如何进行数据传送的。我们知道,在一根数据线上传送数据时必须一位一位的进行,所以我们首先研究位传送。1、位传输I2C总线每传送一位数据必须有一个时钟脉冲。被传送的数据在时钟SCL的高电平期间保持稳定,只有在SCL低电平期间才能够改变,示意图如下图所示,在标准模式下,高低电平宽度必须不小于4.7us。那么是不是所有I2C总线中的信号都必须符合上述的有效性呢?只有两个例外,就是开始和停止信号。开始信号:当SCL为高电平时,SDA发生从高到低的跳变,就定义为开始信号。停止信号:当SCL为高电平时,SDA发生从低到高的跳变,就定义为结束信号。开始和结束信号的时序图如下图所示:2、数据传输的字节

      3、格式SDA传送数据是以字节为单位进行的。每个字节必须是8位,但是传输的字节数量不受限制,首先传送的是数据的最高位。每次传送一个字节完毕,必须接收到从机发出的一个应答位,才能开始下一个字节的传输。如果没有接受到应答位,主机则产生一个停止条件结束本次的传送。那么从机应该发出什么信号算是产生了应答呢?这个过程是这样的。当主器件传送一个字节后,在第9个SCL时钟内置高SDA线,而从器件的响应信号将SDA拉低,从而给出一个应答位。好啦,了解了I2C传输数据的格式,现在来研究双方传送的协议问题。3、 I2C数据传输协议I2C总线的数据传输协议如下:(1)、主器件发出开始信号(2)、主器件发出第一个字节,用来选通相应的从器件。其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,方向位为“1”表示接受。(3)、从机产生应答信号,进入下一个传送周期,如果从器件没有给出应答信号,此时主器件产生一个结束信号使得传送结束,传送数据无效。(4)、接下来主、从器件正式进行数据的传送,这时在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位(传送的时候先送高位,再送低位)。当一个字节传送

      4、完毕时,再发送一个应答位(第9位),如上一条所述,这样每次传送一个字节都需要9个时钟脉冲。数据的传送过程如下图所示:(四)、24C02芯片相关介绍AT24C02是带有I2C总线接口的E2PROM存储器,具有掉电记忆的功能,并且可以象普通RAM一样用程序改写。它的容量是256个字节(00h0ffh),有A2、A1、A0三位地址,可见I2C总线上可以连接8片AT24C02,它的寻址字节是1010 A2A1A0 R/W。板上面24C02的电路连接如图所示:我们对引脚的功能作一个简单的解释: VCC,GND:电源、地引脚 A2A1A0:地址引脚 SCLK、SDA:通信引脚 WP:写保护引脚从上面的电路连接知:A2A1A0=000,可见如果要对24C02进行写操作,寻址字节是1010 000 0;如果对24C02进行读操作,寻址字节是1010 000 1。用单片机的P1.6脚作为串行时钟线,用P1.7脚作串行数据线。(五)、程序分析 写过程:(1)、主机首先发出开始信号(2)、发出写24C02的寻址字节1010 000 0,即0A0H(3)、发数据写入24C02的地址,本例中为01H(4)、往2

      5、4C02中写入数据,这里是3个字节,分别为48h,0ebh,52h。(5)、写完毕发出停止信号 读过程:(1)、主机发出start信号(2)、发写24C02的寻址字节1010 000 0(大家可能要问:我们是读数据,为什么要发写信号呢?这是因为你首先要送出一个信号,说明从24C02中的哪个地址读取数据。)(3)、发要读取的数据在24C02中的地址,即01h(4)、主机发start信号(5)、发读24C02的寻址字节1010 000 1(5)、从24 C02中读取数据(6)、读取完毕发出停止信号在这个程序中,我们把开始信号,结束信号、写一个字节数据、读一个字节数据都编制成为通用的子程序,便于在程序中随时调用。发送和接受应答位的过程放到子程序中,这样可以使得程序结构简化。具体的程序如下所示,希望大家认真理解。三、实验程序Org 0000hI2cdata equ 30h ;发送数据缓冲区的首址2402data equ 01h ;接受缓冲区首址numdata equ 03h ;传送的字节数,传送3个字节Sda bit p1.7Sclbit p1.6Ajmp mainMain: Lcall in

      6、it ;初始化给30h,31h,32h中存入0,1,2的段码Mainwr:Lcall start ;启动 Mov r7,#0a0h Lcall send ;发送写24C02的寻址字节 Mov r7,#2402data Lcall send ;发送数据存入24C02的地址 Mov r5,#Numdata ;欲发送的字节数 Mov r0,#i2cdata ;发送缓冲区的首址wrloop:Mov a,r0 Mov r7,a Inc r0 Lcall send Djnz r5, wrloop ;把3个字节的数据发送出去 lcall stop ;停止 lcall d1s mov r5,#Numdata ; 要读取的字节数重新赋值Mainre:lcall start ;启动 Mov r7,#0a0h Lcall send ;发送写24C02的寻址字节 Mov r7,#2402data Lcall send ;发接受缓冲区首址 Lcall start ; 再次启动 Mov r7,#0a1h Lcall send ;发送读24C02的寻址字节Reloop: Lcall read ;调用读取一个字节数据

      7、的子程序 mov p0,r7 ;把读进来的数送到p0口显示 lcall d1s lcall d1s Djnz r5,reloop Lcall stop ;3字节读取完毕发出停止信号 Ajmp $init: mov p2,#0ffh ;初始化,30h、31h、32h中存入0、1、2的段码 mov 30h,#48h mov 31h,#0ebh mov 32h,#52h retstart:setb sda ;启动信号子程序,大家可以参考开始信号的时序图 setb scl lcall d5u clr sda lcall d5u clr scl retstop:clr sda ;停止信号子程序 setb scllcall d5u setb sda lcall d5u clr sda clr scl ret;send是发送一个字节子程序send: mov r6,#08h mov a,r7 ;要发送的数在r7中sendlop1 : rlc a ;左环移,把A的最高位移入cy mov sda,c ;把cy的值通过sda发送出去 setb scl ;在scl上产生一个时钟 lcall d5u clr scl djnz r6, sendlop1 ;重复8次,发送一个字节;cack是检查应答信号的子程序cack:setb sda ;主机首先拉高sda setb scl ;发出一个时钟 lcall d5usendlop2:mov c,sda ;读入sda的状态,如果是0表示接受到了应答 jc sendlop2clr scl ;接受到应答位,结束时钟retread: mov r6,#08h ;读取一个字节子程序readlop1: setb sda ;置sda为输入方式 setb scl ;发出一个时钟 lcall d

      《24c02读写程序》由会员夏**分享,可在线阅读,更多相关《24c02读写程序》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.