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

📄 ckcom.lst

📁 市面ck报警主机破解接口电脑串口控制源码
💻 LST
字号:
C51 COMPILER V8.01   CKCOM                                                                 04/29/2006 19:08:29 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE CKCOM
OBJECT MODULE PLACED IN CKCom.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CKCom.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include        "reg51.h"
   2          #include        "Mylib.h"
   3          
   4          
   5          sbit    En1=P1^5;                 //control KbData,CpuTxd       to CkData
   6          sbit    En2=P1^6;                 //control CpuTxd                      to PcRxd           
   7          sbit    En3=P1^7;                 //control CkData,PcTxd        to CpuRxd
   8          uchar   PcState,KeyBuf;
   9          uchar   CkState=0;
  10          bit             ReceivePcFlag=0,CkRxdFlagOk,PcRxdFlagOk;        
  11          bit             ReceiveCkFlag=1;
  12          uchar   CkBuf[8];
  13          uchar   PcKeyBuf[10];
  14          sbit    test=P1^0;
  15          sbit    test1=P1^1;
  16          sbit    test2=P1^2;
  17          sbit    test3=P1^3;
  18          bit             OkToPcFlag;
  19          void    SysInt()
  20          {
  21   1              SCON=0xd0;
  22   1              TMOD=0x21;
  23   1              //TH1=0xf4;             //use 11.059M   振荡 波特率2.4k 9bit传送
  24   1              //TH1=0Xf2;         //use 24M   振荡 波特率4.464k       9bit传送
  25   1              TH1=0Xe6;               //use 24M       振荡 波特率2.4k 9bit传送        
  26   1              TR1=1;
  27   1              TR0=1;
  28   1              ET0=1;
  29   1              ES=1;
  30   1              EA=1;
  31   1              En1=0;
  32   1              En2=0;
  33   1              En3=0;
  34   1      }
  35          
  36          void    timer0() interrupt 1 
  37          {               
  38   1                      static uchar time0low;
  39   1                      TR0=0;
  40   1                      TH0=0x3c;       //进入中断需33个机器周期
  41   1                      TL0=0xd1;       //时钟每次中断误差为正负1US
  42   1                      TR0=1;
  43   1                      time0low++;
  44   1                      if(time0low==40)
  45   1                      {
  46   2                              time0low=0;
  47   2                              OkToPcFlag=1;
  48   2                      }               
  49   1                                              
  50   1      }
  51          void    Delay600us()
  52          {  uint i;
  53   1         for( i=0;i<300;i++)
  54   1         ;
  55   1      
C51 COMPILER V8.01   CKCOM                                                                 04/29/2006 19:08:29 PAGE 2   

  56   1      }
  57          void    Communicate()   interrupt 4      
  58          {   
  59   1              uchar RBuf;
  60   1              static uchar i=0;
  61   1              static uchar KeyCounter=0;
  62   1              ET0=0;  
  63   1              if(RI)
  64   1              {
  65   2                 RI=0;
  66   2                 
  67   2                 RBuf=SBUF;
  68   2                 if(ReceivePcFlag)
  69   2                 {  
  70   3                         
  71   3                        if(RBuf==0xbb)
  72   3                        test3=~test3;       
  73   3                        switch(PcState)
  74   3                        {
  75   4                              case 0: if(RBuf==0xaa)
  76   4                                              PcState=1;
  77   4                                              else
  78   4                                              PcState=0;
  79   4                                              break;
  80   4      
  81   4                              case 1: KeyBuf=RBuf;                                    
  82   4                                              if(KeyBuf==0xbb)
  83   4                                                      {       
  84   5                                                              
  85   5                                                              PcKeyBuf[KeyCounter]=KeyBuf;
  86   5                                                              KeyCounter=0;
  87   5                                                              PcRxdFlagOk=1;                                                  
  88   5                                                              ReceivePcFlag=0;
  89   5                                                              PcState=0;
  90   5                                                              CkState=0;
  91   5                                                              i=0;
  92   5                                                              SCON=0Xd0;
  93   5                                                              En3=0;
  94   5                                                              
  95   5                                                       }
  96   4                                               else
  97   4                                                      {
  98   5                                                         PcKeyBuf[KeyCounter]=KeyBuf;
  99   5                                                         KeyCounter++;
 100   5                                                      }
 101   4                                              
 102   4                                              
 103   4                                              break;
 104   4                              default:break;
 105   4                        }
 106   3                      }       
 107   2                 else    
 108   2                 {   
 109   3                         switch (CkState)
 110   3                         {
 111   4                               case 0:        if(RBuf==0xff)
 112   4                                                              CkState=1;
 113   4                                                      else
 114   4                                                              CkState=0;
 115   4                                                      break;
 116   4                               case 1:        if(RBuf==0x09)
 117   4                                                              CkState=2;
C51 COMPILER V8.01   CKCOM                                                                 04/29/2006 19:08:29 PAGE 3   

 118   4                                                              else    
 119   4                                                                      if(RBuf==0xff)
 120   4                                                                              break;
 121   4                                                                              else
 122   4                                                                                      if(RBuf==02)
 123   4                                                                                              CkState=3;
 124   4                                                                                      else
 125   4                                                                                              CkState=0;
 126   4                                                      break;
 127   4                               case 2:        {                 
 128   5                                                        CkBuf[i]=RBuf;                                                  
 129   5                                                        if(i==7)
 130   5                                                        {
 131   6                                                              test=~test;
 132   6                                                              
 133   6                                                              i=0;
 134   6                                                              CkState=4;
 135   6                                                        }
 136   5                                                        else
 137   5                                                        i++;
 138   5                                                      }
 139   4                                                      break;
 140   4                              case  3:        {
 141   5                                                              
 142   5                                                              CkState=0;
 143   5                                                      }
 144   4                                                      break;
 145   4                          case  4:    if(RBuf==0xfe)
 146   4                                                      {
 147   5                                                              CkRxdFlagOk=1;
 148   5                                                              CkState=0;
 149   5                                                      }
 150   4                                                      break;
 151   4                              default:        break;
 152   4                         }
 153   3                 }
 154   2                 
 155   2      
 156   2              }
 157   1              ET0=1;
 158   1      
 159   1      }
 160          void    SentKeyToCk()
 161          {       
 162   1              if(KeyBuf!=0xaa)
 163   1              {
 164   2              TB8=0;
 165   2              SBUF=0x6;
 166   2              while(!TI)
 167   2              ;
 168   2              TI=0;
 169   2              KeyBuf=KeyBuf&0xff;
 170   2              TB8=P;
 171   2              SBUF=KeyBuf;
 172   2              while(!TI)
 173   2              ;
 174   2              TI=0;
 175   2              }
 176   1              else
 177   1              {
 178   2              TB8=1;
 179   2              SBUF=0xfe;
C51 COMPILER V8.01   CKCOM                                                                 04/29/2006 19:08:29 PAGE 4   

 180   2              
 181   2          while(!TI)
 182   2          ;
 183   2          TI=0;
 184   2              TB8=1;
 185   2              SBUF=04;//0x6;
 186   2              while(!TI)
 187   2              ;
 188   2              TI=0;
 189   2              TB8=0;
 190   2              SBUF=03;//KeyBuf;
 191   2              while(!TI)
 192   2              ;
 193   2              TI=0;
 194   2              }
 195   1      }
 196          void    SentCkToPc()
 197          {
 198   1        uchar i;
 199   1        SCON=0X50;
 200   1        SBUF=0xaa;
 201   1        TB8=P;
 202   1        while(!TI)
 203   1        ;
 204   1        TI=0;
 205   1        for(i=0;i<8;i++)
 206   1        {
 207   2         SBUF=CkBuf[i];
 208   2         TB8=P;
 209   2         while(!TI)
 210   2         ;
 211   2         TI=0;
 212   2        }
 213   1        SCON=0Xd0;
 214   1      }
 215          uchar   datastate=1;
 216          void    Run()
 217          {        
 218   1              static uchar a=0;
 219   1              if(CkRxdFlagOk)
 220   1              {  
 221   2                 if(PcRxdFlagOk)
 222   2                 {    
 223   3                              ES=0; 
 224   3                              if(PcKeyBuf[a]!=0xbb)
 225   3                              {       
 226   4                                      KeyBuf=PcKeyBuf[a];
 227   4                                      En2=1;
 228   4                                      Delay600us();
 229   4                                      SentKeyToCk();
 230   4                                      Delay600us();
 231   4                                      En2=0;
 232   4                                      a++;
 233   4                              }
 234   3                              else
 235   3                              {
 236   4                                      PcRxdFlagOk=0;
 237   4                                      a=0;
 238   4                              }
 239   3                              ES=1; 
 240   3                 }
 241   2                 ES=1;
C51 COMPILER V8.01   CKCOM                                                                 04/29/2006 19:08:29 PAGE 5   

 242   2                 CkRxdFlagOk=0;
 243   2                
 244   2              }
 245   1              if(OkToPcFlag)
 246   1              {       
 247   2                      ES=0;           
 248   2                      OkToPcFlag=0;
 249   2                      En1=1;
 250   2                      SentCkToPc();
 251   2                      En1=0;
 252   2                      En3=1;                           //     关闭不能采数
 253   2                      ReceivePcFlag=1;
 254   2                      SCON=0X50;
 255   2                      ES=1;
 256   2                      CkRxdFlagOk=0;
 257   2              }
 258   1      }
 259          
 260          void    main()
 261          {        
 262   1               SysInt();
 263   1               while(1)
 264   1                      Run();
 265   1      }
 266          
 267          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    458    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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