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

📄 apicomm.lst

📁 USB鼠标,单片机的,可以
💻 LST
字号:
C51 COMPILER V6.23a  APICOMM                                                               08/17/2006 16:45:10 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE APICOMM
OBJECT MODULE PLACED IN .\Obj\APIComm.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\..\Driver\Comm\APIComm.c LARGE OPTIMIZE(2,SPEED) MODP2 PRINT(.\Obj\APICo
                    -mm.lst) OBJECT(.\Obj\APIComm.obj) 

stmt level    source

   1          /*
   2          * CopyRight (C) 2005,江苏盛唐电子产品有限公司
   3          * All Rights Reserved.
   4          *
   5          * 文件名称:APIComm.C
   6          * 文件标识:
   7          * 摘    要:RS232通信类API的实现文件
   8          *
   9          * 当前版本:1.0
  10          * 作    者:熊刚
  11          * 完成日期:2005年10月7日
  12          *
  13          * 取代版本:
  14          * 原作者  :
  15          * 完成日期:
  16          */
  17          
  18          #include "..\inc\includes.h"
  19          #include <stdarg.h>
  20          
  21          //--------------------------------------------------------------------------------------
  22          // 函 数 名:uchar ReadDataFromRS232(uchar SeriesComID, uchar ucReadLen, uchar *pucData)
  23          // 用    途:从串行口读数据
  24          // 入口参数:uchar SeriesComID:串口号
  25          //                           1:串口1
  26          //                           2:串口2
  27          //           uchar *sucData   :写数据缓冲区
  28          //           uchar ucLen      :写数据长度
  29          // 返    回: 无
  30          //--------------------------------------------------------------------------------------
  31          void WriteDataToRS232(uchar SeriesComID, const uchar *sucData, uchar ucLen)
  32          {
  33   1              uchar uci = 0;
  34   1      
  35   1      /*
  36   1              if(SeriesComID == PC_COM1)
  37   1              {
  38   1                      Open_Serial(COM_1,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
  39   1              }
  40   1              else if(SeriesComID == PC_COM2)
  41   1              {
  42   1                      Open_Serial(COM_2,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
  43   1              }
  44   1              else
  45   1              {
  46   1      
  47   1              }
  48   1      */
  49   1      
  50   1              //XBYTE[0x0001] = 0x04;
  51   1              for ( uci = 0; uci < ucLen; uci++ )
  52   1              {
  53   2              //      SendToCom( *(sucData + uci) );
  54   2                      Serial_Write( SeriesComID,sucData[uci]);        //必须确保字符发送完成后才能返回。否则会丢失最后1个字符。
C51 COMPILER V6.23a  APICOMM                                                               08/17/2006 16:45:10 PAGE 2   

  55   2              //      pause(10);
  56   2              }
  57   1      //      Close_Serial(COM_1);
  58   1      /*
  59   1              if(SeriesComID == PC_COM1)
  60   1              {
  61   1                      Close_Serial(COM_1);
  62   1              }
  63   1              else if(SeriesComID == PC_COM2)
  64   1              {
  65   1                      Close_Serial(COM_2);
  66   1              }
  67   1              else
  68   1              {
  69   1      
  70   1              }
  71   1              */
  72   1      }
  73          
  74          //功能介绍:利用串口设置一个断点
  75          //入口参数:串口号
  76          //出口参数:
  77          //返回  :接收到的字符值
  78          //备注:
  79          uchar  SetComBreakPoint(uchar SeriesComID)
  80          {
  81   1      
  82   1              uchar ucReturnValue;
  83   1              uchar uci;
  84   1      
  85   1              while(1)
  86   1              {
  87   2                      if(Serial_Read(SeriesComID,&uci))
  88   2                      {
  89   3                              break;
  90   3                      }
  91   2              }
  92   1      
  93   1              ucReturnValue = uci;
  94   1      
  95   1              return ucReturnValue;
  96   1      }
  97          
  98          //功能介绍:向串行口发送一个字符串
  99          //入口参数:1 串口号
 100          //                      2 指向待发的字符串指针
 101          //出口参数:无
 102          //返回 :      无
 103          //备注:        字符串应以空(NULL)结尾
 104          
 105          void ComShowString(uchar ucSeriesComID, const uchar *ucShowString)
 106          {
 107   1              uchar ucStrLen;
 108   1              uchar ComStrArr[4];
 109   1      
 110   1              ucStrLen = strlen(ucShowString);
 111   1      
 112   1              WriteDataToRS232(ucSeriesComID, ucShowString,ucStrLen);
 113   1      
 114   1        //    strcpy (ComStrArr, "\0x0D\0x0A");
 115   1              ComStrArr[0] = 0x0D;
 116   1              ComStrArr[1] = 0x0A;
C51 COMPILER V6.23a  APICOMM                                                               08/17/2006 16:45:10 PAGE 3   

 117   1              WriteDataToRS232(ucSeriesComID, ComStrArr,2);
 118   1      
 119   1      }
 120          
 121          /*
 122          static uchar ChangeHexToAscii(uchar ucHex)
 123          {
 124                  uchar ucResult;
 125          
 126                  ucResult = (ucHex & 0x0F) + '0';
 127                  if(ucResult > '9')
 128                  {
 129                          ucResult += 7;
 130                  }
 131                  return ucResult;
 132          }
 133          */
 134          
 135          //========================================================================================================
             -===
 136          //功能: 1.将16进制数据转为文本,并在尾部追加一个空格
 137          //输入:
 138          //输出: 无
 139          //备注: 无
 140          //日志: 1.2003-5-30建立(lxx)
 141          //========================================================================================================
             -===
 142          void ComPrintf (uchar *DispText, uchar DispData)
 143          {
 144   1      
 145   1              DispText [0] = (DispData >> 4) + '0';
 146   1              if (DispText [0] >= 0x3A && DispText [0] <= 0x3F) DispText [0] += 7;
 147   1              DispText [1] = (DispData &  0x0F) + '0';
 148   1              if (DispText [1] >= 0x3A && DispText [1] <= 0x3F) DispText [1] += 7;
 149   1              DispText [2] = ' ';
 150   1      }
 151          //========================================================================================================
             -===
 152          //功能: 1.将16进制数据转为文本,并通过串口发送
 153          //输入: 1.串口号
 154          //      2.指针型,指向报文首地址
 155          //      3.字节型,报文长度
 156          //输出: 无
 157          //备注: 无
 158          //日志: 1.2003-5-30建立(lxx)
 159          //修改  xg
 160          //========================================================================================================
             -===
 161          void ComSendText (uchar ucCom_ID, void *Buffer, uchar cArrLen)
 162          {
 163   1              uchar  i;
 164   1              uchar  ComStrArr [4];
 165   1      
 166   1              for (i = 0; i < cArrLen; i++)
 167   1              {
 168   2                      ComPrintf (ComStrArr, *((uchar *)Buffer + i));
 169   2                      WriteDataToRS232(ucCom_ID,ComStrArr,3);
 170   2              }
 171   1      
 172   1              ComStrArr[0] = 0x0D;
 173   1              ComStrArr[1] = 0x0A;
 174   1              WriteDataToRS232(ucCom_ID,ComStrArr,2);
C51 COMPILER V6.23a  APICOMM                                                               08/17/2006 16:45:10 PAGE 4   

 175   1      }
 176          
 177          //========================================================================================================
             -===
 178          //功能: 1.将数据以printf的格式通过串口向外发送
 179          //输入: 1.串口号
 180          //      2.字符串,可选变量进行格式化输出。
 181          //输出: 无
 182          //备注: 无
 183          //日志: 1.2006-6-25建立(熊刚)
 184          //修改  
 185          //========================================================================================================
             -===
 186          /*
 187          void ComPrintf(uchar ucCom_ID,char *fmt,...)
 188          {
 189                  va_list ap;
 190                  char DispString[1024];
 191                  uchar ucStrLen;
 192                  
 193                  va_start(ap,fmt);
 194                  vsprintf(DispString,fmt,ap);
 195                  
 196                  ucStrLen = strlen(DispString);
 197                  WriteDataToRS232(ucCom_ID, DispString,ucStrLen);
 198                  va_end(ap);
 199          }
 200          */
 201          
 202          
 203          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    598    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      32
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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