MSP430 24C64控制程序

发布者:芳华逝水最新更新时间:2018-01-30 来源: eefocus关键字:MSP430  24C64 手机看文章 扫描二维码
随时随地手机看文章

#ifndef _I2C_H 
#define _I2C_H 

#define SDA_1       P4OUT|=0x02               //SDA = 1 

#define SDA_0       P4OUT&=~0x02              //SDA = 0 
#define SCL_1       P4OUT|=0x01               //SCL = 1 
#define SCL_0       P4OUT&=~0x01              //SCL = 0 
#define SDA_IN      P4DIR&=~0x02;             //I/O口为输入 
#define SDA_OUT     P4DIR|=0x02               //I/0口为输出 
#define J_SDA_1_or_0   (P4IN&0x02)==0x02 
//-------------------------------------------- 
//--------以下为24C64读写子函数 
//DELAY 函数程序//功能:延时子程序 
//========================================== 
statIC void Delay(unsigned int n) 

while(n!=0) 
{n--;} 

//========================================= 
//START 函数程序 
//功能:开始闪存操作 
//========================================== 
void Start(void) 

  SDA_OUT; 
  SDA_1; 
  Delay(10); 
  SCL_1; 
  Delay(10); 
  SDA_0; 
  Delay(10); 
  SCL_0; 
  Delay(10); 


//========================================= 
//STOP 函数程序 
//功能:停止闪存操作 
//========================================== 
void Stop(void) 

  SDA_0; 
  Delay(10); 
  SCL_1; 
  Delay(10); 
  SDA_1; 
  Delay(10); 




void TX_Byte(unsigned char WritEDAta) 

  unsigned char i,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); 
  } 




unsigned char RX_Byte(void) 

  unsigned char i; 
  unsigned char TempData = 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 函数程序 
//功能:挂高电平表示闪存时钟信号 
//========================================== 
void ReceiveAck(void) 

  SDA_IN; 
  SCL_1; 
  Delay(10); 
  while (J_SDA_1_or_0) 
  {  } 
  SCL_0; 
  SDA_OUT; 
  Delay(10); 




unsigned char ReadWord(unsigned long int unit/*address*/) 

  unsigned char LowAdd  = 0; 
  unsigned char HighAdd = 0; 
  unsigned char  TempData = 0; 
  LowAdd  = (unsigned char)unit; 
  HighAdd = (unsigned char)(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); 



void WriteWord(unsigned long int unit/*address*/, unsigned char WriteData) 

  unsigned char LowAdd  = 0; 
  unsigned char HighAdd = 0; 
  LowAdd  = (unsigned char)unit; 
  HighAdd = (unsigned char)(unit >> 8); 
  Start(); 
  TX_Byte(0xa0); 
  ReceiveAck(); 
  TX_Byte(HighAdd); 
  ReceiveAck(); 
  TX_Byte(LowAdd); 
  ReceiveAck(); 
  TX_Byte(WriteData); 
  ReceiveAck(); 
  Stop(); 
  Delay(8000); 


#endif  


关键字:MSP430  24C64 引用地址:MSP430 24C64控制程序

上一篇:msp430f449的RS232接口程序
下一篇:基于MSP430F449单片机宽带直流放大器的设计

推荐阅读最新更新时间:2024-03-16 15:54

MSP430G2553系统学习之系统时钟
把MSP430G2553的系统时钟作为系统学习的一篇讲解可见他的重要性,那为什么要把时钟放到第一位呢?学过FPGA的朋友都能体会得到,如果把CPU的所有工作任务作为纵坐标(y轴),那么时钟就是他的横坐标(x轴)了,如下图1 时钟概念所示。 图 1 时钟概念 也就是说时钟就是一个微机(小到8位的51单片机大到32位的S3C2440等)在时域上的一个衡量标准。如果学过FPGA的朋友都很清楚,微机是以对输入的时钟源的脉冲计数的方式来确定时域参数的。所以,MSP430单片机也一样,拿到他之后首先从时钟入手,一定要养成这种系统学习的好方法,否则再学一百款单片机也是感觉再学新的,做不到举一反三,事半功倍的效果。如果能够把握这其中的通
[单片机]
<font color='red'>MSP430</font>G2553系统学习之系统时钟
TI推出最新MSP430TM 微控制器
日前,德州仪器 (TI) 宣布推出 MSP430F563x 和 MSP430F663x 微控制器系列,为其超低功耗 16 位微控制器产品线增加更多性能与特性。现在,利用这些微控制器的更大内存、显示容量和模拟外设,开发人员可快速实现高精度测量及连接。F563x 和 F663x 器件可满足如血糖仪、脉冲血氧仪、血压监测仪、心电图 (ECG)、运动监测仪和传感器集线器等便携式测量应用的需求。另外,诸如公用事业计量仪表、远程感测及恒温器等需要统一用户界面的家庭自动化和工业应用,也可得益于MSP430 系列微控制器的超低功耗与高性能特性。并且,作为 MSP430 产品线的一部分,F563x 和 F663x 系列可扩展至整个 MSP430F5
[单片机]
MSP430G2553测试程序(串口程序,定时器模式)
// // // MSP430G2xx3 // ----------------- // /|| XIN|- // | | | // --|RST XOUT|- // | | // | CCI0B/TXD/P1.1|-------- // | | 9600 8N1 // | CCI0A/RXD/P1.2| -------- // Built with IAR Embedded Workbench Version: 5.40 //串口调试助手,下载地址:http://www.sudt.com/download/AccessPort137.zip //***************************************
[单片机]
在 linux 上 对 MSP430G2 系列进行 debug
本文介绍如何在 linux 系统上对 MSP430 程序进行 debug。包括程序的编译、下载、运行、调试以及 vim 编辑器自动补全设置。 工具 在本方案中,需要用到的主要工具包括 TI 官方提供的 IDE——CCS,mspdebug,msp430-elf-gdb,vim/neovim。 注意,CCS 的 linux 版本不支持连接 MSP430G2 系列的开发板,否则就没那么多麻烦了。在本方案中,该 IDE 只作为编译工具使用。 TI 官方提供的 msp430-gcc 虽然可以编译程序,但是缺少部分头文件。下面将介绍配置 GCC 的相关内容,但不建议作为编译工具使用。 配置 安装工具 安装 CCS、mspdeb
[单片机]
MSP430单片机温度测量源程序
/*------------------------------------------ MSP430单片机温度测量源程序 介绍:源程序代码主要包含初始化子程序InitSys()、ADC数据读取子程序Read_ADC()、ADC数据转换为温度子程序ADC_TO_TEM()。 来源:晖创电子网www.schuitron.comMSP430源程序例程 源程序调试OK --------------------------------------------*/ #include MSP430x12x2.h #defineTEM_ADC_CHL0x0a voidInitSys(void); voidRead_AD
[单片机]
基于MSP430非接触式IC卡门禁系统设计
随着社会经济和科技的发展,新的安全问题已经给社会各个阶层带来诸多压力,智能化门禁管理系统就是针对这种社会需求而开发的时代产物。它不仅仅是简单的开锁,杜绝外来人员随意进出,通过门禁系统的监控还可以知道某个区域某个房间在一定的时间范围内进出的人员,一旦发现非法入侵,可以迅速报警,提高安全防范能力。另一方面,可以实现开门自动记录,便于追溯、查询进出人员资料,有效地解决了传统门锁的多种不足,能够实现智能化管理,增强内部的保安措施。 智能门禁系统以其多功能、高效率、高水平、高档次等特点,逐渐成为安全防范体系的重要组成部分。本文以现代化企业门禁管理为对象设计了一种IC卡智能门禁管理系统,该系统应包括管理中心端、门禁端和非接触式IC卡
[安防电子]
MSP430-定时器的寄存器介绍以及测试应用
本文介绍的是MSP430内部的定时器1 测试代码如下: #include io430.h #include in430.h //demo,led闪烁 void Init_TimeA(void); int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; Init_TimeA(); P2DIR = 0XFF; P2OUT = 0XFF; return 0; } void Init_TimeA(void) { TACTL = T
[单片机]
<font color='red'>MSP430</font>-定时器的寄存器介绍以及测试应用
MSP430单片机在微型低功耗数据广播接收机中的应用
一、 引言 我们独立自主开发了数据广播编码器和微型低功耗调频数据广播接收机,整套系统采用连续相位频移键控(CPFSK)调制方式,副载波频率为72KHz,占用带宽约16Khz,数据传输速率4.8KHZ。采用CPFSK调制方式使接收机易于实现,与QPSK的调制方式相比对相位稳定度要求不高,不易受外界温度噪声的影响,而且在信号解调处理时实现低功耗。 由于在发送端先后进行了数据编码、信道调制、线性调频,所以接收设备要完成信号逆处理。硬件结构框图: 二、MSP430单片机的特点及在接收机中的应用 TI公司MSP430系列单片机的超低功耗特性(运行在1MHz时钟条件下工作电流视工作模式不同为0.1-400uA
[单片机]
<font color='red'>MSP430</font>单片机在微型低功耗数据广播接收机中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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