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

📄 zdjjc.h

📁 织带机产量检测系统的监测终端。RS-485总线
💻 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 + -