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

📄 main.lst

📁 RFID模块 RF24E1读卡程序,用Keil C编译成功!
💻 LST
📖 第 1 页 / 共 2 页
字号:
 143   1              ET0=1;  //开定时中断
 144   1              overtime=0; //清超时标志
 145   1              Time_count=0; //1S计时器(Time_count=5264的时候为1S)
 146   1              rr=0; 
 147   1              if(receive_cardno( )==CardNoRight) //发送寻卡信息,接收卡号,如果有卡则校验接收的卡号
 148   1              {  
 149   2                      #ifdef DEBUG
 150   2                              
 151   2                              //      printf("RxBuf is: %bu ,", RxBuf[0]);
 152   2                                      printf("%bu",  RxBuf[1]);
 153   2                                      printf("%bu",  RxBuf[2]);
 154   2                                      printf("%bu",  RxBuf[3]);
 155   2                                      printf("%bu",  RxBuf[4]);
 156   2                                      printf("%bu",  RxBuf[5]);
 157   2                                      printf("%bu",  RxBuf[6]);
 158   2                                      printf("%bu",  RxBuf[7]);
 159   2                                      printf("%bu",  RxBuf[8]);
 160   2                                      printf("%bu",  RxBuf[9]);
 161   2                                      printf("%bu",  RxBuf[10]);
 162   2                                      printf("%bu",  RxBuf[11]);
 163   2                                      printf("%bu,\n", RxBuf[12]);
 164   2      
 165   2                      
 166   2         
 167   2              /*              PutChar(RxBuf[1]);
 168   2                              PutChar(RxBuf[2]);
 169   2                              PutChar(RxBuf[3]);
 170   2                              PutChar(RxBuf[4]);
 171   2                              PutChar(RxBuf[5]);
 172   2                              PutChar(RxBuf[6]);
 173   2                              PutChar(RxBuf[7]);
 174   2                              PutChar(RxBuf[8]);
 175   2                              PutChar(RxBuf[9]);
 176   2                              PutChar(RxBuf[10]);
 177   2                              PutChar(RxBuf[11]);
C51 COMPILER V7.02a   MAIN                                                                 01/19/2006 15:39:29 PAGE 4   

 178   2                              PutChar(RxBuf[12]);
 179   2                              //PutChar(TIME);        */
 180   2                      #endif
 181   2              }
 182   1                      ET0=0;//关闭定时器
 183   1                      LED_green=1;
 184   1      }
 185          
 186          
 187          
 188          /****************************************************************************************
 189            Function:        receive_cardno
 190            Description:     发送寻卡信息,并接收卡号
 191            Calls:           
 192            Called By:        void main(void);                     
 193            Input:     
 194            Output:    
 195            Return: 
 196                  如果有卡号且正确则返回0x01, 否则返回0x00  
 197            Others:    
 198          ****************************************************************************************/
 199          
 200          unsigned char receive_cardno()
 201          {
 202   1         unsigned char cardright_err;
 203   1         unsigned char RNum,Rnum;
 204   1              //准备接收卡号
 205   1              Init_Receiver(); //接收数据初始化
 206   1              //清空接收区
 207   1              for(Rnum=0;Rnum<RNUM;Rnum++)
 208   1              {
 209   2                       RxBuf[Rnum]=0; 
 210   2              }
 211   1              RNum=0;
 212   1              do{
 213   2                      RNum++;
 214   2                  Receiver(RxBuf);
 215   2                      //判断发送过来的是否是正确的卡号
 216   2                      if((RxBuf[0]==ReceiveCardNo)&&((RxBuf[1]^RxBuf[2]^RxBuf[3]^RxBuf[4]^RxBuf[5]^RxBuf[6]^RxBuf[7]^RxBuf[8]^
             -RxBuf[9]^RxBuf[10]^RxBuf[11]^RxBuf[12])==RxBuf[13]))RNum=53;
 217   2                      Delayms( RCdelaytime);
 218   2             }while(RNum<50); //连续接收50次
 219   1              if(RNum==53)cardright_err=CardNoRight;//有卡号且正确
 220   1         else cardright_err=CardNoErr;//没卡或者卡号错误
 221   1         return (cardright_err);
 222   1      }
 223          
 224          /*********************************************************************************************
 225            Function:        Init
 226            Description:     CPU的初始化
 227                                                  1,I/O口的方向初始化
 228                                                  2,I/O口的输出初始化
 229                                                  3,SPI初始化
 230                                                  3,串口初始化
 231                                                  4,发送接收缓冲区初始化
 232            Calls:           
 233            Called By:        void main(void);                     
 234            Input:     
 235            Output:    
 236            Return:    
 237            Others:    
 238          *********************************************************************************************/
C51 COMPILER V7.02a   MAIN                                                                 01/19/2006 15:39:29 PAGE 5   

 239                    
 240          void Init(void)
 241          {
 242   1      //      unsigned char i;
 243   1      //  Port ini
 244   1          P0_ALT = 0x06;  // Select alternate functions on pins P0.1 and P0.2,  TXD RXD 
 245   1          P0_DIR = 0x09;                  // P0.0, P0.3 is input(S1, S2), the rest output
 246   1          P0 = 0xF0;                      // P0.7-P0.4 = 1 for OFF LED_red,green,DATA0,DATA1   
 247   1          P1_DIR = 0x03;                                      // P0.0, P0.3 is input(S3, S4),
 248   1      
 249   1              LED_red=1;
 250   1              LED_green=1;
 251   1      //      LED3=1;
 252   1      //      LED4=1;
 253   1          
 254   1          PWR_UP = 1;         // Turn on Radio
 255   1          Delay100us(30);    // Wait > 3ms 
 256   1          SPICLK = 0;        // Max SPI clock (XTAL/8)
 257   1          SPI_CTRL = 0x02;   // Connect internal SPI controller to Radio
 258   1      
 259   1      //  serial communication ini
 260   1          TH1 = 230;      // 19200@16MHz (when T1M=1 and SMOD=1)
 261   1          CKCON |= 0x10;  // T1M=1 (/4 timer clock)
 262   1          PCON = 0x80;    // SMOD=1 (double baud rate)
 263   1          SCON = 0x52;    // Serial mode1, enable receiver
 264   1          //TMOD = 0x20;    // Timer1 8bit auto reload 
 265   1          TMOD = 0x22;    // //定时器0,1工作在方式2 
 266   1          TCON = 0x40;    // Start timer1    
 267   1                      
 268   1      //定时器0初始化
 269   1              TH0   = 2;      //192us   
 270   1              TL0   = TH0;
 271   1              TR0   = 1;      //允许定时器0计数            
 272   1              EA=1;          //打开总中断控制位 
 273   1              ET0=0;            //关闭定时中断
 274   1      
 275   1              TRCOUNT=0;
 276   1              RxBuf[0]=0;
 277   1              RxBuf[1]=0;
 278   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    361    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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