📄 function.c
字号:
temp1 &= 0xf8;
pas_flag=pas_flag<<1;
if(d&0x02)
temp1 &= 0xf4;
pas_flag=pas_flag<<1;
if(d&0x04)
temp1 &= 0xec;
pas_flag=pas_flag<<1;
if(d&0x08)
temp1 &= 0xdc;
pas_flag=pas_flag<<1;
if(d&0x10)
temp1 &= 0xbc;
if(d&0x20)
temp1 &= 0x7c;
pas_flag=pas_flag<<1;
WDR();
if(d&0x40)
temp2 &= 0x10;
pas_flag=pas_flag<<1;
if(d&0x80)
temp2 &= 0x08;
asm("nop");
asm("nop");
if(pas_flag!=0x40)
RESET;
WDR();
}
else
{
WDR();
PORTD&=0x7f;
pas_flag=1;
if(dd&0x01)
temp1 &= 0xf8;
pas_flag=pas_flag<<1;
if(dd&0x02)
temp1 &= 0xf4;
pas_flag=pas_flag<<1;
if(dd&0x04)
temp1 &= 0xec;
if(dd&0x08)
temp1 &= 0xdc;
pas_flag=pas_flag<<1;
if(dd&0x10)
temp1 &= 0xbc;
pas_flag=pas_flag<<1;
if(dd&0x20)
temp1 &= 0x7c;
pas_flag=pas_flag<<1;
WDR();
if(dd&0x40)
temp2 &= 0x10;
pas_flag=pas_flag<<1;
if(dd&0x80)
temp2 &= 0x08;
asm("nop");
asm("nop");
if(pas_flag!=0x40)
RESET;
WDR();
}
WDR();
switch(i)
{
case 0: PORTC=0x10; break;
case 1: PORTC=0x90; break;
case 2: PORTC=0x50; break;
case 3: PORTC=0xd0; break;
case 4: PORTC=0x30; break;
case 5: PORTC=0xb0; break;
default:RESET;
}
asm("nop");
asm("nop");
PORTE =temp1;
PORTG =temp2;
PORTC&=0xef;
WDR();
}
void led_clear(void)
{
unsigned char i;
for(i=0;i<48;i++)
{
led_off(i);
}
}
void led_display(void)
{
unsigned char i,j,d,dd;
WDR();
PORTD&=0x7f;
asm("nop");
asm("nop");
for(j=0;j<6;j++)
{
d=0;
dd=0;
for(i=0;i<8;i++)
{WDR();
if((pannel_led[j*8+i].state==0x5a)&&(pannel_led[j*8+i].ack==0))
{
d|=(1<<i); //报警显示
dd&= ~(1<<i);
}
else if(pannel_led[j*8+i].state==0)
{
d&= ~(1<<i); //正常显示
dd&= ~(1<<i);
}
else if((pannel_led[j*8+i].state==0x5a)&&(pannel_led[j*8+i].ack==0x5a)) //应答显示
{
d|=(1<<i);
dd|= (1<<i);
}
else if(pannel_led[j*8+i].state==0xa5) //故障显示
{
d|=(1<<i);
dd&= ~(1<<i);
}
}
WDR();
led_on(j,d,dd,T1);
}
}
void led7_display(unsigned char i,unsigned char ds,unsigned char point,unsigned char tt)
{
unsigned char *p= (unsigned char *) (addr_led7[ds]);
WDR();
if(tt)
{
if(point)
*p = (led7_data[i]&0x7f);
else
*p = led7_data[i];
}
else
*p= led7_data[12];
}
void led7_clear(void)
{
unsigned char *p1 = (unsigned char *) (addr_led7[0]);
unsigned char *p2 = (unsigned char *) (addr_led7[1]);
unsigned char *p3 = (unsigned char *) (addr_led7[2]);
unsigned char *p4 = (unsigned char *) (addr_led7[3]);
unsigned char *p5 = (unsigned char *) (addr_led7[4]);
unsigned char *p6 = (unsigned char *) (addr_led7[5]);
WDR();
*p1= led7_data[0];
*p2= led7_data[0];
*p3= led7_data[0];
*p4= led7_data[0];
*p5= led7_data[0];
*p6= led7_data[0];
}
void RUN_led(void)
{
if(PINF&0x04)
PORTF &= ~(0x04);
else
PORTF |= 0x04;
}
void key_process(void)
{unsigned char i;
WDR();
if(key[0]==0x5a)
{
key[0]=0xa5;
if(mode_flag==0x5a)
{
mode_flag=0xa5;
PORTF&=0xf7;
}
else
{
mode_flag = 0x5a;
PORTF|=0x08;
}
}
WDR();
if(key[1]==0x5a) //xiaosheng
{
key[1]=0xa5;
buzzer_off();
sendmsg.ID=id4;
for(i=0;i<8;i++)
sendmsg.Data[i]=0x5a;
can_tx (sendmsg);
for(i=0;i<48;i++)
{
if(pannel_led[i].state==0x5a)
soundoff[i]=0xa5; //置消声标记
}
}
WDR();
if(key[2]==0x5a) //xiaoshan
{
key[2]=0xa5;
relay1_off();
sendmsg.ID=id4;
for(i=0;i<8;i++)
sendmsg.Data[i]=0xa5;
can_tx (sendmsg);
for(i=0;i<48;i++)
{
if((pannel_led[i].state==0x5a)&&( pannel_led[i].ack==0))
pannel_led[i].ack=0x5a;
}
}
if(key[4]==0x5a) //通道号加一
{
key[4]=0xa5;
if(mode_flag==0x5a)
{
if(channel<47)
channel++;
else
channel =0;
}
}
WDR();
if(key[5]==0x5a) //通道号减一
{
key[5]=0xa5;
if(mode_flag==0x5a)
{
if(channel>0)
channel--;
else
channel=47;
}
}
if(key[6]==0x5a) //通道号减16
{
key[6]=0xa5;
if(mode_flag==0x5a)
{
if(channel>15)
channel=channel-16;
}
}
WDR();
if(key[7]==0x5a) //通道号加16
{
key[7]=0xa5;
if(mode_flag==0x5a)
{
if(channel<32)
channel=channel+16;
}
}
}
unsigned char get_key(void)
{
unsigned temp;
PORTC = addr_key;
WDR();
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
temp = PINB;
return temp;
}
void shd_led_init(void)
{unsigned char pp;
pp = 1;
pannel_led[0].index=0;
pannel_led[0].ID=rece_data[0].ID;
pannel_led[0].channel=0;
pannel_led[0].up_down=0xa5;
pannel_led[0].limit=55;
pannel_led[0].zone=1;
pannel_led[0].data=0;
pannel_led[0].fullscal=60;
pannel_led[0].state=0;
pannel_led[0].current_state=0;
pannel_led[0].last_state=0;
pannel_led[0].delay_count=0;
pannel_led[0].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[1].index=1;
pannel_led[1].ID=rece_data[0].ID;
pannel_led[1].channel=1;
pannel_led[1].up_down=0xa5;
pannel_led[1].limit=420;
pannel_led[1].zone=10;
pannel_led[1].data=0;
pannel_led[1].fullscal=480;
pannel_led[1].state=0;
pannel_led[1].current_state=0;
pannel_led[1].last_state=0;
pannel_led[1].delay_count=0;
pannel_led[1].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[2].index=2;
pannel_led[2].ID=rece_data[0].ID;
pannel_led[2].channel=2;
pannel_led[2].up_down=0xa5;
pannel_led[2].limit=800;
pannel_led[2].zone=50;
pannel_led[2].data=0;
pannel_led[2].fullscal=900;
pannel_led[2].state=0;
pannel_led[2].current_state=0;
pannel_led[2].last_state=0;
pannel_led[2].delay_count=0;
pannel_led[2].ack=0x5a;
pp = pp+1;
WDR();
pannel_led[3].index=3;
pannel_led[3].ID=rece_data[0].ID;
pannel_led[3].channel=3;
pannel_led[3].up_down=0xa5;
pannel_led[3].limit=440;
pannel_led[3].zone=10;
pannel_led[3].data=0;
pannel_led[3].fullscal=480;
pannel_led[3].state=0;
pannel_led[3].current_state=0;
pannel_led[3].last_state=0;
pannel_led[3].delay_count=0;
pannel_led[3].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[4].index=4;
pannel_led[4].ID=rece_data[13].ID;
pannel_led[4].channel=0;
pannel_led[4].up_down=0xa5;
pannel_led[4].limit=55;
pannel_led[4].zone=1;
pannel_led[4].data=0;
pannel_led[4].fullscal=60;
pannel_led[4].state=0;
pannel_led[4].current_state=0;
pannel_led[4].last_state=0;
pannel_led[4].delay_count=0;
pannel_led[4].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[5].index=5;
pannel_led[5].ID=rece_data[13].ID;
pannel_led[5].channel=1;
pannel_led[5].up_down=0xa5;
pannel_led[5].limit=420;
pannel_led[5].zone=10;
pannel_led[5].data=0;
pannel_led[5].fullscal=480;
pannel_led[5].state=0;
pannel_led[5].current_state=0;
pannel_led[5].last_state=0;
pannel_led[5].delay_count=0;
pannel_led[5].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[6].index=6;
pannel_led[6].ID=rece_data[13].ID;
pannel_led[6].channel=2;
pannel_led[6].up_down=0xa5;
pannel_led[6].limit=800;
pannel_led[6].zone=50;
pannel_led[6].data=0;
pannel_led[6].fullscal=900;
pannel_led[6].state=0;
pannel_led[6].current_state=0;
pannel_led[6].last_state=0;
pannel_led[6].delay_count=0;
pannel_led[6].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[7].index=7;
pannel_led[7].ID=rece_data[13].ID;
pannel_led[7].channel=3;
pannel_led[7].up_down=0xa5;
pannel_led[7].limit=440;
pannel_led[7].zone=10;
pannel_led[7].data=0;
pannel_led[7].fullscal=480;
pannel_led[7].state=0;
pannel_led[7].current_state=0;
pannel_led[7].last_state=0;
pannel_led[7].delay_count=0;
pannel_led[7].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[8].index=8;
pannel_led[8].ID=rece_data[16].ID;
pannel_led[8].channel=0;
pannel_led[8].up_down=0xa5;
pannel_led[8].limit=55;
pannel_led[8].zone=1;
pannel_led[8].data=0;
pannel_led[8].fullscal=60;
pannel_led[8].state=0;
pannel_led[8].current_state=0;
pannel_led[8].last_state=0;
pannel_led[8].delay_count=0;
pannel_led[8].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[9].index=9;
pannel_led[9].ID=rece_data[16].ID;
pannel_led[9].channel=1;
pannel_led[9].up_down=0xa5;
pannel_led[9].limit=420;
pannel_led[9].zone=10;
pannel_led[9].data=0;
pannel_led[9].fullscal=480;
pannel_led[9].state=0;
pannel_led[9].current_state=0;
pannel_led[9].last_state=0;
pannel_led[9].delay_count=0;
pannel_led[9].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[10].index=10;
pannel_led[10].ID=rece_data[16].ID;
pannel_led[10].channel=2;
pannel_led[10].up_down=0xa5;
pannel_led[10].limit=800;
pannel_led[10].zone=50;
pannel_led[10].data=0;
pannel_led[10].fullscal=900;
pannel_led[10].state=0;
pannel_led[10].current_state=0;
pannel_led[10].last_state=0;
pannel_led[10].delay_count=0;
pannel_led[10].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[11].index=11;
pannel_led[11].ID=rece_data[16].ID;
pannel_led[11].channel=3;
pannel_led[11].up_down=0xa5;
pannel_led[11].limit=440;
pannel_led[11].zone=10;
pannel_led[11].data=0;
pannel_led[11].fullscal=480;
pannel_led[11].state=0;
pannel_led[11].current_state=0;
pannel_led[11].last_state=0;
pannel_led[11].delay_count=0;
pannel_led[11].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[12].index=12;
pannel_led[12].ID=rece_data[17].ID;
pannel_led[12].channel=0;
pannel_led[12].up_down=0xa5;
pannel_led[12].limit=55;
pannel_led[12].zone=1;
pannel_led[12].data=0;
pannel_led[12].fullscal=60;
pannel_led[12].state=0;
pannel_led[12].current_state=0;
pannel_led[12].last_state=0;
pannel_led[12].delay_count=0;
pannel_led[12].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[13].index=13;
pannel_led[13].ID=rece_data[17].ID;
pannel_led[13].channel=1;
pannel_led[13].up_down=0xa5;
pannel_led[13].limit=420;
pannel_led[13].zone=10;
pannel_led[13].data=0;
pannel_led[13].fullscal=480;
pannel_led[13].state=0;
pannel_led[13].current_state=0;
pannel_led[13].last_state=0;
pannel_led[13].delay_count=0;
pannel_led[13].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[14].index=14;
pannel_led[14].ID=rece_data[17].ID;
pannel_led[14].channel=2;
pannel_led[14].up_down=0xa5;
pannel_led[14].limit=800;
pannel_led[14].zone=50;
pannel_led[14].data=0;
pannel_led[14].fullscal=900;
pannel_led[14].state=0;
pannel_led[14].current_state=0;
pannel_led[14].last_state=0;
pannel_led[14].delay_count=0;
pannel_led[14].ack=0xa5;
pp = pp+1;
WDR();
pannel_led[15].index=15;
pannel_led[15].ID=rece_data[17].ID;
pannel_led[15].channel=3;
pannel_led[15].up_down=0xa5;
pannel_led[15].limit=440;
pannel_led[15].zone=10;
pannel_led[15].data=0;
pannel_led[15].fullscal=480;
pannel_led[15].state=0;
pannel_led[15].current_state=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -