📄 bpqmb.c
字号:
break;
case 2:set_send=0;
if(set_data==_mima){passf=passd=pass=1;set_data=0;}
}
break;
case 3:st_con=3;if(pass)write_txd(2);
break;
case 4:st_con=2;
switch(cmenu)
{case 0:if(pass)
{temp=set_data&0xff;
switch(temp)
{
case 1:clr_txd();
break;/*清除故障记录*/
case 2:txd[gn_]=6;txd[sj_l]=2;
txd[sj_h]=0;scr();/*恢复出厂设置*/
break;
case 3:copy();
break;
case 4:paste();break;
case 5:passf=passd=pass=0;break;
case 6: if(!on_off)txd[gn_]=11;scr();sending=1;
displaya[3]=_x;
displaya[2]=_x;
displaya[1]=_x;
displaya[0]=_x;
displayb[3]=_s;
displayb[2]=_c;
displayb[1]=_a;
displayb[0]=_n;
und_bit=1;
ndsp=0xff;
ncall_dsp=30;
}
break;
default:
if(passf)
{ txd[gn_]=9;
txd[dz_h]=0;
txd[dz_l]=cmenu;
txd[sj_l]=set_data&0xff;
txd[sj_h]=set_data>>8;scr();
sending=1;
}
}
}
}
}
}
/*esc *******************esc*****************esc*/
void enter_esc()
{
switch(st_con)
{case 0:inc_dec=0;
menu_con=0;
if(cmenu<4)cmenu++;
else cmenu=0;
break;
case 1:menu_con=0;
break;
case 2: cmenu=0;
break;
case 3:ud_con=0;
}
switch(menu_con)
{case 2:
case 4: if(st_con==4)st_con=2;else if(st_con>0)st_con--;break;
default : if(st_con>0)st_con--;
}
ndsp=0;
}
/*shift******************shift***************shift*/
void enter_shift()
{
if(st_con==0)
{send_com=0;set_send=1;sendp=0;sending=1;con_txd(1);}
else
{if(ndsp<3)ndsp++;
else ndsp=0;}
}
/*up****************up****************up***********up*/
void add(uchar temp)
{uchar num;
if((!cmenu)&&(menu_con==3))
{ switch(ndsp)
{case 0:num=set_data&0xf;
if(num<(s_ov[ud_con]&0xf))num++;else num=0;
set_data&=0xf0;
set_data|=num;
break;
case 1:num=set_data&0xf0;
if(num<(s_ov[ud_con]&0xf0))num+=0x10;else num=0;
set_data&=0xf;
set_data|=num;
}
}
else
{switch(ndsp)
{case 0: set_data++;
break;
case 1: set_data+=10;
break;
case 2: set_data+=100;
break;
case 3: set_data+=1000;
}
switch(temp)
{
case 0:num=s_ovc[ture_ud-1][ud_con];
if(set_data>num)set_data=num;
break;
case 1:
if(set_data>9999)set_data=9999;
}
}
}
void enter_up()
{uchar num;
switch(st_con)
{
case 0: if(on_off)
{inc_dec=1;
con_num=4;
}
/* else
{
inc_dec=0;
menu_con=0;
if(cmenu<4)cmenu++;
else cmenu=0;}*/
break;
case 1:if(menu_con<4)menu_con++;
else menu_con=0;
cmenu=0;
ud_con=0;
break;
case 2:switch(menu_con)
{case 0:if(cmenu<21)cmenu++;else cmenu=0;
break;
case 1:if(cmenu<15)cmenu++;
else cmenu=0;gz_txd();set_send=1;
break;
case 2:if(cmenu<2)cmenu++;
else cmenu=0;
break;
break;
case 3:ud_con=0;
if(cmenu<10)cmenu++;else cmenu=0;
break;
case 4: admin_txd();if(cmenu<3)cmenu++;
else cmenu=0; /*本项为管理项*/
}
break;
case 3: set_send=1;
if(ud_con<cm_o[cmenu])ud_con++;
else ud_con=0;
rd_txd(1);
break;
case 4:switch(menu_con)
{case 1:if(pass)set_data=1;break;
case 2: add(1);
break;
case 3: if(pass)
switch(cmenu)
{case 0:add(0);break;/*删除后开机不设*/
case 2:
case 3:add(1);
break;
case 9:add(1);
if(set_data>f9_o[ud_con])set_data=f9_o[ud_con];
break;
case 10:add(1);
if(set_data>fa_o[ud_con])set_data=fa_o[ud_con];
break;
default:num=s_opp[ture_ud-1][ud_con]&0x80;
if(!on_off||!num)
add(0);
}
break;
case 4:if(!on_off)switch(cmenu)
{case 0:if(pass&&(set_data<6))add(1);
else set_data=0;
break;
case 1:if(passd)add(1);
break;
case 2:if(passd)add(1);
break;
case 3:if(passf)add(1);
}
}
}
}
/*down**************down*****************down******down*/
void sub(uchar temp)
{uchar num;
if((!cmenu)&&(menu_con==3))
{ switch(ndsp)
{case 0:num=set_data&0xf;
if(num>0)num--;else num=s_ov[ud_con]&0xf;
set_data&=0xf0;
set_data|=num;
break;
case 1:num=set_data&0xf0;
if(num>0)num-=0x10;else num=s_ov[ud_con]&0xf0;
set_data&=0xf;
set_data|=num;
}
}
else
{switch(ndsp)
{case 0: if(set_data>0)set_data--;else set_data=0;
break;
case 1: if(set_data>=10)set_data-=10;else set_data=0;
break;
case 2: if(set_data>=100)set_data-=100;else set_data=0;
break;
case 3: if(set_data>=1000)set_data-=1000;else set_data=0;
}
if(temp==0)
{temp=s_opp[ture_ud-1][ud_con]&0xf;
if(temp>8)temp&=0x7;
if(set_data<temp)set_data=temp;
}
}
}
void enter_down()
{
uchar num;
switch(st_con)
{
case 0:if(on_off)
{inc_dec=1;
con_num=5;
}
else
/* {inc_dec=0;
menu_con=0;
if(cmenu>0)cmenu--;
else cmenu=4;}*/
break;
case 1:if(menu_con>0)menu_con--;
else menu_con=4;
cmenu=0;
ud_con=0;
break;
case 2:switch(menu_con)
{case 0:if(cmenu>0)cmenu--;else cmenu=21;
break;
case 1:if(cmenu>0)cmenu--;
else cmenu=15;gz_txd();set_send=1;
break;
case 2:if(cmenu>0)cmenu--;
else cmenu=2;
break;
case 3:if(cmenu>0)cmenu--;
else cmenu=10;
ud_con=0;
break;
case 4:admin_txd();if(cmenu>0)cmenu--;
else cmenu=3; /*本项为管理项*/
}
break;
case 3: set_send=1;
if(ud_con>0)ud_con--;
else ud_con=cm_o[cmenu];
rd_txd(1);
break;
case 4:switch(menu_con)
{case 1:set_data=0;break;
case 2:sub(1);
break;
case 3: if(pass)
switch(cmenu)
{case 0:sub(0);break;
case 2:
case 3:
case 9:
case 10:sub(1);
break;
default:num=s_opp[ture_ud-1][ud_con]&0x80;
if(!on_off||!num)
sub(0);
}
break;
case 4: if(!on_off) switch(cmenu)
{case 0:if(pass&&(set_data>0))sub(1);
else set_data=6;
break;
case 1:if(passd)sub(1);
break;
case 2:if(passd)sub(1);
break;
case 3:if(passf)sub(1);
}
}
}
}
/*接收处理******************接收处理******************接收处理*/
rxd_exe()
{
uchar temp,i;
uint num;
rxded=0;
temp=rxd[1];
num=rxd[2]<<8;
num&=0xff00;
num|=rxd[3];
switch(temp)
{case 0:if(st_con!=4)set_data=num;break;
case 1:pv_zu=num;break;
case 2:pv_fu=num;
}
if(set_data>9999)set_data=0; /*数值滤波,消除闪烁*/
if(k_abs){k_abs=0;zu_data=pv_zu;fu_data=pv_fu;}
else {if(((zu_data-pv_zu)<50)||((pv_zu-zu_data)<50))pv1_zu=zu_data=pv_zu;
else
{if(((pv1_zu-pv_zu)<50)||((pv_zu-pv1_zu)<50))pv1_zu=zu_data=pv_zu;
else pv1_zu=pv_zu;
}
if(((fu_data-pv_fu)<50)||((pv_fu-fu_data)<50))pv1_fu=fu_data=pv_fu;
else
{ if(((pv1_fu-pv_fu)<50)||((pv_fu-pv1_fu)<50))pv1_fu=fu_data=pv_fu;
else pv1_fu=pv_fu;
}
}
i=rxd[0];
switch(i)
{case 0:on_off=0;temp=P3;
error=0;
temp&=0xf;
P3=temp;
break;
case 1:on_off=1;temp=P3;
error=0;
temp&=0xf;
temp|=0x30;
P3=temp;
break;
case 2:on_off=1;temp=P3;
error=0;
temp&=0xf;
temp|=0x50;
P3=temp;
break;
case 3:on_off=0;temp=P3;
error=1;
temp&=0xf;
temp|=0x80;
P3=temp;
break;
case 0x5a:set_send=0;
}
if(ncall_dsp)ncall_dsp--;
}
/*main**************main*************main***********main*/
main()
{
uchar num;
uchar key_t,key_t1,key_t2;
bit key_bt;
TMOD=0X21;
TH0=5;
PCON=0;
TR0=1;
TF0=1;
SCON=0X40;
TH1=0XFD;/*9600 *??*/
IT1=1;IT0=1;
SMOD=1;
EX1=0;
EX0=0;
ET1=0;
ES=1;
ET0=1;
EA=1;
num=P3;
num&=0x0f;
P3=num;
ndsp=0xff;
displaya[3]=_x;
displaya[2]=_x;
displaya[1]=_x;
displaya[0]=_x;
displayb[3]=_f;
displayb[2]=_r;
displayb[1]=_b;
displayb[0]=_d;
while(1)
{
temp=key_boad();
if(temp){if(key_t)key_t--;}
else {key_t=KEY_DELAY;key_t1=KEY_KEEP;key_t2=KEY_ADSB;}
if(!key_t)
{switch(temp)
{case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
}
}
}
}
/*定时器*******************定时器*******************定时器**/
void tint1() interrupt 1 using 3
{unsigned char temp=1,num,temp_del;
EA=0;
TF0=0;
TH0=0Xd5;
TL0=0X00;
TR0=1;
t0yc--;
if(t0yc==0)
{t0yc=10;
t0yc1--;
notbit1=~notbit1;
}
if(t0yc1==0)
{t0yc1=10;
notbit2=~notbit2;
}
ET0=1;
/*P0=0;*/
dpc_a=0;
dpc_b=0;
/*dpc_a=1;
dpc_b=1;
dpc_a=0;
dpc_b=0;*/
temp_del=dsp_p+1;
temp<<=dsp_p;
P2&=0XF0;
temp|=P2;
P2=temp;
if((notbit2)||(!und_bit)||((ndsp!=dsp_p)&&(ndsp!=0xff)))
{num=displaya[dsp_p];
if(dela==temp_del)num|=0x80;
P0=num;
dpc_a=0;
dpc_a=1;
}
num=displayb[dsp_p];
if(delb==temp_del)num|=0x80;
P0=num;
dpc_b=0;
dpc_b=1;
dsp_p++;
if(dsp_p>3)dsp_p=0;
if(led_s==dsp_p)p_led=1;
else p_led=0;
TF1=0;
EA=1;
}
/*通讯__________________________通讯*/
void sint1() interrupt 4 using 2
{uchar temp;
if(RI)
{RI=0;
sr_int=1;
temp=SBUF;
if(temp==0xa5)
{sr_num=0;
REN=1;
}
sr_dat[sr_num]=temp;
if(temp==0xe7)
{sr_num=0;
sr_ov=1;
}
else
{if(sr_num>=12) sr_num=0;
else sr_num++;
}
}
if(TI)
{st_int=1;
TI=0;
SBUF=sr_dat[sr_num];
sr_num++;
if(sr_num>12)
sr_ov=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -