下载此文档

复旦大学微机接口实验I2C实验实验报告.docx


文档分类:高等教育 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
I2C实验实验报告
08300720314
预习报告的修改
实验流程图的修改:
延时足够长的时间
实验代码的修改:
;使用前定义常量
ACK BIT 10H应答标志位
SLA DATA 50H器件从地址
SUBA DATA 51H器件子地址
NUMBYTE DATA 52H读写的字节数
SDA EQU ; I2C 总线定义
SCL EQU
MTD EQU 30H发送数据缓冲区首址缓冲区 30H
MRD EQU 40H接收数据缓冲区首址缓冲区 40H
CSI24WC2 EQU 0A0H
ORG 8000H
AJMP MAIN
ORG 8100H
MAIN:
MOV SLA,#CSI24WC2
MOV SUBA,#80H对指定存储单元进行读取
MOV NUMBYTE,#10H
;对发送缓冲区进行赋值
MOV R1,#MTD;
MOV R0,#10H;
BACK:
MOV A,R0;
MOVX ***@R1,A;
INC R1;
DJNZ R0,BACK;
;向器件指定子地址写 N个数据
;入口参数:器件从地址 SLA器件子地址SUBA发送数据缓冲区 MTD发送字节数NUMBYTE
;占用 A R0 R1 R3 CY
LCALL IWRNBYTE;
MOV R5,#0FFH; 延时
DJNZ R5,$;
MOV R5,#0FFH; 延时 增加一个延时,给 E2PRO M写入的时间
DJNZ R5,$;
;向器件指定子地址读取 N个数据
;入口参数:器件从地址SLA器件子地址SUBA接收字节数 NUMBYTE
;出口参数:接收数据缓冲区 MTD
;占用 A R0 R1 R2 R3 CY
LCALL IRDNBYTE
DIE:
SJMP DIE;
$INCLUDE () END;
实验中遇到的问题
1、 在线调试的情况下, 最开始使用单步执行, 在执行到调用IWRNBYTE函数和IRDNBYTE 两个函数时,程序运行响应非常慢,但是结果是正确的。
2、 后来使用直接运行到“ SJMP DIE”断点处,发现响应速度很快,但是数据没有正确 读入。
关于问题的讨论:
1、在KEIL编译环境下,使用monitor51进行在线调试时,单步执行的过程可能包含有 额外的处理过程,尤其在调用函数的时候这个过程可能更加复杂, 所以会造成函数处理时间
增加,所以会导致在单步执行时的程序响应时间增加。
2、 最开始的时候设置的延时时间为 563us, (16 * 16 * 12 / 11 us )可能E2PR0M的电
擦除和写入需要更长的时间(器件手册上写明擦除时间不超过 10ms 典型时间为 5ms)。
于是增加了延时,到 5ms 可以正常写入。后来觉得 5ms 太长,

复旦大学微机接口实验I2C实验实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人suijiazhuang2
  • 文件大小36 KB
  • 时间2020-11-17
最近更新