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

📄 debug375.lst

📁 本程序为CH375主机模式下读写U盘的方案
💻 LST
字号:
C51 COMPILER V7.50   DEBUG375                                                              12/06/2005 11:33:34 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DEBUG375
OBJECT MODULE PLACED IN debug375.OBJ
COMPILER INVOKED BY: C:\Keil\C51\Bin\c51.exe debug375.c DB OE SMALL ROM(LARGE)

line level    source

   1          #include <reg51.h>
   2          //#include <stdio.h>
   3          #include <string.h>
   4          /*端口地址依然可用*/
   5          unsigned char volatile xdata    CH375_CMD_PORT _at_ 0xBDF1;     /* CH375命令端口的I/O地址 */
   6          unsigned char volatile xdata    CH375_DAT_PORT _at_ 0xBCF0;     /* CH375数据端口的I/O地址 */
   7          sbit    CH375_INT_WIRE  =               0xB0^2; /* P3.2, INT0, 连接CH375的INT#引脚,用于查询中断状态 */
   8          
   9          #define  INT8  unsigned char
  10          
  11          //外部命令
  12          #define CMD_RESET_ALL           0x05                    /* 执行硬件复位 */
  13          #define CMD_CHECK_EXIST         0x06                    /* 测试工作状态 */
  14          #define CMD_SET_USB_MODE        0x15                    
  15          #define CMD_DISK_INIT           0x51
  16          #define CMD_GET_STATUS          0x22
  17          #define CMD_DISK_SIZE           0x53
  18          #define CMD_RD_USB_DATA         0x28
  19          #define CMD_DISK_READ           0x54
  20          #define CMD_DISK_RD_GO          0x55
  21          #define CMD_DISK_WRITE          0x56
  22          #define CMD_DISK_WR_GO          0x57
  23          #define CMD_RD_USB_DATA         0x28
  24          #define CMD_WR_USB_DATA         0x2B
  25          
  26          //操作状态结果
  27          #define CMD_RET_SUCCESS   0x51   //操作成功
  28          #define CMD_RET_ABORT     0x5F   //操作失败
  29          
  30          //中断状态结果
  31          #define USB_INT_SUCCESS         0x14
  32          #define USB_INT_DISK_READ       0x1D
  33          #define USB_INT_DISK_WRITE      0x1E
  34          //#define flash_pro(x)  {if(c==x)       flash_led2();//正确慢闪
  35                          //else flash_led1();} //错误快闪
  36                                                                  
  37          
  38          unsigned char c;        //用于返回命令状态
  39          unsigned char *pchar;
  40          unsigned char xdata Usb_Buf[64];
  41          
  42          /* 延时1微秒 */
  43          void    mDelay1uS( )
  44          {
  45   1              INT8 i;
  46   1              for ( i = 1; i != 0; i -- );
  47   1      }
  48          
  49          /* 延时2微秒*/
  50          void    mDelay2uS( )
  51          {
  52   1              INT8 i;
  53   1              for ( i = 2; i != 0; i -- );
  54   1      }
  55          
C51 COMPILER V7.50   DEBUG375                                                              12/06/2005 11:33:34 PAGE 2   

  56          /* 延时100毫秒*/
  57          void    mDelay100mS( )
  58          {
  59   1              INT8    i, j,cn;
  60   1              for ( i = 150; i != 0; i -- ) 
  61   1                      for ( j = 200; j != 0; j -- )
  62   1                       cn+=3;
  63   1      }
  64          
  65          
  66          
  67          
  68          /* 向CH375命令端口写命令数据 */
  69          void CH375_CMD_PORT_d_out( INT8 d_out )
  70          {
  71   1              mDelay1uS( );
  72   1              CH375_CMD_PORT=d_out;
  73   1              mDelay2uS( );  /* 至少延时2uS */
  74   1              
  75   1      }
  76          
  77          /* 向CH375数据端口写数据 */
  78          void CH375_DAT_PORT_d_out( INT8 d_out )
  79          {
  80   1              CH375_DAT_PORT=d_out;
  81   1              mDelay1uS( );
  82   1              
  83   1              
  84   1      }
  85          
  86          INT8 CH375_DAT_PORT_in( )
  87          {
  88   1              mDelay1uS( );
  89   1              return( CH375_DAT_PORT );
  90   1      }
  91          
  92          //快闪灯
  93          void flash_led1()
  94          {
  95   1              P1=0xff;        //灯灭
  96   1              mDelay100mS( );
  97   1              P1=0x00;        //灯亮
  98   1              mDelay100mS( );
  99   1      }
 100          
 101          //慢闪灯
 102          void flash_led2()
 103          {
 104   1              P1=0xff;        //灯灭
 105   1              mDelay100mS( );
 106   1              mDelay100mS( );
 107   1              mDelay100mS( );
 108   1              P1=0x00;        //灯亮
 109   1              mDelay100mS( );
 110   1              mDelay100mS( );
 111   1              mDelay100mS( );
 112   1      }
 113          
 114          
 115          /*******************************************************/
 116          
 117          print_s(unsigned char *pstring,unsigned char string_len)//打印字符串,pstring为字符串首址,string_len为长

⌨️ 快捷键说明

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