#include<reg51.h>
#include"at24c02.h"
u8 code Digit[] = {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7D,0x07,0x7f,0x6f};
sbit a = P2^2;
sbit b = P2^3;
sbit c = P2^3;
void delayms(u16 time)
{
u8 i=0;
for(;time>0;time--)
for(i=0;i<110;i++)
;
}
void display(u16 num)
{
u8 tmp[4];
u8 i=0,len;
do
{
tmp[i++] = num%10;
num /= 10;
}while(num!=0);
len = i;
for(i=0;i<len;i++)
{
P2 = 0;
a = (i) & 0x01;
b = (i) & 0x02;
c = (i) & 0x04;
delayms(5);
P0 = Digit[tmp[len-i-1]];
delayms(5);
}
}
void main()
{
u8 num,i=0,j=0;
AT24C02Init();
AT24C02WriteAddr(2,33); //写入后再读出同一个单元的内容之间的间隔尽量大于5ms,我试过2ms但是读取的是0xff
delayms(5);
num = AT24C02ReadAddr(2);
if (num>=100)num=0;
while(1)
{
display(num);
}
}
下面是at24c02的源文件和头文件