📄 bpqmb.c
字号:
#include <reg51.h>
#include <staticv.h>
#include <intrins.h>
#include <24c04.h>
#define KEY_DELAY 100;
#define KEY_ADSB 10;
#define KEY_KEEP 20;
sbit dsp_gz=P3^7;
uchar t0yc=5,t0yc1=5,datap,sendp,dsp_p,takep;
uint add_offset;
uchar txd[13];
bit rxded,notbit1,notbit2,temp_bit;
sbit dpc_a=P1^1;
sbit dpc_b=P1^0;
sbit p_led=P1^2;
sbit key1=P1^1;
sbit key2=P1^0;
sbit key3=P1^2;
bit und_bit,sending,ankey,on_off,error,send_com=1;
bit inc_dec,db_3,da_3;
uchar st_con,menu_con,cmenu,led_s;
uint set_data,fu_data,zu_data;
uchar dela,delb;
uchar ud_con;
unsigned char displaya[4],displayb[4],ndsp=0;
/*按件********************按件*********************按件*/
uchar keyboad()
{uchar temp=0;
if(!key1)temp=1;
if(!key2)temp=2;
if(!key3)temp=3;
temp=temp*(dsp_p+1);
return(temp);
}
/*通讯设置********************通讯设置****************通讯设置**/
void scr(void)
{uchar temp;
uint num=0;
sendp=0;
for(temp=0;temp<5;temp++)
{num+=txd[temp];
}
txd[5]=num>>8;
txd[6]=num&0xff;
}
void scanf_scr()
{
uchar i;
uint temp=0;
uint num;
num=rxd[4]<<8;
num&=0xff00;
num|=rxd[5];
for(i=0;i<4;i++)
{temp+=rxd[i];}
if(temp==num)temp_bit=1;
else temp_bit=0;
}
/*通讯设置******************通讯设置**********通讯社制*/
void rd_txd(uchar temp)
{
txd[gn_]=temp;
if(menu_con==3)
{
txd[dz_l]=ud_con;
txd[dz_h]=ture_ud;
}
else
{
txd[dz_l]=cmenu;
txd[dz_h]=0;
}
txd[sj_l]=0;
txd[sj_h]=0;
scr();
sending=1;
}
void ask_txd()
{
txd[gn_]=0;
txd[dz_l]=cmenu;
txd[dz_h]=0;
txd[sj_h]=txd[sj_l]=0;
scr();
sending=1;
}
void gz_txd()
{
txd[gn_]=3;
txd[dz_l]=cmenu;
txd[dz_h]=menu_con;
txd[sj_h]=txd[sj_l]=0;
scr();
sending=1;
}
void clr_txd()
{txd[gn_]=6;
txd[sj_h]=0;
txd[sj_l]=1;
scr();
}
void con_txd(uchar num)
{
txd[gn_]=10;
txd[dz_h]=0;
txd[dz_l]=cmenu;
txd[sj_l]=num&0xff;
txd[sj_h]=num>>8;
scr();
sending=1;
}
void cp_ps_txd(uchar num)
{
txd[gn_]=num;
txd[dz_l]=add_offset&0xff;
txd[dz_h]=add_offset>>8;
txd[sj_l]=set_data&0xff;
txd[sj_h]=set_data>>8;
scr();
sending=1;
}
void write_txd(uchar temp)
{
txd[gn_]=temp;
if(menu_con==3)
{
txd[dz_l]=ud_con;
txd[dz_h]=ture_ud;
}
else
{
txd[dz_l]=cmenu;
txd[dz_h]=menu_con;
}
txd[sj_l]=set_data&0xff;
txd[sj_h]=set_data>>8;
scr();
sending=1;
}
void admin_txd()
{
switch(cmenu)
{case 0:set_data=0;break;
case 1:txd[dz_l]=0;
txd[gn_]=7;break;
case 2:txd[dz_l]=1;
txd[gn_]=7;break;
case 3:txd[gn_]=8;
}
txd[dz_h]=txd[sj_h]=txd[sj_l]=0;
scr();
sending=1;
}
/*显示设置*****************显示设置*******************显示设置*/
void dsp_dnum(uint inum,uchar *p,bit num)
{uchar i;
p+=3;
if(inum>9999)inum=0;
i=inum/1000;
if(num)*p=led_8[i];
p--;
inum-=i*1000;
i=inum/100;
*p=led_8[i];
p--;
inum-=i*100;
i=inum/10;
*p=led_8[i];
p--;
i=inum-i*10;
*p=led_8[i];
}
void dsp_num()
{
switch(cmenu)
{
case 0:dela=3;da_3=1;break;
case 1:displaya[3]=_a;da_3=0;dela=0;break;
case 2:displaya[3]=_u;da_3=0;dela=0;break;
case 3:da_3=1;dela=0;break;
case 4:displaya[3]=_u;da_3=0;dela=0;break;
default: da_3=1;
}
if(!error)dsp_dnum(fu_data,displayb,db_3);
dsp_dnum(zu_data,displaya,da_3);
}
void dsp_data1(void)
{
uchar i;
dela=delb=0;
if((!cmenu)&&(menu_con==3))
{i=set_data&0xf;
displaya[0]=led_8[i];displaya[2]=0x3f;displaya[3]=0x3f;
i=set_data>>4;
displaya[1]=led_8[i];
}
else
{
if(ture_ud<7)
{
i=s_opp[ture_ud-1][ud_con]&0x70;
i>>=4;
if(menu_con==3)
switch(i)
{
case 1:dela=3;
break;
case 2: dela=2;
}
}
dsp_dnum(set_data,displaya,1);
}
if(menu_con==3)
switch(cmenu)
{case 2:dela=3;break;
case 3:if(ud_con<16)dela=2;break;
case 9:if(ud_con<4)dela=0;else if(ud_con==17)dela=2; else dela=3;
}
}
void dsp_data2(void)
{
uchar i;
dela=delb=0;
if(!cmenu) /*比特位显*/
{i=set_data&0xf;
displayb[0]=led_8[i];displayb[2]=0x3f;displayb[3]=0x3f;
i=set_data>>4;
displayb[1]=led_8[i];
}
else
{
if(ture_ud<7)
{i=s_opp[ture_ud-1][ud_con]&0x70;
i>>=4;
if(menu_con==3)switch(i)
{
case 1:delb=3;
break;
case 2:delb=2;
}
}
dsp_dnum(set_data,displayb,1);
}
switch(cmenu)
{case 2:delb=3;break;
case 3:if(ud_con<16)delb=2;break;
case 9:if(ud_con<4)delb=0;else if(ud_con==17)delb=2; else delb=3;
}
}
void dsp_cmenu(bit num)
{
uchar temp,cnum,*tempp;
if(num)tempp=displayb;else tempp=displaya;
tempp+=3;
switch(menu_con)
{case 0:*tempp=_d;tempp--;*tempp=_p;break;
case 1:*tempp=_e;tempp--;*tempp=_x;break;
case 2:*tempp=_p;tempp--;*tempp=_x;break;
case 3:*tempp=_f;tempp--;*tempp=led_8[cmenu];break;
case 4:*tempp=_a;tempp--;*tempp=_d;
}
if(menu_con!=3)cnum=cmenu;else cnum=ud_con;
tempp--;
temp=cnum/10;
*tempp=led_8[temp];
tempp--;
temp*=10;
temp=cnum-temp;
*tempp=led_8[temp];
}
void dsp_gzdm()
{uchar num;
displayb[3]=_e;
displayb[2]=_x;
if(menu_con)num=set_data&0xff;
else num=fu_data&0xff;
switch(num)
{case 0:displayb[1]=_n;
displayb[0]=_o;break;
case 1:displayb[1]=_a;
displayb[0]=_c;
break;
case 2:displayb[1]=_d;
displayb[0]=_c;
break;
case 3:displayb[1]=_r;
displayb[0]=_c;
break;
case 4:displayb[1]=_a;
displayb[0]=_u;
break;
case 5:displayb[1]=_d;
displayb[0]=_u;
break;
case 6:displayb[1]=_r;
displayb[0]=_u;
break;
case 7:displayb[1]=_s;
displayb[0]=_u;
break;
case 8:displayb[1]=_l;
displayb[0]=_u;
break;
case 9:displayb[1]=_s;
displayb[0]=_c;
break;
case 10:displayb[1]=_c;
displayb[0]=_e;
break;
case 11:displayb[1]=_o;
displayb[0]=_l;
break;
case 12:displayb[1]=_e;
displayb[0]=_o;
break;
case 13:displayb[1]=_r;
displayb[0]=_t;
break;
case 14:displayb[1]=_o;
displayb[0]=_h;
break;
case 15:displayb[1]=_t;
displayb[0]=_o;
break;
case 16:displayb[1]=_e;
displayb[0]=_t;
break;
case 17:displayb[1]=_d;
displayb[0]=_e;
break;
case 18: displayb[3]=_x;
displayb[1]=_a;
displayb[0]=_c;
break;
case 19:displayb[3]=_x;
displayb[1]=_d;
displayb[0]=_c;
break;
case 20: displayb[3]=_x;
displayb[1]=_r;
displayb[0]=_c;
break;
default:displayb[1]=_u;
displayb[0]=num;
}
}
void dsp_x()
{displayb[3]=displayb[2]=displayb[1]=displayb[0]=_x;}
void dsp_dsp()
{
switch(st_con)
{case 0: und_bit=0;
if(error)dsp_gzdm();
db_3=1;dsp_num();
break;
case 1: und_bit=0;
dela=delb=0;
displaya[3]=_c;displaya[2]=_o;displaya[1]=_n; displaya[0]=led_8[menu_con];
switch(menu_con)
{case 0:displayb[3]=_p;
displayb[2]=_r;
displayb[1]=_o;
displayb[0]=_g;
break;
case 1: displayb[3]=_a;
displayb[2]=_d;
displayb[1]=_i;
displayb[0]=_n;
break;
case 2: displayb[3]=_e;
displayb[2]=_r;
displayb[1]=_r;
displayb[0]=_o;
break;
case 3: displayb[3]=_d;
displayb[2]=_s;
displayb[1]=_p;
displayb[0]=_l;
}
break;
case 2:und_bit=0;dela=0;delb=0;
switch(menu_con)
{
case 0:dsp_dnum(fu_data,displayb,1);
dsp_cmenu(0);
break;
case 1: dsp_cmenu(0);
if(cmenu<8){
dsp_gzdm();
}
else
{und_bit=0;dsp_dnum(set_data,displayb,1);
}
break;
case 2: dsp_cmenu(0);
if(!pass)dsp_x();
else dsp_dnum(set_data,displayb,1);
break;
case 3: displaya[3]=_f;
displaya[2]=led_8[cmenu];
displaya[1]=_0;
displaya[0]=_0;
displayb[3]=_x;
displayb[2]=_s;
displayb[1]=_e;
displayb[0]=_t;
break;
case 4: displaya[3]=_s;
displaya[2]=_u;
displaya[1]=_p;
displaya[0]=led_8[cmenu];
dsp_x();
/* switch(cmenu)
{case 0:
displayb[3]=_u;
displayb[2]=_s;
displayb[1]=_e;
displayb[0]=_r;
break;
case 1:
case 2:
displayb[3]=_a;
displayb[2]=_c;
displayb[1]=_t;
displayb[0]=_a;
break;
case 3:
displayb[3]=_f;
displayb[2]=_a;
displayb[1]=_c;
displayb[0]=_t;
} */
}
break;
case 3:und_bit=0; dsp_cmenu(0);
dsp_data2();
break;
case 4:if(menu_con==1)
{displaya[3]=_c;displaya[2]=_l;displaya[1]=_r;displaya[0]=_e;
displayb[3]=_t;displayb[2]=_f;displayb[1]=_x;
if(set_data)displayb[0]=0x6;else displayb[0]=0x3f;}
else{und_bit=1;dsp_data1();dsp_cmenu(1);}
}
}
/*复制********************复制***********************复制******/
/*按键*********************按键**********************按键******/
void ture_add(void)
{
if(menu_con==3)
{switch(cmenu)
{case 0:
case 1:ture_ud=cmenu;break;/*set_con*/
case 2:ture_ud=10;break;/*setf*/
case 3:ture_ud=11;break;/*sett*/
case 9:ture_ud=12;break;/*seto*/
case 10:ture_ud=13;break;/*setz*/
default:ture_ud=cmenu-2;
}
}
else ture_ud=cmenu;
}
void enter_prg()
{
uchar temp;
switch(st_con)
{case 0:
case 1:st_con++; /*menu切换*/ dela=0;delb=0;
if(menu_con==1){gz_txd();set_send=1;}
break;
case 2:st_con++;
switch(menu_con)
{
case 0: st_con=0;break;
case 1:st_con=4;gz_txd();set_data=0;set_send=1;break;
case 2:st_con=4;ask_txd();set_data=0;break;
case 3:rd_txd(1);set_send=1;break;
case 4:und_bit=1;ndsp=0;set_send=1;st_con=4;
admin_txd();
}
break;
case 3: st_con=4;
ture_add();
und_bit=1;ndsp=0;
break;
case 4: ndsp=0;set_send=1;
switch(menu_con)
{
case 1:if(set_data)clr_txd();st_con=2;break;
case 2:st_con=2;
switch(cmenu)
{case 0:if(!pass) /*密码pass*/
{if(password==set_data){pass=1;set_data=0;}set_send=0;}
else{write_txd(5);password=set_data;} /*改密码*/
break;
case 1:set_send=0;
if(set_data==dmima){passd=pass=1;set_data=0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -