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

📄 commuinfr.lst

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


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

stmt level    source

   1          /*************************************************************************************
   2          
   3                  文件类型:红外通讯模块
   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\commuinfr.c: can't open file 'Tiger.h'
  16          
  17          //============================================================
  18          //函数功能:初始化红外通讯模块
  19          //
  20          //=============================================================
  21          void init_infrcomm(void)
  22          { uint8 i;
*** ERROR C202 IN LINE 22 OF BOTTOM\COMMUINFR.C: 'uint8': undefined identifier
*** ERROR C141 IN LINE 22 OF BOTTOM\COMMUINFR.C: syntax error near 'i'
  23   1        F_commudiv=0;
*** ERROR C202 IN LINE 23 OF BOTTOM\COMMUINFR.C: 'F_commudiv': undefined identifier
  24   1        CfgPort(5,0);                               // P1_1初始化为GPIO口
  25   1        P1OE&=0xfd;                                 // 输出使能
  26   1        P1OD|=0x02;                                 // 输出高电平
  27   1      
  28   1        SetIR(43,43);                               // 设置载波型号占空比 86
  29   1        CfgEU(2,1200,11,0);                         // 串口号2,拨特率1200,通讯方式11位,偶校验
  30   1      
  31   1        for(i=0;i<25;i++)                           // 清缓冲
  32   1           buff_reddata[i]=0;
  33   1      
  34   1        CfgPort(13,2);                              // P2_4作为RXD2
  35   1        P2IE|=0x10;                                 // 输入使能
  36   1      //  CfgPort(14,2);                 //           // P2_5作为TXD2
  37   1        CfgPort(14,0);                              // P2_5初始化为GPIO口
  38   1        P2OE&=0xdf;                                 // 输出使能
  39   1        P2OD&=0xdf;                                 // 输出低电平
  40   1      
  41   1        len_infrcommdata=0;
  42   1        point_infrsendaddr=0;
  43   1        timedelay_infrcomm=0;
  44   1        sta_infrcomm=standby_comm;
  45   1        jiaoyan_typeinfr=type_enven;
  46   1        SetInterrupt(8);                           // 打开接收中断
  47   1      }
  48          
  49          //=============================================================
C51 COMPILER V7.06   COMMUINFR                                                             11/24/2008 09:37:07 PAGE 2   

  50          //函数功能:接收中断处理函数。
  51          //
  52          //==============================================================
  53          void rec_infrcomm(void)
  54          {// unsigned int i;
  55   1       timedelay_infrcomm=0;                           // 清接收等待延时
  56   1       switch (sta_infrcomm)                               // 当前通讯状态
  57   1           {case standby_comm:                // 等待状态
  58   2                     if((buff_intrrec&0xff)==0x68)         // 全国规约开始
  59   2                            { sta_infrcomm=recdata_comm;       // 进入接收状态
  60   3                                  len_infrcommdata=1;                          // 接收到的数据个数
  61   3                                      buff_reddata[0]=(unsigned char)buff_intrrec;     // 头 68H 
  62   3                                      jiaoyan_type=type_enven;         // 偶校验
  63   3                                      type_protoclinfr=type_quanguo;   // 全国规约
  64   3                                }
  65   2                         break;
  66   2                case recdata_comm:     // 接收状态
  67   2                            len_infrcommdata++;                                // 接收数据的个数+1
  68   2                                buff_reddata[len_infrcommdata-1]=(unsigned char)buff_intrrec;   
  69   2                         break;
  70   2                case hook_comm:                // 挂起状态
  71   2                        ClrInterrupt(8);       // 关接收中断 
  72   2                    break;
  73   2                default:                              // 出错,重新初始化
  74   2                init_infrcomm();                      
  75   2                break;
  76   2               }
  77   1      }  
  78          
  79          //==========================================================
  80          //函数功能:发送第一个数据,开发送中断
  81          //
  82          //==========================================================
  83          void start_sendinfr(void)
  84          { //uint8 i;
  85   1        timedelay_comm=0;
  86   1        
  87   1        CfgPort(14,2);                               // P2_5作为TXD2
  88   1        ClrInterrupt(8);                             // 禁止接收
  89   1        SetInterrupt(7);                             // 开发送中断
  90   1      
  91   1        sta_infrcomm=senddata_comm;                  // 处于发送状态
  92   1        SendUData(buff_reddata[0],2);                // 发送第一个数据
  93   1        len_infrcommdata=len_infrcommdata-1;
  94   1        point_sendaddr=0;
  95   1      }
  96          
  97          //==========================================================
  98          //函数功能:红外发送中断相应函数
  99          //
 100          //==========================================================
 101          
 102          void intrupt_sendinfr(void)
 103          {//uint8 i;
 104   1        timedelay_comm=0;
 105   1        if(sta_infrcomm==senddata_comm)
 106   1           { if(len_infrcommdata>0)                        //如果还未发送完毕
 107   2                     { len_infrcommdata=len_infrcommdata-1;
 108   3                           point_sendaddr++;
 109   3                               SendUData(buff_reddata[point_sendaddr],2);
 110   3      /*                       ////// 
 111   3                   i=check_bitnum(buff_reddata[point_sendaddr]);     // 发送奇偶校验位
C51 COMPILER V7.06   COMMUINFR                                                             11/24/2008 09:37:07 PAGE 3   

 112   3                   if(jiaoyan_type==type_enven)                      // 如果是偶校验
 113   3                      { if(i==0)
 114   3                               SCON2&=0xf7; 
 115   3                        else
 116   3                           SCON2|=0x08;
 117   3                          }
 118   3                   SBUF2=buff_reddata[point_sendaddr];                //发送数据
 119   3                               *//////
 120   3                     }
 121   2                      else                                              // 如果发送完毕 
 122   2                         {
 123   3                      init_infrcomm();
 124   3                        /* 
 125   3                         SetInterrupt(8);                             // 允许接收
 126   3                           ClrInterrupt(7);                             // 关发送中断 
 127   3                           sta_infrcomm=standby_comm;                   // 485重新进入等待状态 
 128   3                   CfgPort(14,0);                               // P2_5初始化为GPIO口
 129   3                   P2OE&=0xdf;                                  // 输出使能
 130   3                   P2OD&=0xdf;                                  // 输出低电平
 131   3                               CfgPort(13,2);                               // P2_4作为RXD2
 132   3                               P2IE|=0x10;                                  // 输入使能
 133   3                               len_infrcommdata=0;
 134   3                               point_infrsendaddr=0;
 135   3                               timedelay_infrcomm=0;
 136   3                               sta_infrcomm=standby_comm;
 137   3                               jiaoyan_typeinfr=type_enven;
 138   3                               */
 139   3                         }
 140   2               }
 141   1              else 
 142   1           init_infrcomm();
 143   1      }                                                                                                         
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                

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

⌨️ 快捷键说明

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