• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: 其他
  • 标签: AT24C02  单片机  

资源简介

调试通过了的,带详细注释,对学习帮助比较大

资源截图

代码片段和文件信息

/************************************************
************顺达电子*丫丫设计屋 *****************
硬件结构框架:
            1,IIC总线芯AT24C02
            2,MCU  STC89C52
显示效果:
            1,在数码管上计数
            2,断电记忆
相关知识点:
            1,类似IIC总线芯片的操作
************************************************/

#include“AT89x52.h“
#define unint unsigned int
#define uchar unsigned char

sbit sda=P1^6;
sbit scl=P1^5;
sbit DUAN=P2^0;     //74HC573的LE端  U5  LED的段选端
sbit WEI=P2^1;      //74HC573的LE端  U4  LED的位选端

uchar Temp[]={
              0x3f  /*0*/
              0x06  /*1*/
              0x5b  /*2*/
              0x4f  /*3*/
              0x66  /*4*/
              0x6d  /*5*/
              0x7d  /*6*/
              0x07  /*7*/
              0x7f  /*8*/
              0x6f   /*9*/
             };      //共阴显示字库
unint DATA2;

void delay(){;;}     //稍微延时

void init()         //初始化
{
sda=1;
scl=1;
delay();
}

void start()        //开始信号
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}

void stop()       //停止信号
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}

void respons()     //应答信号
{
uchar i;
scl=1;
delay();
while((sda==1)&&(i<255))i++;
scl=0;
delay();
}

void write_byte(uchar date)    //写一个字节
{
uchar itemp;
temp=date;
for(i=0;i<8;i++)
{
scl=0;
delay();
temp<<=1;
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
delay();
}

uchar read_byte(void)     //读一个字节
{
unint ij;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)     /*循环8次读出一个字节数据*/
{
scl=1;
delay();
j=(j<<1)|sda;
scl=0;
delay();
}
return j;
}

void write_add(uchar addressuchar date)
{                        //指定地址写数据
start();                               /*初始信号*/
write_byte(0xa0);                      /*写入芯片地址0XA0*/
respons();                             /*应答信号*/

评论

共有 条评论