📄 function.c
字号:
}
ZLG7290_Download_Display(ZLG7290_DpRam+3,1,0,Dis_Buf[2]);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 3 : {//3位精度,数码管显示3位小数
lowseg_num = 3;
ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,Dis_Buf[2]);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
}
default : break;
}
}
if((Dis_Buf[3]==0)&&(Dis_Buf[2]==0)&&(Dis_Buf[1]!=0))//数码管显示2位
{
ClearAll(2,5);
switch(Accuracy)
{
case 0 : {//0位精度,数码管显示全部为整数
if(Plus_minus) //显示负数
{
ZLG7290_WriteReg_One(ZLG7290_DpRam+3,m);Delay(200);
lowseg_num = 4;
}
else
{
lowseg_num = 3;
if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下 Seg_Flag==lowseg_num说明已经移动到最显示0的位
{
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
}
}
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 1 : {//1位精度,数码管显示1位小数
if(Plus_minus) //显示负数
{
ZLG7290_WriteReg_One(ZLG7290_DpRam+3,m);Delay(200);
lowseg_num = 4;
}
else
{
lowseg_num = 3;
if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下 Seg_Flag==lowseg_num说明已经移动到最显示0的位
{
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
}
}
ZLG7290_Download_Display(ZLG7290_DpRam+4,1,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 2 : {//2位精度,数码管显示2位小数
if(Plus_minus) //显示负数
{
ZLG7290_WriteReg_One(ZLG7290_DpRam+2,m);Delay(200);
lowseg_num = 4;
}
lowseg_num = 3;
ZLG7290_Download_Display(ZLG7290_DpRam+3,1,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 3 : {//3位精度,数码管显示3位小数
if(Plus_minus) //显示负数
{
break;
}
lowseg_num = 2;
ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
default : break;
}
}
if((Dis_Buf[3]==0)&&(Dis_Buf[2]==0)&&(Dis_Buf[1]==0)&&(Dis_Buf[0]!=0))//数码管显示1位
{
ClearAll(2,5);
switch(Accuracy)
{
case 0 : {//0位精度,数码管显示全部为整数
if(Plus_minus) //显示负数
{
ZLG7290_WriteReg_One(ZLG7290_DpRam+4,m);Delay(200);
lowseg_num = 5;
}
else
{
lowseg_num = 4;
if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下 Seg_Flag==lowseg_num说明已经移动到最显示0的位
{
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,0);
}
}
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 1 : {//1位精度,数码管显示1位小数
if(Plus_minus) //显示负数
{
ZLG7290_WriteReg_One(ZLG7290_DpRam+3,m);Delay(200);
lowseg_num = 5;
}
lowseg_num = 3;
ZLG7290_Download_Display(ZLG7290_DpRam+4,1,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 2 : {//2位精度,数码管显示2位小数
if(Plus_minus) //显示负数
{
ZLG7290_WriteReg_One(ZLG7290_DpRam+2,m);Delay(200);
lowseg_num = 5;
}
lowseg_num = 3;
ZLG7290_Download_Display(ZLG7290_DpRam+3,1,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 3 : {//3位精度,数码管显示3位小数
if(Plus_minus) //显示负数
{
break;
}
lowseg_num = 2;
ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,0);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
default : break;
}
}
if((Dis_Buf[3]!=0))//数码管显示4位
{
lowseg_num = 2;
ClearAll(2,5);
switch(Accuracy)
{
case 0 : {//0位精度,数码管显示全部为整数
ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,Dis_Buf[3]);
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,Dis_Buf[2]);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 1 : {//1位精度,数码管显示1位小数
ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,Dis_Buf[3]);
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,Dis_Buf[2]);
ZLG7290_Download_Display(ZLG7290_DpRam+4,1,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 2 : {//2位精度,数码管显示2位小数
ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,Dis_Buf[3]);
ZLG7290_Download_Display(ZLG7290_DpRam+3,1,0,Dis_Buf[2]);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
case 3 : {//3位精度,数码管显示3位小数
ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,Dis_Buf[3]);
ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,Dis_Buf[2]);
ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
break;
}
default : break;
}
}
}
/***************************************************
函数名:KeySet_Deal()
功能:按键值处理函数
参数: 返回为显示的值 比如 A1对应的值
说明:DisMode_Num 为设置参数需要显示的标示值 ,GetKey为键值
****************************************************/
void KeySet_Deal(unsigned char DisMode_Num_aa , unsigned char GetKey)
{
unsigned char flag = 10;
signed char Dis_Buf[4];
if(DispPresent_Data[DisMode_Num_aa]>0)//为正数
{
flag = 1;
}
else if (DispPresent_Data[DisMode_Num_aa]<0)//为负数
{
flag = 0;
DispPresent_Data[DisMode_Num_aa] = 0-DispPresent_Data[DisMode_Num_aa];
}
else if(DispPresent_Data[DisMode_Num_aa]==0)
{
if(GetKey==Up_Move) DispPresent_Data[DisMode_Num_aa] = 1;
else if(GetKey==Down_Move) DispPresent_Data[DisMode_Num_aa] = -1;
flag = 2;
}
if(flag==1)
{
Dis_Buf[3] = DispPresent_Data[DisMode_Num_aa]/1000; //获取GetKey的千位
Dis_Buf[2] = DispPresent_Data[DisMode_Num_aa]%1000/100; //获取GetKey的百位
Dis_Buf[1] = DispPresent_Data[DisMode_Num_aa]%100/10; //获取GetKey的十位
Dis_Buf[0] = DispPresent_Data[DisMode_Num_aa]%10; //获取GetKey的个位
switch(GetKey) //判断在按下设置键后按下的是:加(2)还是减(18 )
{
case Left_Move : //左移
{
Seg_Flag = Seg_Flag - 1;
if(Seg_Flag<lowseg_num)
{
Seg_Flag = 5;
}
break;
}
case Right_Move : //右移
{
Seg_Flag = Seg_Flag + 1;
if(Seg_Flag>5)
{
Seg_Flag = lowseg_num;
}break;
}
case Up_Move : //上键
{
if(Seg_Flag==2) //对数码管第三位(4为数据的千位)进行加计数操作
{
Dis_Buf[3]++;
if(Dis_Buf[3]==10) Dis_Buf[3] = 0;
}
if(Seg_Flag==3) //对数码管第四位(4为数据的百位)进行加计数操作
{
Dis_Buf[2]++;
if(Dis_Buf[2]==10)//百位加到十对千位进位
{
Dis_Buf[2] = 0;
Dis_Buf[3] ++;
if(Dis_Buf[3]==10) Dis_Buf[3] = 0;
}
}
if(Seg_Flag==4) //对数码管第五位(4为数据的十位)进行加计数操作
{
Dis_Buf[1]++;
if(Dis_Buf[1]==10)//十位加到十对百位进位
{
Dis_Buf[1] = 0;
Dis_Buf[2] ++;
if(Dis_Buf[2]==10)//百位加到十对千位进位
{
Dis_Buf[2] = 0;
Dis_Buf[3] ++;
if(Dis_Buf[3]==10) Dis_Buf[3] = 0;
}
}
}
if(Seg_Flag==5) //对数码管第六位(4为数据的个位)进行加计数操作
{
Dis_Buf[0]++;
if(Dis_Buf[0]==10)//个位加到十对十位进位
{
Dis_Buf[0] = 0;
Dis_Buf[1] ++;
if(Dis_Buf[1]==10)//十位加到十对百位进位
{
Dis_Buf[1] = 0;
Dis_Buf[2] ++;
if(Dis_Buf[2]==10)//百位加到十对千位进位
{
Dis_Buf[2] = 0;
Dis_Buf[3] ++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -