📄 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_100ms 5
#define TIMER_200ms 10
#define TIMER_400ms 20
#define TIMER_500ms 25
#define TIMER_1000ms 50
#define TIMER_2s 100
#define TIMER_5s 250
#define TIMER_FILTER_NUM 10
#define GRP_UNIT_NUM 8 //number of group
#define FLOOR_MAX 6
//----------------------------------5045用----------------------------------------//
//struct data5
//{
//uchar m_cMaxFloorCnt;
//};
//#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; // 当设置位为0时,表示前面设置过,此时要重新的写入5045中。 如果没有,则不需要进行这个步骤。
//rec
EXTERN uchar m_cInSelLamp[FLOOR_MAX];
EXTERN uchar m_cOverLoadLampFlg;
EXTERN uchar m_cBingFlg;
EXTERN uchar m_cArriveRingFlg;
EXTERN uchar m_cInSelAllOffFlg;
EXTERN uchar m_cMaxFloorCnt;
EXTERN uchar m_cDirect; // 0/1/0xFF
EXTERN uchar m_cCurFloorNum;
//sen
EXTERN uchar time_5sta_count; //5状态计数
EXTERN uchar time_5sta_flg; //5状态计数到标记
EXTERN uchar time_insel_count;
EXTERN uchar time_insel_flg;
EXTERN uchar time_500ms_count; //500ms滤波计数
EXTERN uchar time_500ms_flg; //500ms滤波计数到标记
EXTERN uchar sum_state1; //司机上状态
EXTERN uchar sum_state2; //司机下状态
EXTERN uchar sum_state3; //司机状态
EXTERN uchar sum_state4; //直驶状态
EXTERN uchar sum_state5; //保留状态
EXTERN uchar temp_state1; //司机上状态
EXTERN uchar temp_state2; //司机下状态
EXTERN uchar temp_state3; //司机状态
EXTERN uchar temp_state4; //直驶状态
EXTERN uchar temp_state5; //保留状态
EXTERN uchar m_state1; //司机上状态
EXTERN uchar m_state2; //司机下状态
EXTERN uchar m_state3; //司机状态
EXTERN uchar m_state4; //直驶状态
EXTERN uchar m_state5; //保留状态
EXTERN uchar keyboard[FLOOR_MAX];
EXTERN uchar keyboardorg[FLOOR_MAX];
EXTERN uchar array0[FLOOR_MAX]; //内选状态记录0
EXTERN uchar array1[FLOOR_MAX]; //内选状态记录1
EXTERN uchar array2[FLOOR_MAX]; //内选状态记录2
EXTERN uchar array3[FLOOR_MAX]; //内选状态记录3
EXTERN uchar array4[FLOOR_MAX]; //内选状态记录4
//到站钟计时
EXTERN uchar time_arrive2s_count; //到站钟保持2s滤波计数
EXTERN uchar time_arrive2s_flg; //到站钟保持2s滤波计数到标记
//蜂鸣器计时
EXTERN uchar time_bing2s_count; //到站钟保持2s滤波计数
EXTERN uchar time_bing2s_flg; //到站钟保持2s滤波计数到标记
EXTERN uchar time_nocan_count; //收不到can数据计时
EXTERN bit time_nocan_flg; //收不到can数据计时到标记
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -