51单片机学习之IIC总线

IIC总线

核心思想:主机与从机之间的信息交换。
主机发送消息,从机要回应一下。
从机发送消息,主机也要回应。

注意点:SDA线和SCL线都是默认高电平。即高电平为释放状态。

  • IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
    image.png
  • 传送的四种状态
    image.png
    代码如下:
    作用:
  • 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值