📄 main.h
字号:
// --------------------------------------------------------------------------
// Main.h
// --------------------------------------------------------------------------
#ifndef __MAIN_H__
#define __MAIN_H__
/*----------------------------------------------------------------------------+
| Include files |
+----------------------------------------------------------------------------*/
#include "STC89C54.h"
#include <intrins.h>
#include <string.h>
#include "WDT.h"
#include "Define.h"
#include "Message.h"
#include "Timer.h"
#include "I2C_512.h"
/*----------------------------------------------------------------------------+
| Type Definition & Macro |
+----------------------------------------------------------------------------*/
// 如果采用AT89S5x系列单片机,则需要宏定义AT89
// #define AT89 1
/*---------------------------------------------------------------------------*/
#define SYS_CLOCK 24000 // 24000KHz = 24MHz
#define N_DIV 12 // 单片机一个指令周期包含多少个机器周期,默认为12个
#define TIMER2_INTERVAL 10 // 10ms
// Timer2 reload value
#define TIMER2_H (65536-(SYS_CLOCK/N_DIV)*TIMER2_INTERVAL)>>8
#define TIMER2_L (65536-(SYS_CLOCK/N_DIV)*TIMER2_INTERVAL)&0xFF
// 定义键盘的输入输出管脚
#define KEY_COL1 P0_3 // 键盘矩阵第1列
#define KEY_COL2 P0_2 // 键盘矩阵第2列
#define KEY_COL3 P0_1 // 键盘矩阵第3列
#define KEY_COL4 P0_0 // 键盘矩阵第4列
#define KEY_ROW1 P0_4 // 键盘矩阵第1行
#define KEY_ROW2 P0_5 // 键盘矩阵第2行
#define KEY_ROW3 P0_6 // 键盘矩阵第3行
#define KEY_ROW4 P0_7 // 键盘矩阵第4行
#define BEEP P4_0 //轰鸣器管脚
#define ReadBit P4_1 //读卡模块数据发送管脚
//定义压簧的管脚
#define KEY_HANDLE P4_2 // 定义连接手柄的管脚
#define KEY_CALL P1_5 // 定义压簧上的呼叫按键
#define Key_UNLOCK P1_6 // 定义压簧上的开锁按键
#define SW_B P1_0 // CD4052地址B脚
#define SW_A P1_1 // CD4052地址A脚
#define P_AUDIO P2_2 // 音频电路电源控制管脚
#define P_VIDEO P2_3 // 显示屏电源控制管脚
#define MUSIC_TRIG P2_4 // 音乐芯片触发管教
#define P_MUSIC P2_5 // 音乐芯片电源控制管脚
#define GREEN_LED P2_7 // 绿色LED控制管脚
#define RED_LED P2_6 // 红色LED控制管脚
#define P_ON 0
#define P_OFF 1
// 定义按键
typedef enum {
Key_Zero = 0, // 0
Key_One, // 1
Key_Two, // 2
Key_Three, // 3
Key_Four, // 4
Key_Five, // 5
Key_Six, // 6
Key_Seven, // 7
Key_Eight, // 8
Key_Nine, // 9
Key_Cancel = 11, // 取消, 11
Key_Setup, // 设置, 12
Key_View, // 监视, 13
Key_Call, // 呼叫, 14
Key_Unlock, // 开锁, 15
Key_Find, // 查询, 16
Key_HandUp, // 摘机, 17
Key_HandDown, // 挂机, 18
Key_PCall, // 呼叫, 压簧按键19,
Key_None = 0xFF // 没有按键
} e_Key;
// 定义命令字,应答字节将最高位置1
/*
typedef enum {
Command_Disconnect = 0, // 中断连接命令
Command_CallRequest, // 通话请求命令
Command_HandUp, // 摘机命令
Command_ViewRequest, // 视频请求命令
Command_Alarm, // 报警命令
Command_CancelAlarm, // 取消报警
Command_Unlock, // 开锁命令
Command_AddRFCard, // 增加射频卡,由管理机发向门口机
Command_DelRFCard, // 删除射频卡,由管理机发向门口机
Command_CheckRFCard, // 验证该卡是否可以开门,由门口机发向管理机
Command_Busy = 0x40, // 应答忙信号
Command_Ack = 0x80 // 应答信号
} e_Command;
*/
#define Command_Disconnect 0x00 // 中断连接命令
#define Command_CallRequest 0x01 // 通话请求命令
#define Command_HandUp 0x02 // 摘机命令
#define Command_ViewRequest 0x03 // 视频请求命令
#define Command_Alarm 0x04 // 报警命令
#define Command_CancelAlarm 0x05 // 取消报警
#define Command_Unlock 0x06 // 开锁命令
#define Command_AddRFCard 0x07 // 增加射频卡,由管理机发向门口机
#define Command_DelRFCard 0x08 // 删除射频卡,由管理机发向门口机
#define Command_CheckRFCard 0x09 // 验证该卡是否可以开门,由门口机发向管理机
#define Command_Heartbeat 0x20 // 门口机正常心跳信号,每隔一定的时间会发来一个心跳信号,
// 当超过一定时间没有收到心跳信号则认为门口机掉线,
// 如果带参数则是门口机发来的被拆信号
#define Command_Busy 0x40 // 应答忙信号
#define Command_Ack 0x80 // 应答信号
// 定义枚举类型的系统状态
typedef enum {
Status_Init = 0, // 正在系统初始化
Status_Idle, // 空闲状态
Status_ShowingMessage, // 正在显示临时的消息,
Status_Menu, // 显示菜单
Status_ViewBefore, // 监视之前的输入单元号的状态
Status_ViewSendingRequest, // 正在向门口机发送监视请求,等待应答
Status_Viewing, // 正在监视
Status_ViewCanceling, // 发送取消监视的命令,等待门口机应答
Status_CallBefore, // 呼叫门室内分机之前的输入房间号的状态
Status_CallSendingRequest, // 正在向室内分机发送呼叫请求,等待应答
Status_CallCanceling, // 正在中断这一次通话
Status_UnlockSendingRequest, // 正在向门口机发送开锁请求,等待应答
Status_bCallingIn_M, // 有门口机正在呼叫管理中心
Status_bCallingIn_F, // 有室内分机正在呼叫管理中心
Status_Calling, // 管理机正在呼叫室内分机
Status_Talking, // 正在和门口机或室内分机进行通话
Status_Alarming_M, // 门口机报警
Status_Alarming_F, // 分机报警
Status_SetupEnterPassword, // 进入设置菜单前面的输入密码的界面,只有输入了正确的密码之后才能够进行设置
Status_SetupMenu, // 进入到设置的主菜单界面
Status_SetupTime, // 正在设置系统时间的界面
Status_SetupPasswordBefore, // 正在设置系统密码前的输入管理员密码的界面
Status_SetupPasswordFirst, // 第一次输入密码
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -