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

📄 comm.lst

📁 此程序为13.56MHz的RFID底层读写卡程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V4.01,  COMM                                                                  19/08/04  14:33:25  PAGE 1   


DOS C51 COMPILER V4.01, COMPILATION OF MODULE COMM
OBJECT MODULE PLACED IN D:\13505B\105B\COMM.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\13505B\105B\COMM.C DB SB OE

stmt level    source

   1          
   2          #include <absacc.h>
   3          #include <string.h>
   4          #include "HardWare.h"
   5          void  SendMessage();
   6          void  SendResponse(uchar status,uchar len,uchar *datapr);
   7          extern uchar xdata ComBuffer[MAXLEN];
   8          extern void W_DOG(void);
   9          extern idata uchar PCB;
  10          /********************************************************************
  11          * Function:		SetBaud            								*
  12          *																	*
  13          * input:                smode		   												*
  14          * output:		--													*
  15          ********************************************************************/
  16          void SetBaud(uchar smode)
  17          {
  18   1              /* fosc=22.11845M,default Baudrate=115200bit/s */
  19   1      
  20   1              T2CON=0x30;   /* T2 in mode 1*/
  21   1              W_DOG();
  22   1              switch(smode)
  23   1              {
  24   2                 case Baud9600:
  25   2                      RCAP2L =0x0b8;
  26   2                      break;
  27   2                 case Baud19200:
  28   2                      RCAP2L =0x0dc;
  29   2                      break;
  30   2                 case Baud38400:
  31   2                      RCAP2L =0xee;
  32   2                      break;
  33   2                 default:            /* Baudrate=115200bit/s */
  34   2                      RCAP2L =0xfa;
  35   2              }
  36   1             	RCAP2H =0xff;
  37   1      	SCON=0x50;
  38   1      	TR2=1;
  39   1      }
  40          
  41          /********************************************************************
  42          * Function:		CheckCRC           								*
  43          *																	*
  44          * input:                -- 		   												*
  45          * output:		CrcOK or CrcError                           *
  46          ********************************************************************/
  47          uchar CheckCRC(void)
  48          {
  49   1      	uchar i,ch=0;
  50   1              W_DOG();
  51   1      
  52   1      	for(i=0;i<=ComBuffer[1]+1;i++)
  53   1      	{
  54   2      	   ch=ch^ComBuffer[i];
  55   2      	}
  56   1      	if(ch==ComBuffer[i]) return CrcOK;
  57   1      
  58   1      	return CrcError;
  59   1      }
C51 COMPILER V4.01,  COMM                                                                  19/08/04  14:33:25  PAGE 2   

  60          
  61          /********************************************************************
  62          * Function:		CalculateCRC
  63          *																	*
  64          * input:                data_len 		   												*
  65          * output:		ch                          *
  66          ********************************************************************/
  67          /*uchar CalculateCRC(uchar data_len)
  68          {
  69          	uchar i,ch=0;
  70                  ch=ch^0x12;
  71                  ch=ch^PCB;
  72                  ch=ch^data_len;
  73                  W_DOG();
  74          	for(i=3;i<3+data_len;i++)
  75          	{
  76          	   ch=ch^ComBuffer[i];
  77          	}
  78          
  79          
  80          	return ch;
  81          }
  82          /********************************************************************
  83          * Function:		SendMsError        								*
  84          *																	*
  85          * input:                -- 		     												*
  86          * output:		--		                            *
  87          ********************************************************************/
  88          void SendMsError(void)
  89          {
  90   1              ComBuffer[4+2]=0x60;
  91   1      	ComBuffer[5+2]=0x01;
  92   1      	ComBuffer[6+2]=0xe0;
  93   1      	SendMessage();
  94   1      }
  95          
  96          /********************************************************************
  97          * Function:		SendResponse        								*
  98          *																	*
  99          * input:                status,len,&data 		     												*
 100          * output:		--		                            *
 101          ********************************************************************/
 102          void  SendResponse(uchar status,uchar len,uchar *datapr)
 103          {
 104   1      	ComBuffer[4+2]=0x60;
 105   1      	ComBuffer[6+2]=status;
 106   1      	if (len>17)
 107   1      	{                  /* state 1 */
 108   2                len-=17;
 109   2      	  ComBuffer[5+2]=len;
 110   2      	}
 111   1      	else
 112   1      	{                 /* state 2 */
 113   2      	  ComBuffer[5+2]=len;
 114   2      	  if(len>1)
 115   2      	  {
 116   3      	    memcpy(ComBuffer+(7+2),datapr,len-1);
 117   3      	  }
 118   2      	}
 119   1      	SendMessage();
 120   1      }
 121          
 122          /********************************************************************
 123          * Function:		SendMessage        								*
 124          *																	*
 125          * input:                len     												*
C51 COMPILER V4.01,  COMM                                                                  19/08/04  14:33:25  PAGE 3   

 126          * output:		--		                            *
 127          ********************************************************************/
 128          void SendMessage(void)
 129          {
 130   1      	uchar i,ch=0x00,len;
 131   1      
 132   1              len=ComBuffer[5+2];
 133   1            	TR2=1;
 134   1         	TI=0;
 135   1      
 136   1         	for(i=0;i<=len+1;i++)
 137   1         	{    /*send data*/
 138   2      
 139   2                W_DOG();
 140   2      
 141   2           	   ch=ch^ComBuffer[4+2+i];
 142   2                 SBUF=ComBuffer[4+2+i];
 143   2                 while(TI==0);
 144   2                 TI=0;
 145   2              }
 146   1              SBUF=ch;
 147   1              while(TI==0);
 148   1              TI=0;
 149   1              SBUF=0x03;
 150   1              while(TI==0);

⌨️ 快捷键说明

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