- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
ATMEL24c02使用详解(汇编及C程序都有)1000字
ATMEL24c02是一种串行EEPROM存储器,具有2KB的存储容量,可
通过I2C总线进行读写操作。
使用ATMEL24c02时,需先设置I2C总线的通信速率和设备地址。
然后,可以使用汇编语言或C语言编写程序进行读写数据操作。
汇编语言程序示例:
1.设置I2C总线通信速率及设备地址
```
LDAA#$0;设置I2C总线通信速率为100kHz
STAASCLDIV
LDAA#$A0;设置EEPROM的设备地址为0xA0
STAASLA
```
2.写入数据到EEPROM
```
BYTE_WRITEPROC
LDAA#$00;设置数据的存储地址为0x00
STAADADDR
LDAA#$A5;设置需要写入的数据为0xA5
STAADATA
JSRI2C_WRITE;调用I2C总线写入函数
RTS
BYTE_WRITEENDP
```
3.从EEPROM读取数据
```
BYTE_READPROC
LDAA#$00;设置数据的读取地址为0x00
STAADADDR
JSRI2C_START;发送起始信号
LDAA#$A1;设置EEPROM的设备地址为0xA1,读操作时
需要在地址末位添加1
JSRI2C_SEND;发送EEPROM设备地址
LDAA#$00;设置要读取的数据长度为1
JSRI2C_READ;调用I2C总线读取函数
LDADATA;将读取到的数据保存到DATA寄存器中
RTS
BYTE_READENDP
```
C语言程序示例:
1.在main函数中,调用I2C_Init()函数,设置I2C总线速率和设
备地址。
```
voidmain()
{
I2C_Init();//设置I2C总线速率和设备地址
}
```
2.写入数据到EEPROM
```
voidWrite_Byte(unsignedcharaddr,unsignedchardat)
{
I2C_Start();//发送起始信号
I2C_SendByte(0xa0);//写入EEPROM的设备地址
I2C_SendByte(addr);//设置存储地址
I2C_SendByte(dat);//写入数据
I2C_Stop();//发送停止信号
}
```
3.从EEPROM读取数据
```
unsignedcharRead_Byte(unsignedcharaddr)
{
unsignedcharres;
I2C_Start();//发送起始信号
I2C_SendByte(0xa0);//写入EEPROM的设备地址
I2C_SendByte(addr);//设置读取地址
I2C_Start();//发送起始信号
I2C_SendByte(0xa1);//设置EEPROM的设备地址为读取模式
res=I2C_ReadByte();//读取数据
I2C_Stop();//发送停止信号
returnres;//返回读取的数据
}
```
即可进行EEPROM的读写操作。
总的来说,使用ATMEL24c02进行
文档评论(0)