亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.lst

?? 銀行磁卡系統的ABA2通信協議的C51實現代碼
?? LST
字號:
C51 COMPILER V7.50   MAIN                                                                  11/09/2007 16:11:08 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <C8051F120.H>
   2          #define SYSCLK       49000000         
   3          
   4          #define BAUDRATE  115200 // Baud rate of UART in bps
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          #define SAMPLE_RATE  50000             // Sample frequency in Hz
   8          
   9          sfr16 RCAP3    = 0xCA;                 // Timer3 reload value
  10          sfr16 TMR3     = 0xCC;                 // Timer3 counter
  11          sfr16 RCAP2    = 0xca;  
  12          sfr16 TMR2     = 0xcc;                 // Timer2
  13          
  14          sbit  CLK_PIN = P1^4;
  15          sbit  DataOut= P1^5;
  16          
  17          void UART0_Init (void);
  18          void SYSCLK_Init (void);
  19          void PORT_Init (void);
  20          void Timer3_Init (int counts);
  21          void RevCardNoBin(void);
  22          void LRC(void) ;
  23          unsigned long  Conect_digit(void);
  24          void BCD_BIN(void);
  25          void hextobcd(unsigned long hexs,unsigned char j);
  26          void SendData(void);
  27          void wait_ms(uchar ms);
  28          void delay(void);
  29          
  30          uchar Len;
  31          uchar RevCardFlag;
  32          uchar Start_Flag;
  33          uchar CardNoBCD[10];
  34          uchar CardNoBin[80];
  35          uchar Data_Addr;
  36          uchar Original_CardNo[5]={0x62,0xE3,0x08,0x6C,0x0ED};
  37          //------------------------------------------------------------------------------------
  38          // MAIN Routine
  39          //------------------------------------------------------------------------------------
  40          void main (void) {
  41   1      
  42   1         unsigned long   s=0;
  43   1         uchar i;
  44   1         // disable watchdog timer
  45   1         WDTCN = 0xde;
  46   1         WDTCN = 0xad;
  47   1      
  48   1         SFRPAGE = CONFIG_PAGE; 
  49   1         SYSCLK_Init();               
  50   1         PORT_Init ();
  51   1         UART0_Init();
  52   1      
  53   1                       
  54   1         Timer3_Init (SYSCLK/SAMPLE_RATE);   // initialize Timer3 to overflow at
  55   1                                             // sample rate
C51 COMPILER V7.50   MAIN                                                                  11/09/2007 16:11:08 PAGE 2   

  56   1      
  57   1         EA = 1;                                                                                      // enable global interrupts
  58   1         Len=0;
  59   1         Start_Flag=0;
  60   1         Data_Addr=0;
  61   1         RevCardFlag=0;
  62   1         CLK_PIN=1;
  63   1      
  64   1         
  65   1                       
  66   1                   s=Conect_digit();    
  67   1                               hextobcd(s,10) ;
  68   1                               RevCardNoBin();
  69   1                               RevCardFlag=1;
  70   1         while(1)
  71   1         {
  72   2                               i=80;
  73   2                               while(i--)
  74   2                               {
  75   3                                      wait_ms(10);
  76   3                                      SendData();
  77   3                               }
  78   2              delay();
  79   2              }
  80   1                               while(1);
  81   1                                
  82   1      }
  83          
  84          
  85          void SYSCLK_Init (void)
  86          {
  87   1      int i; // delay counter
  88   1      char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
  89   1      SFRPAGE = CONFIG_PAGE; // set SFR page
  90   1      OSCXCN = 0x67; // Start_Flag external oscillator with
  91   1      // 22.1184MHz crystal
  92   1      for (i=0; i < 100; i++) ; // Wait for osc. to Start_Flag up
  93   1      while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
  94   1      CLKSEL = 0x01; // Select the external osc. as
  95   1      // the SYSCLK_PIN source
  96   1      OSCICN= 0x00; // Disable the internal osc.
  97   1      //Turn on the PLL and increase the system clock by a factor of M/N = 9/4
  98   1      SFRPAGE = CONFIG_PAGE;
  99   1      PLL0CN = 0x04; // Set PLL source as external osc.
 100   1      
 101   1      PLL0CN |= 0x01; // Enable Power to PLL
 102   1      PLL0DIV = 0x04; // Set Pre-divide value to N (N = 4)
 103   1      PLL0FLT = 0x01; // Set the PLL filter register for
 104   1      // a reference clock from 19 - 30 MHz
 105   1      // and an output clock from 45 - 80 MHz
 106   1      PLL0MUL = 0x09; // Multiply SYSCLK_PIN by M (M = 9)
 107   1      for (i=0; i < 100; i++) ; // Wait at least 5us
 108   1      PLL0CN |= 0x02; // Enable the PLL
 109   1      while(!(PLL0CN & 0x10)); // Wait until PLL frequency is locked
 110   1      CLKSEL = 0x02; // Select PLL as SYSCLK_PIN source
 111   1      SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
 112   1      }
 113          
 114          void PORT_Init (void)
 115          {
 116   1      char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
 117   1      SFRPAGE = CONFIG_PAGE; // set SFR page
C51 COMPILER V7.50   MAIN                                                                  11/09/2007 16:11:08 PAGE 3   

 118   1      //XBR0 = 0x04; // Enable UART0
 119   1      //XBR1 = 0x00;
 120   1      XBR2 = 0x40; // Enable crossbar and weak pull-up
 121   1      //P0MDOUT |= 0x01; // Set TX0 pin to push-pull
 122   1      P1MDOUT |= 0xFF; // Set P1.6(LED) to push-pull
 123   1      SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
 124   1      }
 125          
 126          void UART0_Init (void)
 127          {
 128   1      char SFRPAGE_SAVE = SFRPAGE; 
 129   1      SFRPAGE =0x00;                                                                                                                                  
 130   1      SCON0 = 0x50; 
 131   1      SSTA0 = 0x10; 
 132   1      
 133   1      SFRPAGE = TIMER01_PAGE;
 134   1      TMOD &= ~0xF0;
 135   1      TMOD |= 0x20; 
 136   1      TH1 = -(SYSCLK/BAUDRATE/16);
 137   1      
 138   1      CKCON |= 0x10; 
 139   1      TL1 = TH1; 
 140   1      TR1 = 1; 
 141   1      SFRPAGE = UART0_PAGE;
 142   1      TI0 = 1; 
 143   1      SFRPAGE = SFRPAGE_SAVE;
 144   1      
 145   1      }
 146          
 147          
 148          /*
 149          void Timer3_ISR (void) interrupt 14
 150          {
 151             
 152             CLK_PIN=~CLK_PIN;
 153             TF3 = 0;                               // clear TF3
 154          }
 155          
 156          */
 157          void LRC(void)
 158          {
 159   1      uchar frist=11;
 160   1      uchar end=15;
 161   1      uchar str=0;
 162   1      uchar i;
 163   1      str=frist; 
 164   1      for(i=0;i<10;i++)
 165   1      str=str^CardNoBCD[i];
 166   1      str=str^end;
 167   1      
 168   1      CardNoBin[70]=str&0x01;
 169   1      CardNoBin[71]=(str&0x02)>>1;
 170   1      CardNoBin[72]=(str&0x04)>>2;
 171   1      CardNoBin[73]=(str&0x08)>>3;  
 172   1      CardNoBin[74]=1;
 173   1      
 174   1      }
 175          
 176          unsigned long  Conect_digit(void)
 177          {
 178   1      unsigned long hexs      ;
 179   1      hexs=Original_CardNo[1]*16777216+Original_CardNo[2]*65536+ Original_CardNo[3]*256+Original_CardNo[4];   //去
C51 COMPILER V7.50   MAIN                                                                  11/09/2007 16:11:08 PAGE 4   

             -掉卡號前面的第一個字節
 180   1      return   hexs;
 181   1      }
 182          
 183          void hextobcd(unsigned long hexs,unsigned char j) {
 184   1      
 185   1      unsigned long va;
 186   1      uchar i;
 187   1          va = 1000000000;                             
 188   1          for     (i=j-1;i;i--) {
 189   2              CardNoBCD[i] = 0;                 //目標數組清零
 190   2              while ((hexs>=va)&&(va>9)) {
 191   3                  hexs -= va;                     //減除數
 192   3                  CardNoBCD[i]=CardNoBCD[i]+1;               //商位加1
 193   3              }
 194   2              va /= 10;                           //除數除10,指向低一位
 195   2          }
 196   1          CardNoBCD[0]=hexs;                    //最后個位數
 197   1      }
 198          
 199          void BCD_BIN(void)
 200          {
 201   1      uchar i,j,m,l,count,s;
 202   1      j=15; 
 203   1              for(m=0;m<10;m++)
 204   1                      {
 205   2                      s=CardNoBCD[9-m];
 206   2                      count=0;
 207   2                      for(l=0;l<4;l++)
 208   2                              {
 209   3                              i=s&0x01;
 210   3                              CardNoBin[j]=i;
 211   3                              j++;
 212   3                              if(i)
 213   3                              count=count+1;
 214   3                              s=s>>1;
 215   3                              }
 216   2                      if(count%2==0)
 217   2                      CardNoBin[j]=1;
 218   2                      else
 219   2                      CardNoBin[j]=0;
 220   2                      j++;
 221   2                      
 222   2                              
 223   2                      
 224   2                      }
 225   1      }
 226          
 227          
 228          
 229          void RevCardNoBin(void)
 230          {
 231   1      uchar i;
 232   1      for (i=0;i<10;i++)
 233   1      CardNoBin[i]=0;
 234   1      CardNoBin[10]=1;
 235   1      CardNoBin[11]=1;
 236   1      CardNoBin[12]=0;
 237   1      CardNoBin[13]=1;
 238   1      CardNoBin[14]=0;
 239   1      BCD_BIN();
 240   1      for (i=65;i<70;i++)
C51 COMPILER V7.50   MAIN                                                                  11/09/2007 16:11:08 PAGE 5   

 241   1      CardNoBin[i]=1;
 242   1      LRC();
 243   1      for (i=75;i<80;i++)
 244   1      CardNoBin[i]=0;
 245   1      }
 246          
 247          void SendData(void)
 248          {
 249   1         if(Start_Flag==1)
 250   1              {
 251   2               CLK_PIN=~CLK_PIN;              
 252   2                      if(CLK_PIN==1)
 253   2                      {
 254   3                              if(CardNoBin[Data_Addr]==1)
 255   3                              DataOut=0;
 256   3                              if(CardNoBin[Data_Addr]==0)
 257   3                              DataOut=1;
 258   3                      //      DataOut=CardNoBin[Data_Addr];
 259   3                              Data_Addr++;
 260   3                              if(Data_Addr==80)
 261   3                              {
 262   4                                      Start_Flag=0;
 263   4                                      Data_Addr=0;
 264   4                                      RevCardFlag=1;
 265   4                              }
 266   3                      }
 267   2      
 268   2              
 269   2              }
 270   1      
 271   1              if(RevCardFlag==1)
 272   1              {
 273   2              
 274   2                      if(CLK_PIN==1)
 275   2                      {
 276   3                       Start_Flag=1;
 277   3                       DataOut=1;
 278   3                       RevCardFlag=0;
 279   3                      }
 280   2      
 281   2              }
 282   1      
 283   1      
 284   1      }
 285          
 286          
 287          void wait_ms(uchar ms)
 288          {
 289   1         char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page
 290   1      
 291   1         SFRPAGE = TMR2_PAGE;
 292   1      
 293   1         TMR2CN = 0x00;                      // Stop Timer3; Clear TF3;
 294   1         TMR2CF = 0x00;                      // use SYSCLK_PIN/12 as timebase
 295   1      
 296   1         RCAP2 = -(SYSCLK/1000/12);          // Timer 2 overflows at 1 kHz
 297   1         TMR2 = RCAP2;
 298   1      
 299   1         ET2 = 0;                            // Disable Timer 2 interrupts
 300   1      
 301   1         TR2 = 1;                            // Start_Flag Timer 2
 302   1      
C51 COMPILER V7.50   MAIN                                                                  11/09/2007 16:11:08 PAGE 6   

 303   1         while(ms){
 304   2            TF2 = 0;
 305   2            while(!TF2);                     // wait until timer overflows
 306   2            ms--;                            // decrement ms
 307   2         }
 308   1      
 309   1         TR2 = 0;                            // Stop Timer 2
 310   1      
 311   1         SFRPAGE = SFRPAGE_SAVE;             // Restore SFRPAGE
 312   1      }
 313          
 314          
 315          void Timer3_Init (int counts)
 316          {
 317   1         char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page
 318   1      
 319   1         SFRPAGE = TMR3_PAGE;
 320   1      
 321   1         TMR3CN = 0x00;                      // Stop Timer3; Clear TF3;
 322   1         TMR3CF = 0x08;                      // use SYSCLK_PIN as timebase
 323   1      
 324   1         RCAP3   = -counts;                  // Init reload values
 325   1         TMR3    = RCAP3;                    // set to reload immediately
 326   1         EIE2   &= ~0x01;                    // disable Timer3 interrupts
 327   1         TR3 = 1;                            // Start_Flag Timer3
 328   1      
 329   1         SFRPAGE = SFRPAGE_SAVE;             // Restore SFR page
 330   1      }
 331          
 332          void delay(void)
 333          {
 334   1      uchar i,j,k;
 335   1      for(i=0;i<255;i++)
 336   1      for(j=0;j<255;j++)
 337   1      for(k=0;k<255;k++);
 338   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    774    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     99      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18女电影在线观看| 日韩精品一区二区在线| 亚洲最大的成人av| 久久精品欧美一区二区三区不卡| 国产成人av影院| 中文字幕一区二区三区不卡 | 日韩一区二区三区视频| 国产在线观看免费一区| 亚洲综合在线第一页| 欧美sm美女调教| 99精品欧美一区二区三区综合在线| 日韩成人免费在线| 国产精品高潮呻吟| 日韩欧美激情在线| 在线亚洲+欧美+日本专区| 精品一二三四区| 亚洲国产sm捆绑调教视频 | 亚洲成人av福利| 亚洲国产成人自拍| 欧美日韩中字一区| 国产99一区视频免费| 视频一区在线播放| 男女性色大片免费观看一区二区| 国产欧美一区二区三区网站| 欧美日韩成人综合在线一区二区| 国产一区二区主播在线| 香蕉成人啪国产精品视频综合网 | 亚洲精品免费在线| 久久日一线二线三线suv| aa级大片欧美| 国产一区在线视频| 亚洲自拍偷拍av| 综合中文字幕亚洲| 欧美激情一区三区| 久久欧美一区二区| 日韩写真欧美这视频| 欧美精品v国产精品v日韩精品| 99精品国产99久久久久久白柏| 国产精品一区二区在线观看不卡| 欧美一区二区三区在线视频| 免费观看一级特黄欧美大片| 日韩高清一区在线| 天天射综合影视| 婷婷中文字幕综合| 美女性感视频久久| 久久精品噜噜噜成人88aⅴ| 美国欧美日韩国产在线播放| 久久99精品国产麻豆婷婷| 久久97超碰国产精品超碰| 国产综合色在线视频区| 国产一区二区精品在线观看| 国产成人av福利| 成年人网站91| 欧洲精品在线观看| 欧美精品在线一区二区| 日韩亚洲欧美在线| 国产日韩欧美麻豆| 一区二区欧美国产| 日韩av一二三| 国产精品18久久久久久vr | 日本丶国产丶欧美色综合| 在线一区二区三区做爰视频网站| 欧美日韩一区二区三区高清| 日韩欧美在线影院| 国产人妖乱国产精品人妖| 国产精品电影院| 亚洲福利国产精品| 国产在线精品不卡| 91麻豆国产在线观看| 欧美精品三级在线观看| 2020国产成人综合网| 亚洲特黄一级片| 人禽交欧美网站| 盗摄精品av一区二区三区| 91国产丝袜在线播放| 欧美va天堂va视频va在线| 国产精品久久久久久福利一牛影视 | 91丨九色丨黑人外教| 在线观看91av| 亚洲国产经典视频| 午夜av一区二区| 国产精品一区免费在线观看| 日本道免费精品一区二区三区| 欧美一区二区三区的| 精品一区精品二区高清| 波多野结衣中文一区| 91精品久久久久久蜜臀| 国产精品理论片在线观看| 肉肉av福利一精品导航| 99久久国产综合色|国产精品| 日韩一卡二卡三卡四卡| 亚洲欧美国产毛片在线| 黄色日韩三级电影| 欧美日韩中文字幕一区| 日本一区二区三区四区| 青草av.久久免费一区| 91视频免费观看| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 久久精品欧美日韩| 日日夜夜精品免费视频| 91丨porny丨户外露出| 国产喷白浆一区二区三区| 七七婷婷婷婷精品国产| 91搞黄在线观看| 国产女人18毛片水真多成人如厕 | 亚洲欧美一区二区三区国产精品| 国产真实乱偷精品视频免| 欧美日韩国产一级片| 亚洲激情自拍偷拍| voyeur盗摄精品| 国产亚洲婷婷免费| 国产一区二区三区免费看| 欧美一区二区女人| 亚洲一卡二卡三卡四卡| 99精品国产99久久久久久白柏| 久久久99久久| 国产精品18久久久久| 精品剧情在线观看| 六月婷婷色综合| 在线播放视频一区| 亚洲成人手机在线| 欧美私模裸体表演在线观看| 亚洲人一二三区| 99久久99久久精品免费看蜜桃| 国产亚洲女人久久久久毛片| 国产九九视频一区二区三区| 亚洲欧美日韩在线不卡| 国产精品久久久久一区二区三区 | 美日韩一区二区| 欧美精品亚洲二区| 亚洲成人动漫精品| 欧美日韩色综合| 亚洲va国产天堂va久久en| 91久久国产综合久久| 亚洲人成伊人成综合网小说| 一本久道久久综合中文字幕| 亚洲精品你懂的| 欧美性感一类影片在线播放| 亚洲国产你懂的| 欧美老女人在线| 蜜桃久久久久久久| 欧美精品一区二区三区很污很色的| 久久成人久久爱| 久久精品视频免费| 99视频精品免费视频| 亚洲欧美日韩久久精品| 欧美日韩免费在线视频| 日韩成人一区二区| 久久婷婷综合激情| 成人18视频日本| 亚洲一区二区影院| 欧美一区二区三区在线视频| 韩国女主播成人在线观看| 日本一区二区免费在线| 国产成a人无v码亚洲福利| 亚洲天堂成人在线观看| 成人精品视频.| 国产精品视频麻豆| 91在线观看污| 亚洲国产精品一区二区尤物区| 欧美日韩久久久一区| 精品一区二区三区免费| 中文字幕乱码亚洲精品一区| 一本色道a无线码一区v| 国产精品一区二区在线观看不卡 | 国产精品中文欧美| 国产精品免费视频一区| 欧美亚洲国产怡红院影院| 久久99精品久久久久婷婷| 欧美国产乱子伦| 欧美日韩黄视频| 国产精品一区二区三区乱码| 亚洲欧洲制服丝袜| 精品理论电影在线观看| 97国产精品videossex| 蜜臀久久久99精品久久久久久| 中文字幕欧美一| 日韩视频在线一区二区| 99久久精品免费| 美女一区二区三区在线观看| 中文字幕一区三区| 亚洲自拍与偷拍| 欧美四级电影在线观看| 秋霞电影一区二区| 国产精品视频一二三| 91精品视频网| av亚洲精华国产精华| 免费欧美日韩国产三级电影| 亚洲色图19p| 久久久久88色偷偷免费| 欧美日韩1234| 成人动漫一区二区| 黑人巨大精品欧美黑白配亚洲| 一区二区三区精品在线| 久久欧美一区二区| 欧美一级片在线观看| 在线观看国产精品网站| 国产成人精品综合在线观看| 日本午夜一区二区| 亚洲午夜电影在线|