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

📄 ad.c

📁 本软件为材料实验机的AD转换软件内容
💻 C
字号:
#include<reg66x.h>
#include"lcjmain.h"
#include"ad.h"
WORD sta165;
WORD out595;
int adval1,adval2,adval3,adval4,adzero1,adzero2,dang;
char adcs1,adcs2;
BYTE adsw;
int fk;
void initad()
{
	BYTE i;
	adcal=0;
	for(i=0;i<10;i++);
	adcal=1;
	for(i=0;i<10;i++);
	adcal=0;
}

WORD rd165()
{
	WORD x;
	BYTE i,j;

	P2&=0x1f;
	x=0;
	P2|=0xe1;

	for(i=0;i<16;i++)
	{
		sclk=0;
		j=~data165;
		x=(x<<1)|j;
		sclk=1;
	}
	sta165=x;
	return(x);
}

void wrb595(WORD n)
{
	BYTE i;
	WORD m;
	m=n;
	stb595=0;
	for(i=0;i<16;i++)
	{
		sclk=0;
		outdata=m&0x8000;
		m<<=1;
		sclk=1;
	}
	stb595=1;
}

void getad()
{
	BYTE i,j;
	long addata;
	int n;
	BYTE m;
	if(getbit(sta165,11))
	{
		addata=0;
		P2=(P2&0x1f)|csad1;
		for(i=0;i<20;i++)
		{
			sclk=0;
			sclk=1;
			j=adindata;
			addata=(addata<<1)|j;
		}
		P2=P2|0xe8;
		if(addata&0x80000)addata|=0xfff00000;
		addata=addata+addata*fk/1000;
		addata>>=4;
		n=addata;
		n-=adzero1;
		if(dang>0)n/=dang;
		if(((adval1-n)>20)||((adval1-n)<-20))
		{
			if(adcs1>1)
			{
				adval1=n;
				adcs1=0;
			}
			else	adcs1++;
		}
		else
		{
			adval1=n;
			adcs1=0;
		}
	}
	if(getbit(sta165,12))
	{
		addata=0;
		P2=(P2&0x1f)|csad2;
		for(i=0;i<20;i++)
		{
			sclk=0;
			sclk=1;
			j=adindata;
			addata=(addata<<1)|j;
		}
		P2=P2|0xe0;
		if(addata&0x80000)addata|=0xfff00000;
		addata=addata+addata*fk/1000;
		addata>>=4;
		n=addata;
		n-=adzero2;
		if(dang>0)n/=dang;
		if(((adval2-n)>20)||((adval2-n)<-20))
		{
			if(adcs2>1)
			{
				adval2=n;
				adcs2=0;
			}
			else	adcs2++;
		}
		else
		{
			adval2=n;
			adcs2=0;
		}
	}
	if(getbit(sta165,13))
	{
		addata=0;
		P2=(P2&0x1f)|csad3;
		for(i=0;i<20;i++)
		{
			sclk=0;
			sclk=1;
			j=adindata;
			addata=(addata<<1)|j;
		}
		P2=P2|0xe8;
		addata=addata>>4;
		m=adsw%(dlmkhcs*2);
		if(m==0)
		{
			adval4=addata;
			dlmkcon=1;
		}
		if(m==dlmkhcs)
		{
			adval3=addata;
			dlmkcon=0;
		}
		adsw++;
	}
}
int getdsh()
{
	return adval1;
}
void setdzero()
{
	adzero1=adval1*dang+adzero1;
}
int getjsh()
{
	return adval2;
}
void setjzero()
{
	adzero2=adval2*dang+adzero2;
}
int getdl()
{
	return adval3;
}
int getmkv()
{
	return adval4;
}

⌨️ 快捷键说明

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