想用单片机上的8个数码管显示12位学号,但是烧录入单片机后,无现象


#include "reg52.h"

typedef unsigned int u16; 
typedef unsigned char u8;

#define SMG P0

sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;

void delay(u16 a)
{while(a--);}
u8 school_number[12]={0x5b,0x5b,0x06,0x06,0x6d,0x06,0x3f,0x66,0x3f,0x5b,0x3f,0x7f};//我的学号

void smg_choice()
{
 u8 i=0;
 for(i=0;i<15;i++)
 {
   switch(i)//选位
   {
   case 0: LSC=1;LSB=1;LSA=1;SMG = school_number[i];break;
   case 1: LSC=1;LSB=1;LSA=0;SMG = school_number[i];break;
   case 2: LSC=1;LSB=0;LSA=1;SMG = school_number[i];break;
   case 3: LSC=1;LSB=0;LSA=0;SMG = school_number[i];break;
   case 4: LSC=0;LSB=1;LSA=1;SMG = school_number[i];break;
   case 5: LSC=0;LSB=1;LSA=0;SMG = school_number[i];break;
   case 6: LSC=0;LSB=0;LSA=1;SMG = school_number[i];break;
   case 7: LSC=0;LSB=0;LSA=0;SMG = school_number[i];delay(50000);break;//显示完前八位,停一会

   case 8: LSC=1;LSB=1;LSA=1;SMG = school_number[i];break;
   case 9: LSC=1;LSB=1;LSA=0;SMG = school_number[i];break;
   case 10:LSC=1;LSB=0;LSA=1;SMG = school_number[i];break;
   case 11:LSC=1;LSB=0;LSA=0;SMG = school_number[i];break; 

   case 12:LSC=0;LSB=1;LSA=1;SMG = 0xFF;break;
   case 13:LSC=0;LSB=1;LSA=1;SMG = 0xFF;break;
   case 14:LSC=0;LSB=1;LSA=1;SMG = 0xFF;break;
   case 15:LSC=0;LSB=1;LSA=1;SMG = 0xFF;break;
   }
  delay(100);
  SMG=0x00;
 }
}
int main()
{
 while(1)
  {void smg_choice();}
}