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

📄 cd_door.h

📁 采用430单片机完成的门禁控制器程序
💻 H
字号:
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long 

/*******常用变量***********/
uchar clk_10ms;
uchar clk_20ms;
uchar clk_50ms;
uchar clk_100ms;
uchar clk_20s;
uchar clk_200ms;
uint  clk_1min;
uchar buzzer_cnt;
uchar buzzer_cycle;
uchar card_cnt;
uint  FLAG;
uint  FLAG1;
uint  FLAG2;
uchar addr;
uchar addr1;
uchar tx_len;
uchar RX_DATA[100];
uchar TX_DATA[100];
uchar table_buf[840];
uchar clock[8];
uchar conone;
/*BIT位	控制	说明


D7	=0	不监控门开关状态
	=1	监控门开关状态(通过门磁),异常报警 
(1)非正常开门;
(2)不能自动关门的锁,刷卡后无开门后--再关门的机械动作;
(3)开门延时结束后,还未关门;

D6	=0	不监控红外
	=1	监控红外,"非法进入监控区域"则报警,产生记录。合法刷卡进入,或KEYPAD上输入用户号/密码而开门进入 ,远程RS485命令放行(进入),控制器都会自动关闭红外监控。可以由远程RS485命令开启,或KEYPAD上直接开启。(KEYPAD上不能关闭,只能开启;只有合法刷卡才能关闭)
D5	=0	电磁锁在断电后(或加电后)能自动锁上;
	=1	必须靠"开门--再关门"机械动作的弹力才能锁上;
D4	=0	允许 "手动开门"输入线在与电源地线短接时,能开门.  =1,禁止.

D3	=0	设定门磁输出电平为:
开门时门磁两信号线是短路(通);门关上后,两信号线开路(不通)
	=1	设定门磁输出电平为:
开门时门磁两信号线是断路(开);门关上后,两信号线短路合上(通)

D2	=0	设定红外感应器的输出电平:报警时两信号线是短路(通);正常时(不报警)两信号线开路(不通)
	=1	设定红外感应器的输出电平:报警时两信号线是断路(不通);正常时(不报警)两信号线短路(通)
D1	=0	刷卡合法,就能开门,无须再个人密码确认;
	=1	刷卡合法,必须再个人密码确认后,才能开门;
D0	=0	不允许从键盘单独按一个<ENT>键手动开门;
	=1	允许从键盘单独按一<ENT>键手动开门,而节省手动开门按键;
*/
uint  nvip;  //已存正式卡号数目
uint  nnom;  //已存巡更卡号数目
uint  nyvip;  //已存遥控器正式卡号数目
uint  nynom;  //已存遥控器巡更卡号数目
ulong addrbuf;
ulong cardin;            //记录内门刷卡
ulong cardout;            //记录外门刷卡
ulong cardyao;      //记录遥控开门卡号
uchar key;
uchar key_pre;
uchar key_cnt;
uchar door;
uchar door_pre;
uchar door_cnt;
uchar door_close;
uchar ir;
uchar ir_pre;
uchar ir_cnt;
uchar ir_close;
uint  earse_cnt;
uint  BOTTOM;
uint  LOADP;
uint  SAVEP;
uint  MAXLEN;
uint  save_cnt;
uchar MF;
uchar REMARK;
uchar STATUS;
ulong cardnum;
uchar recordbuf;
uchar delay_cnt;   //门锁继电器执行时间计数
uchar wait_cnt;    //开门后等待进入的延时时间计数
uchar iren_cnt;    //红外报警输出的被确认时间计数
uchar alarm_cnt;   //异地报警的延时时间计数
uchar irdly_cnt;   //开启红外后的等待延时
uchar restday1;
uchar restday2;
uchar holiday[40][2];
uchar card_buf[5];
uchar index_vip;
uint  protect_cnt;
uchar msg_flag;
uchar ircon[16];    //存储自动开启对红外门监控时段

//*******引脚定义*********
#define   ALE       BIT0
#define   BUZ       BIT1
#define   DATA10    BIT0
#define   DATA11    BIT1
#define   DATA20    BIT2
#define   DATA21    BIT3
#define   CE        BIT7
#define   DATA	    BIT6
#define   SCLK      BIT5

//*****程序进程标识位FLAG***
#define   fb_10ms   BIT0
#define   fb_20ms   BIT1
#define   fb_100ms  BIT2
#define   gb_buzzer BIT3
#define   gb_card   BIT4
#define   gb_lock   BIT5
#define   gb_clock  BIT6
#define   gb_re1302 BIT7
#define   gb_wr1302 BIT8
#define   gb_tx     BIT9
#define   gb_addvip BITA
#define   gb_addnom BITB
#define   gb_delvip BITC
#define   gb_delnom BITD
#define   gb_time_re BITE
#define   fb_50ms   BITF
//*****程序进程标识位FLAG1***
#define   gb_flashr BIT0
#define   gb_flashw BIT1
#define   gb_cdsame BIT2
#define   gb_cardin BIT3
#define   gb_cardout BIT4
#define   gb_era7   BIT5
#define   gb_deldeal  BIT6
#define   gb_remsg  BIT7
#define   gb_repar  BIT8
#define   gb_wrmsg  BIT9
#define   gb_work   BITA
#define   gb_week   BITB
#define   gb_rework BITC
#define   gb_renowork BITD
#define   gb_reweek BITE
#define   gb_protect BITF

/*********程序进程标志位FLAG2****/
#define   gb_addyvip  BIT0
#define   gb_addynom  BIT1
#define   gb_cardyao  BIT2
#define   gb_dooror   BIT3
#define   gb_doorval  BIT4
#define   gb_rejian   BIT5
#define   gb_conmsg   BIT6
#define   gb_ircon    BIT7
#define   gb_1min     BIT8
#define   gb_concon   BIT9
#define   gb_concon1  BITA
#define   gb_doornval BITB
#define   gb_irval    BITC

/******信息记录区标志位msg_flag*****/
#define   gb_msg1     BIT1
#define   gb_msg2     BIT2
#define   gb_msg3     BIT3
#define   gb_msg4     BIT4
#define   gb_msg5     BIT5

⌨️ 快捷键说明

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