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

📄 commu485.lst

📁 电能表源码
💻 LST
字号:
C51 COMPILER V7.06   COMMU485                                                              11/24/2008 09:37:07 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE COMMU485
OBJECT MODULE PLACED IN commu485.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bottom\commu485.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS MODDP2 INCDIR(C:\DO
                    -CUMENTS AND SETTINGS\ADMINISTRATOR.LENOVO-80B42371\桌面\VANGO\程序\var\) DEBUG OBJECTEXTEND PRINT(.\commu485.lst) OBJECT
                    -(commu485.obj)

stmt level    source

   1          /*************************************************************************************
   2          
   3                  文件类型:485通讯模块
   4                  文件作用:
   5                  修改权限:
   6                  文件相关:
   7                  
   8                  创 建 人:chenbo
   9                  创建日期:2007.06.21
  10                  当前版本:Ver0.1
  11                  
  12                  版本信息:Ver0.1                                        GeminiKQ
  13          
  14          **************************************************************************************/
  15          #include "Tiger.h"
*** WARNING C318 IN LINE 15 OF bottom\commu485.c: can't open file 'Tiger.h'
  16          
  17          
  18          
  19          unsigned int code botelv_table[]={300,1200,2400,4800,9600};
  20          //=================================================
  21          //函数功能:初始化485通讯模块
  22          //
  23          //=================================================
  24          void init_485comm(void)
  25          { uint8  i;
*** ERROR C202 IN LINE 25 OF BOTTOM\COMMU485.C: 'uint8': undefined identifier
*** ERROR C141 IN LINE 25 OF BOTTOM\COMMU485.C: syntax error near 'i'
  26   1      //  uint16 temp_data;
  27   1       // if(ram[RAM_botelv]>4)                       //数据出错,默认为1200 
  28   1       //    ram[RAM_botelv]=0;
  29   1       // temp_data=botelv_table[ram[RAM_botelv]];
  30   1        CfgEU(5,1200,11,0);                        //设置通讯波特率; 11数据,偶校验
  31   1        CfgPort(7,2);                              //P1_3座位RXD4
  32   1        P1IE|=0x08;                                //输入使能
  33   1        CfgPort(8,2);                              //P1_4座位TXD4
  34   1        P1OE&=0xef;                                //输出使能
  35   1        for(i=0;i<25;i++)                          //清缓冲 25B
  36   1           buff_485data[i]=0;
  37   1        len_485commdata=0;
  38   1        point_sendaddr=0;
  39   1        timedelay_comm=0;
  40   1        sta_485comm=standby_comm;
  41   1        jiaoyan_type=type_enven;
  42   1        SetInterrupt(18);                           //打开接收中断
  43   1      }
  44          
  45          //=============================================================
  46          //函数功能:485接收中断处理函数。
  47          //
  48          //==============================================================
  49          void rec_485comm(void)
  50          {uint8 i;
C51 COMPILER V7.06   COMMU485                                                              11/24/2008 09:37:07 PAGE 2   

  51   1       timedelay_comm=0;                                     //清接收等待延时
  52   1       switch (sta_485comm)
  53   1           {case standby_comm:                               //等待状态
  54   2                     if((buff_485rec&0xff)==0x68)                //全国规约开始
  55   2                            { sta_485comm=recdata_comm;              //进入接收状态
  56   3                                  len_485commdata=1;
  57   3                                      buff_485data[0]=(unsigned char)buff_485rec;  
  58   3                                      jiaoyan_type=type_enven;           //偶校验
  59   3                                      type_protocl485=type_quanguo;      //全国规约
  60   3                                }
  61   2                         break;
  62   2                case recdata_comm:                           //接收状态
  63   2                     i=buff_485rec>>8;                       //取校验位
  64   2                        // if(i==0)                              //接收数据正确
  65   2                            { len_485commdata++;
  66   3                                  buff_485data[len_485commdata-1]=(unsigned char)buff_485rec;
  67   3                                }
  68   2                /*
  69   2                 else                                     //接收数据出错
  70   2                            { sta_485comm=standby_comm;           //进入等待状态
  71   2                                  len_485commdata=0;                  //清接收缓冲
  72   2                                }
  73   2                */
  74   2                         break;
  75   2                default:                                    //                           
  76   2                     break;
  77   2               }
  78   1               
  79   1      }  
  80          
  81          //==========================================================
  82          //函数功能:发送第一个数据,开发送中断
  83          //
  84          //==========================================================
  85          void start_send485(void)
  86          { //uint8 i;
  87   1        timedelay_comm=0;
  88   1        ClrInterrupt(18);                            //禁止接收
  89   1        SetInterrupt(17);                            //开发送中断
  90   1        sta_485comm=senddata_comm;                   //485处于发送状态
  91   1        SendUData(buff_485data[0],5);                //发送第一个数据
  92   1        /*
  93   1        i=check_bitnum(buff_485data[0]);            //发送奇偶校验位
  94   1        if(jiaoyan_type==type_enven)                //如果是偶校验
  95   1          { if(i==0)
  96   1                   SCON4&=0xf7;
  97   1            else
  98   1               SCON4|=0x08;
  99   1              }
 100   1        SBUF4=buff_485data[0];                      //发送第一数据
 101   1        */
 102   1        len_485commdata=len_485commdata-1;
 103   1        point_sendaddr=0;
 104   1      
 105   1      }
 106          
 107          //==========================================================
 108          //函数功能:485发送中断相应函数
 109          //
 110          //==========================================================
 111          
 112          void intrupt_send485(void)
C51 COMPILER V7.06   COMMU485                                                              11/24/2008 09:37:07 PAGE 3   

 113          {//uint8 i;
 114   1        timedelay_comm=0;
 115   1        if(sta_485comm==senddata_comm)
 116   1           { if(len_485commdata>0)                        //如果还未发送完毕
 117   2                     { len_485commdata=len_485commdata-1;
 118   3                           point_sendaddr++;
 119   3                               SendUData(buff_485data[point_sendaddr],5);
 120   3                   /*
 121   3                   i=check_bitnum(buff_485data[point_sendaddr]);            //发送奇偶校验位
 122   3                   if(jiaoyan_type==type_enven)                             //如果是偶校验
 123   3                      { if(i==0)
 124   3                               SCON4&=0xf7;
 125   3                        else
 126   3                           SCON4|=0x08;
 127   3                          }
 128   3                   SBUF1=buff_485data[point_sendaddr];                      //发送数据
 129   3                   */
 130   3                     }
 131   2                      else                                                           //如果发送完毕 
 132   2                         { SetInterrupt(18);                                          //允许接收
 133   3                           ClrInterrupt(17);                                           //禁止发送
 134   3                           sta_485comm=standby_comm;                                  //485重新进入等待状态 
 135   3                         }
 136   2      
 137   2               }
 138   1      }                                                                                                         
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                

C51 COMPILATION COMPLETE.  1 WARNING(S),  2 ERROR(S)

⌨️ 快捷键说明

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