IIC总线
核心思想:主机与从机之间的信息交换。
主机发送消息,从机要回应一下。
从机发送消息,主机也要回应。
注意点:SDA线和SCL线都是默认高电平。即高电平为释放状态。
- IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
- 传送的四种状态
代码如下:
作用: - K1写入
- K2读入
- K3加一
- K4清零
- 补:数码管是从左往右开始亮的。
#include <REGX52.H>
#include <i2c.h>
typedef unsigned char u8;
typedef unsigned int u16;
void delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
void delay1ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3; //定义按键端口
u8 sj=0;
u8 disp[8];
u8 code smgduan[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71