单片机P1口的8个端口P1.0~P1.7分别接LED灯L1~L8,编程使8盏灯按照下列要求点亮。

2024-12-02 07:35:31
推荐回答(2个)
回答1:

#include 
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^0;
void delay(uint i){
 while(i--);
}
void main(){
 uchar i,temp;
 while(1){
  i=0;
  while(1){
   P1=~(1<   delay(20000);
   if(k1)break;
   if(i++==8)i=0;
  }
  i=0;
  temp=0xff;
  while(1){
   temp=i<8?(temp<<1):(temp>>1)|0x80;
   P1=temp;
   delay(20000);
   if(!k1)break;
   if(i++==16)i=0;
  }
 }
}

 SW1接通第1种效果;断开为第2种效果。

回答2:

这个简单
unsigned char code table[0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff];
main()
{
int i;
for(i=0;i<16;i++)
{
P0=table[i];
delay();//按照自己需要进行延时
}
}