24c02存储器与单片机连接的程序
发布网友
发布时间:2022-04-26 17:49
我来回答
共1个回答
热心网友
时间:2023-10-20 03:45
#include<reg52.h>
#define uchar unsigned char
sbit sda=P2^0;
sbit scl=P2^1;
uchar a;
void 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<250))i++;
scl=0;
delay();
}
void init()
{
sda=1;
delay();
scl=1;
delay();
}
void write_byte(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
//scl=0;
// delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar read_byte()
{
uchar i,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
void delay1(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void write_add(uchar address,uchar date)
{
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}
uchar read_add(uchar address)
{
uchar date;
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
start();
write_byte(0xa1);
respons();
date=read_byte();
stop();
return date;
}
void main()
{
init();
write_add(23,0xaa);
delay1(100);
P1=read_add(23);
while(1);
}
//这个是24c02的程序,与单片机的连接请参考你的单片机板。
24C02怎么保存单片机设定的数据?
24C02存储器符合I2C总线协议,并具有数据掉电不挥发功能,其中A0,A1,A2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口;单片机通过控制WP引脚状态从而达到数据读写功能,通常WP引脚与CPU输出引脚断开并保持高电平的时候CPU就不能对24C02中的数据进行修改写入,这时可以读取;如果为低电平的时候可...
在板子上的24C02怎么写程序进去
如果不能烧录程序,就不能读/写24C02。至于读/写24C02的程序,百度上可以搜索到的。板子上留的焊孔,是可以焊导线连接到单片机上,进行读/写的。要查一下这些孔是怎么连接24C02的引脚的。
关于24c02芯片的程序问题,希望得到帮助解决,下面的程序有什么问题,为 ...
sbit SDA = P1^0;sbit SCL = P1^1;void delay(unsigned int t){ while(t--);} //启动信号 void I2C_Start(void){ SDA=1;SCL=1;delay(2000);SDA=0;delay(2000);} //停止信号 void I2C_Stop(void){ SDA=0;SCL=1;delay(2000);SDA=1;delay(2000);} //发送ack信号 void I2C_ac...
存储器AT24C02与单片机如何连接?要引脚连接图
EESDA EESCL 接单片机的引脚。EEVCC接电源。不同的24C02的电源范围略有区别。一般3V-5V都可以。
...比如我定义了一个自己的头文件#include"24c02.h",那我这个头文件的...
看来你C语言不怎么好,用宏定义, 操作如下:现在在keil环境内,new新建一个文本,以24c02.H保存,接着再里面写入代码如下:ifndef _24C02_H define _24C02_H include "24c02.h"在这里面写相应的程序。endif 这样可以再直接调用头文件。如有不明白再问。
51单片机24c02写数组怎么写进去
write_add(23,1);是把1写到地址23中?mm[0]=read_add(23);这个是把23地址中的数据读到数组mm中?所以说,没看到你怎么把数组里的数写入到24c02中。是不是每次你写到24c02的数(1,2,3...)都再次读出来通过硬件显示了?而且是错误的?大神也不是神。基础才是王道。
单片机一起用的24c02c模块是什么功能
24c02是一种串行EEROM,即串行存储电可擦除只读存储器,也就是可由单片机存储与读取而且停电也不丢失数据的存储器。 24c02数据的存储与读取只用两根线,并遵循I2C二线制协议。 该IC可以多片同时使用,因此还有3位片选地址,和一个写保护位。
51单片机KEIL如何将结构数组存到24C02中~~~在线等~~~
方法二:获取到待存结构体的首地址,由你提供的接口看24C02可以存储char格式数据,那么再将结构体地址内的数据全部按照char格式读取出来再存入24C02中,这样,读取的时候只需要将数据读取出来并拷贝入某一内存中,再将此内存数据强制格式化为你的自定义数据结构格式即可!这样的有点是,无论数据结构怎么变...
51单片机 24C02程序不知道哪里出问题,求助
延时要搞长一点,IIC接口标准上可达到400K,但实际上不好实现,建议在100K以下,所以最好在50K左右就很稳定了。void delay(void){ uint i;for(i=100;i>0;i--)_nop_();}
怎么写单片机控制外围芯片程序
这个最重要的是看芯片资料,芯片资料内对通信方式,协议,时序,都有的,可以利用单片机自带的通信接口,即端口第二功能。也可以自己制定时序。这是24c02的程序。用的ATmega16;最后祝你有个好成绩 include <iom16v.h> include <macros.h> include "delay.h"include "lcd.h"define uchar unsigned ...