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