📄 iic.h
字号:
#ifndef _iic_
#define iic
#else
#define iic extern
#endif
#define SDA0 P5DIR=P5DIR|(1<<3); P5OUT=P5OUT&(~(1<<3));
#define SDA1 P5DIR=P5DIR|(1<<3); P5OUT=P5OUT|(1<<3);
#define SCLK0 P5DIR=P5DIR|(1<<4); P5OUT=P5OUT&(~(1<<4));
#define SCLK1 P5DIR=P5DIR|(1<<4); P5OUT=P5OUT|(1<<4);
#define AT24C256 0xa2
#define PCF8583T 0xa0
#define I2C_MaxGaoJing 30
#define I2C_GaoJingByte 13
#define I2C_OldDataByte 215
#define I2C_UP 0x0030//上限、下限、零点
#define I2C_Card 0x0090//卡号
#define I2C_IP 0x0100
#define I2C_MIMA 0x0110
#define I2C_TongXunTime 0x0116
#define I2C_Alarm_Sum 0x011F
#define I2C_GaoJing 0x0121
#define I2C_OldData_Sum (I2C_GaoJing+I2C_MaxGaoJing*I2C_GaoJingByte)
#define I2C_OldData (I2C_OldData_Sum+4)
#define I2C_MaxOldData ((0xFFFF-I2C_OldData)/I2C_OldDataByte)
iic void II_delay(void);
iic void I_start(void);
iic void I_stop(void);
iic void I_ack(void);
iic void N_ack(void);
iic void I_send(unsigned char I_data);
iic unsigned char I_receive(void);
iic unsigned char IIRD(unsigned char sla,unsigned int x);
iic void IIWR(unsigned char sla,unsigned int x,unsigned char y); /*器件地址一位*/
iic unsigned char II3RD(unsigned char sla,unsigned int dizi); /*器件地址两位*/
iic void II3WR(unsigned char sla,unsigned int dizi,unsigned char shuju);
#undef iic
/*
小结:
分类 1
a. LC01,LC02 (地址1位)
b. LC128,LC256 (地址2位)
分类 2
a. LC04,LC08,LC16,LC32 (通过内部2个位来处理的)
实际过程中,因为1个地址和2个地址混合用,所以采用2个时钟线来控制,
公用SDA数据线 (采用一个全局变量来区分 IIC_biao )
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -