datadeal.c

来自「LCD显示电子计价秤方案 1. 该方案使用的传感器为20KG,灵敏度约为0.5」· C语言 代码 · 共 127 行

C
127
字号
#include<def.h>
ulong 	adcdata_int; //不放重物时的初值
ulong 	adcdata_mea; //放重物时的值
ulong 	weight;		 //重量
ulong	price;		 //单价
ulong	money; 		 //金额
uchar   num[6]={0};
void datamanage()
{
	uint datal,weightl;
	OFFSPEAK;
	if(adcdata_mea<=adcdata_int)
	{
		weight=0;
	}
	else
	{			
		weight=(adcdata_mea-adcdata_int)*200/weight_set; 	//单位为g
		if(adcbit1==0)
		{
			weight/=5;	//如果使用的是AD7715,7705将精度设置为5g
			weight*=5;			
		}
	}
	if(weight>15000)
	{
		ONSPEAK;	    //超重
	}

	//消除显示的闪烁
	if(weight>=weightl)
	{
		datal=weight-weightl;
	}
	else
	{
		datal=weightl-weight;
	} 
	if(datal<=5) 		//控制闪烁
	{
	   weight=weightl;
	}

	weightl=weight;		//刷新上次称重 	

	if(weight<10)		//不检测10g以下的物体,同时放置在0点附件的波动
	{
		adcdata_int=adcdata_mea;
		weight=0;
	}
	if(disbit==1)
	{
		//将重量转换为显示数字
		datal=(uint)weight;
		buf_ser[0]=buf_led[datal/10000];
		datal%=10000;
	    buf_ser[1]=buf_ledp[datal/1000]; //固定小数点的位置
		datal%=1000;
	    buf_ser[2]=buf_led[datal/100];
		datal%=100;
	    buf_ser[3]=buf_led[datal/10];
		datal%=10;
	    buf_ser[4]=buf_led[datal];
		//单价
		datal=(uint)price;
		buf_ser[5]=buf_led[datal/10000];
		datal%=10000;
	    buf_ser[6]=buf_led[datal/1000]; 
		datal%=1000;
	    buf_ser[7]=buf_ledp[datal/100];	  //固定小数点的位置
		datal%=100;
	    buf_ser[8]=buf_led[datal/10];
		datal%=10;
	    buf_ser[9]=buf_led[datal];
		//金额
		datal=(uint)money;
		buf_ser[10]=buf_led[datal/100000];
		datal%=100000;				 
		buf_ser[11]=buf_led[datal/10000];
		datal%=10000;
	    buf_ser[12]=buf_ledp[datal/1000]; //固定小数点的位置
		datal%=1000;
	    buf_ser[13]=buf_led[datal/100];
		datal%=100;
	    buf_ser[14]=buf_led[datal/10];
		datal%=10;
	    buf_ser[15]=buf_led[datal];
	}
	else
	{
		//将重量转换为显示数字
		datal=(uint)weight;
	    buf_ser[15]=buf_lcd[datal/10000];
		datal%=10000;
	    buf_ser[14]=buf_lcd[datal/1000]; 
		datal%=1000;
	    buf_ser[13]=buf_lcdp[datal/100]; //固定小数点的位置
		datal%=100;
	    buf_ser[12]=buf_lcd[datal/10];
		datal%=10;
	    buf_ser[11]=buf_lcd[datal];
		//单价
		datal=(uint)price;
		buf_ser[10]=buf_lcd[datal/10000];
		datal%=10000;
	    buf_ser[9]=buf_lcd[datal/1000]; 
		datal%=1000;
	    buf_ser[8]=buf_lcd[datal/100];
		datal%=100;
	    buf_ser[7]=buf_lcdp[datal/10];	//固定小数点的位置
		datal%=10;
	    buf_ser[6]=buf_lcd[datal];
		//金额
		datal=(uint)money;		
	    buf_ser[0]=buf_lcd[datal/100000];		
		datal%=100000;
		buf_ser[1]=buf_lcd[datal/10000];
		datal%=10000;
	    buf_ser[2]=buf_lcd[datal/1000]; 
		datal%=1000;
	    buf_ser[3]=buf_lcd[datal/100];
		datal%=100;
	    buf_ser[4]=buf_lcdp[datal/10];	//固定小数点的位置
		datal%=10;
	    buf_ser[5]=buf_lcd[datal];
	}
}

⌨️ 快捷键说明

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