📄 main.h
字号:
#ifndef __MAIN_H__
#define __MAIN_H__
#include <REG51.h>
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
#define true 1
#define false 0
#define timer_high 0xdb
#define timer_low 0xff
sbit PIN_LED_PWR=P1^0;
sbit PIN_LED_OPEN=P1^1;
sbit PIN_LED_MODE=P1^2;
sbit PIN_BUZZER=P1^3;
sbit PIN_KEY4=P1^4;
sbit PIN_KEY5=P1^5;
sbit PIN_KEY6=P1^6;
sbit PIN_KEY7=P1^7;
sbit PIN_KEY1=P2^5;
sbit PIN_KEY2=P2^4;
sbit PIN_KEY3=P2^3;
sbit PIN_ALARM=P3^4;
sbit PIN_RELAY=P3^5;
sbit PIN_SENSOR_DOOR=P2^0;
sbit PIN_BUTTON_DOOR=P2^1;
sbit SCL=P3^0;
sbit SDA=P3^1;
//0000 0100 0000 0000~0001 1111 1111 1111b (0x0400~0x2000)
//start_addr_at24lcxx = 0x1000~0x2000 , 128 ~ 256 (page)
//total page = 256,per page = 32 byte ;
//right point is saved at 0x0400~0x401;
//code is saved at 0x0500;
//0x0413;//hi_right_point+lw_right_point+righ_pority==0xffff;
#define right_point_addr 0x0410 //存放权限的数量
#define code_point_type 0x0500 //存放机器密码
#define code_point_addr 0x0505
#define right_point_byte_start 0x0800 //存放权限字节起始地址
#define right_point_page_start 0x80 //存放权限页起始地址
#define count_byte_card 0x03 //韦根26==0x03,韦根34==0x04;
#define count_byte_page 30 //每页字节数<=32
#define count_byte_user 6//3 //每个用户占用字节数量
#define count_user_page 5//10 //每页存储用户数量=count_byte_page/count_byte_user
#define count_dor_delay_addr 0x0600
/************定义延时参数*****************/
#define delay_1 1
#define delay_3 3
#define delay_5 5
#define delay_10 10
#define delay_20 20
#define delay_50 50
#define delay_100 100
#define delay_200 200
#define delay_500 500
#define count_key_delay 400
#define count_code_delay 300
#define key_delay 70
typedef struct _right_info
{
uint addr;
union
{
struct
{
uchar hi;
uchar lw;
}byte;
uint word;
}count;
uint page_count;
}_right_info_;
typedef union _reader_1
{
ulong dat;
uchar buffer[4];
}_reader_1_;
extern _reader_1_ reader_1;
enum
{
status_door_close=0,
status_door_open,
status_door_controll,
status_door_null,
};
enum
{
m_status_null=0,
m_status_normal,
m_status_normal_recy,
m_status_mode,
m_status_moded,
m_status_config,
m_status_success,
m_status_error,
m_status_complete,
m_status_ending,
m_status_ended,
};
enum
{
r_status_null=0,
r_status_code,
r_status_card_code,
r_status_wg_26,
r_status_wg_34,
r_status_add_code,
r_status_add_card,
r_status_add_card_code,
r_status_add_all,
r_status_del_card,
r_status_del_all,
r_status_code_update,
};
enum
{
c_status_code_null=0,
c_status_code_ing,
c_status_code_sys,
c_status_code_card,
c_status_code_dor,
};
extern uchar status_reader;
extern uchar code_sys[6];
extern uchar code_buffer[6];
extern uchar flag_code_active;
extern uint count_code_timeout;
extern uchar count_code;
extern uchar flag_key_active;
extern uchar flag_key_buzzer;
extern uint count_key_timeout;
extern uint count_door_timeout;
extern uint count_door_delay;
extern uchar status_door;
extern ulong tick_count;
extern ulong tick_count_temp;
extern uchar count_temp_global;
extern uchar count_temp_led;
extern uchar status_machine;
void delay_10us(uint idata us);
void delay_ms(uint idata ms);
uint right_judge_code(uchar *buffer);
uint right_judge_card(uchar *buffer);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -