⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.h

📁 一整套电梯控制器源程序
💻 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 + -