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

📄 11t6_sc.lst

📁 读写Mifare One卡, 说明:此例程为一个块的读写操作
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   11T6_SC                                                               09/12/2007 12:40:46 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 11T6_SC
OBJECT MODULE PLACED IN 11T6_SC.OBJ
COMPILER INVOKED BY: g:\Keil\C51\BIN\C51.EXE 11T6_SC.C LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //;===============================================================
   2          //;程序名:   11T6_SC.C
   3          //;Hex程序名:11T6_SC.hex
   4          //;程序功能:读写Mifare One卡,11T6模块的c演示程序[使用模拟串口]
   5          //;说明:此例程为一个块的读写操作,若对多个块进行读写操作时,只
   6          //;     需操作“读指定块”、“写指定块”这两个子程序即可。
   7          //;注意:====跳线应在Soft位====
   8          //;晶振:  11.0592M
   9          //;波特率:9600bps
  10          //;日期:  07.07.04
  11          //;===============================================================
  12          
  13          #include <reg51.h>
  14          #include <intrins.h>
  15          #define uchar unsigned char
  16          sfr    resetpc=0xe7;
  17          sbit    UART_RX_BIT=P3^2;
  18          sbit    UART_TX_BIT=P3^3;
  19          sbit    GREEN_LINE =P3^7;
  20          sbit    RED_LINE   =P3^5;
  21          sbit    step4      =P1^4;
  22          sbit    keyitongxing      =P1^0;
  23          sbit    chongxinshuaka      =P1^1;
  24          sbit    beep      =P1^2;
  25          
  26          #define bofang  0   //
  27          #define tingzhi  1   //
  28          
  29          //时钟硬件设置
  30          #define ad  P2   //地址数据总线
  31          
  32          sbit cs = P0^0;   //片选
  33          sbit as = P0^1;   //地址选通输入
  34          sbit rw = P0^2;   //读允许输入脚
  35          sbit ds = P0^3;   //写允许输入
  36          
  37          #define qidongzhuangtaidizhi  14   //启动状态存储字节地址
  38          //#define kaishididizhi  15   //记录开始指针低位
  39          #define wangdiangaodizhi  16   //网点编号高字节
  40          #define wangdiandidizhi  17   //网点编号低字节
  41          
  42          
  43          uchar time;
  44          uchar   tmpResult;
  45          uchar   CardStatus;
  46          //const uchar SearMode=0x01;    //全局变量
  47          const uchar SearMode=0x00;      //全局变量
  48          bit benci;
  49                  //卡片连续读取数据不需要拿开
  50          void led_cyc_on(void);
  51          //定时器中断服务程序
  52          void sen(unsigned char dd)
  53              {
  54   1              TI=0;
  55   1          SBUF=dd;
C51 COMPILER V7.06   11T6_SC                                                               09/12/2007 12:40:46 PAGE 2   

  56   1              while(!TI)
  57   1                 {};
  58   1              TI=0;
  59   1              }
  60          void int_t0(void) interrupt 1 
  61             {
  62   1         time++;
  63   1              //      sen(0x88);
  64   1         if (time>4) 
  65   1            {
  66   2                  resetpc=0x20;
  67   2                      sen(0x88);
  68   2                };
  69   1         }
  70          
  71          void    delay10ms(uchar j)
  72          {       unsigned int i;
  73   1              uchar k;
  74   1              for(k=0;k<j;k++)
  75   1                      for(i=0;i<3950;i++);
  76   1      }
  77          
  78          //***************************************************8
  79          
  80          
  81          void writertc(uchar dd1,uchar dd2)
  82              {    
  83   1               //写的时序
  84   1               //、都给0
  85   1               //1、ds=1
  86   1               //2、rw=1
  87   1               //3、as=1
  88   1               //4、cs=0
  89   1               //5、ad给地址值
  90   1               //6、as=0
  91   1               //7、rw=0;
  92   1               //8、ad给数据
  93   1               //9、rw=1
  94   1               //   cs=1
  95   1               //8、as=1
  96   1      
  97   1      
  98   1               //初值
  99   1         
 100   1              //
 101   1              ds=1;
 102   1              rw=1;
 103   1              as=1;
 104   1              cs=0;
 105   1              ad=dd1;
 106   1      
 107   1              //
 108   1              as=0;
 109   1              rw=0;
 110   1              ad=dd2;
 111   1          rw=1;
 112   1              cs=1;
 113   1              as=1;
 114   1      
 115   1      
 116   1          }
 117          uchar readrtc(uchar dd1)
C51 COMPILER V7.06   11T6_SC                                                               09/12/2007 12:40:46 PAGE 3   

 118              {
 119   1              uchar d,d1;
 120   1               //读的时序
 121   1               //、都给0
 122   1               //1、ds=1
 123   1               //2、rw=1
 124   1               //3、as=1
 125   1               //4、cs=0
 126   1               //5、ad给地址值
 127   1               //6、as=0
 128   1               //7、ds=0;
 129   1               //7、ds=0;
 130   1               //8、ad输出数据
 131   1               //7、ds=1;
 132   1      
 133   1               //9、rw=1
 134   1               //8、as=1
 135   1           // 返回值
 136   1               //初值
 137   1               rr:
 138   1       
 139   1              //
 140   1              ds=1;
 141   1              rw=1;
 142   1              as=1;
 143   1              cs=0;
 144   1              ad=0x0a;
 145   1      
 146   1              //
 147   1              as=0;
 148   1              ds=0;
 149   1              ad=0xff;
 150   1              d1=ad;
 151   1              ds=1;
 152   1          rw=1;
 153   1              cs=1;
 154   1              as=1;
 155   1      
 156   1               if ((d1 & 0x80)==0 )
 157   1               {
 158   2              //
 159   2              ds=1;
 160   2              rw=1;
 161   2              as=1;
 162   2              cs=0;
 163   2              ad=dd1;
 164   2              //
 165   2              as=0;
 166   2              ds=0;
 167   2              ad=0xff;
 168   2              d=ad;
 169   2              ds=1;
 170   2          rw=1;
 171   2              cs=1;
 172   2              as=1;
 173   2          return (d);
 174   2              };
 175   1          // sen(0xee);
 176   1          goto rr;
 177   1      
 178   1          }
 179          
C51 COMPILER V7.06   11T6_SC                                                               09/12/2007 12:40:46 PAGE 4   

 180          
 181          //******************************************************88
 182          
 183          
 184          
 185          /*--------------------------------------------------------------------
 186           FUNCTION: Init_UART(),硬串口初始化
 187           INPUT:
 188           OUTPUT:
 189          --------------------------------------------------------------------*/
 190          void Init_UART(void) //软串口初始化
 191          {       UART_RX_BIT=1;
 192   1              UART_TX_BIT=1;
 193   1      }
 194          void delay104us(void)
 195          {       uchar i;
 196   1              for(i=0;i<19;i++);   //8  和  11
 197   1              //for(i=0;i<26;i++); 
 198   1      }
 199          
 200          
 201          
 202          /*--------------------------------------------------------------------
 203           FUNCTION: UART_PutByte(),发送一字节数据
 204           INPUT:    uchar UARTDATA
 205           OUTPUT:
 206          --------------------------------------------------------------------*/
 207          void UART_PutByte(uchar UARTDATA)
 208          {       uchar i;
 209   1              i=0;
 210   1              UART_TX_BIT=0;
 211   1              delay104us();
 212   1              do
 213   1              {    if(UARTDATA&0x01)
 214   2                      UART_TX_BIT=1;
 215   2                   else
 216   2                      UART_TX_BIT=0;
 217   2                       delay104us();
 218   2                       i++;
 219   2                       UARTDATA>>=1;
 220   2              }while(i<8);
 221   1              UART_TX_BIT=1;
 222   1              delay104us();
 223   1      }
 224          
 225          
 226          /*--------------------------------------------------------------------
 227           FUNCTION: UART_GetByte(),接收1BYTE数据
 228           INPUT:   无
 229           OUTPUT:  UARTDATA,1BYTE数据
 230          --------------------------------------------------------------------*/
 231          uchar UART_GetByte(void)
 232          {       uchar UARTDATA=0,i=0;

⌨️ 快捷键说明

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