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

📄 main.lst

📁 51普通io口调整125K 都射频卡例子-----
💻 LST
📖 第 1 页 / 共 2 页
字号:
 284   3                           for(i=0;i<4;i++)
 285   3                             {
 286   4      		        TxData(buf[i]);
 287   4                              k=k+buf[i];
 288   4                             }
 289   3      
 290   3                           TxData(k);
 291   3                           TxData(0xfd);
 292   3      		     spkl(1);
 293   3                           Delay(255);
 294   3                           Delay(255);
 295   3                           Delay(255);
 296   3                           SN=0;
 297   3                         }
 298   2      		}
 299   1      
 300   1      }
*** WARNING C280 IN LINE 247 OF F:\5000\JOP\洗车计费\C\2\MAIN.C: 'j': unreferenced local variable
C51 COMPILER V6.02  MAIN                                                                   01/16/2009 14:50:25 PAGE 6   

 301          
 302          //读取卡号,
 303          ulong Read_Card()
 304          {
 305   1      	uchar i=0;	//起始为的计数值
 306   1      	uchar error;  //时间溢出的计数值
 307   1      	uchar error_flag; //时间溢出标志
 308   1      	uchar row,col;	  //行列寄存器
 309   1      	uchar row_parity;  //行校验寄存器
 310   1      	uchar col_parity[5]; //列校验寄存器
 311   1      	uchar _data;		//数据寄存器
 312   1      	ulong temp;			//卡号寄存器
 313   1      	ulong timeout=0;	 //搜索次数寄存器
 314   1      	while(1)
 315   1      	{
 316   2      		if(timeout==10)return 0;//尝试10次搜索,如没有责返回0
 317   2      		else timeout++;
 318   2      		error=0;
 319   2      		while(Manchester_IN==0)//等高电平
 320   2      		{
 321   3      			if(error==TIME_OF)break;//超时退出
 322   3      			else error++;
 323   3      		}
 324   2      		if(error==100)continue;//结束本次主循环
 325   2      		else error=0;
 326   2      		Delay384us();
 327   2      		if(Manchester_IN)//寻找真正的1起始位,利用01的波形确定1起始位,即最后一位加第一位
 328   2      		{
 329   3      			for(i=0;i<8;i++)//判断是否是真的起始位
 330   3      			{
 331   4      				error=0;	   //限定等待时间
 332   4      				while(Manchester_IN)
 333   4      				{
 334   5      					if(error==TIME_OF)
 335   5      					{
 336   6      						error_flag=1;//时间溢出
 337   6      						break;	//退出
 338   6      					}
 339   5      					else error++;
 340   5      				}
 341   4      				Delay384us();				   //延时至下一码原
 342   4      				if(Manchester_IN&&error_flag==0); //判断下一位是否为1 和是否没有时间溢出
 343   4      				else break;			 //不是1退出,溢出退出
 344   4      			}
 345   3      			if(error_flag)//因时间溢出造成的本次主循环退出
 346   3      			{
 347   4      				error_flag=0;
 348   4      				continue;	//退出本次循环
 349   4      			}
 350   3      			else;
 351   3      			if(i==8)  //起始位接受完并且正确后开始接受数据
 352   3      			{
 353   4      				error_flag=0;
 354   4      				error=0;	 //限定等待时间
 355   4      				while(Manchester_IN)
 356   4      				{
 357   5      					if(error==TIME_OF)
 358   5      					{
 359   6      						error_flag=0;
 360   6      						break;		 //时间溢出造成的出错
 361   6      					}
 362   5      					else error++;
C51 COMPILER V6.02  MAIN                                                                   01/16/2009 14:50:25 PAGE 7   

 363   5      				}
 364   4      				if(error_flag)
 365   4      				{
 366   5      					error_flag=0;
 367   5      					continue;	   //因等待待第一个正式数据错误引起的本次主循环退出
 368   5      				}
 369   4      				else;
 370   4      				//所有列校验清零
 371   4      				col_parity[0]=col_parity[1]=col_parity[2]=col_parity[3]=col_parity[4]=0;
 372   4      				for(row=0;row<11;row++)	//共11行数据
 373   4      				{
 374   5      					for(col=0,row_parity=0/*行校验清零*/;col<5;col++)//共5列数据
 375   5      					{
 376   6      						Delay384us();  //延时至下一码原
 377   6      						if(Manchester_IN)_data=1;  //数据为1
 378   6      						else _data=0;			   //数据为0
 379   6      						if(col<4&&row<10)		   //数据区的接受,后四个字节
 380   6      						{
 381   7      							temp<<=1;			 //左移一位
 382   7      							temp+=(ulong)_data;	 //数据相加
 383   7      						}
 384   6      						else;
 385   6      						row_parity+=_data;		 //行校验加入数据
 386   6      						col_parity[col]+=_data;	 //相应列校验加入数据  虽最后一列没有校验但为了方便也加上
 387   6      						error=0;				 //限定等待时间清零
 388   6      						while(Manchester_IN==(bit)_data)
 389   6      						{
 390   7      							if(error==TIME_OF)		  //由于时间溢出造成的数据出错
 391   7      							{
 392   8      								error_flag=1;
 393   8      								break;			  //退出本while循环
 394   8      							}
 395   7      							else error++;
 396   7      						}
 397   6      						if(error_flag)break;	 //出错退出内层for循环
 398   6      						else;
 399   6      					}
 400   5      					if(row<10)//最后一行没有校验所以要加限制
 401   5      					{
 402   6      						if((row_parity&0x01)||error_flag) //出错退出外for循环
 403   6      						{
 404   7      							temp=0;
 405   7      							error_flag=1;
 406   7      							break;			 //退出
 407   7      						}
 408   6      						else;
 409   6      					}
 410   5      					else;
 411   5      				}
 412   4      
 413   4      				//对最后接收的列校验进行判断,及对来自上面数据错误error_flag处理以结束本次主循环
 414   4      				if(error_flag||((col_parity[0]&0x01)&&(col_parity[1]&0x01)&&(col_parity[2]&0x01)&&(col_parity[3]&0x01)
             -))
 415   4      				{	//最后一列没有校验
 416   5      					error_flag=0;
 417   5      					temp=0;
 418   5      					continue; //退出本次循环
 419   5      				}
 420   4      				else return temp;//将正确的数据返回
 421   4      			}
 422   3      			continue;
 423   3      		}
C51 COMPILER V6.02  MAIN                                                                   01/16/2009 14:50:25 PAGE 8   

 424   2      		continue;
 425   2      	}
 426   1      }
C51 COMPILER V6.02  MAIN                                                                   01/16/2009 14:50:25 PAGE 9   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
rxdata . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  temp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
Manchester_IN. . . . . . . . . . . . .  ABSBIT   -----  BIT      0095H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
green. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
_spkl. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
BEEP . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
SN . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_LONG   0000H  4
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
MODE . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0096H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_TxData. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ook. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
rxbuf. . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0004H  64
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
_spk . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
PCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0087H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
buf. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0044H  16
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
com. . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  crc. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  temp . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
  orde . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  ook. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0005H  2
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
C51 COMPILER V6.02  MAIN                                                                   01/16/2009 14:50:25 PAGE 10  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
CFE. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0094H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
_Delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0004H  2
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
TL1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008BH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
Inituart . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
Read_Card. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  error. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  error_flag . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  row. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
  col. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0002H  1
  row_parity . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
  col_parity . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0003H  5
  _data. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0008H  1
  temp . . . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0009H  4
  timeout. . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   000DH  4
rxs. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0054H  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
readid . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
com_isr. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ook. . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
s. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   PTR      0055H  3
C51 COMPILER V6.02  MAIN                                                                   01/16/2009 14:50:25 PAGE 11  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
Delay384us . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1559    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     88      29
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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