⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sd.lst

📁 c51单片机+pdiusbd12芯片的假u盘设计
💻 LST
字号:
C51 COMPILER V7.06   SD                                                                    11/12/2008 23:04:11 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SD
OBJECT MODULE PLACED IN sd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sd.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include "sd.h"
   3          #include <stdio.h>
   4          #include <intrins.h>
   5          #include "D12_Define.h"
   6          
   7          ///////全局变量///
   8          
   9          //////////////////////////
  10          
  11          
  12          void delay()
  13          {
  14   1      _nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  15   1      
  16   1      }
  17          ///////////////////////////////硬件层函数/////////////////////
  18          void Write_SD(uchar idata val)           //写一个字节数据
  19          {
  20   1              uchar idata i;
  21   1              for(i=0;i<8;i++)
  22   1              {
  23   2                      SD_DataIn=0;
  24   2                      if(0x80==(val&0x80))
  25   2                              SD_DataIn=1;                    
  26   2                      SD_CLK=0;
  27   2                      delay();
  28   2                      SD_CLK=1;
  29   2                      val=val<<1;     
  30   2              }
  31   1              SD_DataIn=1;
  32   1      }
  33          
  34          uchar Read_SD()
  35          {
  36   1              uchar idata R1=0,i;
  37   1              for(i=0;i<8;i++)
  38   1              {
  39   2                      SD_CLK=0;
  40   2                      R1=R1<<1;
  41   2                      R1=R1|SD_DataOut;
  42   2                      SD_CLK=1;                       
  43   2              }
  44   1              return R1;      
  45   1      }
  46          ///////////////////////////////硬件层函数/////////////////////
  47          
  48          
  49          //////////////////////////////D12_函数//////////////////////////
  50          uchar Write_SD_COM(uchar idata com,unsigned long int idata arg)     //写SD命令
  51          {
  52   1              uchar idata i;
  53   1              //SD_DataOut=1;
  54   1              SD_CS=0;
  55   1      //      while(!SD_DataOut);   //总线忙  等待
C51 COMPILER V7.06   SD                                                                    11/12/2008 23:04:11 PAGE 2   

  56   1              Write_SD(0xff);      //写八个时钟周期
  57   1              Write_SD(com|0x40);      //写命令字
  58   1              Write_SD((uchar)(arg>>24));    //arg可能是扇区地址等
  59   1              Write_SD((uchar)(arg>>16));
  60   1              Write_SD((uchar)(arg>>8));
  61   1              Write_SD((uchar)arg);
  62   1              Write_SD(0x95);      //此CRC是CMD0的CRC,之后可以写一个CMD59命令对SPI写命令都免除CRC位

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -