资料介绍
#include "msp430x13x.h"
void nop(void)
{
_NOP();
_NOP();
_NOP();
}
void start(void)
{
SCLEN &= (~(SDA+SCL));
_NOP();
_NOP();
_NOP();
SDAEN |= SDA;
SCLEN |= SCL;
return;
}
void stop(void)
{
SDAEN |= SDA;
SCLEN &= (~SCL);
SDAEN &= (~SDA);
return;
}
unsigned char ControlByte(int AddressByte)
{
unsigned char temp;
_BIC_SR(0X0001); //CLEAR SR 'C'
temp = (char)(AddressByte>>8);
temp <<= 1 ;
temp &= 0X0E;
temp += Code;
return temp;
}
int shout( unsigned char data )
{
unsigned char mask,i,temp;
unsigned char Value;
Value = data;
mask=0X80;
for (i=0;i<=7;i++){
temp = (Value & mask);
if( temp !=0 ){
SDAEN &= (~SDA);
SCLEN &= (~SCL);
if( !( SDAIN & SDA ) ){
return 1;
}
}
else {
SDAEN |= SDA ;
SCLEN &= (~SCL);
}
mask>>=1;
SCLEN |= SCL;
}
SDAEN &= (~SDA);
SCLEN &= (~SCL);
if ( !(SDAIN & SDA )){
// return 1;
}
SCLEN |= SCL;
return 0;
}
// 写 Number 个字节到 E2 中
int WriteBlock(int number,unsigned char *dataadr,unsigned char *e2adr)
{
unsigned char *p1;
int i;
unsigned char temp;
unsigned int aaa;
//unsigned char *temp1;
_DINT();
SDADAT &= (~(SCL+SDA));
start();
aaa = (int)(e2adr );
temp = ControlByte(aaa);
shout(temp);
shout( (int)(e2adr));
p1 = dataadr;
for (i=1;i<=8;i++) {
shout(*p1);
p1++;
}
stop();
_EINT();
//Write a block use the address and back..
return 0; //if error return 1 right return 0
}
// 写N * 8个字节
int WriteN8Byte(int Number)
{
unsigned char *e2adr,*dataadr;
unsigned int i,j;
//int WriteBlock(int number,unsigned char *dataadr,unsigned char *e2adr)
dataadr = (char*)0x200;
e2adr = (char*)0x00;
for( i=1;i<=Number;i++){
WriteBlock(8,dataadr,e2adr);
dataadr += 8;
e2adr += 8;
for (j=0;j<=3333;j++);
}
return 0;
}
//; Clock out an acknowledge bit (low).
//; SCL expected low on entry. Return with SCL, SDA low.
void Ack(void)
{
SDAEN |= SDA;
SCLEN &= ~SCL;
SCLEN |= SCL;
}
//; Clock out a negative acknowledge bit (high).
//; SCL expected low on entry. Return with SCL low, SDA high.
void Nak(void)
{
SDAEN &= ~SDA; //; NAK bit
SCLEN &= ~SCL; //; raise clock
SCLEN |= SCL; //; drop clock
}
//由E2 中 读8位 一个字节 数据
unsigned char shin(void)
{
int i;
unsigned char temp;
unsigned char Mask;
SDAEN &= ~SDA; // make SDA an input
temp =0;
//读8位数据
for( i=1;i<=8;i++) {
SCLEN &= ~SCL; //SCL = H
Mask = 0;
if (SDAIN &SDA)
Mask = 1;
else
Mask =0;
// Mask = SDAIN & SDA;
Mask <<= (8 - i);
temp ^= Mask;
SCLEN |= SCL;
}
return temp;
}
// 24c256 512 页 64字节 14-15bit Word Address!!!
//**********************************************************************
// 读取N 个字节 到RAM 中
// 参数说明: number 读取的个数,dataadr,读到RAM 的地址?e2adr,E2地址
//**********************************************************************
int ReadNByte(int number,unsigned char *dataadr,unsigned char *e2adr)
{
int i;
unsigned char *p;
unsigned char temp;
unsigned char temp1;
_DINT();
SDADAT &= (~(SCL+SDA));
p=dataadr;
start();
temp = ControlByte((int)(e2adr ));
shout(temp);
shout((int)(e2adr ));
start();
temp |= 0X01;
shout(temp);
temp1=0;
for (i=1;i<=number;i++){
temp1 = shin();
*p++ = temp1;
Ack();
}
Nak();
stop();
_EINT();
return 0;
}
- AT24C01和24C256串行EEPROM的中文数据手册免费下载 24次下载
- 模拟IIC读写总结之at24c512读写程序 90次下载
- 256K的i2c™CMOS串行EEPROM,24AA256/24LC256/24FC256 21次下载
- Proteus之24C256开启次数统计 0次下载
- 24AA512/24LC512/24FC512中文资料 23次下载
- 24AA256/24LC256/24FC256中文资料 30次下载
- 24c128/24c256 pdf datasheet 46次下载
- 24C256中文资料,24C256中文数据资料 1316次下载
- 24c32/24c16/24c08读写程序 493次下载
- 24c512中文资料下载 1158次下载
- AT24C32/AT24C56读写程序 33次下载
- at24c01程序(读写程序) 219次下载
- 24AA512/24LC512/24FC512 pdf da 50次下载
- 24AA256/24LC256/24FC256 pdf da 33次下载
- at24c16 c程序 174次下载
- 通过IIC总线读写AT24C512存储器 662次阅读
- AT24C04芯片驱动程序原理 1091次阅读
- 微雪电子QFN24 TO DIP24 (A)QFN24测试座简介 2394次阅读
- 微雪电子QFN24转DIP24测试座简介 1386次阅读
- AT24C系列芯片的驱动设计 4136次阅读
- AT89S52单片机并行端口模拟I2C总线协议读写AT24C04的设计 2348次阅读
- 如何使用单片机模拟读写24C01EEPROM数据 4841次阅读
- 基于pn512芯片通用读写系统开发 7976次阅读
- 怎么使pn512寄存器设置显示小程序(PN512特性及驱动电路) 5495次阅读
- at24c04中文资料汇总(at24c04引脚图及功能_工作原理及电路图) 7.6w次阅读
- C51读写AT24C04源代码及AT24C04测试程序 1.1w次阅读
- AT24C256介绍_AT24C256烧录的完整程序 1.2w次阅读
- 单片机之IIC--AT24C256的读写程序 1.3w次阅读
- nrf24l01收发程序详解 2.9w次阅读
- 读写24LCxx系列的EEPROM的实例程序 2135次阅读
下载排行
本周
- 1采用 CMOS传感器的监控摄像头参考设计
- 2.30 MB | 6次下载 | 免费
- 2一线大厂的IC笔试复习题合集免费下载
- 1.23 MB | 4次下载 | 2 积分
- 3用于晶体振荡器或陶瓷谐振器的振荡器驱动器SN74LVC1404数据表
- 1017.61KB | 2次下载 | 免费
- 4APFC 反激 PSR 恒压控制器BP3619APFC数据手册
- 2.70 MB | 2次下载 | 免费
- 5GD32F103xxArm®Cortex®-M3 32位MCU芯片手册
- 5.14 MB | 2次下载 | 免费
- 6串行到并行接口SN74LV8153 数据表
- 494.56KB | 1次下载 | 免费
- 7SmartBond™ DA14683 低功耗蓝牙 5.0 开发套件 Pro数据手册
- 2.33 MB | 1次下载 | 免费
- 8RK3588S处理器硬件设计的要点及注意事项
- 11.35 MB | 1次下载 | 免费
本月
- 1RSA306B频谱分析仪技术资料汇总
- 未知 | 204次下载 | 免费
- 2RSA500A系列便携式频谱分析仪技术盘点
- 未知 | 157次下载 | 免费
- 3高幅度波形/ 函数发生器汽车、半导体、科学和工业应用测量剖析
- 未知 | 141次下载 | 免费
- 4直流无刷电机驱动与失速电流限制参考设计
- 10.6 MB | 32次下载 | 1 积分
- 5电动汽车同步快充慢充原理及测试的三种情况介绍
- 未知 | 30次下载 | 免费
- 6NI数据采集(DAQ)函数的应用
- 0.3 MB | 23次下载 | 免费
- 7保护新能源汽车电池使用寿命的六种措施
- 未知 | 18次下载 | 免费
- 8稀土激光材料的详述
- 0.1 MB | 11次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935094次下载 | 免费
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420054次下载 | 免费
- 3Altium DXP2002下载入口
- 未知 | 233070次下载 | 免费
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191334次下载 | 免费
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183318次下载 | 免费
- 6labview8.5下载
- 未知 | 81569次下载 | 免费
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73796次下载 | 免费
- 8NI LabVIEW中实现3D视觉的工具和技术
- 未知 | 70088次下载 | 免费
评论
查看更多