📄 bpqmb.bak
字号:
#include <reg51.h>
#include <staticv.h>
#include <intrins.h>
#include <24c04.h>
#define zt_ 0
#define gn_ 0
#define dz_h 1
#define dz_l 2
#define sj_h 3
#define sj_l 4
#define jyh_l 5
#define jyh_h 6
#define jw_ 9
#define _mima 1234
#define dmima 5858
sbit dsp_gz=P3^7;
uchar t0yc=5,t0yc1=5,datap,sendp,dsp_p,takep;
uint add_offset;
uchar txd[7];
uchar rxd[6];
bit rxded,notbit1,notbit2,temp_bit;
/*sbit dpc_a=P2^5;
sbit dpc_b=P2^4;*/
sbit dpc_a=P1^0;
sbit dpc_b=P1^1;
sbit spi_spe=P3^3;
sbit spi_dat=P3^0;
sbit spi_clk=P3^1;
bit und_bit,sending,pass,passd,passf,ankey,on_off,error,send_com=1;
bit inc_dec,db_3,da_3,set_send,k_abs,i_goon,d_goon;
uchar st_con,menu_con,cmenu,con_num;
uint password,set_data,fu_data,zu_data,pw_delay,pv_fu,pv_zu,pv1_zu,pv1_fu;
uchar dela,delb,xh_jsk,xh_jsn;
uchar ud_con,ture_ud,ncall_dsp;
unsigned char displaya[4],displayb[4],ndsp=0;
/*delay********************delay*********************delay*/
/*void sytxd()
{txd[0]=0x51;txd[1]=0x52;txd[2]=0xa3;txd[3]=0xa4;
txd[4]=0x55;txd[5]=0x56;txd[6]=0xa7;txd[7]=0xa8;sending=1;} */
void send_dat()
{
uchar num,temp;
takep=0;
spi_dat=0;
spi_spe=1;
while(spi_spe){;}
while(!spi_spe){;}
spi_spe=1;
spi_clk=1;
spi_dat=0;
temp=txd[sendp];
if(sendp<6)sendp++;
else{sendp=0;
send_com=0;
sending=0;
}
for(num=8;num>0;num--)
{ if(temp&0x80)
spi_dat=1;
else spi_dat=0;
while(!spi_clk){;}
while(spi_clk){;}
temp<<=1;
}
if(send_com)spi_dat=0;else spi_dat=1;
}
void take_dat()
{
uchar num,temp;
sendp=0;
spi_dat=1;
spi_spe=1;
while(spi_spe){;}
while(!spi_spe){;}
spi_clk=1;
temp=0;
for(num=8;num>0;num--)
{ temp<<=1;
while(!spi_clk){;}
if(spi_dat)
temp++;
while(spi_clk){;}
}
rxd[takep]=temp;
spi_dat=1;
if(takep<5)takep++;
else
{
spi_dat=0;
takep=0;
rxded=send_com=1;
}
}
/*定时器*******************定时器*******************定时器**/
void tint1() interrupt 1 using 3
{unsigned char temp=1,num,temp_del;
TH0=0Xd5;
TL0=0X00;
TR0=1;
t0yc--;
if(t0yc==0)
{t0yc=10;
t0yc1--;
notbit1=~notbit1;
}
if(t0yc1==0)
{t0yc1=10;
notbit2=~notbit2;
if(pw_delay>0)pw_delay--;
else {passd=passf=0;if((password!=0)&&(password>9999))pass=0;}
}
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;
}
/*通讯设置********************通讯设置****************通讯设置**/
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 copy(void)
{/* uchar num,i,j;
add_offset=0;
displaya[0]=_x;
displaya[1]=_x;
displaya[2]=_x;
displaya[3]=_x;
displayb[0]=_c;
displayb[1]=_o;
displayb[2]=_p;
displayb[3]=_y;
while(add_offset<0x1f0)
{cp_ps_txd(1);
for(i=0;i<17;i++)
{
send();
}
RI=0;
REN=1;
ES=1;
scanf_scr();
if((temp_bit)&&(txd[gn_]!=4))
{ rxded=0;
set_data=rxd[sj_h]<<8;
set_data&=0xff00;
set_data|=rxd[sj_l];
add_offset=rascii(dz_h,4);
num=add_offset&0xff;
i=add_offset>>8;
j=set_data&0xff;
wr_24c04(i,num,j);
num++;
j=set_data>>8;
wr_24c04(i,num,j);
add_offset++;
add_offset++;
}
} */
}
void paste(void) /*执行粘贴*/
{/*uchar temp,i,j;
add_offset=0;
cp_ps_txd(2);
rxded=0;
displaya[0]=_x;
displaya[1]=_x;
displaya[2]=_x;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -