| 
            
            
             
              #include <iom16v.h> #include <macros.h>
  unsigned char const NUM[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管段码表 unsigned char num=0;
  void delay_ms(unsigned int times) {     unsigned int i,j;     for (i=0;i<times;i++)         for (j=0;j<1140;j++); }
  void display_num() {     PORTC&=~BIT(0); //第一个数码管位选设置为0(共阴)     PORTA=NUM[num/10];     delay_ms(5);     PORTC|=BIT(0);
      PORTC&=~BIT(1);     PORTA=NUM[num%10];     delay_ms(5);     PORTC|=BIT(1); }
  void check_key() {     if ((PINC&BIT(0))!=BIT(0)) //如果按键1为低电平     {         delay_ms(100);         if ((PINC&BIT(0))!=BIT(0))         {             num++;             if (num>99)                 num=0;             while ((PINC&BIT(0))!=BIT(0));         }     }
      if ((PINC&BIT(1))!=BIT(1))     {         delay_ms(100);         if ((PINC&BIT(1))!=BIT(0))         {             if (num==0)                 num=99;             else                 num--;             while ((PINC&BIT(1))!=BIT(0));         }     } }
  void main() {     /*DDRA=PORTC=DDRB=PORTB=0xff;     DDRC=0xcf;     PORTA=NUM[0];     while (1)     {         display_num();         check_key();         if (num%2==0)             PORTB=BIT(0);         else             PORTB=0xff;     }*/
      DDRA=0xff;     DDRC=0xff;     while (1)     {         PORTA=0xff;         PORTC=0xff;     } }
               
                       |