51单片机~EETROM ( ICC协议总线)工作原理
(一)I^2 C总线控制原理:
1.数据有效性规定:
所以如图,当SCL为高电平的时候,SDA数据稳定不改变,当SCL为低电平的时候,看时序图SDA才允许改变。
2. 这是启示和终止,和上面没有太大关系。(上面只说有效信号)
数据传输可能产生的三种状况:
4. 主机在传送数据时的几种方式:
(S表示其实信号,P表示终止信号),白A表示从机的应答,阴影A表示主机的应答,—A表示非应答(代表即将结束接受),应答之后主(从)机再发送下一段数据*
方式一:
方式二:
方式三:非应答之后再次进行S初始信号发送,改变数据传输方向
从机地址==固定部分+可编程部分(决定可以访问的从机数目)
对于延时的解释:从SCL和SDA变成1或者变零所需要持续的时间。
应答可根据上述情况写出:
每个字节==八位二进制数,传输都是一个字节一个字节传输的。
(二)AT24CXX存储器戏芯片工作原理:
(四)编写代码使四个按键
k1(按下时读取数据),
k2(保存k1读取的的数据),
k3(数据递增1),
k4(数据清零)
并用数码管后四位显示这个过程:
main.c文件
#include "reg52.h"
#include "I^2C.h"
typedef signed char int8;
typedef signed int int16;
typedef signed long int32;
typedef unsigned char uint8; //字符型
typedef unsigned int uint16;
typedef unsigned long uint32;
sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
char num=0;
uint8 code smgduan[10]={
0x3f,0x06,0x5b,0x4f,0x66