文件目錄表(FDT) 在文件目錄表中,每個文件占32個字節(jié)(用PC-TOOLS或DEBUB讀出時占兩行),各個字節(jié)的含義是這樣的:0-7 字節(jié):文件名;8-10 字節(jié):擴(kuò)展名;11 字節(jié),表示文件屬性;12-21 共10個字節(jié)為保留字段,沒有使用;22-23 為建立文件的時間;24-25 為建立文件的日期;26-27 為文件占用的第一個簇號,即起始簇;28-31 共4個字節(jié)為此文件的長度。
3.AT89S52與CF卡的接口設(shè)計
CF卡有3種工作模式可供選擇:I/0模式、存儲器模式和IDE模式。CF卡的默認(rèn)模式是存儲器模式,使用也最為普遍。如果使用存儲器模式則不需要配置任何寄存器。每一種模式的電路連接各不相同。在I/0模式和存儲器模式下,可以采用8位的訪問方式,也可以采用16位的訪問方式。本文所采用的是8位的存儲器模式,其接口電路原理圖如圖1所示。
AT89S52的P0口就為數(shù)據(jù)線連接CF的DO—D7,CF卡的A0-A10為地址線,P3.6、P3.7分別為讀(RD)、寫(WE)線。由于 AT89S52是8位的單片機(jī),所以對CF卡的訪問采用8位的方式較為方便。通過把-CE2設(shè)為‘1’即可通過訪問CF卡的D0--D7來存取數(shù)據(jù)。而- CEl可以作為CF卡的片選信號,通過設(shè)-CEl為‘0’來選通CF卡,即-CEl接AT89S52的P2.6來線選CF卡。當(dāng)REG為‘0’時,訪問 CF卡的屬性寄存器;REG為‘1’時,CF卡在存儲器模式下對數(shù)據(jù)進(jìn)行讀寫操作。RDY/BSY為CF卡狀態(tài)引腳,當(dāng)為“0”時,CF卡忙,為“1”時可以對CF卡操作。原理圖如圖所示:
限于篇幅只將寫一個扇區(qū)代碼編寫(讀扇區(qū)代碼基本與此相同)如下:
;寫一個扇區(qū)
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