根据http://members.aon.at/voegel/index.html网站上提供的资料,试验了用BASCOM读写SD卡,完全可以把SD卡当作磁盘来操作,与VB/QB语法兼容,编程非常简单。 
 
  AVR-DOS介绍   Features:         ·  Read and write ASCII-Files         ·  Read and write Binary-Files         ·  Drivers available for Compact Flash Cards, Hard disk, MMC, SD etc.         ·  Completly integrated in BASCOM-AVR Compiler         ·  QB/VB compatible syntax          ·  Completly written in AVR-Assembler (fast and compact)   It works with:         ·  DOS-FAT16 and FAT32 formatted partitions         ·  Files in Root directory and sub directories         ·  Short DOS File names (8.3)         ·  Sector Size of 512 Bytes (nearly all CF-Cards and HD)         ·  Linear sector addressing (LBA-Mode). (all newer CF-Cards and HD). C/H/S-Mode of old HD is not supported.   Please note: AVR-DOS is only free for non commercial use. For commercial use, or when you are interested in ASM-Code and complete documentation please check License directives   Functions: 
  Here is a list of all in BASCOM-AVR integrated statements, which uses AVR-DOS functionality. 
 
  Disk/Directory: 
           ·  InitFileSystem (<Partition#>)            ·  DiskSize            ·  DiskFree            ·  Kill <FileName>            ·  Dir ([ <FileName> ])            ·  FileLen ([ <FileName> ])            ·  FileDateTime ([ <FileName> ])            ·  FileDate ([ <FileName> ])            ·  FileTime ([ <FileName> ])            ·  GetAttr ([ <FileName> ])               ·  Name<OldFileName> As <NewFileName>               ·  ChDir <PathName>])               ·  MkDir <PathName>])               ·  RmDir <PathName>])      File create, open, read, write, close:            ·  FreeFile             ·  Open <FileName> For Input/Output/Append/Binary as #<File#>            ·  Close <File#>            ·  Flush [<File#>]            ·  Print #<File#>, Variable1; Variable2; …            ·  Write #<File#>, Variable1, Variable2, …            ·  Input #<File#>, Variable1, Variable2, …            ·  Line Input #<File#>, StringVariable            ·  Get #<File#>, <Variable> [,<Position>]            ·  Put #<File#>, <Variable> [,<Position>]            ·  Seek #<File#> [,<New Position>]   Infos about opened files: 
           ·  EOF (#<File#>)            ·  LOC (#<File#>)            ·  LOF (#<File#>)            ·  FileAttr (#<File#>)  
  Others: 
           ·  Bload <FileName>, <SRAM-Address>
            ·  Bsave <FileName>, <SRAM-Address>, <Length> 
 
SD卡与AVR数据信号电平转换示意图: 
 
 
我做的转换电路板:Vcc使用2个二极管降压。 
 
 
BASCOM源程序下载: 
 
 
 
  
 |