文件目录表(FDT) 在文件目录表中,每个文件占32个字节(用PC-TOOLS或DEBUB读出时占两行),各个字节的含义是这样的:0-7 字节:文件名;8-10 字节:扩展名;11 字节,表示文件属性;12-21 共10个字节为保留字段,没有使用;22-23 为建立文件的时间;24-25 为建立文件的日期;26-27 为文件占用的第一个簇号,即起始簇;28-31 共4个字节为此文件的长度。
3.AT89S52与CF卡的接口设计
CF卡有3种工作模式可供选择:I/0模式、存储器模式和IDE模式。CF卡的默认模式是存储器模式,使用也最为普遍。如果使用存储器模式则不需要配置任何寄存器。每一种模式的电路连接各不相同。在I/0模式和存储器模式下,可以采用8位的访问方式,也可以采用16位的访问方式。本文所采用的是8位的存储器模式,其接口电路原理图如图1所示。
AT89S52的P0口就为数据线连接CF的DO—D7,CF卡的A0-A10为地址线,P3.6、P3.7分别为读(RD)、写(WE)线。由于 AT89S52是8位的单片机,所以对CF卡的访问采用8位的方式较为方便。通过把-CE2设为‘1’即可通过访问CF卡的D0--D7来存取数据。而- CEl可以作为CF卡的片选信号,通过设-CEl为‘0’来选通CF卡,即-CEl接AT89S52的P2.6来线选CF卡。当REG为‘0’时,访问 CF卡的属性寄存器;REG为‘1’时,CF卡在存储器模式下对数据进行读写操作。RDY/BSY为CF卡状态引脚,当为“0”时,CF卡忙,为“1”时可以对CF卡操作。原理图如图所示:
限于篇幅只将写一个扇区代码编写(读扇区代码基本与此相同)如下:
;写一个扇区
WRITE: MOV DPTR, #SECTR_CNT
MOV A, #1
MOVX @DPTR, A
MOV DPTR, #SECTR_NO
MOV A, SECTRNO
MOVX @DPTR, A
MOV DPTR, #CYLINDER_LOW
MOV A, CYLINDERL
MOVX @DPTR, A
MOV DPTR, #CYLINDER_HI
MOV A, CYLINDERH
MOVX @DPTR, A
MOV DPTR, #DRV_HEAD
MOV A, DRVHEAD
ANL A, #0FH
ORL A, #0E0H
MOVX @DPTR, A
MOV DPTR, #COMMAND
MOV A, 30H
MOVX @DPTR, A
WRITE512:MOV R6,#0
MOV R7,#2
WRITE: MOV DPTR,#DATA_REG
MOV A,#31H
MOVX @DPTR,A
DJNZ R6,WRITE
DJNZ R7,WRITE
RET