?? common.h
字號:
#include <AT89X52.H>
#include <absacc.h>
#include <intrins.h>
#include <stdio.h>
#define EXTERN extern
#define uchar unsigned char
#define uint unsigned int
#define TIMER_FUNC_NUM 60 //功能切換間隔計數 3s
#define TIMER_SUBFUNC_NUM 4 //子功能切換間隔計數 200ms
#define TIMER_FILTER_NUM 2 //開入點濾波計數 100ms
#define TIMER_SUBTOPAR_NUM 60 //"子功能切換"轉為"功能切換"計數 3s
#define TIMER_ONELINE_NUM 3 //滾動時一行的保留時間 150ms
#define TIMER_STOP_NUM 40 //到站動作持續時間 2s
#define TIMER_200ms 4
#define TIMER_400ms 8
#define TIMER_1000ms 20
//以前用8255
#define PA377 XBYTE[((P2&0x60)|0x9e)*256+P0]
#define PB377 XBYTE[((P2&0x60)|0x9d)*256+P0]
#define PC377 XBYTE[((P2&0x60)|0x9b)*256+P0]
#define PD377 XBYTE[((P2&0x60)|0x97)*256+P0]
#define FLOOR_DISP_BYTENUM 7 // 顯示樓層緩沖區對應字節數
#define DIRECT_DISP_BYTENUM 7 // 顯示樓層緩沖區對應字節數
//----------------------------------5045用----------------------------------------//
struct data5
{uchar cF0;//設定F0,設定控制器號(0~7), 顯示(1-8)
uchar cF1;//設定F1, 設定層樓數(0~47), 顯示(1-48)
uchar cF2;//設定F2, 設定顯示方式(0~2), 顯示(1-3)
uchar cF3;//設定F3, 設定鎖梯(0~1), 顯示(0-1)
uchar cF4;//設定F4, 設定消防(0~1), 顯示(0-1)
};
#define DATA5 struct data5
EXTERN DATA5 data5045;
sbit SO=P3^4; //5045輸出
sbit SI=P3^2; //5045輸入
sbit SCK=P3^3; //5045時鐘
sbit CS=P3^5; //5045片選
EXTERN uchar code WREN_INST; // Write enable latch instruction (WREN)
EXTERN uchar code WRDI_INST; // Write disable latch instruction (WRDI)
EXTERN uchar code WRSR_INST; // Write status register instruction (WRSR)
EXTERN uchar code RDSR_INST; // Read status register instruction (RDSR)
//寫入25045的先導字,應當為0000A010,其中的A為寫入25045的高位地址
//將此WRITE_INST和寫入高位地址相或后即為正確的寫先導字
EXTERN uchar code WRITE_INST; // Write memory instruction (WRITE)
//讀出25045的先導字,應當為0000A011,其中的A為讀出25045的高位地址
//將此READ_INST和讀出高位地址相或后即為正確的讀先導字
EXTERN uchar code READ_INST; // Read memory instruction (READ)
EXTERN uint code BYTE_ADDR; // Memory address for byte mode operations
EXTERN uchar code BYTE_DATA; // Data byte for byte write operation
EXTERN uint code PAGE_ADDR; // Memory address for page mode operations 頁面寫入的其始地址
EXTERN uchar code PAGE_DATA1; // 1st data byte for page write operation
EXTERN uchar code PAGE_DATA2; // 2nd data byte for page write operation
EXTERN uchar code PAGE_DATA3; // 3rd data byte for page write operation
//這是狀態寄存器的值,他的意義在于第5,第4位為WDI1,WDI0代表DOG的時間,00為1.4秒,01為600毫秒,10為200毫秒,00為disabled
//第3位和第2位為BL1,BL0,是寫保護設置位,00為無保護,01為保護180-1FF,10為保護100-1FF,11為保護000-1FF.第1位為WEL,
//當他為1時代表已經"寫使能"設置了,現在可以寫了,只讀位.第0位為WIP,當他為1時代表正在進行寫操作,是只讀
EXTERN uchar code STATUS_REG; // Status register,設置DOG時間設置為200毫秒,無寫保護
EXTERN uchar code MAX_POLL; // Maximum number of polls(最大寫過程時間,確定25045的最大的寫入過程的時間)
EXTERN uchar code INIT_STATE; // Initialization value for control ports
EXTERN uint code SLIC; // Address location of SLIC
EXTERN uchar m_set5045flg; // 當設置位為1時,表示前面設置過,此時要重新的寫入5045中。 如果沒有,則不需要進行這個步驟。
//----------------------------------can用----------------------------------//
EXTERN uchar code cCtrlNum[8]; //控制器號的轉換
EXTERN uchar whacr0,whacr1; //sja1000代碼(接收標示符)
EXTERN uchar whid1,whid2; //sja1000代碼(發送標示符)
struct rec_data{
uchar cCurFloor; //當前樓層數
uchar cDirect; //當前方向(0:下 1:上 0xFF:無)
uchar cMaxFloor; //最大樓層數
};
#define REC_DATA struct rec_data
EXTERN REC_DATA m_RecData; //can接收數據
EXTERN bdata uchar abit;
EXTERN bit abit_0;
EXTERN bit abit_1;
EXTERN bit abit_2;
EXTERN bit abit_3;
EXTERN bit abit_4;
EXTERN bit abit_5;
EXTERN bit abit_6;
EXTERN bit abit_7;
EXTERN uchar time1_count; //上呼計數
EXTERN uchar time2_count; //下呼計數
EXTERN uchar time3_count; //鎖梯計數
EXTERN uchar time4_count; //消防計數
EXTERN uchar time5_count; //消防返回計數
EXTERN uchar time6_count; //鎖梯消防有效時定時發送計數
EXTERN uchar time7_count; //
EXTERN bit time1_flg; //上呼計數
EXTERN bit time2_flg; //下呼計數
EXTERN bit time3_flg; //消防計數
EXTERN bit time4_flg; //消防返回計數
EXTERN bit time5_flg; //鎖梯計數
EXTERN bit time6_flg; //鎖梯消防有效時定時發送標記
EXTERN bit time7_flg; //
EXTERN uchar time_nocan_count; //收不到can數據計時
EXTERN bit time_nocan_flg; //收不到can數據計時到標記
EXTERN bit m_existupcallflg;//上呼存在標記
EXTERN bit m_existdowncallflg;//下呼存在標記
//----------------------------------顯示用----------------------------------//
/*struct disp_data{
uchar cHigh; //當前樓層數
uchar cLow; //當前方向(0:下 1:上 0xFF:無)
};
#define DISP_DATA struct disp_data*/
//EXTERN DISP_DATA m_dSrcFloor[FLOOR_DISP_BYTENUM]; //源樓層buffer
EXTERN uchar m_cSrcFloorHigh[FLOOR_DISP_BYTENUM]; //源樓層buffer高字符
EXTERN uchar m_cSrcFloorLow[FLOOR_DISP_BYTENUM]; //源樓層buffer低字符
//EXTERN uchar m_cSrcDirect[DIRECT_DISP_BYTENUM]; //源方向buffer
//EXTERN DISP_DATA m_dDispFloor[FLOOR_DISP_BYTENUM]; //顯示樓層buffer
EXTERN uchar m_cDispFloorHigh[FLOOR_DISP_BYTENUM]; //顯示樓層buffer高字符
EXTERN uchar m_cDispFloorLow[FLOOR_DISP_BYTENUM]; //顯示樓層buffer低字符
EXTERN uchar m_cDispDirect[DIRECT_DISP_BYTENUM]; //顯示方向buffer
//EXTERN uchar code PB[][5];
//EXTERN uchar code PDUp[5];
//EXTERN uchar code PDDown[5];
EXTERN uchar code PR[13][7];
EXTERN uchar code PRDUp[7];
EXTERN uchar code PRDDown[7];
EXTERN uchar code PR_FIRE[7][2];
EXTERN uchar code PR_REPAIRE[7][2];
EXTERN uchar code PR_LOCK[7][2];
//EXTERN uchar m_cMakeNewFlg; //新文字做標記
EXTERN uchar m_c7_11singledoubleFlg; //0:單字 1:雙字
//----------------------------------設置功能用----------------------------------//
EXTERN uchar m_cFuncCnt; //F0-F4標記計數(0-4)
EXTERN uchar m_cFuncTimer; //功能切換計數器(每2秒切換一次)
EXTERN uchar m_cSettingFuncFlg; //功能設置標記(標志當前處于F0-F4切換階段)
EXTERN uchar m_cNewFuncFlg;
// 顯示為(F0:1-8 F1:1-48 F2:1-3 F3:0-1 F4:0-1)
EXTERN uchar m_cSubFuncCnt; //各功能計數(F0:0-7 F1:0-47 F2:0-2 F3:0-1 F4:0-1)
EXTERN uchar m_cSubFuncTimer; //功能切換計數器(每500毫秒切換一次)
EXTERN uchar m_cSettingSubFuncFlg; //子功能設置標記(標志當前處于各功能的子功能設置階段)
EXTERN uchar m_cNewSubFuncFlg;
EXTERN uchar m_cMaxSubNum;
EXTERN uchar m_cSubToParTimer;
EXTERN uchar m_cSubToParLess2sFlg;
//滾動專用
EXTERN uchar m_cWholeMoveOKFlg; //整組移動完成標記(出現新樓層時,進行一組滾動,滾動完成后等待下一新樓層)
EXTERN uchar m_cMoveCnt; //滾動計數(0-6)
EXTERN uchar m_cMoveTimer; //滾動計數器(每150ms滾動一次)
EXTERN uchar m_cNewLineFlg; //新滾動行標記
//四狀態
EXTERN uchar m_cFireFlg;
EXTERN uchar m_cFireBaseFlg;
EXTERN uchar m_cRepairFlg;
EXTERN uchar m_cLockFlg;
EXTERN uchar m_cLockDarkFlg;
EXTERN uchar m_cStopFlg; //到站信號
EXTERN uchar m_cFireServiceFlg;
//到站動作持續計時(2s)
EXTERN uchar time_stop_count; //到站動作計數
EXTERN uchar time_stop_flg; //到站動作標志
EXTERN uchar time_stop2s_flg; //到站動作計時到標志
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -