I2C总线及AT24C02读写实验报告

这是一个关于I2C总线实验的报告,涉及利用定时器在数码管上显示秒表,并将数据存储到AT24C02 EEPROM中。实验包括两个部分:一是通过I2C总线读写AT24C02进行秒表计时,二是读取键盘输入并存储到AT24C02,之后从存储器读取并显示。代码中包含了详细的I2C操作函数和数码管显示函数。
摘要由CSDN通过智能技术生成

/**************************************************

实验名称:I2C总线实验一

实验目的:利用定时器产生0~99秒表在数码管前两位显示

 每过一秒写入到AT24C02里面,关闭实验板后

 重新打开实验板,秒表从AT24C02读入数据继

 续上一次的计时。

实验备注:

**************************************************/

#include<reg52.h>


#define uchar unsigned char

#define uint unsigned int


sbit SDA = P2^0;

sbit SCL = P2^1;

sbit DUAN = P2^6;

sbit WEI = P2^7;


uchar code duan_table[]=

{0x3f,0x06,0x5b,0x4f,

 0x66,0x6d,0x7d,0x07,

 0x7f,0x6f,0x77,0x7c,

 0x39,0x5e,0x79,0x71};


uchar code wei_table[]=

{0xfe,0xfd,0xfb,

 0xf7,0xef,0xdf};


uchar num, sec;


void delay_1us();

void delay_1ms(uchar);

void display(uchar);

void at24_init();

void at24_start();

void at24_stop();

void at24_respons();

void at24_writebyte(uchar);

uchar at24_readbyte(uchar);

void at24_writeadd(uchar,uchar);

uchar at24_readadd(uchar);


void main()

{

at24_init();

sec = at24_readadd(5);

if(sec > 100)

sec = 0;

TMOD = 0x01;

TH0 = (65536-46080)/256;

TL0 = (65536-46080)%256;

EA = 1;

ET0 = 1;

TR0 = 1;


while(1)

{

if(num == 20)

{

num = 0;

sec++;

if(sec == 100)

{

sec = 0;

}

at24_writeadd(5,sec);

}

display(sec);

}

}


void delay_1us()

{

//uchar i, j;

//for(i = 0; i < 1; i++)

//for(j = 0; j < 1; j++);

;;

}


void delay_1ms(uchar x)

{

uchar i, j;

for(i = 0; i < x; i++)

for(j = 0; j < 110; j++);

}


void display(uchar x)

{

DUAN = 1;

P0 = duan_table[x/10];

DUAN = 0;

P0 = 0xff;


WEI = 1;

P0 = wei_table[0];

WEI = 0;

delay_1ms(5);


DUAN = 1;

P0 = duan_table[x%10];

DUAN = 0;

P0 = 0xff;


WEI = 1;

P0 = wei_table[1];

WEI = 0;

delay_1ms(5);

}


void at24_init()

{

SDA = 1;

delay_1us();

SCL = 1;

delay_1us();

}


void at24_start()

{

SDA = 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值