sysint.c

来自「16路巡检仪 该仪表采用c语言编写」· C语言 代码 · 共 151 行

C
151
字号
#include 	"Head.h"
#include	"AT89X52.H"
extern	int		xdata	kadat;
extern	uchar	xdata	fundat;			
extern	uchar	xdata	inputdat;
extern	uchar	xdata	typdat[16];
extern	uchar	xdata	dot[16];
extern	float		xdata	rangeL[16];
extern	float		xdata	rangeH[16];
extern	uchar	xdata	warmd;
extern	float		xdata	warmL[16];
extern	float		xdata	warmH[16];
extern	uchar	xdata	warmdown[16];
extern	uchar	xdata	warmscd[16];
extern	float		xdata	filt;
extern	uchar	xdata	drt;
extern	int		xdata	xjtime;
extern	uchar	xdata	collt;
extern	uchar	xdata	rady;
extern	uchar	xdata	bps;
extern	float	xdata	t0;
extern	float	xdata	mv;	
extern	float	xdata	bsdatH;
extern	float	xdata	bsdatL;
extern	float	xdata	AR[16];
extern	float	xdata	IR[16];
extern	float	xdata	VR[16];
extern	uchar	VFnowt;
uchar	VFport=0;
uchar	code	SN1[16]={0xa6,0xa0,0xa2,0xa4,0xa8,0xac,0xae,0xaa,0x27,0x21,0x23,0x25,0x29,0x2d,0x2f,0x2b};//采样电阻类型
uchar	code	SN2[16]={0x9a,0x9e,0x9c,0x98,0x94,0x92,0x90,0x96,0x1b,0x1f,0x1d,0x19,0x15,0x13,0x11,0x17};//采样电流类型
uchar	code	SN3[16]={0x8a,0x8e,0x8c,0x88,0x84,0x82,0x80,0x86,0x0b,0x0f,0x0d,0x09,0x05,0x03,0x01,0x07};//采样电压类型
uchar	cygnd=0;
bit		cytwo=0;
void Timeinit()     	//定时器初始化
{
	TMOD=0x73;			//设置T1工作在模式3,T0工作在模式3
	TL0=0;
	TH0=0;
	ET0=1;				//T0中断使能
	EA=1;				//中断使能	
	TR0=1;				//启动定时
}
void VFstart(uchar roadn)
{	
	if(cygnd==1)					//采集地
		cycontrol=0xc1;
	else
	{
		if(typdat[roadn]<=8)		//类型小于等于8时,是mv采集
			cycontrol=SN2[roadn];
		else if(typdat[roadn]<=11)	//类型小于等于11时,是R采集
			{	
				if(cytwo==0)
					{
						cycontrol=SN1[roadn];
						cytwo=1;
					}
				else				//采集冷端补偿
					{
						cycontrol=SN2[roadn];
						cytwo=0;
					}
			}
		else if(typdat[roadn]<=13)	//类型小于等于13时,是V采集
			cycontrol=SN3[roadn];
		else if(typdat[roadn]<=16)	//类型小于等于16时,是ma采集
			cycontrol=SN2[roadn];
	} 
	VFnowt=VFGETT+VFGETTDELAY;		//置采样周期
	
}
void	munucs()//加载参数54
{
	flashtR(&kadat, 5, 0, 1);
	flashByteR(&fundat, 7, 0, 1);
	flashByteR(typdat, 9, 0, 16);
	flashByteR(dot, 10, 0, 16);
	flashFByteR(rangeH, 12, 0, 16);
	flashFByteR(rangeL, 11, 0, 16);
	flashFByteR(warmH, 15, 0, 16);
	flashFByteR(warmL, 14, 0, 16);
	flashByteR(warmdown, 16, 0, 16);
	flashByteR(warmscd, 17, 0, 16);
	flashFByteR(&filt, 18, 0, 1);
	flashByteR(&drt, 19, 0, 1);
	flashtR(&xjtime, 20, 0, 1);
	flashByteR(&collt, 21, 0, 1);
	flashByteR(&rady, 22, 0, 1);
	flashByteR(&bps, 23, 0, 1);
	flashFByteR(&t0, 24, 0, 1);
	flashFByteR(&mv, 25, 0, 1);
	flashFByteR(&bsdatH, 26, 0, 1);
	flashFByteR(&bsdatL, 27, 0, 1);
	flashFByteR(AR, 29, 0, 1);
	flashFByteR(IR, 30, 0, 1);
	flashFByteR(VR, 31, 0, 1);
}
void sysint()           //系统初始化
{	munucs();		
    Timeinit();			//定时器初始化	
  	VFstart(VFport);
}















































⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?