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

📄 writefile.lst

📁 全国电子设计大赛:智能电动车的设计.实现功能:以AT89C52单片机为核心
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   WRITEFILE                                                             11/15/2005 18:46:55 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE WRITEFILE
OBJECT MODULE PLACED IN WriteFile.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil Uvision V7.20\C51\BIN\C51.EXE WriteFile.C BROWSE DEBUG OBJECTEXTEND SYMBOLS

line level    source

   1          //*************************************************************************************************
   2          //  Module Name :  WriteFile.C
   3          //  CreateDate  :  2005-05-09
   4          //  ModifData   :  2005-05-09
   5          //  Description :  
   6          //  Author      :  李远正
   7          //  Version     :  V1.0
   8          //*************************************************************************************************
   9          // 
  10          // U盘文件读写模块, 
  11          // MCS-51单片机C语言程序, 仅适用于V2.5及以上版本的模块 
  12          // 因为使用U盘文件读写模块而不是使用U盘文件级子程序库,所以占用较少的单片机资源 
  13          
  14          #include <C8051F020.H> 
  15          #include <string.h>
  16          #include <stdio.h>
  17          #include "Function.H"
  18          #include "12C887.H"   // Save temporary data 
  19          #include "USBP.H" 
  20          #include "WriteFile.H" 
  21          
  22          //=================================================================================================
  23          // 显示U盘操作的进度子程序 
  24          void DisplayGuage ( unsigned char guage )
  25          {
  26   1              GUAGE  = guage; 
  27   1              SCREEN = 51;  // 进入 51 屏幕,显示U盘操作进度 
  28   1              Display( ); 
  29   1      }
  30          
  31          //-------------------------------------------------------------------------------------------------
  32          // 检查操作状态,如果错误则显示错误代码并停机,应该替换为实际的处理措施 
  33          void mStopIfError( unsigned char iError )
  34          {
  35   1              if ( iError == ERR_SUCCESS ) return;  // 操作成功返回 
  36   1              
  37   1              SCREEN = 52; modifying  = 1;   // 进入 52 屏幕,显示错误 
  38   1              Display( ); 
  39   1      }
  40          
  41          //-------------------------------------------------------------------------------------------------
  42          // 16位大端与小端格式的数据处理 
  43          unsigned short  SwapUINT16( unsigned short d )
  44          {
  45   1              return( ( d << 8 ) & 0xFF00 | ( d >> 8 ) & 0xFF );
  46   1      }
  47          
  48          //=================================================================================================
  49          // 向缓冲区写入要发送的数字 
  50          void mCopyNumberToBUF( unsigned char number )
  51          {
  52   1              WriteFileSize++;           // 文件总大小 
  53   1              *buffer++ = number; 
  54   1              *buffer = '\0';
  55   1      }
C51 COMPILER V7.20   WRITEFILE                                                             11/15/2005 18:46:55 PAGE 2   

  56          
  57          //-------------------------------------------------------------------------------------------------
  58          // 向缓冲区写入要发送的字符串 
  59          void mCopyCodeStringToBUF( unsigned char *CodeString )
  60          {
  61   1              for ( ; *CodeString!=0; )  // 遇到停止符\0结束
  62   1              {
  63   2                      WriteFileSize++;       // 文件总大小 
  64   2                  *buffer++ = *CodeString++;
  65   2              }
  66   1      }
  67          
  68          //-------------------------------------------------------------------------------------------------
  69          // 向指定缓冲区写入数据块文件 
  70          // 要写入数据的缓冲区首地址:  BufStart
  71          // 记录文件数据的总大少    :  TotalFileSize 
  72          // 记录数据写到缓冲区的位置:  buffer 
  73          void WriteDataToBUF( unsigned char *BufStart )
  74          {
  75   1              unsigned char i, IronNumber;
  76   1              unsigned int  MetalDistance;
  77   1              #define  Distance  MetalDistance     // 节约一个变量单元 
  78   1      
  79   1              WriteFileSize = 0;    // 写入文件数据数目清零 
  80   1              buffer =  BufStart;   // 指向缓冲区碎片数据(需要重新写入的)的末地址 
  81   1      
  82   1              if ( superaddition )  // 追加数据次数计数 
  83   1              {
  84   2                  mCopyNumberToBUF( 0x0D ); mCopyNumberToBUF( 0x0A );   // 回车换行 
  85   2                  mCopyCodeStringToBUF( "(数据追加)" ); 
  86   2                      mCopyNumberToBUF( 0x0D ); mCopyNumberToBUF( 0x0A );   // 回车换行 
  87   2              }
  88   1              
  89   1              mCopyCodeStringToBUF( "现在日期是 20" );
  90   1              i = time_buf[6]; 
  91   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 ); mCopyNumberToBUF( '-' ); 
  92   1              i = time_buf[5]; 
  93   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 ); mCopyNumberToBUF( '-' ); 
  94   1              i = time_buf[4]; 
  95   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 );
  96   1              mCopyNumberToBUF( 0x0D ); mCopyNumberToBUF( 0x0A );   // 回车换行 
  97   1              mCopyCodeStringToBUF( "现在时间是 " );
  98   1              i = time_buf[2]; 
  99   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 ); mCopyNumberToBUF( ':' ); 
 100   1              i = time_buf[1]; 
 101   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 ); mCopyNumberToBUF( ':' ); 
 102   1              i = time_buf[0]; 
 103   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 );
 104   1              mCopyNumberToBUF( 0x0D ); mCopyNumberToBUF( 0x0A );   // 回车换行 
 105   1      
 106   1              mCopyCodeStringToBUF( "“直道区”检测到铁片的数目为:" );
 107   1              i = Read12C887RAM( IRON_NUMBER_RANGE );    // 从 12C887 中取出数据 
 108   1              mCopyNumberToBUF( i/10+0x30 ); mCopyNumberToBUF( i%10+0x30 );
 109   1              mCopyCodeStringToBUF( "(个)" ); 
 110   1              mCopyNumberToBUF( 0x0D ); mCopyNumberToBUF( 0x0A );   // 回车换行 
 111   1      
 112   1              IronNumber = i;  // 检测铁片数目,确定存储数据量多少 
 113   1      
 114   1              if( IronNumber > 0 )
 115   1              {

⌨️ 快捷键说明

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