📄 common_data.c
字号:
#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
//DATA5 data5045;
//sbit SO=P3^4; //5045输出
//sbit SI=P3^2; //5045输入
//sbit SCK=P3^3; //5045时钟
//sbit CS=P3^5; //5045片选
uchar code WREN_INST=0X06; // Write enable latch instruction (WREN)
uchar code WRDI_INST=0X04; // Write disable latch instruction (WRDI)
uchar code WRSR_INST=0X01; // Write status register instruction (WRSR)
uchar code RDSR_INST=0X05; // Read status register instruction (RDSR)
//写入25045的先导字,应当为0000A010,其中的A为写入25045的高位地址
//将此WRITE_INST和写入高位地址相或后即为正确的写先导字
uchar code WRITE_INST=0X02; // Write memory instruction (WRITE)
//读出25045的先导字,应当为0000A011,其中的A为读出25045的高位地址
//将此READ_INST和读出高位地址相或后即为正确的读先导字
uchar code READ_INST=0X03; // Read memory instruction (READ)
uint code BYTE_ADDR=0X55; // Memory address for byte mode operations
uchar code BYTE_DATA=0X11; // Data byte for byte write operation
uint code PAGE_ADDR=0X1F; // Memory address for page mode operations 页面写入的其始地址
uchar code PAGE_DATA1=0X22; // 1st data byte for page write operation
uchar code PAGE_DATA2=0X33; // 2nd data byte for page write operation
uchar code PAGE_DATA3=0X44; // 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时代表正在进行写操作,是只读
uchar code STATUS_REG=0x20; // Status register,设置DOG时间设置为200毫秒,无写保护
uchar code MAX_POLL=0x99; // Maximum number of polls(最大写过程时间,确定25045的最大的写入过程的时间)
uchar code INIT_STATE=0x09; // Initialization value for control ports
uint code SLIC=0x30; // Address location of SLIC
uchar m_set5045flg; // 当设置位为0时,表示前面设置过,此时要重新的写入5045中。 如果没有,则不需要进行这个步骤。
//rec
uchar m_cInSelLamp[FLOOR_MAX];
uchar m_cOverLoadLampFlg;
uchar m_cBingFlg;
uchar m_cArriveRingFlg;
uchar m_cInSelAllOffFlg;
uchar m_cMaxFloorCnt;
uchar m_cDirect; // 0/1/0xFF
uchar m_cCurFloorNum;
//sen
uchar time_5sta_count; //5状态计数
uchar time_5sta_flg; //5状态计数到标记
uchar time_insel_count;
uchar time_insel_flg;
uchar time_500ms_count;//500ms滤波计数
uchar time_500ms_flg; //500ms滤波计数到标记
uchar sum_state1; //司机上状态
uchar sum_state2; //司机下状态
uchar sum_state3; //司机状态
uchar sum_state4; //直驶状态
uchar sum_state5; //保留状态
uchar temp_state1; //司机上状态
uchar temp_state2; //司机下状态
uchar temp_state3; //司机状态
uchar temp_state4; //直驶状态
uchar temp_state5; //保留状态
uchar m_state1; //司机上状态
uchar m_state2; //司机下状态
uchar m_state3; //司机状态
uchar m_state4; //直驶状态
uchar m_state5; //保留状态
uchar keyboard[FLOOR_MAX];
uchar keyboardorg[FLOOR_MAX];
uchar array0[FLOOR_MAX]; //内选状态记录0
uchar array1[FLOOR_MAX]; //内选状态记录1
uchar array2[FLOOR_MAX]; //内选状态记录2
uchar array3[FLOOR_MAX]; //内选状态记录3
uchar array4[FLOOR_MAX]; //内选状态记录4
//到站钟计时
uchar time_arrive2s_count; //到站钟保持2s滤波计数
uchar time_arrive2s_flg; //到站钟保持2s滤波计数到标记
//蜂鸣器计时
uchar time_bing2s_count; //到站钟保持2s滤波计数
uchar time_bing2s_flg; //到站钟保持2s滤波计数到标记
uchar time_nocan_count;
bit time_nocan_flg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -