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 + -
显示快捷键?