ATMEL的TWI
发送:
1,设定数据传输波特率
2,发送START信号,等候应对
3,发送芯片地址,等候应对
4,发送数据的肯定地址,等候应对 ==》
5,发送要写入的数据,等候应对
6,发送STOP信号,开释总线
接纳:
1,设定数据传输波特率
2,发送START信号,等候应对
3,发送芯片地址,等候应对
4,发送数据的肯定地址,等候应对 ==》
5,发送RESTART信号,等候应对
6,发送芯片地址并注明读操作,等候应对 ==》
7,读取数据,等候应对
8,发送STOP信号,开释总线
使用芯片 :ATMega 16
代码文件:Project
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IAR_DELAY.H
#ifndef __IAR_DELAY_H
#define __IAR_DELAY_H
#include
#define XTAL 7.3728
#define delay_us(x) __delay_cycles ( (unsigned long)(x * XTAL) )
#define delay_ms(x) __delay_cycles ( (unsigned long)(x * XTAL*1000) )
#define delay_s(x) __delay_cycles ( (unsigned long)(x * XTAL*1000000) )
#endif
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
UART.C
#include
#define uchar unsigned char
#define uint unsigned int
//###########################################################
voidUart_Init(void) UBRRH=0x00; DDRD_Bit1=1; voidUart_Transmit(uchar data) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #include void Uart_Init(void); //变量声明 #define IIC_Start() #define IIC_Wait() //##############################################################################
{
UCSRC = (1<
UBRRL=47;
}
//###########################################################
{
UDR = data;
}
#include “IAR_DELAY.H”
#define uchar unsigned char
#define uint unsigned int
void Uart_Transmit(uchar data);
#define EEPROM_BUS_ADDRESS 0xA0
//主机发送形式时各状态字的后续动作
#define TW_START
#define TW_REP_START
#define TW_MT_SLA_ACK
#define TW_MT_SLA_NACK
#define TW_MT_DATA_ACK
#define TW_MT_DATA_NACK
#define TW_MT_ARB_LOST
//主机接纳形式时各状态字的后续动作
#define TW_MR_ARB_LOST
#define TW_MR_SLA_ACK
#define TW_MR_SLA_NACK
#define TW_MR_DATA_ACK
#define TW_MR_DATA_NACK
#define IIC_Stop()