📄 ad574.h
字号:
///////////////////////////////////////////////////////////////////////////////
//* 文件名:AD574.H
//* 文件描述:AD574模数单极性转换
//*
/////////////////////////////////////////////////////////////////////////////
#ifndef AD574_H_HEADER_FILE
#define AD574_H_HEADER_FILE
#include <ABSACC.H>
#define BYTE unsigned char
#define uchar unsigned char
#define uint unsigned int
#define AD_start XBYTE[0x3E] //启动转换地址
#define AD_high XBYTE[0x3F] //高8位地址
#define AD_low XBYTE[0x7F] //低四位地址
#define STS P3_5 //判断转换是否完
long int Data_Buff;
int D_Buff[5]={0,0,0,0,0}; //数据显示缓冲地址
int Datas[2]={0,0}; //12位AD转换暂存地址
void DelataNus(BYTE x)
{
BYTE i;
for(i=0;i<x;i++)
;
}
/*************LCD显示***************/
void LCD_Display()
{ WriteInstruct(0xc0);
WriteData(D_Buff[0]+0x30);
WriteData(D_Buff[1]+0x30);
WriteString(".");
WriteData(D_Buff[2]+0x30);
WriteData(D_Buff[3]+0x30);
WriteData(D_Buff[4]+0x30);
}
/********数据处理,将读取数据转换为电压值*****/
void Data_Process(bit flag) //单极性10VIN或20VIN通道标志位
{
long int temp;
if(flag==0)
{
temp=(Data_Buff-1900)/0.4095; //软件进行修正-- 测量10V输入端信号 量程值乘以1000倍
}
else if(flag==1)
temp=(Data_Buff/0.20475); //测量20V输入端信号 量程值乘以1000倍
D_Buff[0]=temp/10000;
D_Buff[1]=(temp%10000)/1000;
D_Buff[2]=(temp%1000)/100;
D_Buff[3]=(temp%100)/10;
D_Buff[4]=temp%10;
}
/*********AD574转换子程序************/
void AD574()
{ AD_start=0x00;
while(STS==1);
Datas[0]=AD_high;//高四位数据地址
Datas[1]=AD_low; //低四位数据地址
Datas[0]<<=4;
Datas[1]=(Datas[1]>>4)&0x0f;
Data_Buff=Datas[0]+Datas[1];
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -