📄 main.c
字号:
#include "reg58.h"
#include "intrins.h"
#include "main.h"
#include "373.h"
#include "sram.h"
#include "system.h"
#include "init.h"
#include "lcd.h"
#include "define.h"
#include "timer.h"
#include "rxd.h"
#include "keypad.h"
#include "inout.h"
#include "clock.h"
#include "setup.h"
#include "pccomm.h"
#include "event.h"
//////////////////////////////////////////////////////////////////////////////////
void init_var()
{
//373
beeponflag=0;
doorunlockflag=0;
alarmonflag=0;
ttl1onflag=0;
ttl2onflag=0;
buff373=0;
//keypad
idinflag=0;
passinflag=0;
keydownflag=0;
keycounter=0;
//rxd
rxd0flag=0;
rxd0packflag=0;
rxd1flag=0;
keypackflag=0;
//timer
secondsflag=0;
//inout
exitfirst=1;
aux1first=1;
aux2first=1;
contactfirst=1;
tamperfirst=1;
duressflag=0;
exitlowfirst=1;
aux1lowfirst=1;
aux2lowfirst=1;
contactlowfirst=1;
tamperlowfirst=1;
instate=0;
//setup
submenuflag=0;
submenu1flag=0;
setflag=0;
//pccomm
removeuserflag=0;
removeeventflag=0;
}
//////////////////////////////////////////////////////////////////////////////////
void checkbeepon()
{
if(beepontimer)
{
if(beepontimer<99)
{
beepontimer--;
}
set_373(BEEPPORT);
}
else
{
if(beeponflag)
{
beeponflag=0;
clr_373(BEEPPORT);
}
}
}
//////////////////////////////////////////////////////////////////////////////////
void checkdooron()
{
if(doorontimer)
{
if(doorontimer<99)
{
doorontimer--;
}
//set_373(DOORPORT);
unlockdoor();
}
else
{
if(doorunlockflag)
{
doorunlockflag=0;
//clr_373(DOORPORT);
lockdoor();
if(instate&bittbl[CONTACTCOUNT])
{
contactovertimer=20;
}
}
}
}
//////////////////////////////////////////////////////////////////////////////////
void checkcontactover()
{
if(contactovertimer)
{
if(contactovertimer<99)
{
contactovertimer--;
if(!contactovertimer)
{
if(instate&bittbl[CONTACTCOUNT])
{
accessevent(EVENTINPUT|MESSAGECONTACTOVERTIME);
}
}
}
}
else
{
if(instate&bittbl[CONTACTCOUNT])
{
conversebeep();
}
}
}
//////////////////////////////////////////////////////////////////////////////////
void checkalarmon()
{
if(alarmontimer)
{
if(alarmontimer<99)
{
alarmontimer--;
}
set_373(ALARMPORT);
}
else
{
if(alarmonflag)
{
alarmonflag=0;
clr_373(ALARMPORT);
}
}
}
//////////////////////////////////////////////////////////////////////////////////
void checkttl1on()
{
if(ttl1ontimer)
{
if(ttl1ontimer<99)
{
ttl1ontimer--;
}
set_373(TTL1PORT);
}
else
{
if(ttl1onflag)
{
ttl1onflag=0;
clr_373(TTL1PORT);
}
}
}
//////////////////////////////////////////////////////////////////////////////////
void checkttl2on()
{
if(ttl2ontimer)
{
if(ttl2ontimer<99)
{
ttl2ontimer--;
}
set_373(TTL2PORT);
}
else
{
if(ttl2onflag)
{
ttl2onflag=0;
clr_373(TTL2PORT);
}
}
}
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
void cover()
{
unsigned char i;
if(idinflag)
{
if((timerh-keyinputtimer)>TIDBACKTIME)
{
idinflag=0;
keycounter=0;
}
}
if(passinflag)
{
if((timerh-keyinputtimer)>TPASSBACKTIME)
{
clearsetup();
passinflag=0;
keycounter=0;
setflag=0;
accessevent(eventtype|MESSAGEPASSWORDERR);
delayTimerh(TMSGWAITTIME);
//displaymessage(LMMAIN,LINE1);
displayMain();
displaytime();
}
}
if(duressflag)
{
if((timerh-keyinputtimer)>TDURESSBACKTIME)
{
duressflag=0;
}
}
if(secondsflag)
{
EA=0;
secondsflag=0;
i=seconds;
seconds=0;
EA=1;
for(;i;i--)
{
checkbeepon();
checkdooron();
checkalarmon();
checkttl1on();
checkttl2on();
checkcontactover();
datetime[DTSEC]++;
if(datetime[DTSEC]>=60)
{
datetime[DTSEC]=0;
datetime[DTMIN]++;
if(datetime[DTMIN]>=60)
{
datetime[DTMIN]=0;
datetime[DTHUR]++;
if(datetime[DTHUR]>=24)
{
getdatetime();
break;
}
}
}
}
displaytime();
}
if(rxd0flag)
{
if((timerh-rxd0timer)>=TRXD0WAITTIME)
{
rxd0flag=0;
rxd1flag=0;
//rxd0counter=0;
}
}
if(removeeventflag||removeuserflag)
{
if((timerh-getpcoktimer)>TWAITPCOKTIME)
{
removeeventflag=0;
removeuserflag=0;
}
}
if(setflag)
{
if(submenuflag)
{
if(setupitem==SETINTEST)
{
if((timerh-refreshtimer)>TREFRESHTIME1)
{
refreshtimer=timerh;
setintestdisp();
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////
void main()
{
//unsigned char tempdata;
//init_sys(12);
//init_lcd();
//init_figure();
SP=0XC0;
init_var();
init_sys();
//EA=1;
init_all();
//sram_write(0,0,0x55);
//tempdata=sram_read(0,0);
//keyscan();
//rxddeal();
while(1)
{
//keyack();
//keyscan();
if(keydownflag)
{
keydownflag=0;
if(!keytype)
{
keyfun();
}
else
{
if((!idinflag)&&(!passinflag))
{
if(!setflag)
{
set_373(BEEPPORT);
delay60ms();
clr_373(BEEPPORT);
hex2bcd((keynumber<<8)|cardnumhigh);
idata2idata(tempbuff,keybuff,5);
keynumber=ENTER;
keycounter=5;
idinflag=1;
enterfun();
}
else
{
if(setupitem==SETIDREGISTER)
{
if(submenuflag)
{
if(!submenu1flag)
{
set_373(BEEPPORT);
delay60ms();
clr_373(BEEPPORT);
hex2bcd((keynumber<<8)|cardnumhigh);
dispbuff[LINE2][KEYINSTARTP]=tempbuff[0]+0x30;
dispbuff[LINE2][KEYINSTARTP+1]=tempbuff[1]+0x30;
dispbuff[LINE2][KEYINSTARTP+2]=tempbuff[2]+0x30;
dispbuff[LINE2][KEYINSTARTP+3]=tempbuff[3]+0x30;
dispbuff[LINE2][KEYINSTARTP+4]=tempbuff[4]+0x30;
keynumber=ENTER;
setcount=5;
numberfun();
}
}
}
else if(setupitem==SETMASTERCHANGE)
{
if(submenuflag)
{
if(!submenu1flag)
{
set_373(BEEPPORT);
delay60ms();
clr_373(BEEPPORT);
hex2bcd((keynumber<<8)|cardnumhigh);
dispbuff[LINE2][KEYINSTARTP]=tempbuff[0]+0x30;
dispbuff[LINE2][KEYINSTARTP+1]=tempbuff[1]+0x30;
dispbuff[LINE2][KEYINSTARTP+2]=tempbuff[2]+0x30;
dispbuff[LINE2][KEYINSTARTP+3]=tempbuff[3]+0x30;
dispbuff[LINE2][KEYINSTARTP+4]=tempbuff[4]+0x30;
keynumber=ENTER;
setcount=5;
numberfun();
}
}
}
else if(setupitem==SETIDDELETE)
{
if(submenuflag)
{
if(!submenu1flag)
{
set_373(BEEPPORT);
delay60ms();
clr_373(BEEPPORT);
hex2bcd((keynumber<<8)|cardnumhigh);
dispbuff[LINE2][KEYINSTARTP]=tempbuff[0]+0x30;
dispbuff[LINE2][KEYINSTARTP+1]=tempbuff[1]+0x30;
dispbuff[LINE2][KEYINSTARTP+2]=tempbuff[2]+0x30;
dispbuff[LINE2][KEYINSTARTP+3]=tempbuff[3]+0x30;
dispbuff[LINE2][KEYINSTARTP+4]=tempbuff[4]+0x30;
keynumber=ENTER;
setcount=5;
numberfun();
}
}
}
else if(setupitem==SETREADERTEST)
{
if(submenuflag)
{
set_373(BEEPPORT);
delay60ms();
clr_373(BEEPPORT);
displaymessage(LMHHHHHHHH,LINE2);
hex2bcd((keynumber<<8)|cardnumhigh);
dispbuff[LINE2][KEYINSTARTP]=tempbuff[0]+0x30;
dispbuff[LINE2][KEYINSTARTP+1]=tempbuff[1]+0x30;
dispbuff[LINE2][KEYINSTARTP+2]=tempbuff[2]+0x30;
dispbuff[LINE2][KEYINSTARTP+3]=tempbuff[3]+0x30;
dispbuff[LINE2][KEYINSTARTP+4]=tempbuff[4]+0x30;
display(LINE2);
if(keytype==KEYTYPEREADER1)
{
displaymessage(LMREADER1,LINE1);
}
else
{
displaymessage(LMREADER2,LINE1);
}
delayTimerh(TMSGWAITTIME);
displaymessage(LMBLANK,LINE1);
displaymessage(LMSCANID,LINE2);
}
}
}
}
}
}
if(rxd0packflag)
{
rxd0packflag=0;
deal_pccomm();
//deal_finger();
}
cover();
tamperchk();
aux1chk();
aux2chk();
contactchk();
exitchk();
exitchk();
}
}
///////////////////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -