case0x22:value=5;Num_Flag=1;break;

case0x42:value=4;Num_Flag=1;break;

case0x14:value=3;Num_Flag=1;break;

case0x24:value=2;Num_Flag=1;break;

case0x44:value=1;Num_Flag=1;break;

case0x18:value=0;Num_Flag=1;break;

case0x28:Point_Flag=1;break;

case0x82:Add_Flag=1;Sub_Flag=0;Key_Flag=1;break;

case0x84:Sub_Flag=1;Add_Flag=0;Key_Flag=1;break;

case0x48:Repair_Flag=1;Key_Flag=1;break;

case0x81:Init_Flag=1;Key_Flag=1;break;

case0x88:Enter_Flag=1;Key_Flag=0;break;

default:NOP();

}

if(Num_Flag==1){p[4]=p[3];p[3]=p[2];p[2]=p[1];p[1]=value;Num_Flag=0;}

if(Point_Flag==1){p[0]=value;Point_Flag=0;}

if(Add_Flag==1){Add_Flag=1;Sub_Flag=0;}

if(Sub_Flag==1){Sub_Flag=1;Add_Flag=0;}

if(Init_Flag==1){Init_Flag=1;}

if(Repair_Flag==1){Repair_Card();Repair_Flag=0;}

if(Enter_Flag==1)

{if(Add_Flag==1){Add_Card(p);Enter_Flag=0;Add_Flag=0;}

if(Sub_Flag==1){Sub_Card(p);Enter_Flag=0;Sub_Flag=0;}

if(Init_Flag==1){Initial_Card(p);Init_Flag=0;}}

}

//***************中断处理********************//

//**********定时器2:16ms中断显示一次*******//

#pragmainterrupt_handlerTIMER1_INT:9

voidTIMER1_INT(void)

{uchartemp[5],i;

for(i=0;i《5;i++)

temp[i]=ICcontent[9+i];

if(IC_Flag==0)Display(EEEEE);

if(IC_Flag==1)Display(FFFFF);

if(IC_Flag==3)

{if(Key_Flag==1)//显示此次操作金额;

{Money[1]|=0x80;//显示时加上小数点;

Display(Money);}

else//显示卡内余额;

{temp[4]|=0x80;

Display(temp);}

}

}

//*************系统初始化*************//

voidInitial_System(void)

{//系统初始化

//SPL=0x5f;//AT90S8535的堆栈指针指向最高RAM地址;

//SPH=0x02;

//IO口初始化;

DDRA=0xff;//A口输出高电平

PORTA=0xff;

DDRB=0xff;//B口输出低电平

PORTB=0x00;

DDRC=0x0f;//C口高四位输入(不带上拉电阻)低四位输出0

PORTC=0xf0;

DDRD=0xff;//D口输出低电平

PORTD=0x00;

//中断系统初始化(定时器1中断)

SREG=SREG|0x80;//I(SREG^7)全局中断使能置位

TIMSK=TIMSK|0x40;//TOIE1(TIMSK^2)T/C1溢出中断使能置位

TIFR=TIFR|0x40;//TOV1(TIFR^2)T/C1溢出中断标志位写“1”清0

//定时器初始化

TCCR1B=TCCR1B|0x20;//定时器时钟分频=CLK/8(1uS计数)

TCNT1H=0xc1;//需要计数16000=0x3E80次,

TCNT1L=0x7f;//计数初值0xff-0x3e80=0xc17f;

//显示系统初始化

IC_Flag=0;//如果IC卡没有上电,则显示的是8.8.8.8.,否则显示IC卡的内容

}

voidmain(void)

{uchari,j;

Initial_System();

while(IC_Flag==1)