?? main.c
字號:
#include "typedef.h"
extern void switchon(void);
extern uchar rd_ConReg(void);
extern void send_ISO_cmd(uchar flags,uchar cmd,uchar dataPstion,uchar paraLength);
//////////////////////////////////////////////////////////////////////////////////////
// 普通延時函數 延時t毫秒
//////////////////////////////////////////////////////////////////////////////////////
void delayms(uint t)
{
uint i;
while(t--)
{
/* 對于11.0592M時鐘,約延時1ms */
for (i=0;i<125;i++)
{_nop_();}
}
}
/* 串口發送數據函數 */
void Transmit(uchar* ch,uchar n)
{
uint i;
TI = 0;
for(i=0;i<n;i++)
{
SBUF = ch[i];
while(!TI);
TI = 0;
}
}
void Init(void)
{
TMOD=0x11; /*定時器1方式2,定時器0方式1*/
TH0=0xdc; /****T0為10ms的基準定時****/
TL0=0x00; //11.0592M
TR0=1; /*打開T0定時器*/
ET0=1; /*允許T0中斷*/
SCON = 0x50;
T2CON = 0x30;
TL2 = 0xfd;
TH2 = 0xff;
RCAP2L = 0xfd;
RCAP2H = 0xff;
TR2 = 1; //115200bps
ES=0; /*打開串行口中斷*/
PS=0; /*串行口中斷的優先級為0*/
EA=1; /*打開總中斷開關*/
}
/* 主程序 */
extern bit userCardOk;
extern uchar idata pcdata[];
extern bit b_spker;
extern uchar pwUpScanCnt;
extern uchar spkerCnt;
extern uchar xx;
void main()
{
uint i;
uchar uid[8];
LED1 = 0;
LED2 = 0;
LED3 = 1;
BEEP = 0;
Init();
switchon(); for(i=0;i<0xfff;i++);
rd_ConReg();
while(1)
{
if(pwUpScanCnt > 40)
{
pwUpScanCnt = 0;
switchon(); for(i=0;i<0x03ff;i++);
userCardOk = 0;
send_ISO_cmd(0x01,0x2B,6,0);
if(userCardOk)
{
for(i=0;i<8;i++)
uid[i] = pcdata[12-i];
Transmit(uid,sizeof(uid));
userCardOk = 0;
b_spker = 1;
spkerCnt = 0;
}
//Transmit(&xx,1);
}
if(b_spker)
{
LED1 = 1;
BEEP = 1;
if(spkerCnt > 20)
{
LED1 = 0;
BEEP = 0;
b_spker = 0;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -