📄 j.c
字号:
(var_change[2]-0x30)*1.0 +
(var_change[4]-0x30)*0.1 + (var_change[5]-0x30)*0.01 ;
eeprom_write_block(&tem_down, &ee_tem_down, sizeof(double));
delay(10,8000);
judge_eeprom( &tem_down,&ee_tem_down);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 6: // 差压上限, 屏幕在“差压上限”选项时只检测“设置/退出”"加1"“右移/向下”“确认/保存”键
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9d ) par_cursor_addres = 0x9e; // 跳过小数点
if( par_cursor_addres==0xa0 ) par_cursor_addres = 0x99; // 回头
if( change_posion==4 ) change_posion = 5; // 跳过小数点
if( change_posion==7 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
chaya_up = (var_change[0]-0x30)*1000.00 + (var_change[1]-0x30)*100.00 +
(var_change[2]-0x30)*10.0 + (var_change[3]-0x30)*1.0 +
(var_change[5]-0x30)*0.1 + (var_change[6]-0x30)*0.01 ;
asm("wdr");
eeprom_write_block(&chaya_up, &ee_chaya_up, sizeof(double));
delay(10,8000);
judge_eeprom( &chaya_up,&ee_chaya_up);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 7: // 差压下限, 屏幕在“差压下限”选项时只检测“设置/退出”"加1"“右移/向下”“确认/保存”键
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9d ) par_cursor_addres = 0x9e; // 跳过小数点
if( par_cursor_addres==0xa0 ) par_cursor_addres = 0x99; // 回头
if( change_posion==4 ) change_posion = 5; // 跳过小数点
if( change_posion==7 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
chaya_down = (var_change[0]-0x30)*1000.00 + (var_change[1]-0x30)*100.00 +
(var_change[2]-0x30)*10.0 + (var_change[3]-0x30)*1.0 +
(var_change[5]-0x30)*0.1 + (var_change[6]-0x30)*0.01 ;
asm("wdr");
eeprom_write_block(&chaya_down, &ee_chaya_down, sizeof(double));
delay(10,8000);
judge_eeprom( &chaya_down,&ee_chaya_down);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 8: // 温度电流纠偏 屏幕在“电流纠偏”选项时只检测“设置/退出”"加1"“右移/向下”“确认/保存”键
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
if( var_change[change_posion]==0x2b ) var_change[change_posion] = 0x2d; // 切换正负号
else if( var_change[change_posion]==0x2d ) var_change[change_posion] = 0x2b; // 切换正负号
if( change_posion!=0 )
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9b ) par_cursor_addres = 0x9c; // 跳过小数点
if( par_cursor_addres==0x9e ) par_cursor_addres = 0x99; // 回头
if( change_posion==2 ) change_posion = 3; // 跳过小数点
if( change_posion==5 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
tem_cur_jp = (var_change[1]-0x30)*1.00 + (var_change[3]-0x30)*0.1 + (var_change[4]-0x30)*0.01;
if( var_change[0]==0x2d) tem_cur_jp *= -1.00;
asm("wdr");
eeprom_write_block(&tem_cur_jp, &ee_tem_cur_jp, sizeof(double));
delay(10,8000);
judge_eeprom( &tem_cur_jp,&ee_tem_cur_jp);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 9: // 差压电流纠偏 屏幕在“电流纠偏”选项时只检测“设置/退出”"加1"“右移/向下”“确认/保存”键
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
if( var_change[change_posion]==0x2b ) var_change[change_posion] = 0x2d; // 切换正负号
else if( var_change[change_posion]==0x2d ) var_change[change_posion] = 0x2b; // 切换正负号
if( change_posion!=0 )
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9b ) par_cursor_addres = 0x9c; // 跳过小数点
if( par_cursor_addres==0x9e ) par_cursor_addres = 0x99; // 回头
if( change_posion==2 ) change_posion = 3; // 跳过小数点
if( change_posion==5 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
chaya_cur_jp = (var_change[1]-0x30)*1.00 + (var_change[3]-0x30)*0.1 + (var_change[4]-0x30)*0.01;
if( var_change[0]==0x2d) chaya_cur_jp *= -1.00;
asm("wdr");
eeprom_write_block(&chaya_cur_jp, &ee_chaya_cur_jp, sizeof(double));
asm("wdr");
delay(10,8000);
judge_eeprom( &chaya_cur_jp,&ee_chaya_cur_jp);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 10: // 截面积, 屏幕在“截面积”选项时只检测“设置/退出”"加1"“右移/向下”“确认/保存”键
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9b ) par_cursor_addres = 0x9c; // 跳过小数点
if( par_cursor_addres==0x9e ) par_cursor_addres = 0x99; // 回头
if( change_posion==2 ) change_posion = 3; // 跳过小数点
if( change_posion==5 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
aera = (var_change[0]-0x30)*10.00 + (var_change[1]-0x30)*1.00 + (var_change[3]-0x30)*0.10 + (var_change[4]-0x30)*0.01;
asm("wdr");
eeprom_write_block(&aera, &ee_aera, sizeof(double));
delay(10,8000);
judge_eeprom( &aera,&ee_aera);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 11: // 重置EEPROM
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
if( par_cursor_addres==0x9a ) par_cursor_addres = 0x9d;
else par_cursor_addres = 0x9a;
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处重置EEPROM
if( par_cursor_addres==0x9a )
{
asm("wdr");
tem_up = 500.00;
tem_down = 0.00;
chaya_up = 7000.00;
chaya_down = 0.00;
tem_cur_jp = 0.00;
chaya_cur_jp = 0.00;
aera = 1.54;
quanya_up = 10000.00;
quanya_down = 0.00;
asm("wdr");
eeprom_write_block(&tem_up, &ee_tem_up, sizeof(double)); delay(10,8000);
eeprom_write_block(&tem_down, &ee_tem_down, sizeof(double)); delay(10,8000);
eeprom_write_block(&chaya_up, &ee_chaya_up, sizeof(double)); delay(10,8000);
eeprom_write_block(&chaya_down, &ee_chaya_down, sizeof(double)); delay(10,8000);
eeprom_write_block(&tem_cur_jp, &ee_tem_cur_jp, sizeof(double)); delay(10,8000);
eeprom_write_block(&chaya_cur_jp, &ee_chaya_cur_jp, sizeof(double));delay(10,8000);
eeprom_write_block(&aera, &ee_aera, sizeof(double)); delay(10,8000);
eeprom_write_block(&quanya_up, &ee_quanya_up, sizeof(double)); delay(10,8000);
eeprom_write_block(&quanya_down, &ee_quanya_down, sizeof(double)); delay(10,8000);
line2 = " 重置成功 ";
display();
delay(800,8000);
}
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 12: // 全压上限
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9d ) par_cursor_addres = 0x9e; // 跳过小数点
if( par_cursor_addres==0xa0 ) par_cursor_addres = 0x98; // 回头
if( change_posion==5 ) change_posion = 6; // 跳过小数点
if( change_posion==8 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”///////////////////////////////////////
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
quanya_up = (var_change[0]-0x30)*10000.00 + (var_change[1]-0x30)*1000.00 +
(var_change[2]-0x30)*100.0 + (var_change[3]-0x30)*10.0 +
(var_change[4]-0x30)*1.0 +
(var_change[6]-0x30)*0.1 + (var_change[7]-0x30)*0.01 ;
asm("wdr");
eeprom_write_block(&quanya_up, &ee_quanya_up, sizeof(double));
delay(10,8000);
judge_eeprom( &quanya_up,&ee_quanya_up);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
case 13: // 全压下限
if( key_value==1 ) // 是否“设置/退出”
{
clear_all();
screen_status=3; // 回到主菜单模式
main_menu();
setup_menu_cursor();
}
if( key_value==2 ) // 是否“加1”
{
var_change[change_posion]++;
if( var_change[change_posion]==0x3a ) var_change[change_posion] = 0x30;
}
if( key_value==3 ) // 是否“右移/向下”
{
line4 = " ";
display();
par_cursor_addres++;
change_posion++;
if( par_cursor_addres==0x9d ) par_cursor_addres = 0x9e; // 跳过小数点
if( par_cursor_addres==0xa0 ) par_cursor_addres = 0x98; // 回头
if( change_posion==5 ) change_posion = 6; // 跳过小数点
if( change_posion==8 ) change_posion = 0; // 回头
wr_com(par_cursor_addres);
wr_date(0x18);
}
if( key_value==4 ) // 是否“确认/保存”///////////////////////////////////////
{
clear_all();
screen_status=3; // 回到主菜单模式
//在此处把修改好的参数存入EEPROM
asm("wdr");
quanya_down = (var_change[0]-0x30)*10000.00 + (var_change[1]-0x30)*1000.00 +
(var_change[2]-0x30)*100.0 + (var_change[3]-0x30)*10.0 +
(var_change[4]-0x30)*1.0 +
(var_change[6]-0x30)*0.1 + (var_change[7]-0x30)*0.01 ;
asm("wdr");
eeprom_write_block(&quanya_down, &ee_quanya_down, sizeof(double));
delay(10,8000);
judge_eeprom( &quanya_down,&ee_quanya_down);
clear_all();
main_menu();
setup_menu_cursor();
}
break;
default:
break;
}
delay(200,8000); // 延时,防止长按键
}
//----------- 按键处理函数 END -----------------
void wdsx(void) // 输入温度上限
{
line1 = "温度上限 度";
display();
display_variable1(0x89,6);
}
void wdxx(void) // 输入温度下限
{
line1 = "温度下限 度";
display();
display_variable1(0x89,6);
}
void ylsx(void) // 输入差压上限
{
line1 = "差压上限 帕";
display();
display_variable1(0x89,7);
}
void ylx(void) // 输入差压下限
{
line1 = "差压下限 帕";
display();
display_variable1(0x89,7);
}
void wddljp(void) // 输入温度电流纠偏值
{
line1 = "温度电流纠偏值";
display();
wr_com(0x8e);
wr_date(0xba);
wr_date(0xc1);
wr_date(0xb0);
wr_date(0xb2);
display_variable1(0x89,5);
}
void yldljp(void) // 输入压力电流纠偏值
{
line1 = "差压电流纠偏值";
display();
wr_com(0x8e);
wr_date(0xba);
wr_date(0xc1);
wr_date(0xb0);
wr_date(0xb2);
display_variable1(0x89,5);
}
void jmjsr(void) // 截面积输入
{
line1 = "截面积 平方米";
display();
display_variable1(0x89,5);
}
void EEPROM_CZ(void) // EEPROM重置
{
line1 = "确定重置EEPROM?";
line3 = " 是 否";
display();
}
void qysx(void) // 输入全压上限
{
line1 = "全压上限 帕";
display();
display_variable1(0x88,8);
}
void qyxx(void) // 输入全压下限
{
line1 = "全压下限 帕";
display();
display_variable1(0x88,8);
}
int main(void)
{
uint i;
delay(200,8000);
cpu_init();
system_init();
while(1)
{
if( screen_status==1 ) // 正常模式
{
normal_model();
for( i=0;i<300;i++ ) // 显示流量时,300ms 刷新一次流量值
{
delay(1,8000);
if( key_value!=0 ) break;
}
}
else if( screen_status==2 ) test_model(); // 测试模式
else if( screen_status==3 ) main_menu(); // 主菜单
else if( screen_status==4 ) wdsx(); // 温度上限
else if( screen_status==5 ) wdxx(); // 温度下限
else if( screen_status==6 ) ylsx(); // 差压上限
else if( screen_status==7 ) ylx(); // 差压下限
else if( screen_status==8 ) wddljp(); // 温度电流纠偏
else if( screen_status==9 ) yldljp(); // 差压电流纠偏
else if( screen_status==10 ) jmjsr(); // 截面积输入
else if( screen_status==11 ) EEPROM_CZ(); // EEPROM重置
else if( screen_status==12 ) qysx(); // 全压上限
else if( screen_status==13 ) qyxx(); // 全压下限
else
{
clear_all();
line2 = "系统遭遇严重错误";
line3 = "请检查是否受干扰";
line4 = "并断电重新运行";
display();
delay(400,8000);
PORTB ^= (1<<2); // 点亮背光
}
if( key_value!=0 ) // 是否有按键?
{
led_on
key_process(); // 有,调用按键处理程序
key_value = 0; // 按键值清零
led_off
}
asm("wdr");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -