⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.c

📁 LED显示面板
💻 C
📖 第 1 页 / 共 5 页
字号:
 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 + -