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

📄 main.h

📁 12232液晶驱动和时间显示。矩阵键盘源代码
💻 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 + -