MSP430单片机对AT24C64的读写操作子程序

发布者:灵感发电站最新更新时间:2021-04-20 来源: eefocus关键字:MSP430  单片机  AT24C64  读写操作 手机看文章 扫描二维码
随时随地手机看文章

/*-----------------------------------


MSP430单片机对AT24C64的读写操作子程序


来源:晖创电子网www.schuitron.comMSP430程序


---------------------------------------*/


#ifndef_I2C_H

#define_I2C_H


#defineSDA_1P4OUT|=0x02//SDA=1

#defineSDA_0P4OUT&=~0x02//SDA=0

#defineSCL_1P4OUT|=0x01//SCL=1

#defineSCL_0P4OUT&=~0x01//SCL=0

#defineSDA_INP4DIR&=~0x02;//I/O口为输入

#defineSDA_OUTP4DIR|=0x02//I/0口为输出

#defineJ_SDA_1_or_0(P4IN&0x02)==0x02

/*--------------------------------------------

以下为24C64读写子函数

DELAY函数程序


功能:延时子程序

-----------------------------------------------*/


statICvoidDelay(unsignedintn)

{

while(n!=0)

{n--;}

}

//=========================================

//START函数程序

//功能:开始闪存操作

//==========================================

voidStart(void)

{

SDA_OUT;

SDA_1;

Delay(10);

SCL_1;

Delay(10);

SDA_0;

Delay(10);

SCL_0;

Delay(10);

}

//=========================================

//STOP函数程序

//功能:停止闪存操作

//==========================================

voidStop(void)

{

SDA_0;

Delay(10);

SCL_1;

Delay(10);

SDA_1;

Delay(10);

}

voidTX_Byte(unsignedcharWritEDAta)

{

unsignedchari,j;

j=WriteData;

SDA_OUT;

for(i=0;i<8;i++)

{

if((j&0x80)==0)

{SDA_0;}

else

{SDA_1;}

j<<=1;

Delay(10);

SCL_1;

Delay(10);

SCL_0;

Delay(10);

}

}

unsignedcharRX_Byte(void)

{

unsignedchari;

unsignedcharTempData=0;

SDA_IN;

for(i=0;i<8;i++)

{

Delay(10);

SCL_1;

Delay(10);

TempData<<=1;

if(J_SDA_1_or_0)

{TempData++;}

SCL_0;

Delay(10);

}

SDA_OUT;

return(TempData);

}

//=========================================

//ACK函数程序

//功能:挂高电平表示闪存时钟信号

//==========================================

voidReceiveAck(void)

{

SDA_IN;

SCL_1;

Delay(10);

while(J_SDA_1_or_0)

{}

SCL_0;

SDA_OUT;

Delay(10);

}

unsignedcharReadWord(unsignedlongintunit/*address*/)

{

unsignedcharLowAdd=0;

unsignedcharHighAdd=0;

unsignedcharTempData=0;

LowAdd=(unsignedchar)unit;

HighAdd=(unsignedchar)(unit>>8);

SDA_OUT;

Start();

TX_Byte(0xa0);

ReceiveAck();

TX_Byte(HighAdd);

ReceiveAck();

TX_Byte(LowAdd);

ReceiveAck();

Start();

TX_Byte(0xa1);

ReceiveAck();

TempData=RX_Byte();

Stop();

Delay(8000);

return(TempData);

}

voidWriteWord(unsignedlongintunit/*address*/,unsignedcharWriteData)

{

unsignedcharLowAdd=0;

unsignedcharHighAdd=0;

LowAdd=(unsignedchar)unit;

HighAdd=(unsignedchar)(unit>>8);

Start();

TX_Byte(0xa0);

ReceiveAck();

TX_Byte(HighAdd);

ReceiveAck();

TX_Byte(LowAdd);

ReceiveAck();

TX_Byte(WriteData);

ReceiveAck();

Stop();

Delay(8000);

}

#endif


关键字:MSP430  单片机  AT24C64  读写操作 引用地址:MSP430单片机对AT24C64的读写操作子程序

上一篇:MSP430两种串口升级方式对比
下一篇:MSP430F149的串口RS485接口

推荐阅读最新更新时间:2024-11-10 01:30

C8051单片机在变风量空调控制系统中的设计
C8051单片机在变风量空调控制系统中的设计 变风量(VariableAirVolume,简称VAV)空调系统是通过变风量箱去调节送入房间的风量和新回风混合比,并相应调节空调机组的风量或新回风混合比来控制某一空调区域温度的一种空调系统。变风量空调系统可以根据空调载荷的变化及室内要求参数的改变,自动调节空调送风量(达到最小送风量时调节送风温度),以满足室内人员的舒适要求或者其它的工艺要求。同时根据实际送风量自动调节送风机的转速,最大限度的减少风机动力、节约能量。与定风量空调系统相比,变风量空调系统具有节能性、舒适性、环保性、灵活性等优点。 2、硬件电路设计 2.1、风阀与水阀执行电路的设计 本控制器将温度、湿度、CO 2 传感器检
[单片机]
C8051<font color='red'>单片机</font>在变风量空调控制系统中的设计
单片机中关键字data,idata,xdata,pdata的区别
data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idata: 固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式 访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata: 外 部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用。
[单片机]
STM32单片机一般有几种调试方式(stm32与TDC SPI通信调试)
STM32单片机介绍 STM32单片机是由意法半导体(STMicroelectronics)公司开发和生产的一系列32位ARM Cortex-M内核的微控制器。它们广泛应用于工业自动化、消费电子、通信、汽车电子和物联网等领域。 STM32单片机系列涵盖了多个系列和型号,以满足不同应用需求和性能要求。常见的系列包括: 1. STM32F系列:基于ARM Cortex-M4或Cortex-M7内核,具有强大的处理能力和丰富的外设资源,适用于高性能应用。 2. STM32L系列:基于ARM Cortex-M0+或Cortex-M3内核,具有低功耗特性和优异的能效表现,适用于电池供电和低功耗应用。 3. STM32H系列:基于ARM
[单片机]
STM32<font color='red'>单片机</font>一般有几种调试方式(stm32与TDC SPI通信调试)
51单片机 LCD12864 驱动程序 C语言 ST7920
main.c #include reg52.h #include intrins.h #include string.h #include stdio.h #include stdlib.h #include LCD12864.h void main( void ) { Ini_Lcd(); Lcd_WriteStr(0,0, QQ137712826 ); while ( 1 ) { } } lcd12864.h #include reg52.h #include intrins.h sbit RS = P2 ^ 0; sbit R
[单片机]
51<font color='red'>单片机</font> LCD12864 驱动程序 C语言 ST7920
基于51单片机的三角波信号发生器设计
一、任务要求: 设计内容 选择51单片机,晶振采用12MHz。 设计一个能产生50HZ至100HZ的三角波信号。通过0832/A芯片完成数模转换。 频率值由LED数码管键盘输入。 将频率由LED数码管显示(4位) 设计要求 按照任务书的要求完成系统分析及方案设计。 完成硬件原理图的设计,并设计相关元器件。 完成控制软件流程图的设计,编写相应的单片机控制程序。 撰写设计报告。 二、仿真过程展示 程序烧录仿真界面: K1第一次按下界面 按3次K1后界面 K2、K3可对波形频率进行调整;K4、K5可对占空比进行调整。 频率的值是可以通过这里改的
[单片机]
致象科技推国内第一款ARM Cortex M4F内核MCU
2016年4月18日,国内唯一一家拥有紧耦合异构多核双OS系统设计能力的芯片公司致象科技宣布,推出国内首个基于ARM Cortex M4F内核开发的MCU 产品系列 Marco Polo系列,打开了国产MCU的新篇章。高性能的第一代Marco Polo系列MCU可广泛应用在智能家居、无人机、可穿戴设备等物联网领域。 致象科技CEO方之熙博士认为,以核心芯片为中心,整合软、硬件和应用服务,互联网化的开放式运算平台已经成为IC行业下一个潮流和利润增长点。致象科技作为一家国产高端集成电路芯片设计厂商,正在朝着跨时代发展方向奋斗。 致象科技此次推出的第一代Marco Polo系列MCU-TG401,不但具备小封装尺寸、低功耗、
[半导体设计/制造]
致象科技推国内第一款ARM Cortex M4F内核<font color='red'>MCU</font>
MCU 中输入/输出口的使用
简介: 在HT49C30-1/HT49R30A-1 中有8 个双向的输入/输出口(PA 口,8 位),6 个输入口(PB 口);HT49C50-1/HT49R50A-1 中有12 个双向的输入/输出口(PA 口,8 位;PC 口,4 位),8 个输入口(PB 口);HT49C70-1/HT49R70A-1 中有16 个双向的输入/输出口(PA 口,8 位;PC 口,8 位),8 个输入口(PB 口)PA、PB、PC 分别对应RAM 中地址 、 、 。掩膜时可选择PA、PC 口的结构(NMOS 或CMOS),及该口是否具有上拉电阻(具体介绍看使用手册)。 若PA、PC 口结构NMOS 时,在读取数据之前,必须向相关位写 1 以
[单片机]
<font color='red'>MCU</font> 中输入/输出口的使用
51单片机按键控制数码管
一、 设计目的与要求 设计目的:通过设计,培养运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。 设计要求:设计一个时、分可调的数字电子钟、断电后将数据保存,开启后时间将从断电后时间继续行走。 二、 设计内容与方案制定 具有校时功能,按键控制电路其中时键、分键六个键分别控制时、分时间的调整。按下小时数实现对小时数加减,按下分钟数实现对分钟数进行加减,并设置有复位键,启始键。 以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。 通过AT24C02分别写入时、分、秒数据在断电后实现保存,在下次通电
[单片机]
51<font color='red'>单片机</font>按键控制数码管
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved