📄 board.bak
字号:
//============================================
if((confirm==0x11)&&(send_success_flag==1))
{
send_show_count++;
if(send_show_count>=SEND_SHOW_TIME)
{
send_show_count=0;
send_kind=send_kind|SEND_SHOW;
}
}
else
{
//send_kind=send_kind&0xbf;
send_show_count=0;
}
//==================================
//根据LED的数码位,进行相应位发送
//==================================
led_show_byte_number++;
if(led_show_byte_number>=4)
led_show_byte_number=0;
if(led_show_byte_number==0)
led_show_number=0xef;
if(led_show_byte_number==1)
led_show_number=0xdf;
if(led_show_byte_number==2)
led_show_number=0xbf;
if(led_show_byte_number==3)
led_show_number=0x7f;
led_show_byte();//1个8位数码管的显示程序
//=================================
//按键采样,字符输出
//=================================
key_sample_count_l++;
if(key_sample_count_l>199)
{
key_sample_count_l=1;
if(send_success_flag==1)//只有通讯正常才采样键值
{
key_sample();
}
IN_PUT();
getcode();
value_show();
if(send_ask_set_flag==1)
set_show();//这里set的值也具有实时通讯显示功能。
if(send_ask_fault_flag==1)
fault_show();//这里fault堆栈也具有实时通讯显示功能。
display();
key_sample_code=0;
}
//================================
//COPY和PASTE键处理程序
//================================
if(function_key_kind==1)//1表示是COPY键
{
if(led_data>62)
{
function_key_kind=function_key_kind&0xfe;//清除参数复制键标志
}
else
{
send_kind=send_kind|SEND_FU;//COPY键是在参数发送基础上的
}
}
//===============================
if(function_key_kind==2)
{
if(led_data>62)
{
function_key_kind=function_key_kind&0xfd;
}
else
{
send_kind=send_kind|SEND_SET;//清除粘帖键标志
eeprom_addh=0x28;
eeprom_addl=led_data-1;//从0x2800开始
eeprom_read();
set_data=(eeprom_data&0xff)<<8;//先取高8位数据
led_data++;
eeprom_addl=led_data-1;
eeprom_read();
set_data=set_data|eeprom_data;//再取低8位数据
}
}
}
//================================
eeprom_read()
{
ISP_CONTR=ENABLE_ISP;
ISP_CMD=ISP_IAP_BYTE_READ;
ISP_ADDRH=eeprom_addh;
ISP_ADDRL=eeprom_addl;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
eeprom_data=ISP_DATA;
disable_eeprom();
}
//================================
eeprom_write()
{
ISP_CONTR=ENABLE_ISP;
ISP_CMD=ISP_IAP_BYTE_PROGRAM;
ISP_ADDRH=eeprom_addh;
ISP_ADDRL=eeprom_addl;
ISP_DATA=eeprom_data;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
disable_eeprom();
}
//================================
eeprom_erase()
{
ISP_CONTR=ENABLE_ISP;
ISP_CMD=ISP_IAP_SECTOR_ERASE;
ISP_ADDRH=0x28;
ISP_ADDRL=0x00;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
disable_eeprom();
}
//================================
disable_eeprom()
{
ISP_CONTR=0;
ISP_CMD=0;
ISP_TRIG=0x00;
}
//================================
//程序说明:根据要求进行LED显示字符刷新
//================================
display()
{
if(flash_code==0)
{
flash_code=1;
led_show_value[0]=ledcode01;
led_show_value[1]=ledcode02;
led_show_value[2]=ledcode03;
led_show_value[3]=ledcode04;
}
else
{
flash_code=0;
led_show_value[0]=ledcode01flash;
led_show_value[1]=ledcode02flash;
led_show_value[2]=ledcode03flash;
led_show_value[3]=ledcode04flash;
}
}
//================================
//程序说明:根据按键输入,进行相应操作
//================================
IN_PUT()
{
char i;
int type_num;
int data_temp;
switch(key_sample_code)
{
case MODE_KEY:
{
send_ask_set_flag=0;
send_ask_fault_flag=0;
set_rev_flag=0;
key_sample_count_h=0;
if((confirm==0x11)||(confirm==0x21)||(confirm==0x31))
{
point_flag=0;
high_led_number=4;
if(confirm==0x11)
{
led04=14;
led03=10;
led01=led_data%10;
led02=led_data/10;
confirm=0x10;
led_pos=1;
}
if(confirm==0x21)
{
led04=13;
led03=10;
led01=led_data%10;
led02=led_data/10;
confirm=0x20;
led_pos=1;
}
if(confirm==0x31)
{
led04=28;
led03=10;
led01=led_data%10;
led02=led_data/10;
confirm=0x30;
led_pos=1;
}
}
else
{
confirm=confirm+0x10;
if(confirm>=0x40)
confirm=0;
switch(confirm)
{
case 0:
{
point_flag=0;
high_led_number=4;
led_pos=0;
if(fault_data==0)
{
led01=10;//F.--
led02=10;
led03=15;
led04=19;
fault_show_flag=0;
}
else
fault_pro();
break;
}
case 0x10:
{
fault_show_flag=0;//关闭闪烁效果
fault_first_flag=1;//不在连续进入故障检测程序
point_flag=0;
high_led_number=4;
led_pos=1;
led01=1;
led02=0;
led03=10;
led04=14;
break;
}
case 0x20:
{
fault_show_flag=0;//关闭闪烁效果
fault_first_flag=1;//不在连续进入故障检测程序
point_flag=0;
high_led_number=4;
led_pos=1;
led01=1;
led02=0;
led03=10;
led04=13;
break;
}
case 0x30:
{
fault_show_flag=0;//关闭闪烁效果
fault_first_flag=1;//不在连续进入故障检测程序
point_flag=0;
high_led_number=4;
led_pos=1;
led01=1;
led02=0;
led03=10;
led04=28;
break;
}
default:
break;
}
}
break;
}
case ENTER_KEY:
{
key_sample_count_h=0;
if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
{
switch(confirm)
{
case 0x10:
{
send_ask_set_flag=0;
send_ask_fault_flag=0;
show_mode();
break;
}
case 0x20:
{
send_ask_set_flag=1;
send_ask_fault_flag=0;
send_kind=send_kind|SEND_FU;
set_mode();
break;
}
case 0x21:
{
//if(led_com_flag==0)//只有在运行未使能时才能对设置参数进行修改
//{
if(set_rev_flag==1)
{
point_flag=0;
high_led_number=4;
send_ask_set_flag=0;
send_ask_fault_flag=0;
set_rev_flag=0;
send_kind=send_kind|SEND_SET;
set_value();
confirm=0x20;
led04=13;
led03=10;
led01=led_data%10;
led02=led_data/10;
led_pos=1;
}
//}
break;
}
case 0x30:
{
send_ask_set_flag=0;
send_ask_fault_flag=1;
fault_mode();
send_kind=send_kind|SEND_FAULT_STACK;
break;
}
default:break;
}
}
break;
}
case ADD_KEY:
{
send_ask_set_flag=0;
send_ask_fault_flag=0;
key_sample_count_h=0;
if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
{
switch(led_pos)
{
case 1:
{
led01=led01+1;
if(led01==0xa)
led01=0;
break;
}
case 2:
{
led02=led02+1;
if(led02==0xa)
led02=0;
break;
}
case 3:
{
led03=led03+1;
if(led03==0xa)
led03=0;
break;
}
case 4:
{
if((led04==10)||(led04==15))
{
if(led04==10)
led04=15;
else
led04=10;
}
else
{
led04=led04+1;
if(led04==0xa)
led04=0;
}
break;
}
default:break;
}
}
break;
}
case SHIFT_ADD_KEY:
{
send_ask_set_flag=0;
send_ask_fault_flag=0;
key_sample_count_h=0;
if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
{
switch(confirm)
{
case 0x10:case 0x20:case 0x30:
{
led_pos=led_pos+1;
if(led_pos==3)
led_pos=1;
break;
}
case 0x21:
{
switch(high_led_number)
{
case 4:
{
led_pos=led_pos+1;
if(led_pos==5)
led_pos=1;
break;
}
case 3:
{
led_pos=led_pos+1;
if(led_pos==4)
led_pos=1;
break;
}
case 2:
{
led_pos=led_pos+1;
if(led_pos==3)
led_pos=1;
break;
}
case 1:
{
led_pos=led_pos+1;
if(led_pos==2)
led_pos=1;
break;
}
default:break;
}
break;
}
default:break;
}
}
break;
}
case COPY_KEY:
{
key_sample_count_h++;
if(key_sample_count_h>5)
{
key_sample_count_h=0;
if(function_key_kind==0)//只有在没有其它功能键按下的前提下才能复制参数
{
function_key_kind=1;//1表示是参数复制键
led_data=1;//参数号从1开始
//send_kind=send_kind|SEND_KEY;
}
}
break;
}
case PASTE_KEY:
{
key_sample_count_h++;
if(key_sample_count_h>5)
{
key_sample_count_h=0;
if(function_key_kind==0)//只有在没有其它功能键按下的前提下才能复制参数
{
function_key_kind=2;//2表示是参数粘帖键
led_data=1;//参数号从1开始
//send_kind=send_kind|SEND_KEY;
}
}
break;
}
case SUB_KEY:
{
send_ask_set_flag=0;
send_ask_fault_flag=0;
key_sample_count_h=0;
if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
{
switch(led_pos)
{
case 1:
{
led01=led01-1;
if(led01<0)
led01=9;
break;
}
case 2:
{
led02=led02-1;
if(led02<0)
led02=9;
break;
}
case 3:
{
led03=led03-1;
if(led03<0)
led03=9;
break;
}
case 4:
{
if((led04==10)||(led04==15))
{
if(led04==10)
led04=15;
else
led04=10;
}
else
{
led04=led04-1;
if(led04<0)
led04=9;
}
break;
}
default:break;
}
}
break;
}
case SHIFT_SUB_KEY:
{
send_ask_set_flag=0;
send_ask_fault_flag=0;
key_sample_count_h=0;
if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
{
switch(confirm)
{
case 0x10:case 0x20:case 0x30:
{
led_pos=led_pos-1;
if(led_pos==0)
led_pos=2;
break;
}
case 0x21:
{
switch(high_led_number)
{
case 4:
{
led_pos=led_pos-1;
if(led_pos==0)
led_pos=4;
break;
}
case 3:
{
led_pos=led_pos-1;
if(led_pos==0)
led_pos=3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -