MSP430模拟IIC接口程序

发布者:lcn18560863680最新更新时间:2016-02-26 来源: eefocus关键字:MSP430  模拟IIC  接口程序 手机看文章 扫描二维码
随时随地手机看文章
1-简介
    MSP430单片机普通II模拟IIC接口程序范例。

2-程序例程

    #include "MSP430x14x.h"

    //P3.2 SCL

    //P3.3 SDA

    #define SDA_1 P3OUT |= BIT3         //SDA = 1

    #define SDA_0 P3OUT &=~ BIT3        //SDA = 0

    #define SCL_1 P3OUT |= BIT2         //SCL = 1

    #define SCL_0 P3OUT &=~ BIT2        //SCL = 0

    #define DIR_IN P3DIR &=~ BIT3; SDA_1 //I/O口为输入

    #define DIR_OUT P3DIR |= BIT3        //I/0口为输出

    #define SDA_IN ((P3IN >> 3) & 0x01)  //Read SDA

    unsigned int a[50];

/
      {
       TempBit = 1;
      }
    else
     {
      TempBit = 0;
     }
      DIR_OUT;
      TempData = (TempData << 1) | TempBit;
      SCL_0;
    }
    Delay(5);
    return(TempData);
   }
  
/) && (i < 255))   
     {
       i++;
     }
     DIR_OUT;
     SCL_0;
     Delay(5);
    }

/)
    {
     unsigned char HighData = 0;
     unsigned char LowData = 0;
     unsigned int TempData = 0;
     Start();
    WriteByte(0xa0);
    ReceiveAck();
    WriteByte(unit);
    ReceiveAck();
    Start();
    WriteByte(0xa1);
    ReceiveAck();
    LowData = ReadByte();
    Acknowledge();
    HighData = ReadByte();
    Stop();
    TempData = (HighData << 8) + LowData;
    Delay(1000);
    return(TempData);
    }

/
    {
    unsigned char i;
    unsigned char HighData = 0;
    unsigned char LowData = 0;
    unsigned int TempData = 0;
    Start();
    WriteByte(0xa0);
    ReceiveAck();
    WriteByte(unit);
    ReceiveAck();
    Start();
    WriteByte(0xa1);
    ReceiveAck();
    for (i=0; i<49; i++)
     {
      LowData = ReadByte();
      Acknowledge();
      HighData = ReadByte();
      Acknowledge();
      a[i]= (HighData << 8) + LowData;
     }
    LowData = ReadByte();
    Acknowledge();
    HighData = ReadByte();
    Stop();
    a[49] = (HighData << 8) + LowData;
    Delay(1000);
    }

/, unsigned int WriteData)
    {
     unsigned char LowData = 0;
     unsigned char HighData = 0;
     LowData = (unsigned char)WriteData;
     HighData = (unsigned char)(WriteData >> 8);
     Start();
     WriteByte(0xa0);
     ReceiveAck();
     WriteByte(unit);
     ReceiveAck();
     WriteByte(LowData);
     ReceiveAck();
     WriteByte(HighData);
     ReceiveAck();
     Stop();
     Delay(2000);
    }
//******************************************************************************
关键字:MSP430  模拟IIC  接口程序 引用地址:MSP430模拟IIC接口程序

上一篇:msp430读写24c512程序
下一篇:MSP430单片机低功耗控制与系统工作模式详解

推荐阅读最新更新时间:2024-03-16 14:45

MSP430采集电压信号程序
//*************************************************** //功能介绍:对P6.0口电压进行采集 液晶显示 //**************************************************** #include msp430x14x.h #include BoardConfig.h #include cry1602.h #define Num_of_Results 32 uchar shuzi = { 0123456789.+ }; uchar tishi = { The Volt is: }; sta
[单片机]
基于MSP430F169的程控开关稳压电源的设计
  本系统以TI MSP430F169为核心,电压可预置,步进电压为0.1V,输出电压范围为20V~36V,输出电流为0~2A。可显示预置电压,实测电压,实测电流,实测效率。该系统主要由最小单片机系统,PWM信号控制芯片TL494,开关电源升压主回路,片上A/D以及片上D/A组成。系统通过键盘预置电压值送给TL494形成闭环反馈回路,采样康铜丝上的电压间接推算出电流并显示。本系统具有调整速度快,精度高,电压调整率低,负载调整率低,效率高,无需另加辅助电源板,输出纹波小等优点。    一、方案论证与比较   1.1 主控CPU的选择   方案一:采用AT89S51单片机进行控制。51单片机外接A/D和D/A比较简单,但是
[电源管理]
基于<font color='red'>MSP430</font>F169的程控开关稳压电源的设计
MSP430学习笔记9-PS2键盘解码
PS2键盘解码的基本原理是通过外部中断读取键盘输出的串行信号,在根据扫描码进行查表解码。键盘发送往主机的信号总是在时钟的下降沿因此此中断是在下降沿触发,且时钟信号是由键盘给出,因此使用P1口中断(已经在初始化端口时设置)。发送的数据位11位,第一位是起始位,总为0,紧接是8个数据位,然后是奇校验位,最后是停止位总为1. 本程序只能对基本按键(即键被按下时产生三个字节的扫描码的按键)做出解码,包括所有的可显示字符键和Table,Back Space和Ente三个特殊功能键。基本按键的扫描码由三个字节组成,第1个字节为接通码,第2、3字节为断开码;其中第1字节和第3字节相同,中间字节为断开标志0xf0。例如:通码和断码是以
[单片机]
MSP430F1232中断学习
ADC10中断: 和定时器一样,ADC10也有中断请求的能力,如果不使用DCT(ADC10DCT1=0),当转换结果装载到ADC10MEM时,ADC10中断标志位即ADC10IFG置1。如果使用DCT,当DCT设定的所有转换完成之后,中断标志为置1。 大概过程是这样的: //对于中断来说,当每次两个整个数据块都传递完成时,中断标志置1,此时产生中断,让CPU跳出低功耗状态,继续执行进入低功耗后续没有执行的代码 //又继续使能AD转换,CPU又进入低功耗状态,由于AD转换独立于CPU,当转换完成时再次进入中断,跳出低功耗,这样不断进入跳出,实现低功耗。 //所以低功耗跳出之后,以下应该写串口传输的代码
[单片机]
msp430f5529学习笔记(3)一文学会GPIO口操作
什么是GPIO口 GPIO口意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。 如何操作GPIO口 寄存器操作 430f5529通过宏定义的方式简化了寄存器的名称,让他们可以轻易的读懂。 #define P1IN (PAIN_L) /*P1输入*/ #define P1OUT (PAOUT_L) /*P1输出*/ #define P1DIR (PADIR_L) /*P1模式*/ #define P1REN (PAREN_L) /*P1中断使能*/ #define P1DS (PADS_L)
[单片机]
<font color='red'>msp430</font>f5529学习笔记(3)一文学会GPIO口操作
基于MSP430单片机的直流电子负载设计
摘要:直流电子负载具有使用方便、灵活,功能强大等特点,能够很好的检测直流稳压电源。因此人们对电子负载的需求越来越多,对其性能要求也越来越高。设计了一种高精度的电子负载,其主要由电子模块、电子负载模块、频率切换模块、采样模块、显示模块和电源模块构成。它是以MSP430单片机为控制中心,通过D/A的控制达到恒流值在一定范围内的控制,通过内含A/D的采集模块将实际的端电压、端电流送回单片机控制模块,还采用了PID控制算法,通过显示模块加以显示电子负载参教。该直流电子负载具有精度达到±1%、分辨率高、实时测量、自动测试等特点。 直流电子负载用于测试直流稳压电源、蓄电池等电源的性能,它可以模拟真实环境中的负载(用电器)。与传统的模拟电阻
[单片机]
基于<font color='red'>MSP430</font>单片机的直流电子负载设计
MSP430在电力系统微机保护模块中的应用
0 引言 RFID(Radio Frequency Identification)技术由于优秀的识别性能而被认为是二十一世纪最有应用潜力的十大技术之一,它可以应用到工业生产、国防军事、日常生活等社会的各个方面。在我国,倡导科技奥运的北京奥运会在门票、地铁、食品安全管理中已被试用。基于SAW(Surface Acoustic Wave)标签的RFID系统采用了先进微电子加工技术制造的SAW器件,具有体积小、重量轻、批量成本低、可靠性高、识别距离远、多功能等优点,与基于IC标签的RFID系统有很好的互补性,尤其在基于IC标签的RFID系统应用于带有金属物体、高温、强电磁干扰等恶劣环境无能为力时,基于SAW标签的RFID系统就显示
[单片机]
MSP430和nRF905的无线数传系统设计
摘 要:阐述在低功耗应用中,利用MSP430和nRF905组成一种无线数据传输系统的设计方案。首先对核心芯片的选型和关键使用方法进行简单说明,然后介绍系统硬件和软件的设计,其中着重介绍如何对nRF905进行控制,并给出相关程序源代码。 关键词:无线数据传输 低功耗 MSP430 nRF905 在特殊环境的数据测控应用中,无线数据传输已经越来越广泛地被运用。MSP430+nRF905的组合特别适合于低功耗、短距离(1OO~200 m)、小数据量的无线数传系统。MSP430 CPU在低功耗应用方面有很大优势,nRF905无线收发芯片具有功耗低、控制简单、可自动处理字头和CRC校验的优点,两者结合组成的数传系统可以在很多产品中得到
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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