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

📄 comm232.lst

📁 STC12C5410AD模拟串口再现多串口通讯
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   COMM232                                                               12/15/2008 11:13:24 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE COMM232
OBJECT MODULE PLACED IN Comm232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Comm232.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1           #include"include.h"
   2          
   3           /********************************************************************************************************
             -*
   4          ** 函数名称: void Initiate_RS232(void)
   5          ** 功能描述: 串口初始化函数
   6          ** 输   入: 无
   7          ** 输   出: 无
   8          ** 全局变量: 
   9          ** 调用模块: 
  10          **
  11          ** 作   者: 李伟
  12          ** 日   期: 2008年12月09日
  13          **-------------------------------------------------------------------------------------------------------
  14          ** 修 改 人:
  15          ** 日   期:
  16          **-------------------------------------------------------------------------------------------------------
  17          ********************************************************************************************************/
  18          void Initiate_RS232(void)
  19          {
  20   1          ES    = 0;
  21   1          PCON |= 0x80;                   //SMOD=1
  22   1          SCON  = 0x50;                   //0101,0001 8位数据位,无奇偶校验
  23   1              TMOD &= 0x0F;
  24   1          TMOD |= 0x20;                   //设置T1为波特率发生器
  25   1          TH1   = 0xFA;                   //11.0592MHz 晶振,波特率=9600
  26   1          TL1   = 0xFA;
  27   1      //    AUXR |=0x10;
  28   1          ES    = 1;                      //允许串口中断
  29   1          EA    = 1;                      //开总中断
  30   1          TR1   = 1;                      //开定时器1
  31   1      }
  32          /*********************************************************************************************************
  33          ** 函数名称: void Suart_Send_Byte(uint8 Send_Byte)
  34          ** 功能描述: 串口发送函数
  35          ** 输   入: 无
  36          ** 输   出: 无
  37          ** 全局变量: 
  38          ** 调用模块: 
  39          **
  40          ** 作   者: 李伟
  41          ** 日   期: 2008年12月09日
  42          **-------------------------------------------------------------------------------------------------------
  43          ** 修 改 人:
  44          ** 日   期:
  45          **-------------------------------------------------------------------------------------------------------
  46          ********************************************************************************************************/
  47          void Suart_Send_Byte(uint8 Send_Byte)
  48          {
  49   1          ES = 0;                      //关串口中断
  50   1          TI = 0;                      //清零串口发送完成中断请求标志
  51   1          SBUF = Send_Byte;
  52   1          //WDT_CONTR = 0x3c;            /**********************喂狗**********************/
  53   1          while(TI == 0);              //等待发送完成
  54   1          TI = 0;                      //清零串口发送完成中断请求标志
C51 COMPILER V7.06   COMM232                                                               12/15/2008 11:13:24 PAGE 2   

  55   1          ES = 1;                      //允许串口中断
  56   1      
  57   1      }
  58          /*********************************************************************************************************
  59          ** 函数名称: void  CommSendByteWithChk(uint8 Commdata)
  60          ** 功能描述: 
  61          ** 输   入: 无
  62          ** 输   出: 无
  63          ** 全局变量: 
  64          ** 调用模块: 
  65          **
  66          ** 作   者: 李伟
  67          ** 日   期: 2008年12月09日
  68          **-------------------------------------------------------------------------------------------------------
  69          ** 修 改 人:
  70          ** 日   期:
  71          **-------------------------------------------------------------------------------------------------------
  72          ********************************************************************************************************/
  73          void  CommSendByteWithChk(uint8 Commdata)
  74          {
  75   1          uint8 i,j;
  76   1          i = Commdata >> 4;
  77   1          j = Commdata & 0x0F;
  78   1          if(i<10)
  79   1              i += 0x30;
  80   1          else
  81   1              i += 0x37;
  82   1          if(j<10)
  83   1              j += 0x30;
  84   1          else
  85   1              j += 0x37;
  86   1          ComCalculChkSum += i;
  87   1          ComCalculChkSum += j;
  88   1          Suart_Send_Byte(i);
  89   1          Suart_Send_Byte(j);
  90   1      }
  91          /*********************************************************************************************************
  92          ** 函数名称: void CommSendByteWithoutChk(uint8 Commdata)
  93          ** 功能描述: 
  94          ** 输   入: 无
  95          ** 输   出: 无
  96          ** 全局变量: 
  97          ** 调用模块: 
  98          **
  99          ** 作   者: 李伟
 100          ** 日   期: 2008年12月10日
 101          **-------------------------------------------------------------------------------------------------------
 102          ** 修 改 人:
 103          ** 日   期:
 104          **-------------------------------------------------------------------------------------------------------
 105          ********************************************************************************************************/
 106          void CommSendByteWithoutChk(uint8 Commdata)
 107          {
 108   1          uint8 i,j;
 109   1          i = Commdata >> 4;
 110   1          j = Commdata & 0x0F;
 111   1          if(i<10)
 112   1              i += 0x30;
 113   1          else
 114   1              i += 0x37;
 115   1          Suart_Send_Byte(i);
 116   1          if(j<10)
C51 COMPILER V7.06   COMM232                                                               12/15/2008 11:13:24 PAGE 3   

 117   1              j += 0x30;
 118   1          else
 119   1              j += 0x37;
 120   1          Suart_Send_Byte(j);
 121   1      }
 122          /*********************************************************************************************************
 123          ** 函数名称: void CommSendWordWithChk(uint16 Commword)
 124          ** 功能描述: 
 125          ** 输   入: 无
 126          ** 输   出: 无
 127          ** 全局变量: 
 128          ** 调用模块: 
 129          **
 130          ** 作   者: 李伟
 131          ** 日   期: 2008年12月10日
 132          **-------------------------------------------------------------------------------------------------------
 133          ** 修 改 人:
 134          ** 日   期:
 135          **-------------------------------------------------------------------------------------------------------
 136          ********************************************************************************************************/
 137          void CommSendWordWithChk(uint16 Commword)
 138          {
 139   1          CommSendByteWithChk((uint8)(Commword>>8));
 140   1          CommSendByteWithChk((uint8)(Commword));
 141   1      }
 142          /*********************************************************************************************************
 143          ** 函数名称: void Comm(void) interrupt 4
 144          ** 功能描述: 串口中断函数
 145          ** 输   入: 无
 146          ** 输   出: 无
 147          ** 全局变量: 
 148          ** 调用模块: 
 149          **
 150          ** 作   者: 李伟
 151          ** 日   期: 2008年12月10日
 152          **-------------------------------------------------------------------------------------------------------
 153          ** 修 改 人:

⌨️ 快捷键说明

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