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

📄 s.lst

📁 16C554VX1128MAX4359-MAX4456P89LPC952 驱动开发
💻 LST
字号:
C51 COMPILER V8.02   S                                                                     05/20/2008 13:57:43 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE S
OBJECT MODULE PLACED IN s.OBJ
COMPILER INVOKED BY: D:\软件安装路径\C51\BIN\C51.EXE s.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //------------------------------------------------------------------------
   2          #include   "AT16C554.H"
*** WARNING C318 IN LINE 2 OF s.c: can't open file 'AT16C554.H'
   3          //--------------------------------------------------------------------------------------------------
   4          code            Uint    PORTAddrTABLE[PortNumber]={STARTADDR_SERIAL1,
*** ERROR C129 IN LINE 4 OF S.C: missing ';' before 'PORTAddrTABLE'
   5                                                                                                     STARTADDR_SERIAL2,
   6                                                                                                     STARTADDR_SERIAL3,
   7                                                                                                     STARTADDR_SERIAL4};          //串口端口地址映射表
   8          
   9          
  10          xdata           TCommHandle             CommDevice[PortNumber];
  11          sbit            reset_16c554 =  P1^4;                                                   //ST16C554 复位控制线
  12          //---------------------------------------------------------------------------------------------------
  13          //  Define Private Faction
  14          //-----------------------------------------------------------------------------------------------------
  15          
  16          bool ReadPortRecBuf(uchar Port,Uchar *Byte);
  17          bool WritePortSendBuf(uchar Port,Uchar Byte);
  18          void Port_open(Uchar PortID,Uint Baud);
  19          
  20          //-------------------------------------------------------------------------
  21          //  Define Public Faction
  22          //-------------------------------------------------------------------------
  23          
  24          bool Init_16c554(void);
  25          void Port_open(Uchar PortID,Uint Baud);
  26          //void Port_open(Uchar PortID,int Baud,Uchar DataBitNum,Uchar Parit,Uchar Stop);
  27          void Port_close(Uchar PortID);
  28          int  Port_Receive(Uchar PortID,void *Buffer,int Count);
  29          int  Port_Send(Uchar PortID,void *Buffer,int Count);
  30          
  31          
  32          
  33          //---------------------------------------------------------------------------------------------
  34          //  Public Faction Code
  35          //---------------------------------------------------------------------------------------------
  36          
  37          
  38          
  39          
  40          //---------------------------------------------------------------------------------------------
  41          //  初始化ST16C554
  42          //---------------------------------------------------------------------------------------------
  43          bool Init_16c554(void)
  44          {
  45          uchar xdata *ptr;
  46          uchar i=Init_16c554_Count;
  47          bool Result=false;
  48          
  49          while(--i)                                                                                                      // 复位10次不成功,则返回出错
  50                  {
  51                    _nop_();
  52                    reset_16c554 = FREE_RESET;
  53                    ms_delay(5);
C51 COMPILER V8.02   S                                                                     05/20/2008 13:57:43 PAGE 2   

  54                    reset_16c554 = RESET;                                         // 复位16C554
  55                    ms_delay(10);                                                         // 延时1毫秒
  56                    reset_16c554 = FREE_RESET;
  57                    ms_delay(10);
  58                    ptr = STARTADDR_SERIAL1+SPR;                          // 通道1临时寄存器
  59                    *ptr = 0xaa;                                                          // 写测试值到临时寄存器
  60                    _nop_();
  61                    _nop_();
  62                    if(*ptr == 0xaa) 
  63                          {
  64                             Result=true;
  65                             break;
  66                          };//end if
  67                  };//end while
  68          for(i=0;i<PortNumber;i++) CommDevice[i].RAMAddress_Map=PORTAddrTABLE[i];
  69          
  70          return Result;
  71          }
  72          //---------------------------------------------------------------------------------------------
  73          //    打开串口    
  74          //---------------------------------------------------------------------------------------------
  75          void Port_open(Uchar PortID,Uint Baud)
  76          {
  77          uchar xdata *ptr;
  78          
  79          ptr = CommDevice[PortID].RAMAddress_Map;                                                                        // 取端口的基地址
  80          *(ptr+LCR) = LCR_DIV_EN;                                                                                                                                // 允许发送波特率
  81          *(ptr+DLM) = (uchar)(Baud>>8);
  82          *(ptr+DLL) = (uchar)Baud;                                                                                                       // 设置默任波特率为19200
  83          *(ptr+LCR) = LCR_WORD_LEN8|LCR_STOP_LEN1;                                                                               // 设置字长为8,1个停止位,无校验位
  84          *(ptr+FCR) = FIFO_EN|FIFO_TRI_LEVEL_1|FIFO_CLEAR_RCVR|FIFO_CLEAR_XMIT|FIFO_DMA_MODE;    // 设置FIFO 控制寄

⌨️ 快捷键说明

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