MSP430单片机模式IIC协议C语言程序
#include "msp430x22x4.h" I2C_SDA(SET_GPIO_MODE);I2C_SCL(SET_GPIO_MODE); I2C_SDA(DISABLE_PULL_RESISTOR);I2C_SCL(DISABLE_PULL_RESISTOR); I2C_SDA(SET_INPUT_MODE);I2C_SCL(SET_INPUT_MODE); I2C_SDA(PORT_CLR);I2C_SCL(PORT_CLR); I2C_SCL(SET_INPUT_MODE); //SCL=1 _NOP(); I2C_SDA(SET_INPUT_MODE); //SDA=1 _NOP(); I2C_SDA(SET_OUTPUT_MODE); //SDA=0 I2C_SCL(SET_OUTPUT_MODE); //SCL=0 _NOP(); I2C_SDA(SET_OUTPUT_MODE); //SDA=0 _NOP(); I2C_SCL(SET_INPUT_MODE); //SCL=1 _NOP(); I2C_SDA(SET_INPUT_MODE); //SDA=1 unsigned char i; for(i=0;i<8;i++) { I2C_SCL(SET_OUTPUT_MODE); //SCL=0 if(data&0x80)I2C_SDA(SET_INPUT_MODE); //SDA=1 else I2C_SDA(SET_OUTPUT_MODE); //SDA=0 data=data<<1; I2C_SCL(SET_INPUT_MODE); //SCL=1 } I2C_SCL(SET_OUTPUT_MODE); //SCL=0 _NOP(); I2C_SDA(SET_INPUT_MODE); //release SDA _NOP(); I2C_SCL(SET_INPUT_MODE); //SCL=1 if(I2C_SDA(READ_PORT)) return 0xff; else return 0; Start(); Transfer(device_address&0xfe); if(Acknowledge()!=0)return 0x00; Transfer(data); if(Acknowledge()!=0)return 0x00; Stop(); return 0xff; unsigned char LowByte, HighByte; LowByte=(unsigned char)data; HighByte=(unsigned char)(data >> 8); Start(); Transfer(device_address&0xfe); if(Acknowledge()!=0)return 0x00; Transfer(HighByte); if(Acknowledge()!=0)return 0x00; Transfer(LowByte); if(Acknowledge()!=0)return 0x00; Stop(); return 0xff;
#define I2C_SDA(operation) operation(3,1)
#define I2C_SCL(operation) operation(3,2)
#define PORT_SET(port,bit) P##port##OUT|=(1<
#define PORT_CLR(port,bit) P##port##OUT&=~(1<
#define SET_GPIO_MODE(port,bit) P##port##SEL&=~(1<
#define SET_OUTPUT_MODE(port,bit) P##port##DIR|=(1<
#define SET_INPUT_MODE(port,bit) P##port##DIR&=~(1<
#define DISABLE_PULL_RESISTOR(port,bit) P##port##REN&=~(1<
#define READ_PORT(port,bit) P##port##IN&(1<
void I2C_init()
{
}
void Start(void)
{
}
void Stop(void)
{
}
void Transfer(unsigned char data)
{
}
unsigned char Acknowledge(void)
{
}
unsigned char I2C_Write_Byte(unsigned char device_address, unsigned char data)
{
}
unsigned char I2C_Write_Word(unsigned char device_address, unsigned int data)
{
}
关键词: MSP430单片机模式IIC协

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码