📄 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 + -