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

📄 define.h

📁 用PICC开发的RC500的完整C源程序。单片机用PIC16f73。
💻 H
字号:
//#define uchar           unsigned char;
;
#define nop() asm("nop")
#define clrwdt() asm("clrwdt")
//******************** io 口定义 ******************
#define rc500_ale       RA0             // lhl 锁定地址
#define rc500_rd        RA1
#define rc500_wr        RA2
#define rc500_cs        RA3
#define led_green       RA4
#define led_red         RA5

#define trisa_ini       0x0
#define porta_ini       0x3f

#define data_port       PORTB
#define tris_data_port  TRISB
#define tris_input      0xff
#define tris_output     0x0

#define trisb_ini       0xff
#define portb_ini       0x0

#define rc500_rst       RC0
#define rc500_irq       RC1


#define portc_ini       0x2

//******************** 常量定义 *******************
#define option_ini      0x02            // 1:8 预分频用于 timer0
#define timer0_ini      255-50          // 1/216 秒定时

#define t1con_ini       0x31            // 1:8 预分频, 启动定时器
#define timer1h_ini     0xf6            // 20ms 定时
#define timer1l_ini     0x3c
#define t2con_ini       0x4d            // 1:40 预分频, 启动定时器
#define timer2_ini      255-250         // 10ms 定时

#define adcon0_ini      0x0
#define adcon1_ini      0x7             //关闭 ADC
#define rxdsta_ini      0x90
#define txdsta_ini      0x26

#define true            0x1
#define false           0x0

#define MIS_CHK_OK              (0)
#define MIS_CHK_FAILED          (-1)
#define MIS_CHK_COMPERR         (-2)

#define GetRegPage(addr)        (0x80 | (addr>>3))
#define WriteE2                 0x01
#define LoadKeyE2               0x0B
#define KEY_A                   0x60    //!< authentication using key A
#define KEY_B                   0x61    //!< authentication using key B
#define READER_ERR_BASE_START   0
#define Timecount               10000

#define LED_G_ON()  RA4=0
#define LED_R_ON()  RA5=0
#define LED_G_OFF()  RA4=1
#define LED_R_OFF()  RA5=1
#define BeepOn()    TRISC5=0;RC5=1
#define BeepOff()   RC5=0
//i2c
#define port_scl    RC3
#define port_sda    RC4
#define port_ewp    RC2
#define tris_scl    TRISC3
#define tris_sda    TRISC4
#define tris_ewp    TRISC2
#define SDA      port_sda
#define SCL_Hi()    port_scl=1
#define SCL_Lo()    port_scl=0
#define SDA_Hi()    tris_sda=1; do {;}while(port_sda==0)
#define SDA_Lo()    tris_sda=0; nop(); port_sda=0
#define eWP_Hi()    tris_ewp=1
#define eWP_Lo()    tris_ewp=0; port_ewp=0
#define SDA_INPUT() tris_sda=1
#define SCL_INPUT() tris_scl=1
#define SDA_OUT()   tris_sda=0
#define SCL_OUT()   tris_scl=0
//
#define E2Addr_Baud 0x30
//******************* 寄存器定义 ******************

struct{
    unsigned cRxOver:1;
    unsigned CardIn:1;
    unsigned CardSame:1;
    unsigned BeepOver:1;
    unsigned LedOver:1;
    unsigned Over50ms:1;
    unsigned SUCCESS:1;
    }Flag;
struct{
    unsigned CommErr:1;//2秒钟未收到信号
    unsigned LED_R_ON :1;
    unsigned BEEP_ON:1;
//     unsigned  :1;
//     unsigned  :1;
//     unsigned  :1;
    }Sta;
unsigned char hex_hi,hex_lo,hex_byte;
unsigned char tmr50ms,tmrBeep,tmrLed;
unsigned char BeepHoldTmr,LedHoldTmr;
unsigned char tmr500ms,tmrCommRx,tmrReadCard,tmrCommErr;
unsigned char eAddr;
unsigned char cRxCunt;
unsigned char MyAddr;
persistent unsigned char Baud;
unsigned char BCC;
unsigned char BBcunt,LEDcunt;
unsigned char bank1 Snr_RC500[4];                     // MFRC500 序列号
unsigned char bank1 Snr_Temp[4];                     // MFRC500 序列号 缓存

unsigned char bank1 MSndBuffer[20];
unsigned char bank1 MRcvBuffer[20];
unsigned char bank1 CommBuff[24];

struct MfCmdInfo
    {
    unsigned char  cmd;           // command code
    unsigned char  status;        // communication status
    unsigned char  nBytesSent;    // how many bytes already sent
    unsigned char  nBytesToSend;  // how many bytes to send
    unsigned char  nBytesReceived;// how many bytes received
    unsigned char  nBitsReceived; // how many bits received
    unsigned char  irqSource;     // which interrupts have occured
    unsigned char  collPos;       // at which position occured a collision
    } MInfo;

    unsigned char mfout=2;//readbuf[16];
    unsigned char tt1[2];
    char status1;
    unsigned char *sak1;

⌨️ 快捷键说明

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