reg52!=0;number;
}
/
}
/
}
/
SCL=1;
Write8Bit(address);
SDA=0,rbyte=0;
SCL=0;
}
}
/
ch=Read8Bit()!=0;
SCL=0;包括一个 52 标准内核的头文件
#define WriteDeviceAddress 0xa0 //
Write8Bit(WriteDeviceAddress);/
#define uchar unsigned char //<
SCL=1;
NoAck();1;temp--) ;/EEPROM的写读程序如下;本课试验写入一个字节到 24c02 并读出来
void main(void) /
}
}
/
for(;
TestAck(),uchar address)
{
Start();
}
/
ErrorBit=SDA;
Stop(),我想明白其中的ACK测试函数 bit TestAck() 是做什么用的; /
}
//
SCL=1?
//
sbit SDA=P2^0;
SCL=1;
Start();
Write8Bit(address);写入 8 个 bit 到 24c02
Write8Bit(unsigned char input)
{
unsigned char temp;
}
return(rbyte);
Start();
/
TestAck();temp;/定时函数
void DelayMs(unsigned int number)
{
unsigned char temp!=0;1;
Write8Bit(WriteDeviceAddress);/
SDA=1;temp;写入一个字节到 24c02 中
void Write24c02(uchar ch?;temp;/
c1=Read24c02(0x03);
SCL=0;/
Write8Bit(ReadDviceAddress);从 24c02 中读出 1 个字节
uchar Read24c02(uchar address)
{
uchar ch;开始总线
void Start()
{
SDA=1;
SCL=0;
Stop()?;
P1=c1;
SCL=0;结束总线
void Stop()
{
SCL=0;
Write8Bit(ch);
TestAck();
TestAck();定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
#include <
SDA=0;
}
/!=0;
DelayMs(10);
rbyte=rbyte|((unsigned char)(SDA));
rbyte=rbyte<,0x03);temp--)
{
SDA=(bit)(input&0x80);定义器件在 IIC 总线中的地址
#define ReadDviceAddress 0xa1
sbit SCL=P2^1; //
for(temp=8;/
SDA=1;从 24c02 中读出 8 个 bit
uchar Read8Bit()
{
unsigned char temp;
SCL=1;number--)
{
for(temp=112;
TestAck();发 ACK0
void NoAck()
{
SDA=1;/ 主程序
{
uchar c1;测试 ACK
bit TestAck()
{
bit ErrorBit;
return(ErrorBit);<
while(1);
input=input<
for(temp=8;
return(ch);temp--)
{
SCL=1;
Write24c02(0x0f0;
}
/
TestAck();/.h>
单片机EEPROM应用问题
答案:4 悬赏:50
解决时间 2021-03-09 06:17
- 提问者网友:情系雨樱花
- 2021-03-08 12:47
最佳答案
- 二级知识专家网友:一起来看看吧
- 2021-03-08 13:09
就是检查并接受ack应答信号~
自己看一下iic总线的时序图~ 这是比较基础的问题~ 必须要弄清楚~
自己看一下iic总线的时序图~ 这是比较基础的问题~ 必须要弄清楚~
全部回答
- 1楼网友:心痛成瘾
- 2021-03-08 16:36
可以先仔细看看I2C协议。这样才能对I2C协议有很深刻的理解。对ACK应答有深刻的理解,再看程序
- 2楼网友:萌萌哒小可爱
- 2021-03-08 15:16
你找一个EEPROM芯片的规格书,那里有明确的说明IIC总线时序协议。你问的是IIC协议的应答时序,表示在没完成一个完整操作后从器件要返回一个信号告诉主器件接受完毕。就是这么简单!
- 3楼网友:為→妳鎖鈊
- 2021-03-08 13:59
用的是什么eeprom?
只管写吧,在一个扇区内可以写多个字节,可以多次写的,如果是flash的话,只是擦除时要以扇区为单位来擦除
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯