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

📄 int.lst

📁 Keil c工程
💻 LST
字号:
C51 COMPILER V7.10   INT                                                                   08/29/2005 13:02:03 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE INT
OBJECT MODULE PLACED IN .\out\INT.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE c\INT.C BROWSE INTVECTOR(0XC000) DEBUG OBJECTEXTEND PRINT(.\l
                    -st\INT.lst) OBJECT(.\out\INT.obj)

line level    source

   1          
   2          #include "..\h\INT.h"
   3          
   4          
   5          void Finish() interrupt 2       //using 0
   6          {
   7   1      }
   8          
   9          static byte MS10=0,uS100=0,SEC=0;                                       //单位为10mS,100uS
  10          
  11          word TASK_TIMER;                
  12          void timer0() interrupt 1               //T0
  13          {
  14   1      uS100++;
  15   1      if(uS100==100) {uS100=0;MS10++;}
  16   1      if(MS10==100)  {MS10=0;SEC++;}
  17   1      
  18   1      TASK_TIMER--;
  19   1      
  20   1      }
  21          
  22          void Delay100uS(word time)
  23          {
  24   1      TASK_TIMER=time;
  25   1      //while(TASK_TIMER);                    //wait TASK_TIMER reduced to 0,may execute other task
  26   1                                                              //可能导致恰好错过,造成无响应。
  27   1      while(TASK_TIMER<10);           //设置1mS的缓冲时间。
  28   1      }
  29          
  30          word GetCurruntTime(void)  //10mS为单位
  31          {
  32   1      return(SEC*100+MS10);
  33   1      }
  34          
  35          void in_int() interrupt 0
  36          {
  37   1      }
  38          
  39          /*
  40          void time1()  interrupt 3
  41          {}
  42          */
  43          
  44          byte COMFRAME[8]={COMFLAGSTART,'0','0','0','0','0','0',COMFLAGEND};             //接收缓存
  45          bit FRAMEEND=0;                         //接受完一帧数据置1 
  46          byte RECEIVE_BYTE=0;            //接收到的字节数
  47          byte transmite_num=0;           //已经发送的字节数
  48          byte FRAME_T[8]={COMFLAGSTART,'0','0','0','0','0','0',COMFLAGEND};
  49          bit transmite_finish=1;                 //桢发送完毕置1,只有发送完一桢后才能发送下一桢
  50          
  51          void com() interrupt  4                 
  52          {
  53   1      
  54   1      if(RI)                          //接收部分
C51 COMPILER V7.10   INT                                                                   08/29/2005 13:02:03 PAGE 2   

  55   1        {
  56   2           if(RECEIVE_BYTE==0)
  57   2                  {
  58   3                       if(SBUF==COMFLAGSTART) {RECEIVE_BYTE=1;COMFRAME[0]=COMFLAGSTART;}
  59   3                      }
  60   2               else if(RECEIVE_BYTE<7) 
  61   2                  {
  62   3                        COMFRAME[RECEIVE_BYTE]=SBUF;
  63   3                        RECEIVE_BYTE++;
  64   3                      }
  65   2               else if(RECEIVE_BYTE==7)
  66   2                  {
  67   3                       if(SBUF==COMFLAGEND) FRAMEEND=1;
  68   3                       RECEIVE_BYTE=0;
  69   3                      }
  70   2               RI=0;
  71   2        }
  72   1      
  73   1      if(TI)                          //发送部分
  74   1                      {
  75   2                           TI=0;
  76   2                               if(transmite_num<7)    //一桢尚未发送完
  77   2                                      {
  78   3                                       transmite_num++;
  79   3                                       SBUF=FRAME_T[transmite_num];
  80   3                                      }       
  81   2                           else 
  82   2                                  {transmite_num=0; //一桢发送完成则重置状态
  83   3                                       transmite_finish=1;}
  84   2                      }
  85   1      }
  86          
  87          
  88          
  89          void ecc(void)                          //发送数据的校验,从COMFLAGSTART一直加到ECC的结果为0
  90          {
  91   1      byte i,e=0;
  92   1      byte *frame=&FRAME_T;
  93   1      
  94   1      for(i=0;i<6;i++) e+=*(frame+i);
  95   1      *(frame+6)=0x100-e;
  96   1      }
  97          
  98          
  99          void ComTransmite(void)                 //发送一桢数据,仅启动,其余工作由中断完成
 100          {
 101   1      extern bit transmite_finish;
 102   1      
 103   1        while(!transmite_finish);
 104   1        transmite_finish=0;
 105   1        SBUF=COMFLAGSTART;
 106   1      }
 107          
 108          bit ComRecieve(void)                    //接收完一桢后后,置1,返回响应
 109          {
 110   1      byte *p=&COMFRAME;
 111   1      byte *frame=&FRAME_T;
 112   1      
 113   1      if(FRAMEEND)
 114   1              {
 115   2               FRAMEEND=0;
 116   2               //*frame=COMFLAGSTART;
C51 COMPILER V7.10   INT                                                                   08/29/2005 13:02:03 PAGE 3   

 117   2               *(frame+1)=COMRECIEVE_OK; 
 118   2               *(frame+2)=*(p+1);
 119   2               ecc();
 120   2           ComTransmite();                    //??
 121   2      
 122   2               return(1);
 123   2              }
 124   1      else return(0);
 125   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    300    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     23       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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