?? 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 + -