串行FLASH SSF1101在单片机
(5)读状态寄存器
状态寄存器读命令用于读出器件内状态寄存器的值。
(6)片擦除
片擦除命令用于擦除闪存所有页面的数据,一个擦除周期大约需要2s。
4 具体应用
SSF1101由于具有512kbyte的大存储容量,因此可广泛应用于数字语音存储、图象存储和数据存储等应用领域,以构成大容量的单片机数据采集系统。由AT89C52单片机与SSF1101构成的IC卡读写电路如图3所示。
图3中,AT89C52的P1.0、P1.1、P1.2分别与SSF1101 SPI的接口SI、SCK及SO端相连以实现简单的三线串行通信,P1.3与CS相连用于控制对器件的访问,图中的C9与C10是IC卡座的接通开关,当IC卡插入时开关闭合,C1端接入+5V电源,SSF1101上电复位后读写电路进入正常的读写状态,当IC卡拔出后C1端经电阻R2向AT89C52的INT0端发出中断请求,从而转向掉卡中断处理程序。下面的程序代码为与上述硬件电路配套的读写IC卡程序:
;位定义
SI BIT P1.0;串行数据输入
SCK BIT P1.1;串行时钟
SO BIT P1.2;串行数据输出
CS BIT P1.3;片选控制
;内存定义
RCMD EQU 30H;读卡命令单元
PAH EQU 31H;闪存页面高位单元
PAL EQU 32H;闪存页面低位单元
BAH EQU 33H;闪存地址高位单元
BAL EQU 24H;闪存地址低位单元
ICRDATA EQU 20H;读写数据缓冲区首址
NUMBER EQU 80H;数据块长度
;读IC卡子程序,采用闪存直接读方式
RCARD: SETB CS
SETB SI ;初始化SPI
SETB SO
CLR SCK
MOV RCMD,#10H;“闪存直接读”命令
MOV DAH,#00H ;00页面
MOV DAL,#00H
MOV BAH,#00H ;00地址
MOV BAL,#00H
CLR CS ;选中芯片
MOV R0,#RCMD ;指向命令单元
MOV R1,#04H ;4字节命令
T RCMD: MOV A,@R0
LCA
《串行FLASH SSF1101在单片机(第4页)》