A. 单片机怎么把多个十进制数存入at24c02,再怎么读出~~~~~求c语言编程~
真的很懒,还是贴出我自己用的代码吧,接口自己定义
/*******************
//
函数功能:演示函数
//参数:x:时间传递参数
//函数名:delaym()
void
delaym(int
x)
{
int
y;
for(x;x>0;x--)
for(y=110;y>0;y--);
}
//*******************
//
函数功能:开始应答
//参数:无
//函数名:start()
void
start()
{
scl=1;
sda=1;
sda=0;
scl=0;
}
//*******************
//
函数功能:停止应答
//参数:无
//函数名:stop()
void
stop()
{
scl=0;
sda=0;
scl=1;
sda=1;
}
bit
testack()
{
bit
errorbit;
sda=1;
scl=1;
errorbit=sda;
scl=0;
return(errorbit);
}
//*******************
//
函数功能:写1byte到24c02
//参数:input:写数据
//函数名:writebyte()
void
writebyte(char
input
)
{
char
i;
for(i=8;i>0;i--)
{
sda=(bit)(input&0x80);
scl=1;
scl=0;
input=input<<1;
}
}
//*******************
//
函数功能:读取1byte数据
//参数:k:读出的数据
//函数名:readbyre()
char
readbyte()
{
char
i,k;
for(i=8;i>0;i--)
{
scl=1;
k=(k<<1)|sda;
scl=0;
}
return(k);
}
//*******************
//
函数功能:写数据到24c02指定地址
//参数:address:地址
,date:写入的数据
//函数名:writeaddadd()
void
writeadd(char
address,char
date)
{
start();
writebyte(0xa0);
testack();
writebyte(address);
testack();
writebyte(date);
testack();
stop();
delaym(10);
}
//*******************
//
函数功能:读取24c02指定地址数据
//参数:address:地址
,ch:读出的数据
//函数名:readadd()
char
readadd(char
address)
{
char
ch;
start();
writebyte(0xa0);
testack();
writebyte(address);
testack();
start();
writebyte(0xa1);
testack();
ch=readbyte();
stop();
return(ch);
}
B. 写一个通过串口访问AT24C02(EEPROM)程序,该怎样写手上有一块单片机的开发板,不知道怎用。
发给你一个例子,带PROTEUS仿真的,你留 下Q
C. 用51单片机给at24c16与at24c02编程上的区别和要注意些什么,程序的写法有那些不同,比如
没什么太大的不同,AT24C02 读写时要指定地址 A2 A1 A0 ,这就是芯片上这3支管脚的接法,而 AT24C16 不用指定地址但是因为容量比较大因此要选定所要读写的页(PAGE)。
D. 特急:关于单片机at89c52连接at24c02的编程问题
void start(void)
{
SDA=1;
SCL=1;
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
/***************************************************************
函数功能:停止iiC总线数据传送子程序
入口参数:
出口参数:
******************************************************************/
void stop(void)
{
SDA=0;
SCL=1;
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
/*******************************************************************
函数功能:读取数据
入口参数:
出口参数:read_data
*********************************************************************/
unsigned char read(void)
{
uchar read_data=0,i;
for(i=0;i<8;i++)
{
SCL=1; //此时SDA上的高低电平保持稳定
read_data<<=1;
read_data|=(unsigned char)SDA;
SCL=0; //此时SDA上的高低电平可以变化
}
return read_data;
}
/******************************************************************
函数功能:向EEPROM写数据
入口参数:dat
出口参数:ack_bit
*****************************************************************/
bit write_dat(unsigned char dat)
{
unsigned char i;
bit ack_bit; //应答位
for(i=0;i<8;i++)
{
SDA=(bit)(dat&0x80);
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
SCL=0;
dat<<=1;
}
SDA=1; //检测应答信号,这在第九个时钟周期出现
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
ack_bit=SDA;
SCL=0;
return ack_bit;
}
/*******************************************************************
函数功能:向指定地址写数据
入口参数:addr,write_data
出口参数:
**********************************************************************/
void write_byte(unsigned char addr,unsigned char write_data)
{
start();
write_dat(OP_WRITE);
write_dat(addr);
write_dat(write_data);
stop();
delayms(10);
}
/************************************************************************
函数功能:读取当前地址数据
入口参数:
出口参数:read_data
***********************************************************************/
unsigned char read_current()
{
unsigned char read_data;
start();
write_dat(OP_READ);
read_data=read();
stop();
return read_data;
}
/**********************************************************************
函数功能:向指定地址读数据
入口参数:randon_addr
出口参数:read_data
********************************************************************/
unsigned char read_randon(uchar randon_addr)
{
start();
write_dat(OP_WRITE);
write_dat(randon_addr);
return (read_current());
}
例如你想将shiwei写进2402,write_byte(0x04,shiwei)
读出来就是read_randon(0x04)
你先将你要存的数据写进2402,上电时程序首先就把你存的数据先读出来显示在数码管上
你有加#include<intrins.h>吗》????
E. 单片机编程'AT24C02Read': requires ANSI-style prototype怎么办谢谢大神,麻烦了
AT24C02Read()这个函数缺少原型声明。
你需要在程序前面加上它的原型声明,并且确保与函数实体一致。例如:
unsigned char AT24C02Read(unsigned char);
F. 如何用编程器把AT24C02程序擦除清零
直接点击擦除芯片就可以了!
G. 单片机编程将'好人一生平安'乐谱录入AT24C02求程序,急用,求大神帮忙!!
网上很多程序,你先确定能对24c02读写,需要注意的是,24c02每次只能写入8个字节,所以你只能循环写入!
H. 单片机编程将‘好人一生平安’乐谱录入AT24C02怎么编程
使用数组烧录到单片机再由单片机烧录24c02或者用串口输入单片机再由单片机的ram烧录进24c02
I. 现实单片机按键编程
是否要实现在线编程ISP?
有ISP功能的MCU编程可以看做两部分,好像:电脑的BIOS与硬盘程序,你设置好BIOS以处理你要实现的编程功能,那么硬盘程序就交给用户去实现了!
也就是说,你要写好2k~8k的ISP引导码即可!