怎么样在C语言程序里面 把P0和P2写在一起,就是LED灯从P0.0依次亮到P2.7?我需要16个灯的控制 这是8个灯

2025-04-15 22:23:37
推荐回答(2个)
回答1:

//你这个程序一直在p0_0左移一,右移一。左移两,右移两,看不出效果,我改成简单一点了左移一个了。

#include  

#include 

#define uchar unsigned char 

#define uint unsigned int

void delay10ms(void)

{  

 unsigned char i,j;

 for(i=20;i>0;i--)  

  for(j=248;j>0;j--);

}

void delay02s(void)

{  

 unsigned char i;

 for(i=20;i>0;i--)

     {

  delay10ms();    

  }

}

void main(void)

{

 uint ID=0;

 P0=0xfe;

 P2=0xff;

 while(1)    

 {

  if(P1_0==0)        

  {

   delay10ms();          

   if(P1_0==0)            

   {              

    while(P1_0==0);       

   }        

  }

  if(P0==0x7F){ID=0;P0=0XFF;P2=0XFE;delay02s();}

  else if(P2==0X7F){ID=1;P2=0XFF;P0=0XFE;delay02s();}       

  else 

   switch(ID)

   {

   case 0: P0=_crol_(P0,1);delay02s();break;

   case 1: P2=_crol_(P2,1);delay02s();break;   

      }

 }

回答2:

1,ID未初始化。
2,p0,p2各8位,可以代表16个灯的亮与灭。
3,有些函数与硬件有关,你得自己探索了