当前位置:首页 » 存储配置 » 铁电存储器和单片机

铁电存储器和单片机

发布时间: 2023-08-26 14:49:20

① iic的应用

I2C总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。因此,使用I2C总线设计计算机系统十分方便灵活,体积也小,因而在各类实际应用中得到广泛应用。下面举二个应用示例。
I2C的运用比如在铁电存储器中,用铁电存储数据就是用的I2C总线协议。 目前,51、96系列的单片机应用很广,但是由于它们都没有I2C总线接口,从而限制了在这些系统中使用具有I2C总线接口的器件。通过对I2C总线时序的分析,可以用51单片机的两根I/O线来实现I2C总线的功能。接I2C总线规定:SCL线和SDA线是各设备对应输出状态相“与”的结果,任一设备都可以用输出低电平的方法来延长SCL的低电平时间,以迫使高速设备进入等待状态,从而实现不同速度设备间的时钟同步。因此,即使时钟脉冲的高、低电平时间长短不一,也能实现数据的可靠传送,可以用软件控制I/O口做I2C接口。下面就是用GMS97C2051的通用I/O口来作为I2C总线接口,并由软件控制实现数据传送的例子,图6为其连线图。
在单主控器的系统中,时钟线仅由主控器驱动,因此可以用51系列的一根I/O线作为SCL的信号线,将其设置为输出方式,并由软件控制来产生串行时钟信号。在实际系统中使用了P1.3。另一根I/O线P1.2作为I2C总线的串行数据线,可在软件控制下在时钟的低电平期间读取或输出数据。系统传输数据的过程如下:先由单片机发出一个启始数据信号,接着送出要访问器件的7位地址数据,并等待被控器件的应答信号。当收到应答信号后,根据访问要求进行相应的操作。如果是读入数据,则数据线可一直设为输入方式,中间不需要改变SDA线的工作方式,每读入一个字节均应依次检测应答信号;如果是输出数据,则首先将SDA设置为输出方式,当发送完一个字节后,需要改变SDA线为输入方式,此时读入被控器件的应答信号就完成了一个字节的传送。当所有数据传输完毕后,应向SDA发出一个停止信号,以结束该次数据传输。 下面给出51系列用汇编语言实现启始、停止、读、写、应答的程序,读者也可以根据I2C总线时序在96系列或其它单片机上实现I2C总线接口。
a.启动位程序
ACK:CLR P1.3
NOP
NOP
SETB P1.2
NOP
NOP
NOP
CPL P1.3 ;P1.3=1
NOP
NOP
NOP
DENGDAI:JB P1.2,DENGDAI
RET
b.读数据程序
读字节可以在当前地址读(CURRENT
READ),也可以随机读(RANDOM READ),读出数据的最后一个字节后不用加应答信号。
READ:PUSH 0EH
CLR P1.4
LCALL BSTART ;START
MOV A,#0A0H ;SEND THE CNOTROL BYTE
LCALL SENDBYTE
LCALL ACK
MOV A,R1 ;SEND THE ADDRESS
LCALL SENDBYTE
LCALL ACK
LCALL BSTART ;START
MOV A,#0A1H ;SEND THE CNOTROL BYTE
LCALL SENDBYTE
LCALL ACK
LCALL READBYTE
LCALL BSTOP
POP 0EH
RET
送字节程序:
SENDBYTE:PUSH 0EH
PUSH 00H
MOV R0,#08H
LOOP1:CLR P1.3
NOP
NOP
RLC A
MOV P1.2,C
CPL P1.3 ;P1.3=1
NOP
NOP
DJNZ R0,LOOP1
POP 00H
POP 0EH
RET
读字节子程序:
READBYTE:PUSH 0EH
PUSH 00H
MOV R0,#08H;READ THE CONTENT
CLR A
LOOP4:CLR P1.3
NOP
NOP
NOP
SETB P1.3 ;P1.3=1
MOV C,P1.2
RLC A
DJNZ R0,LOOP4
MOV R2,A
POP 00H
POP 0EH
RET
c.写数据程序:
WRITE:PUSH 0EH
CLR P1.4
LCALL BSTART
MOV A,#0A0H
CLALL SENDBYTE ;SEND THE CONTROL BYTE
LCALL ACK
MOV A,R1 ;SEND THE ADDRESS
LCALL SENDBYTE
LCALL ACK
MOV A,R2 ;WRITE THE CONTENT
LCALL SENDBYTE
LCALL ACK
LCALL BSTOP
POP 0EH
RET
连续写的两个字节之间最好是有10ms的延时。当然,也可以进行页写(PAGE
WRITE),即一次性连续写8个字节,但采用页写方式时每个字节后要有一个应答信号。
d.停止位程序:
BSTOP:CLR P1.3
NOP
NOP
CLR P1.2
NOP
NOP
NOP
SETB P1.3
NOP
NOP
NOP
SETB P1.2
RET // IIC开始
void Start()
{
SDA=1;SCL=1;NOP4();SDA=0;NOP4();SCL=0;
}
// IIC 结束
void Stop()
{
SDA=0;SCL=0;NOP4();SCL=1;NOP4();SDA=1;
}
// IIC 读取应答
void RACK()
{
SDA=1;NOP4();SCL=1;NOP4();SCL=0;
}
// IIC 发送非应答
void NO_ACK()
{
SDA=1;SCL=1;NOP4();SCL=0;SDA=0;
}
// IIC向从设备写入一字节数据
void Write_A_Byte(uchar b)
{
uchar i;
for(i=0;i<8;i++)
{
b<<=1;SDA=CY;_nop_();SCL=1;NOP4();SCL=0;
}
RACK();
}
// IIC 向从设备的指定地址写入数据
void Write_IIC(uchar addr,uchar dat)
{
Start();
Write_A_Byte(0xa0);
Write_A_Byte(addr);
Write_A_Byte(dat);
Stop();
DelayMS(10);
}
// IIC 从从设备读取数据
uchar Read_A_Byte()
{
uchar i,b;
for(i=0;i<8;i++)
{
SCL=1;b<<=1;B|=SDA;SCL=0;
}
return b;
}
// IIC 从从设备的当前地址读取数据
uchar Read_Current()
{
uchar d;
Start();
Write_A_Byte(0xa1);
d=Read_A_Byte();
NO_ACK();
Stop();
return d;
}
// IIC 从从设备的任意地址读取数据
uchar Random_Read(uchar addr)
{
Start();
Write_A_Byte(0xa0);
Write_A_Byte(addr);
Stop();
return Read_Current();
}

② 单片机能存储多大的数据

2M的数据在51单片机内是没法保存的,只能外部扩展存储器了。像用AT29C040这样512KB的ROM需要4片,所以还是建议你考虑一下使用NandFlash吧,比如K9F1208芯片,64MB的容量足够你用的吧?不过需要注意,K9F1208是3.3V工作的,那你需要使用3.3V的单片机来运行。

③ 51单片机里面怎么用IIC总线存储一个几百的数值

用一个INT数值表示,方法有2种1:换可以直接以16位数据形式写入的IIC存储6器比如93C46这种
2:用拆分方式存储,读取后在重新还原
比如一个16位数据1234吧
高8位是12,低8位是34,你存储的时候完全可以这样
unsigned
int
i;
unsigned
char
H,L;
存储时:
H=
i>>8;
L=i&0X00FF;
然后分别写入2个连续的存储空间比如0x00,0x01
读出时:
先读高,后读低
然后i=H<<8;
i=
H|L;
你试试

④ 问个弱智的问题,单片机的烧录次数有只能烧录一次的说法吗

单片机的烧录次数有多少?

单片机能烧录多少次是根据存储器类型决定的!

不同存储器类型烧录擦写次数、示例单片机:

  • 掩膜存储器,1次,亿义隆单片机;(一般工厂辅助烧录,普通开发者接触不到)

  • ROM,100-1000次,Atmel 的 51系列:AT89C51;

  • FLASH ,10000次,Atmel 的 AVR系列:ATMEGA8,国产宏晶的STC单片机等;

  • 铁电存储器,10W+,高档CPU;

  • 不同寿命的,决定存储器价格;

掩膜存储器单片机应用举例:

  • 合泰的触摸按键芯片;

  • 小厂的语音芯片;

  • LED灯控制器;

  • ……

掩膜存储器单片机开发必须使用厂家定制的开发板,成本比较高。小批量产品开发性价比不高,若是产量达到10K+,可以考虑使用。

热点内容
安卓快手极速版在哪里填写邀请码 发布:2025-01-31 22:59:36 浏览:319
如何让给文件夹设置密码查看 发布:2025-01-31 22:49:07 浏览:2
配置动态路由协议配错了怎么改 发布:2025-01-31 22:49:07 浏览:77
扫行程码为什么需要支付密码 发布:2025-01-31 22:47:08 浏览:738
什么样的配置能玩地平线4 发布:2025-01-31 22:44:05 浏览:241
python正则表达式符号 发布:2025-01-31 22:43:50 浏览:391
androidmime 发布:2025-01-31 22:34:44 浏览:782
ftp和http的中文含义是 发布:2025-01-31 22:33:48 浏览:402
sqlite3存储图片 发布:2025-01-31 22:27:14 浏览:162
sqlserverphp 发布:2025-01-31 22:22:55 浏览:877