📄 zdjjc.h
字号:
#ifndef ZDJJC_H
#define ZDJJC_H
#define uchar unsigned char
#define uint unsigned int
#define byte unsigned char
#define word unsigned int
#define dword unsigned long
typedef union _WordType
{
word w;
byte b[2];
}WordType;
typedef union _DwordType
{
dword dw;
word w[2];
byte b[4];
}DwordType;
#define FALSE 0
#define TRUE ~FALSE
#define HIGH 1
#define LOW 0
#define TERM_COUNT 17 //17个脉冲16周期
//T0
#define TH0_VAL 0xEE //5ms
#define TL0_VAL 0x00
//T1
#define TH1_VAL 0xFC //1ms
#define TL1_VAL 0x66
//T2
#define TH2_VAL 0xFF //9600
#define TL2_VAL 0xDC
#define TIMEOUT 250
#define DISPLAY_BUF_LEN 7
#define BUF_SIZE 35
#define KBI_COUNT 5
#define NO_KEY 0xFF
#define RECORDCOUNT 15
#define KEYDELAY 1
#include <reg52.h>
#include <intrins.h>
#include "crc.h"
#include "1302.h"
#include "24c01.h"
sbit DAT_595 = P1^4; //595引脚
sbit CLK_595 = P1^5;
sbit STB_595 = P1^6;
sbit EN_SEND = P3^6; //485发送使能
sbit KB_DATA = P2^7; //按钮输入引脚
sbit MOTOR = P2^0; //主机状态
sbit RST_PIN = P3^7; //复位引脚
sbit JING_PIN = P2^1; //经线
sbit WEI_PIN = P2^2; //纬线
sbit DIXI_PIN = P2^3; //底线
sbit JUAN_PIN = P2^4; //卷饶
/***********************显示缓冲区**************************/
uchar idata displayBuf[DISPLAY_BUF_LEN];
uchar idata displayIndex;//当前显示的数据下标
/***********************通信缓冲区**************************/
uchar idata UartBuf[BUF_SIZE];
uchar idata Rindex;
uchar idata Tindex;
bit bdata RecOver;
bit bdata TrasOver;
bit bdata IsReceive;
uchar idata UartLength;
uchar idata Address;
uchar idata BaudIndex;
/************************全局变量***************************/
uint idata uPulseInc;
uint idata uDebugPulse;
WordType idata uKValue; //K值
WordType idata RunLength; //运行带长
WordType idata DebugLength; //调试带长
WordType idata RunTime; //运行带累计时间
WordType idata DebugTime; //调试带累计时间
uchar data curKey; //当前键
//uchar data KeyCount; //按键时间
//uchar data FirstKey; //第一键
bit bdata motorStatus; //电机状态
bit bdata buzzState; //蜂鸣器状态
bit bdata KeyFlag; //键盘状态
bit bdata RunStatus; //运行状态
bit bdata JingStatus; //经线上次状态
bit bdata WeiStatus; //纬线上次状态
bit bdata DiStatus; //底线上次状态
bit bdata JuanStatus; //卷绕上次状态
bit bdata TimeStatus; //时间累计状态
bit bdata RstStatus; //复位状态标志
uchar idata curMotorStopCount; //停机次数
WordType idata curMotorStopTimeLength; //停机时间(单位:分)
uchar idata JingCutCount; //经线断次数
uchar idata JingCutTime; //经线断时间
uchar idata WeiCutCount; //纬线断次数
uchar idata WeiCutTime; //纬线断时间
uchar idata DiCutCount; //底线断次数
uchar idata DiCutTime; //底线断时间
uchar idata JuanCutCount; //卷饶断次数
uchar idata JuanCutTime; //卷饶断时间
uchar idata GroupSaveCount;
uchar idata FirstMin, NextMin; //两次时间比较,单位分钟
uint idata PulseCount; //脉冲次数
uint idata PulseTotal; //脉冲周期采集
WordType idata PulseTerm; //正常脉冲周期
uint idata PulseAct; //当前脉冲周期
WordType idata PulseCheat; //伪脉冲次数
uchar code SEVEN_BLK1[16] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};
uchar code ErrorHint[] = {0x79, 0x50, 0x50, 0x5C, 0x50}; //Error
uchar idata GroupIndex; //班号
uchar idata GroupCount; //班数
uchar idata RecordIndex; //记录索引
//以下定义存放数据的EEPROM数据地址
#define GROUP_TIME 0 //地址0-15,存放4班开始结束时间,格式时:分
#define GROUP_0 0 //第一班时间地址
#define GROUP_1 4 //第二班时间地址
#define GROUP_2 8 //第三班时间地址
#define GROUP_3 12 //第四班时间地址
#define GROUP_COUNT 16 //班数地址16
#define TERM_H 17 //正常脉冲周期H地址
#define TERM_L 18 //正常脉冲周期L地址
#define KVALUE_H 19 //K值H
#define KVALUE_L 20 //K值L
#define WORK_STATUS 21 //本机状态
#define BAUD_RATE 22 //波特率
#define ADDRESS 23 //本机通信地址
#define MACHINE_NUM_H 24 //机器号高地址
#define MACHINE_NUM_L 25 //机器号低地址
#define WORKSHOP_NUM 26 //车间号
#define FACTORY_NUM 27 //分厂号
#define START_TIME 28 //地址28-34,存放开机时间
#define RECORD_INDEX 35 //当前班记录地址编号
#define RECORD_ROOT 64 //各班记录基地址,各班记录占32字节,15班轮转
void InitParam (void); //系统初始化
void Display (void); //显示数据
void IntToLED (uint uData, uchar uPos, bit bIsDot); //数据转换到LED
void KeyProc (void);
void SaveCurrData (void) reentrant; //保存当班数据
uint InitBaud (void); //设置波特率
void ReStoreData (uchar data RecordIndex) reentrant; //恢复当前班数据
void CutCheck (void); //断线检测
void CountTime (void);
uchar BCDToBin (uchar uBCD); //BCD码转成2进制
void ModbusProcess (void);
void ClearAllData (void); //所有当前记录变量清0
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -