| 
              #include <iom16v.h>#include <macros.h>
 void delay_ms(unsigned int k)
 {
 unsigned int i,j;
 for (i=0;i<k;i++)
 for (j=0;j<1140;j++);
 }
 void main()
 {
 unsigned char i=0;
 unsigned char j=0;
 unsigned char k=0;
 DDRA=0xff;
 DDRB=0xff;
 PORTA=0xff;
 PORTB=0xff;
 while (1)
 {
 if (j>3)
 {
 PORTB=~(BIT(3)+BIT(4)); //同时亮两个灯的写法
 if (k==0)
 PORTA=~BIT(i);
 else
 PORTA=~BIT(7-i);
 i++;
 if (i>7)
 {
 delay_ms(500);
 PORTA=0x00; //全亮
 k++;
 i=0;
 }
 delay_ms(500);
 if (k>1)
 {
 j=0;
 k=0;
 }
 }
 else
 {
 PORTA=~BIT(i);
 PORTB=~BIT(7-i);
 i++;
 if (i>7)
 {
 i=0;
 j++;
 }
 delay_ms(500);
 }
 }
 }
 
 |