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

📄 main.lst

📁 RFID模块 RF24E1读卡程序,用Keil C编译成功!
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.02a   MAIN                                                                 01/23/2006 10:15:24 PAGE 1   


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

stmt level    source

   1          
   2          /*==============================================================================================
   3            Copyright (C), 2005, RegalCyber Tech. Co., Ltd.
   4            File name:   main.C
   5            Author: Zhangui Duan   Version: v1.3   Date: 2005-3-30
   6          
   7            Description:
   8               此程序文件主要是完成接收读卡器的寻卡信号,再发送四字节的卡号
   9                          1,主程序 
  10                          2,初始化CPU,I/O口,串口,RTC,SPI等
  11            Other Description:
  12                           由 Keil C51 V7.05 编译通过
  13          
  14            Function List:  
  15              1.  主程序
  16                          void main(void);
  17                  2,     初始化程序
  18                          void Init(void);
  19                          
  20            History:          
  21              1. Date:  2005-6-12
  22                 Author:Zhangui Duan
  23                 Modification: 由于卡号要与普通的IC卡兼容,将卡号设置为4个字节,所以发送的有效数据宽度
  24                     由原来的40位改为48位(1字节前置码+4字节卡号+1字节校验字节),同时发送缓冲区直接设置
  25                     为数组,字节长度为6字节
  26          
  27          ==============================================================================================*/
  28          #include "main.h"
  29          #include <stdio.h>
  30          
  31          //#define DEBUG 1
  32          
  33          /**********************************************************************************************
  34            Function:        main
  35            Description:     定时休眠,通过RTC唤醒,
  36                                             判断收到寻卡信号,发送卡号,并判断是否出了此区域,
  37            Calls:           
  38                                                  Init();
  39                                          Init_Receiver();
  40                                                  Transmitter();
  41                                                  Delayms();
  42                                                  Receiver();
  43            Called By:                             
  44            Input:     
  45            Output:    
  46            Return:    
  47            Others:    
  48          **********************************************************************************************/
  49           void main(void)
  50           {
  51   1          //unsigned char _set_card;
  52   1          //_set_card=Config();//接收配置读卡器发送过来的卡号,并返回卡号
  53   1          //RW_Flash(_set_card);//存储或者是从eeprom中取出卡号和配置参数
  54   1              Init();
  55   1              Init_Receiver(); //接收初始化
C51 COMPILER V7.02a   MAIN                                                                 01/23/2006 10:15:24 PAGE 2   

  56   1              TxBuf[0]=TransmitCardNo;//前置码
  57   1              TxBuf[1]=1;     TxBuf[2]=2;TxBuf[3]=3;TxBuf[4]=4;TxBuf[5]=5;TxBuf[6]=6;TxBuf[7]=7;TxBuf[8]=8;TxBuf[9]=9;TxBuf
             -[10]=9;
  58   1              TxBuf[11]=8;TxBuf[12]=7;
  59   1              TxBuf[13]=TxBuf[1]^TxBuf[2]^TxBuf[3]^TxBuf[4]^TxBuf[5]^TxBuf[6]^TxBuf[7]^TxBuf[8]^TxBuf[9]^TxBuf[10]^TxBu
             -f[11]^TxBuf[12]; //校验字节
  60   1      
  61   1         // WriteRTC(TIME/TICK); //设置唤醒定时器
  62   1         WriteRTC(300);
  63   1          while(1)
  64   1          { 
  65   2          //----------------------------------------------
  66   2                //发送卡号
  67   2          //----------------------------------------------;
  68   2                //REGX_CTRL = 0x0b;                                    //关闭唤醒定时器
  69   2                //while(REGX_CTRL & 0x10)             // Wait for the interface to be ready
  70   2          //        ;
  71   2                        #ifdef DEBUG
                                LED4=0;
                                PutChar(0x55);
                        Delayms(1);  
                        LED4=1;
                                #else
  77   2                        Transmitter(&TxBuf[0]);//发送卡号
  78   2                        #endif
  79   2                        Delay100us(200); 
  80   2                        CK_CTRL=0x03;//省电模式                               
  81   2                } 
  82   1        }
  83          
  84           /*************************************************
  85            Function:        RW_Flash
  86            Description:     参数配置
  87                                                  1,将配置参数存入FLASH中
  88                                                  2,从FLASH中读出配置参数
  89            Calls:                void EEInit(void);
  90                                                  unsigned char EERead(unsigned int addr);
  91                                                  void EEWrite(unsigned int addr, unsigned char b);
  92            Called By:        void main(void)                      
  93            Input:            set_card
  94                              根据此输入值判断是否有进行参数配置
  95            Output:    
  96            Return:    
  97            Others:    
  98          *************************************************/ 
  99          void RW_Flash(unsigned char set_card)
 100          {
 101   1              unsigned char m;
 102   1              unsigned int addr_card,config_addr;
 103   1              EEInit();     //eeprom 初始化
 104   1              config_addr=Addr_Cardno+4;//初始化配置参数存放地址      
 105   1        //--------------------------------------------//
 106   1         //如果需要配置,则将卡号和配置参数写到FLASH中
 107   1              if(set_card)
 108   1              {
 109   2                  if(!((RxBuf[1]==0)&&(RxBuf[2]==0)&&(RxBuf[3]==0)&&(RxBuf[4]==0)))
 110   2                      {
 111   3                         //如果4字节卡号数据全部为0,则发送过来的卡号数据就不需要存储到FLASH中
 112   3                              for(m=1,addr_card=Addr_Cardno;m<5;m++,addr_card++)
 113   3                              {
 114   4                                      EEWrite(addr_card, RxBuf[5-m]); //将4字节卡号参数写到FLASH中
 115   4                      }
C51 COMPILER V7.02a   MAIN                                                                 01/23/2006 10:15:24 PAGE 3   

 116   3                      }
 117   2                              EEWrite(config_addr, RxBuf[5]);//将配置参数写到FLASH中
 118   2                              EEWrite((config_addr+1), RxBuf[6]);//将时间参数写到FLASH中
 119   2              }
 120   1        //--------------------------------------------//
 121   1              //从FLASH中读出4字节的卡号以及配置参数
 122   1              for(m=1,addr_card=Addr_Cardno;m<5;m++,addr_card++)
 123   1              {
 124   2                      TxBuf[m]=EERead(addr_card);    //读取卡号
 125   2              }
 126   1              tconf.buf[13]=EERead(config_addr); //读取发送配置参数
 127   1              rconf.buf[13]=tconf.buf[13];      //读取接收配置参数
 128   1              TIME=EERead(config_addr+1);       //读取时间参数
 129   1      }
 130          
 131           /*************************************************
 132            Function:        Config

⌨️ 快捷键说明

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