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

📄 icrdwr.lst

📁 51单片机开发与应用技术详解(珍藏版)PPT及源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   ICRDWR                                                                09/21/2008 11:28:48 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE ICRDWR
OBJECT MODULE PLACED IN ICRdWr.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE ICRdWr.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG8253.H>                                            //头文件
   2          #include <stdio.h>
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          
   7          #define BUFFER1Write 0x84                                       // BUFFER1写指令代码
   8          #define BUFFER1ToMain 0x88                                      //由缓冲区写主内存指令代码
   9          #define MainPageRead 0xD2                                       //主内存页读指令代码
  10          #define StatusRead 0xD7                                         //状态寄存器读指令代码
  11          
  12          #define WriteICMaxLen 8                                         //写IC卡芯片最大长度
  13          #define ReadICMaxLen 8                                          //读IC卡芯片最大长度
  14          
  15          uint PageStartAddr;                                                     //页中起始字节地址
  16          uint PageAddr;                                                          //页地址,16位中低9位为有效位
  17          uint BufStartAddr;                                                      // BUFFER中起始字节地址,16位中低11位为有效位
  18          uchar WriteIC[WriteICMaxLen];                                   //要写入IC卡的数据
  19          uchar ReadIC[ReadICMaxLen];                                     //要从IC卡中读出的数据
  20          
  21          void Delay(uint t);                                                     //延时函数
  22          void SPIWrite(uchar dat);                                               //写数据寄存器函数
  23          uchar ICStatus(void);                                           //读IC卡状态函数
  24          void WriteICFun(uchar dat);                                     //写IC卡芯片函数
  25          uchar ReadICFun();                                                      //读IC卡芯片函数
  26          
  27          void main()                                                             //主函数
  28          {
  29   1              uchar i;
  30   1              uchar status;
  31   1              uchar Select_Menu;                                      //功能选择
  32   1      
  33   1              SCON=0x50;                                                      //初始化串行口模式1
  34   1              TMOD=0x20;                                                      //初始化T1为定时功能,模式2
  35   1              PCON=0x80;                                                      //设置SMOD=1
  36   1              TL1=0xF4;                                                       //波特率4800bit/s,初值
  37   1              TH1=0xF4;
  38   1      
  39   1              TR1 = 1;                                                //启动T1
  40   1              TI = 1;                                                                 //启动发送
  41   1      
  42   1              P1_0 = 1;
  43   1              SPCR=0x5d;                                                      //SPI控制寄存器
  44   1              for (i=0;i<8;i++)                                                       //产生数据,用于写IC卡
  45   1              {
  46   2                      WriteIC[i]=i;
  47   2              }
  48   1      
  49   1              while(1)
  50   1      {
  51   2       printf("A/D Converter MAX197 Control!");
  52   2      printf (" Select Control Menu Option\n");               //菜单信息
  53   2      printf (" 0. Write Data to IC Card.\n");
  54   2              printf (" 1. Read Data from IC Card.\n");
  55   2              printf (" 2. Read status of IC Card.\n");
C51 COMPILER V8.08   ICRDWR                                                                09/21/2008 11:28:48 PAGE 2   

  56   2              printf (" 3. Reset IC Card.\n");
  57   2              printf (" 4. EXIT.\n");
  58   2              printf (" Please Input Menu Option:\n");
  59   2      
  60   2              Select_Menu = _getkey();                                //从键盘输入选择数字
  61   2              switch(Select_Menu)
  62   2              {
  63   3                      case '0':                                                       //写IC卡
  64   3                              printf ("\n You Select 0. Write Data to IC Card.\n");
  65   3      
  66   3                              BufStartAddr = 0;                               // BUFFER中起始字节地址
  67   3                              PageStartAddr = 0;                              //页起始地址
  68   3                              PageAddr = 0;                                   //页地址
  69   3      
  70   3                              for (i=0;i<WriteICMaxLen;i++)           //将数组WriteIC写入IC卡
  71   3                              {
  72   4                                      WriteICFun(WriteIC[i]);
  73   4                                      Delay(2);                                       //延时
  74   4                              }
  75   3                              printf("Data have write into IC Card.\n");
  76   3                              break;
  77   3                      case '1':                                                       //读IC卡
  78   3                              printf ("\n You Select 1. Read Data from IC Card.\n");
  79   3                              
  80   3                              BufStartAddr = 0;                               // BUFFER中起始字节地址
  81   3                              PageStartAddr = 0;                              //页起始地址
  82   3                              PageAddr = 0;                                   //页地址
  83   3      
  84   3                              for (i=0;i<ReadICMaxLen;i++)            //循环读IC卡
  85   3                              {
  86   4                                      ReadIC[i] = ReadICFun();
  87   4                                      Delay(2);                                       //延时
  88   4                              }
  89   3                              printf("Data have read from IC Card.\n");
  90   3                              break;
  91   3                      case '2':                                                       //读IC卡状态
  92   3                              printf ("\n You Select 2. Read status of IC Card.\n");
  93   3      
  94   3                              status=ICStatus();                              //读IC卡状态
  95   3                              printf("IC Card Status=%x\n",status);
  96   3                              break;
  97   3                      case '3':                                                       //复位IC卡
  98   3                              printf ("\n You Select 3. Reset IC Card.\n");
  99   3                              P1_0=0;                                         //复位
 100   3                              Delay(5);
 101   3                              P1_0 = 1; 
 102   3                              SPCR=0x5d;                                      //重置SPI控制寄存器
 103   3                              printf("IC Card Reset!\n");
 104   3                              break;
 105   3                      case '4':                                                       //退出程序
 106   3                              printf ("\n You Select 4. Exit\n");
 107   3                              goto Exit;                                      //转向Exit标号处
 108   3                              break;
 109   3                      default: 
 110   3      printf ("\n Error: Please Select Right Menu Option\n");
 111   3                              break;
 112   3                      }; 
 113   2        }
 114   1      Exit: printf("Exit the program!");                                      //退出
 115   1      }
 116          
 117          
C51 COMPILER V8.08   ICRDWR                                                                09/21/2008 11:28:48 PAGE 3   

 118          
 119          

⌨️ 快捷键说明

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