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

📄 eeprom.h

📁 内容摘要: LHD6000主板主芯片程序 ISD1730时序说明: 参考:void Send_1Byte(uchar ucData_s)和uchar Receive_1Byte(void)的说明.
💻 H
字号:
//EEPROM_ADD
#ifndef EEPROM_H
#define EEPROM_H

//位变量记录方式
#define YES 0x55   ///有啥意思
#define NO  0xAA   ///这样搞干啥


#define EEPROM_ADD_0xA6   0x01	//初始化过存储器标记0x54的位置
#define EEPROM_ADD_0x1B   0x02

#define EEPROM_ADD_LCKG_PWD  0x03  //是否正在锁定需密码的操作

//记录锁定结束时间的位置在: EEPROM_ADD_LCKPWD_MIN


#define EEPROM_ADD_FLAG41_SEL       0x04  //是否使用 4+1,不使用 4+1 就用 ContactID 协议,默认ContactID

#define EEPROM_ADD_RELAY_OUT  (EEPROM_ADD_FLAG41_SEL + 1)//0x05  //记录继电器输出类型,默认为2. 1为报警输出,2火警输出,3布防输出
				   	    ///继电器输出类型

//需要传送到键盘的放在一起

#define EEPROM_ADD_ARM_STATU (EEPROM_ADD_RELAY_OUT + 1)//0x06  //布防状态,密码,延时时间
						///布防状态

#define BYTE_PER_PWD                2	//每个密码占用字节数

//用户密码,高位在低地址,即先读高位(1234的12在低地址)
#define EEPROM_ADD_USER_PWD         (EEPROM_ADD_ARM_STATU + 1)//0x07

//客人密码/操作密码,密码被清除时保存为0xFF
#define EEPROM_ADD_GUEST_PWD        (EEPROM_ADD_USER_PWD + BYTE_PER_PWD)//0x09

//操作密码个数
#define NUM_GUEST_PWD               5

///客人密码空间末尾地址
#define EEPROM_ADD_GUEST_PWD_END    (EEPROM_ADD_GUEST_PWD + NUM_GUEST_PWD * BYTE_PER_PWD - 1)//0x12

//外出延时时间
#define EEPROM_ADD_OUT_DELAY        (EEPROM_ADD_GUEST_PWD_END + 1)//0x13

//进入延时时间
#define EEPROM_ADD_COMIN_DELAY      (EEPROM_ADD_OUT_DELAY + 1)//0x14

//振铃次数,99 表示不接受电话控制
#define EEPROM_ADD_RING             (EEPROM_ADD_COMIN_DELAY + 1)//0x15

//用户ID//两字节
#define EEPROM_ADD_USER_ID          (EEPROM_ADD_RING + 1)//0x16

//每个ID的字节数
#define BYTES_PER_ID                2

//记录电话号码 1~6是否被使用,使用bit0~5记录,0表示号码被清除
#define EEPROM_ADD_TEL_EXIST        (EEPROM_ADD_USER_ID + BYTES_PER_ID)//0x18

//每组电话号码占的最大字节数
#define BYTES_PER_TEL               0x09 ///最多18位数字

//电话号码:6组电话,每组9个字节,占用空间0x1A~0x4E
//第一个字节是号码位数,后8个半字节是16个号码
//如果修改为大于256的数值,将键盘处理程序的变量ucAddTel类型改为整形
#define EEPROM_ADD_TEL              (EEPROM_ADD_TEL_EXIST + 1) //0x19

//电话号码个数
#define TEL_NUMS_RECORD             0x06

//电话号码结束地址
#define EEPROM_ADD_TEL_END          (EEPROM_ADD_TEL + BYTES_PER_TEL * TEL_NUMS_RECORD - 1)//0x4E
//紧跟电话号码后面//0x46

//记录可以再次进行需使用密码的操作的时间点
#define EEPROM_ADD_LCKPWD_MIN       (EEPROM_ADD_TEL_END + 1)//0x4F
#define EEPROM_ADD_LCKPWD_HOUR      (EEPROM_ADD_LCKPWD_MIN + 1)//0x50
#define EEPROM_ADD_LCKPWD_DATE      (EEPROM_ADD_LCKPWD_HOUR + 1)//0x51
#define EEPROM_ADD_LCKPWD_MON       (EEPROM_ADD_LCKPWD_DATE + 1)//0x52
#define EEPROM_ADD_LCKPWD_YR        (EEPROM_ADD_LCKPWD_MON + 1)//0x53

//是否检测电话掉线.
#define EEPROM_ADD_CHK_PHN_LN   (EEPROM_ADD_LCKPWD_YR + 1) //0x54

///干啥用的呢
#define EEPROM_ADD_0xAC     (EEPROM_ADD_CHK_PHN_LN + 1)	

//临时记录ContactID事件的起始地址
#define EEPROM_ADD_CNTCT_EVT_START  (EEPROM_ADD_0xAC + 1)//0x56//(EEPROM_ADD_CNTCT_EVTS_NUM + 1)

//每个事件两字节,第一字节B7B6位存是新事件/撤防(01B表示,ContactID标志发1),
//还是新的恢复事件或布防(10B表示,ContactID标志发3),
//第一字节B0~B5位存事件索引号,第二字节存防区/操作者
#define BYTES_PER_CNTCT_EVTS        2	///每个CONTACT ID事件暂用两个字节

#define EEPROM_ADD_CNTCT_EVT_END    0x76 ///不太明白

#define MAX_CNTCT_EVT_NUM           ((EEPROM_ADD_CNTCT_EVT_END - EEPROM_ADD_CNTCT_EVT_START + 1)/BYTES_PER_CNTCT_EVTS)
///为什么这样搞

#define MAX_41EVT_NUM               (EEPROM_ADD_CNTCT_EVT_END - EEPROM_ADD_CNTCT_EVT_START + 1)
///可能4+1事件每个占一个字节

//辅助CPU版本号,即使辅助CPU没有复位,也读出正确的版本号
#define EEPROM_ADD_AUX_VER  0x90

//是否使用自动布、撤防功能:0x55表示使用,0xAA表示不使用
#define EEPROM_ADD_FLAG_TIMER_ARM   0x91 //(EEPROM_ADD_CNTCT_EVT_END + 1)//0x75

//自动布、撤防时间设置:各三组,每组使用2字节,时分各一个字节(0x71~0x7C)
#define GROUPS_TIME_ARM 0x03  ///三组自动布/撤防

#define BYTES_PER_TIMER 0x02  ///每个时间占两个字节

#define EEPROM_ADD_TIME_ARM         (EEPROM_ADD_FLAG_TIMER_ARM + 1)//0x92

#define EEPROM_ADD_TIME_DISARM      (EEPROM_ADD_TIME_ARM + BYTES_PER_TIMER * GROUPS_TIME_ARM)//0x98

//是否使用警笛的定义
#define EEPROM_ADD_FLAG_TRUMP_SEL   (EEPROM_ADD_TIME_DISARM + BYTES_PER_TIMER * GROUPS_TIME_ARM)//0x9E

//警号鸣叫时间,默认10分钟,范围 0~30 分钟
#define EEPROM_ADD_TRUMP_TIME       (EEPROM_ADD_FLAG_TRUMP_SEL + 1)//0x9F

#define NUM_WR_ZN 4	      ///有线防区4个
#define NUM_WRLS_ZN 16    ///无线防区16个

//防区类型设置:每个防区一个字节,16个无线(0x80~0x8F),4个有线(0x90~0x97)
#define EEPROM_ADD_ZONE_TYPE        (EEPROM_ADD_TRUMP_TIME + 1)//0xA0
#define EEPROM_ADD_ZNTYP_WRLS       (EEPROM_ADD_ZONE_TYPE)//(EEPROM_ADD_ZNTYP_WR + NUM_WR_ZN - 1)//0xA0
#define EEPROM_ADD_ZNTYP_WR         (EEPROM_ADD_ZNTYP_WRLS + NUM_WRLS_ZN)//0xB0
#define EEPROM_ADD_ZONE_TYPE_END    (EEPROM_ADD_ZNTYP_WR + NUM_WR_ZN -1)//0xB3

//防区是否旁路8个防区一个字节,1表示被旁路
//顺序1~8,9~16无线防区,21~24有线防区,41~48键盘有线防区,然后是键盘防拆和意外掉线
//最后一位的位D5是主机防拆,D6是遥控和键盘紧急按钮,D7是胁持密码报警
//0xA0~0xA5共6个字节(5个字节三个位)
#define EEPROM_ADD_BYPASS_INF       (EEPROM_ADD_ZONE_TYPE_END + 1)  //0xB4
///地址的开头

#define EEPROM_ADD_BYPASS_WRLSZN      (EEPROM_ADD_BYPASS_INF)   //0xB4
                  ///无线防区顺序1~8

#define EEPROM_ADD_BYPASS_WRLSZN_H    (EEPROM_ADD_BYPASS_WRLSZN + 1)    //0xB5
				  ///无线防区顺序9~16

#define EEPROM_ADD_BYPASS_WRZN  (EEPROM_ADD_BYPASS_WRLSZN_H + 1)    //0xB6
				  ///有线防区

#define EEPROM_ADD_BYPASS_OTH       (EEPROM_ADD_BYPASS_WRZN + 1)    //0xB7
//用户密码2~5
//#define EEPROM_ADD

#define BYTES_PER_HISTORY 0x08	///每个历史记录占8个字节
#define MAX_HISTORY_RECS  40    ///最大事件个数
//历史报警记录:每个记录8字节;0xC0 ~ 0x1FF(192 ~ 511);
//防区类型,防区号,年,月,日,时,分
#define EEPROM_ADD_HISTORY          (EEPROM_ADD_BYPASS_OTH + 1) //(EEPROM_ADD_HSTR_PNT + 1)   //=0x0B8
	  ///历史记录起始地址

#define EEPROM_ADD_HISTORY_END      (EEPROM_ADD_HISTORY + BYTES_PER_HISTORY*MAX_HISTORY_RECS - 1)
	  ///历史记录结束地址

//历史记录指针地址
#define EEPROM_ADD_HSTR_PNT         (EEPROM_ADD_HISTORY_END + 1) //(EEPROM_ADD_BYPASS_OTH + 1)
///历史记录指针干啥用的

#define EEPROM_ADD_0xD8   0x1FE
#define EEPROM_ADD_0xC0   0x1FF

#if (EEPROM_ADD_HISTORY_END > 511)
 MAX_HISTORY_RECS = 0;
#endif
#if (EEPROM_ADD_BYPASS_OTH >= EEPROM_ADD_HSTR_PNT) ///应该不会大于它
        	   ///应该不会大于历史指针地址
MAX_HISTORY_RECS = 0;
#endif


#endif

⌨️ 快捷键说明

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