📄 function.c
字号:
//下面这个读取寄存器可一定要放在这个中断中来弄,放在主函数中不行的
ZLG7290_ReadReg(ZLG7290_Key,KeyValue);
ZLG7290_ReadReg(ZLG7290_RepeatCnt,RepeatCnt);
ZLG7290_ReadReg(ZLG7290_FunctionKey,FnKeyValue);
if((KeyValue[0]==0)&&(RepeatCnt[0]==0)&&(FnKeyValue[0]==0xff))
{
FnKeyDoubleIntFlag=1;
}
}
// 如果有GPIOD端口其它管脚的中断要处理,请并列多个if语句
}
/***************************************************
函数名:Led_Display()
功能: LED显示函数
参数:
说明:seg为段选值 data数据
****************************************************/
void Led_Display(unsigned char seg, unsigned char data)
{
// ClearAll_LED(0,3); //清除所以LED
Light_Led[0] = data; //对焊枪位置键的 LED 缓存数组赋值
ZLG7290_WriteReg(ZLG7290_DpRam+seg,Light_Led); //将焊枪位置键的 LED 点亮
}
/***************************************************
函数名:Display_Show()
功能: 整个系统显示和设定函数
参数:
说明:
****************************************************/
void Display_Show(void)
{
if(Key_Mode_hengwen && Mode_hengwen) //横纹按键按下
{
Function_Num = 0;
//Function_temp = 0;
MOde_flag = 1;
//Mode_temp = 0;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
Led_Display(1,0X80 | Fuchuan_data);
Led_Display(2,Songsi_data);
LED_Data = 0X80;
}//end if 横纹模式
else if(Key_Mode_dandao && Mode_dandao) //单道按键按下
{
Function_Num = 0;
//Function_temp = 0;
MOde_flag = 0;
//Mode_temp = 1;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
Led_Display(1,0X80 | Fuchuan_data);
Led_Display(2,Songsi_data);
LED_Data = 0X80;
}//end if 单道模式
else if(Key_Mode_baidong && Mode_baidong) //摆动按键按下
{
Function_Num = 0;
//Function_temp = 0;
MOde_flag = 2;
//Mode_temp =2;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
Led_Display(1,0X80 | Fuchuan_data);
Led_Display(2,Songsi_data);
LED_Data = 0X80;
}//end if 摆动模式
else if(Key_Mode_other && Mode_other) //其他模式按键按下
{
Function_Num = 0;
//Function_temp = 0;
MOde_flag = 3;
//Mode_temp = 3;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
Led_Display(1,0X80 | Fuchuan_data);
Led_Display(2,Songsi_data);
LED_Data = 0X80;
}//end if其他模式按
else if(Key_hangqiang_place)//焊枪位置按键按下
{
Function_Num = 0;//和大数组的编号对应
//Function_temp = 0;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
ClearAll_LED(0,0);
Led_Display(1,0X80 | Fuchuan_data);
ClearAll_LED(3,3);
LED_Data = 0X80;
}//end if 焊枪位置
else if(Key_songsi_speed) //送丝速度按键按下
{
Function_Num = 1;
//Function_temp = 1;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
ClearAll_LED(0,0);
Led_Display(1,0X40 | Fuchuan_data);
ClearAll_LED(3,3);
LED_Data = 0X40;
}//end if 送丝速度
else if(Key_hengyi_speed)//横移速度按下
{
Function_Num = 3;
//Function_temp = 3;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
ClearAll_LED(0,0);
ClearAll_LED(3,3);
Led_Display(1,0X20 | Fuchuan_data);
LED_Data = 0X20;
}//end if 横移速度
else if(Key_hanjie_wide)//焊接宽度按下
{
Function_Num = 5;
//Function_temp = 5;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
ClearAll_LED(3,3);
ClearAll_LED(0,0);
Led_Display(1,0X10 | Fuchuan_data);
LED_Data = 0X10;
}//end if 焊接宽度
else if(Key_fuchuan_speed)//辅传速度按下
{
Function_Num = 2;
//Function_temp = 2;
KeyValue[0]=0;
Seg_Flag = 0;
Look_flag = 0;//参数不可参看
ClearAll_LED(0,0);
ClearAll_LED(3,3);
Led_Display(1,0X08 | Fuchuan_data);
LED_Data = 0X08;
}//end if 辅传速度
else if(Key_Parameter_show)//参数显示
{
Look_flag = 1;//可以查看参数
Seg_Flag = 0;//不闪烁
Mode_sequence = 0;//确保每次按参数显示都从A0开始显示
Mode_Code = 0;
Function_Num = 0; //得到不同模式 列标号
Mode_Code = MOde_flag;//得到参看的 不同模式标号
KeyValue[0] = 0;
ClearAll_LED(0,0);
ClearAll_LED(3,3);
Led_Display(1,0X04 | Fuchuan_data);
LED_Data = 0X04;
}//end if 参数显示
else if(Key_songsi_ATorMA_Up)//送丝 AT MA按键按下
{
Songsi_Num++;
Songsi_flag = Songsi_Num%2;
if(!Songsi_flag)
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(2,0X80);
Songsi_data = 0x80;
} //点亮送丝的AT
else if(Songsi_flag) {
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(2,0X40);
Songsi_data = 0x40;
} //MA
}
else if(Key_fuchuan_Up) //辅传按键
{
Fuchuan_Num++;
Fuchuan_flag = Fuchuan_Num%2;
if(!Fuchuan_flag) {
ClearAll_LED(0,0);
ClearAll_LED(3,3);
Led_Display(1,LED_Data | 0x02);
Fuchuan_data = 0x02;
} //点亮辅传的AT
else if(Fuchuan_flag) {
ClearAll_LED(0,0);
ClearAll_LED(3,3);
Led_Display(1,LED_Data | 0X01);
Fuchuan_data = 0x01;
} // MA
}
else if(Key_qihu_Up)//起弧按键按下
{
Qihu_LED_Flag = 1;
}
else if(Key_tinghu_Up)//停弧按键
{
Tinghu_LED_Flag = 1;
}
else if(Key_handao_Up)//焊道按键
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(3,0X80);
//发送数据语句
}
else if(Key_zhengzhuan_Up)//正传上升沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(2,0X10| Songsi_data);
//发送数据语句
}
else if(Key_zhengzhuan_Down)//正传下降沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
Led_Display(2,Songsi_data);
ClearAll_LED(3,3);
//发送数据语句
}
else if(Key_fanzhuang_Up) //反转上升沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(2,0X02 | Songsi_data);
//发送数据语句
}
else if(Key_fanzhuang_Down)//反转下降沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
Led_Display(2,Songsi_data);
ClearAll_LED(3,3);
//发送数据语句
}
else if(Key_songsi_Up) //送丝上升沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(2,0X08 | Songsi_data);
//发送数据语句
}
else if(Key_songsi_Down)//送丝下降沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
Led_Display(2,Songsi_data);
ClearAll_LED(3,3);
//发送数据语句
}
else if(Key_tuisi_Up)//退丝上升沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data| Fuchuan_data);
ClearAll_LED(3,3);
Led_Display(2,0X01 | Songsi_data);
//发送数据语句
}
else if(Key_tuisi_Down)//退丝下降沿
{
ClearAll_LED(0,0);
Led_Display(1,LED_Data | Fuchuan_data);
Le
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -