单片机的I2C问题?

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:09:45
http://hi.baidu.com/hyw322/blog/item/8a009f51c2df77868d543061.html
在上面的空间,希望高手帮忙呀
程序有错~~~~~~~~~~~~~~~~~~~~~~~

兄弟,我一直用c来编程,很少用,汇编,给你一下建议吧。24c02,我印象中,页写是八个字节,写时先把单片机制为主机,再发start,再就是slave,即24c02的地址和写读信号,再就是数据要写的地址,最后是数据,这里的ack信号很重要啊,
我用的16,自带i2c接口,=================================================================
//=======ATmega16
//========7.3728MHZ
//==========24c02读写,显示
//================================================================
#include <iom16v.h>
#include <macros.h>
#include "delay.h"
#include "lcd.h"

#define uchar unsigned char
#define uint unsigned int

/**************************************************************************
* 函数名称: ERROR();
* 功 能: 蜂鸣器报错
* 参 数:无
* 描 述:PA0口置低可以鸣响蜂鸣器
**************************************************************************/
void ERROR()
{
uint i;
DDRA |= (1 << PA0);
PORTA &= ~(1 << PA0);
for( i = 0 ; i < 10000 ; i ++);
PORTA |= (1 << PA0);