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

📄 u_func_a.lst

📁 c8051f020+CH375读写U盘文件的程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.02   U_FUNC_A                                                              07/21/2008 09:40:01 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE U_FUNC_A
OBJECT MODULE PLACED IN U_func_a.OBJ
COMPILER INVOKED BY: C:\keil c51\C51\BIN\C51.EXE U_func_a.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<c8051f020.h>
   2          #include<intrins.h>
   3          #include"lcd.h"
   4          #include"read_U.h"
   5          #include"read_U_a.h"
   6          #include"read_U_b.h"
   7          //#include"infrared_receive.h"
   8          
   9          
  10          
  11          /*******************************************************************************
  12          ------读键值程序---------------------------------------------------
  13          ********************************************************************************
  14          说明:入口参数:无
  15                    出口参数:键值
  16          *******************************************************************************/
  17          unsigned char Wait_Infrared()
  18          {
  19   1       unsigned char KeyValue;
  20   1       unsigned int i;
  21   1       while(1)
  22   1              {
  23   2               P4=0xff;
  24   2               while(P4<=0x0f);
  25   2                 
  26   2           for(i=0;i<30000;i++) _nop_;
*** WARNING C275 IN LINE 26 OF U_FUNC_A.C: expression with possibly no effect
  27   2               if(P4>0x0f)
  28   2                        {
  29   3                         KeyValue=P4;
  30   3                         for(i=0;i<9000;i++) Delay();
  31   3                         return KeyValue;
  32   3                        }
  33   2          }
  34   1      }
  35          
  36          /*******************************************************************************
  37          ------延时程序---------------------------------------------------
  38          ********************************************************************************
  39          说明:入口参数:无
  40                    出口参数:无
  41          *******************************************************************************/  
  42          void Delay()
  43          {
  44   1       unsigned char i;
  45   1       for(i=0;i<60;i++)
  46   1       _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  47   1      }
  48          
  49          /*******************************************************************************
  50          ------设置单片机晶振为外部晶振--------------------------------------------------
  51          ********************************************************************************
  52          说明:入口参数:无
  53                    出口参数:无
  54          *******************************************************************************/
C51 COMPILER V8.02   U_FUNC_A                                                              07/21/2008 09:40:01 PAGE 2   

  55          void Oscillator_Init()
  56          {
  57   1          int i = 0;
  58   1         /* OSCXCN    = 0x77;
  59   1          for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
  60   1          while ((OSCXCN & 0x80) == 0);
  61   1          OSCICN    = 0x08;
  62   1              */
  63   1                  OSCXCN    = 0x67;
  64   1          for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
  65   1          while ((OSCXCN & 0x80) == 0);
  66   1          OSCICN    = 0x08;
  67   1      }
  68          
  69          /*******************************************************************************
  70          ------单片机系统初始化---------------------------------------------------
  71          ********************************************************************************
  72          说明:入口参数:无
  73                    出口参数:无
  74          *******************************************************************************/
  75          void Mcu_Init()
  76          {
  77   1       WDTCN     = 0xDE;
  78   1       WDTCN     = 0xAD;
  79   1       XBR2      = 0x40;
  80   1       Oscillator_Init();
  81   1       LCD_Init();
  82   1      // Infrared_Init();
  83   1       Currt_File=0;
  84   1      // IE=0x80;  //开总中断
  85   1      // EIE2|=0x20;//开中断7
  86   1      }
  87          
  88          /*******************************************************************************
  89          ------文件显示程序---------------------------------------------------
  90          ********************************************************************************
  91          说明:入口参数:x坐标,y坐标,文件号
  92                    出口参数:无
  93          *******************************************************************************/
  94          void PrintfFat(unsigned char x,unsigned char y,char file_num)    //用于显示文件名和扩展名
  95                  {unsigned char i,*pt;
  96   1              pt=Fat[file_num].name;
  97   1              LCD_Goto(x,y);
  98   1              _nop_();
  99   1              for(i=0;*(pt+i)!=0;i++)
 100   1                      LCD_WriteData(*(pt+i));
 101   1              pt=Fat[file_num].ext;
 102   1              if(*(pt)!=0x20)
 103   1                 {
 104   2                  LCD_WriteData(0x2e);
 105   2                      for(i=0;i<3;i++)
 106   2                         LCD_WriteData(*(pt+i));
 107   2                 }
 108   1              else 
 109   1                 {
 110   2                   for(i=0;i<3;i++)
 111   2                         LCD_WriteData(*(pt+i));
 112   2                       LCD_WriteData(*(pt));
 113   2                 }
 114   1              }
 115          
 116          /*******************************************************************************
C51 COMPILER V8.02   U_FUNC_A                                                              07/21/2008 09:40:01 PAGE 3   

 117          ------选择要读出数据的u盘---------------------------------------------------
 118          ********************************************************************************
 119          说明:入口参数:无
 120                    出口参数:0:所显示的第一个U盘(U盘A),0xFF:所显示的第二个U盘(U盘B)
 121          *******************************************************************************/
 122          unsigned char SelectDisk()
 123          {
 124   1       unsigned char Key,WhchDisk=0;
 125   1       LCD_Printf(1,1,">>");
 126   1       while(1)
 127   1       {
 128   2        Key=Wait_Infrared();
 129   2        if(Key==DOWN||Key==UP)
 130   2           {
 131   3                WhchDisk=~WhchDisk; 
 132   3                LCD_Printf((WhchDisk/0xff)+1,1,">>");
 133   3                LCD_Printf((~WhchDisk/0xff)+1,1,"  ");
 134   3               }
 135   2        else return WhchDisk;
 136   2       }
 137   1      }
 138          
 139          
 140          
 141          
 142          
 143          
 144          /*******************************************************************************
 145          ------CH375写命令---------------------------------------------------
 146          ********************************************************************************
 147          说明:入口参数:命令字
 148                    出口参数:无
 149          *******************************************************************************/
 150          void CH375HM_INDEX_WR_a(index)
 151          {
 152   1      
 153   1      P2=index;
 154   1      USB_A0a=1;
 155   1      //P2MDOUT=0xff;
 156   1      USB_RDa=1;
 157   1      
 158   1      USB_CSa=0;
 159   1      USB_WRa=0;
 160   1      Delay();
 161   1      USB_WRa=1;
 162   1      USB_CSa=1;
 163   1      USB_A0a=1;
 164   1      P2=0xff;
 165   1      }
 166          
 167          /*******************************************************************************
 168          ------CH375写数据---------------------------------------------------
 169          ********************************************************************************
 170          说明:入口参数:数据
 171                    出口参数:无
 172          *******************************************************************************/
 173          void CH375HM_DATA_WR_a(Data)
 174          { 
 175   1      P2=Data;
 176   1      //P2MDOUT=0xff;
 177   1      USB_A0a=0;
 178   1      USB_CSa=0;
C51 COMPILER V8.02   U_FUNC_A                                                              07/21/2008 09:40:01 PAGE 4   

 179   1      USB_WRa=0;
 180   1      Delay();
 181   1      USB_WRa=1;
 182   1      USB_CSa=1;
 183   1      USB_A0a=1;
 184   1      P2=0xff;
 185   1      }
 186          
 187          /*******************************************************************************
 188          ------CH375读数据---------------------------------------------------
 189          ********************************************************************************
 190          说明:入口参数:无
 191                    出口参数:数据
 192          *******************************************************************************/
 193          unsigned char CH375HM_DATA_RD_a(void)
 194          {
 195   1       unsigned char m; 
 196   1       P2MDOUT=0x00;
 197   1       USB_A0a=0;
 198   1       USB_CSa=0;
 199   1       USB_RDa=0;
 200   1       Delay();
 201   1       m=P2;
 202   1       USB_RDa=1;
 203   1       USB_CSa=1;
 204   1       USB_A0a=1;
 205   1       return (m);
 206   1      }
 207          
 208          /*******************************************************************************
 209          ------初始化U盘A---------------------------------------------------
 210          ********************************************************************************
 211          说明:入口参数:无
 212                    出口参数:0x14:初始化成功,0x1f:初始化失败
 213          *******************************************************************************/
 214          unsigned char Init_Disk_a()
 215          {
 216   1          unsigned char sta;
 217   1              CH375HM_INDEX_WR_a(DISK_INIT);
 218   1          Delay();
 219   1              sta=Wait_Int_a();
 220   1          while(sta!=0x14);
 221   1              sta=USB_INT_DISK_ERR;
 222   1              CH375HM_INDEX_WR_a(DISK_READY);
 223   1              Delay();
 224   1          sta=Wait_Int_a();
 225   1              CH375HM_INDEX_WR_a(  DISK_R_SENSE );  /* 检查USB 存储设备的错误 */
 226   1          sta = Wait_Int_a( );  /* 等待中断并获取状态 */
 227   1              CH375HM_INDEX_WR_a(DISK_READY);
 228   1          sta=Wait_Int_a();
 229   1              return sta;        
 230   1      }
 231          
 232          /*******************************************************************************
 233          ------CH375设置A盘工作模式---------------------------------------------------
 234          ********************************************************************************
 235          说明:入口参数:数据
 236                    出口参数:0x51:操作成功,0x5f:操作失败
 237          *******************************************************************************/
 238          unsigned char Set_Mode_a(unsigned char mode)
 239          {
 240   1          unsigned char temp;
C51 COMPILER V8.02   U_FUNC_A                                                              07/21/2008 09:40:01 PAGE 5   

 241   1              CH375HM_INDEX_WR_a(SET_USB_MODE);
 242   1              CH375HM_DATA_WR_a(mode);
 243   1              temp=CH375HM_DATA_RD_a();
 244   1              return (temp);
 245   1      }
 246          
 247                  
 248          
 249          /*******************************************************************************

⌨️ 快捷键说明

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