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

📄 def.h

📁 EMV2000 LEVEL 1实现的源码
💻 H
字号:
#ifndef   __TY514_H__
#define   __TY514_H__

//MCU: W77E58
//启用片内1kRAM、启动WDT、关闭ALE(减少EMI)

#pragma small DEBUG SYMBOLS OBJECTEXTEND CODE /*NOREGPARMS */

#include <Reg52.H>
#include <Stdio.H>
#include <Stdlib.h>
#include <String.h>
#include <Ctype.h>
#include <Math.h>
#include <intrins.h>
#include <absacc.h>

typedef unsigned char uchar;
typedef unsigned int  uint;
typedef unsigned long ulong;

#define OSC   					16000000		/*时钟频率*/
#define BAUD1 					57600			/*通信波特率(主机)*/
#define T1HL 					256 -255   /*SMOD = 0*/

#define T0HL   				256 - 20       // 188us          /*定时100us  -- 100us/(12/22.1184) = 184 (1T = 12/OSC)           100/(12/16) = 133.333    */

////////////////////////////////////////////////////////////////////
//ID type
#define    CPUtype				0x0
#define    CPUtype1      		        0x0
#define    CPUtype2      		        0x1
#define    PCtype       			0x5
#define    SAM1type     			0x11
#define    SAM2type     			0x22
#define    SAM3type     			0x33
#define    SAM4type     			0x44

////////////////////////////////////////////////////////////////////
//命令码
#define 	CCheck				0x50
#define 	CReaderReset			0x52
#define 	CICReset				0x53
#define 	CCommandT1			0x55
#define 	CCommand				0x56
#define 	CLONGREAD				0x57
#define 	CLONGWRITE			0x58
#define 	CResetGold			0x59
#define 	CCommand9600			0x5a
#define 	CCommand115200			0x5b
#define 	CDownLoad				0x5C
#define	CPTS					0x5e
#define 	CReadEdition  			0x5f    /*取读写器版本号*/
#define 	CTransData  			0x60
#define	CSendAgain    			0x88    /*上次发给PC数据校验错. 要求重发*/

////////////////////////////////////////////////////////////////////
//状态码
#define   SLengthErr    			0x67
#define   SReadErr      			0x80
#define   SWriteErr     			0x81
#define   SCommandErr   			0x82
#define    STimeOut      			-4		//0x84
#define   SNoCard       			-2		//0x85
#define   SErr          			0x88
#define   SVerifyErr    			0x8a
#define   SIDErr        			0x8b
#define   SNoReset      			-3		//0x92
#define   SAddressErr   			0x93
#define   SNotIblock    			0x99
#define   SNoPowerOn    			-3		//0x94
#define   SErrPTS                  0x95

#define IFD_OK					0		//执行成功
#define IFD_ICC_TypeError		-1		//卡片类型不对
#define IFD_ICC_NoExist			-2		//无卡
#define IFD_ICC_NoPower			-3		//有卡未上电
#define IFD_ICC_NoResponse		-4		//卡片无应答
#define IFD_ConnectError			-11		//读卡器连接错
#define IFD_UnConnected			-12		//未建立连接(没有执行打开设备函数)
#define IFD_BadCommand			-13		//(动态库)不支持该命令
#define IFD_ParameterError		-14		//(发给动态库的)命令参数错
#define IFD_CheckSumError		-15		//信息校验和出

/////////////////////////////////////////////////////////////////////
sfr		SCONF			= 	0xbf;
sfr		WDTC				=	0x9f;
sfr		WDTKEY			=	0x97;
sfr		PMR			=	0xc4;

//口线定义
sbit		IC_PWR1 	        	=	P1^0;
sbit    	IC_RST1  			=   	P1^1;
sbit		IC_IO1     		=	P1^2;
sbit		IC_SW1     		=   	P1^3;
sbit		IC_PWR2 	        	=	P1^4;
sbit    	IC_RST2  			=   	P1^5;
sbit		IC_IO2     		=	P1^6;
sbit		IC_SW2     		=   	P1^7;

sbit    	SAM1_IO 			=   	P3^2;
sbit    	SAM2_IO 			=   	P3^3;
sbit    	SAM3_IO 			=   	P3^4;
sbit    	SAM4_IO 			=   	P3^5;
sbit		AddressLE			=	P3^6;
sbit		CLK_CTR   		=   	P3^7;

#define 	SAM1RESET			0x7ffe
#define 	SAM2RESET			0x7ffd
#define 	SAM3RESET			0x7ffb
#define 	SAM4RESET			0x7ff7
#define 	SAMnRESET			0x7fff

///////////////////////////////////////////////////////////////////////////
//变量定义
sbit    	ACC0    			=    ACC^0;
sbit    	ACC1    			=    ACC^1;
sbit    	ACC2    			=    ACC^2;
sbit    	ACC3    			=    ACC^3;
sbit    	ACC4    			=    ACC^4;
sbit    	ACC5    			=    ACC^5;
sbit    	ACC6    			=    ACC^6;
sbit    	ACC7    			=    ACC^7;

extern bit     	isRESET;			//MCU复位标志
extern bit     	CPU1_REST_FLAG;		//cpu card reset or no
extern bit     	CPU2_REST_FLAG;		//cpu card reset or no
extern bit     	STATE_FLAG;
extern bit		case3;
extern bit		CPU1_T0_T1;
extern bit		CPU2_T0_T1;
extern bit		CPU1_block;
extern bit		CPU2_block;
extern bit     	SAM1_REST_FLAG;		//cpu card reset or no
extern bit     	SAM2_REST_FLAG;		//cpu card reset or no
extern bit     	SAM3_REST_FLAG;		//cpu card reset or no
extern bit     	SAM4_REST_FLAG;		//cpu card reset or no
extern bit      flag;
extern bit      reverse;
extern bit      Power;
extern bit      parity_bit;
extern bit      TC1_flag;
extern bit      Reset_Flag;
extern bit      Squence_flag;
extern bit      Card1T1_flag;


extern uchar data  temp;
extern uchar data  ID;
extern uchar data  command;
extern uint  data  offset;
extern uint  data  length;
extern uchar data  NAD;
extern uchar data  PCB;
extern uchar data  LEN;
extern uchar data  TC1;
extern uchar data  ins;
extern uchar data  pp3;
extern uchar data  sw1;
extern uchar data  sw2;
extern uchar data  TA1;
extern uchar data  TA2;
extern uint  data  pointer;
extern uchar data  WI;
extern uchar data  bps;
extern uchar data  IFSD;
extern uchar data  IFSC;
extern uchar data  TA3;		//根据波特率而存放的时间参数
extern uint  data  timer0;
extern uint  data  timer1;
extern uchar data  TB3;
extern uchar data  BWI;
extern uchar data  CWI;
extern uchar data  WTX;
extern uchar data  tempPCB2;
//extern uchar idata transbuff[60];
//extern uchar  xdata *Rebuff;
extern uint  data  counter;
extern uchar data  ISquen;
//extern uchar data  Len;   再同步处理


//head
extern void  sPC60(void);
extern uchar rPCfirstbyte(void);
extern uchar rPCbyte(void);
extern void  sPCbyte(uchar chr);
extern void  Detu(void);
extern void  D121T(void);
extern void  D35T(void);
extern void  D19T(void);
extern void  D7T(void);
extern void  D43000C(void);

//CARD1
extern uchar CARD1ATRrecvbyte1(void);
extern uchar CARD1recvbyte(void);
extern uchar CARD1recvbyte1(void);
extern void  CARD1sendbyte(uchar chr);
extern uchar CARD1ATRrecvbyte(void);
extern uchar CARD1BWTrecvbyte(void);
extern uchar CARD1bytedetect(void);
//CARD2
extern uchar CARD2recvbyte(void);
extern uchar CARD2recvbyte1(void);
extern void  CARD2sendbyte(uchar chr);
extern uchar CARD2ATRrecvbyte1(void);
extern uchar CARD2ATRrecvbyte(void);

//SAM1
extern uchar SAM1recvbyte(void);
extern uchar SAM1recvbyte1(void);
extern void  SAM1sendbyte(uchar chr);

//SAM2
extern uchar SAM2recvbyte(void);
extern uchar SAM2recvbyte1(void);
extern void  SAM2sendbyte(uchar chr);

//SAM3
extern uchar SAM3recvbyte(void);
extern uchar SAM3recvbyte1(void);
extern void  SAM3sendbyte(uchar chr);

//SAM4
extern uchar SAM4recvbyte(void);
extern uchar SAM4recvbyte1(void);
extern void  SAM4sendbyte(uchar chr);

//TY514CPU.c
extern void trans1_t0(void);
extern void trans2_t0(void);
extern void RstICAnswer1(uchar pps);
extern void RstICAnswer2(uchar pps);
extern uchar StartPTS1(uchar TA1);
extern uchar StartPTS2(uchar TA1);
extern uchar SendFirb(void);
extern void transSAM1_t0(void);
extern void transSAM2_t0(void);
extern void transSAM3_t0(void);
extern void transSAM4_t0(void);
extern void RstICAnswerSAM1(void);
extern void RstICAnswerSAM2(void);
extern void RstICAnswerSAM3(void);
extern void RstICAnswerSAM4(void);
extern void trans1_t1(void);
extern void trans2_t1(void);
extern void Trans1T1(void);
extern void Trans2T1(void);
extern void delay_etu(uchar);
extern void delay_bwt(uchar);
extern void SendFirb2(void);
extern void SendSblock(uchar N,uchar P,uchar I);
extern void SendSblock2(uchar N,uchar P,uchar L ,uchar *I);
extern void Card1SendR(uchar N,uchar P);
extern void Card2SendR(uchar N,uchar P);
extern void Card1sendI(uchar N,uchar P,uchar L);
extern void Card2sendI(uchar N,uchar P,uchar L);
// TY514.c
extern void delay100ms(void);
extern void delay2ms(void);



#endif   /* __TY514_H__ */

⌨️ 快捷键说明

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