#include<reg52.h>
#include<shumaguan.h>
#include<_lx.h>
#include<delay.h>
#include<_port.h>
#include<quanju.h>
#include<juzhen.h>
int s1=0,s2=0,now=0,xianshishu,yunsuan;
uchar temp;
uchar smnr[]={10,10,10,0 ,0,0,0,0};
void main()
{
d1ms(200);
pcgms=1;
while(1)
{
temp=getjzxdno1();
switch(now)
{ case 0:
if(s1>100)smnr[0]=13;
else smnr[0]=10;
if(s1<=100)
{
if(temp>=0&&temp<=9)
s1=s1*10+temp;
xianshishu=s1;
if(temp>=10&&temp<=14)
{
yunsuan=temp;now=1;
}
if(temp==15)
{s1=0,s2=0,now=0,xianshishu=0;}
}
break;
case 1:
if(s2>100)smnr[0]=13;
else smnr[0]=10;
if(s2<=100)
{
if(temp>=0&&temp<=9)
{s2=s2*10+temp;
xianshishu=s2;}
if(temp==14){now=2;}
if(temp==15){s1=0,s2=0,now=0,xianshishu=0;}
}
break;
case 2:
if(yunsuan==10)xianshishu=s1+s2;
if(yunsuan==11)xianshishu=s1-s2;
if(yunsuan==12)xianshishu=s1*s2;
if(yunsuan==13){xianshishu=s1/s2;}
if(temp==15){s1=0,s2=0,now=0,xianshishu=0;}
break;
}
if(xianshishu<0)
{
xianshishu=-xianshishu;
if (xianshishu/10==0) smnr[6]=12;
else if (xianshishu/100==0) smnr[5]=12;
else if (xianshishu/1000==0) smnr[4]=12;
else if (xianshishu/10000==0) smnr[3]=12;
else if (xianshishu/100000==0) smnr[2]=12;
else if (xianshishu/1000000==0) smnr[1]=12;
else if (xianshishu/10000000==0) smnr[0]=12;
}
if(temp==15){s1=0,s2=0,now=0,xianshishu=0;smnr[6]=10;smnr[7]=10;smnr[5]=10;smnr[4]=10;smnr[3]=10;smnr[2]=10;smnr[1]=10;smnr[0]=10;}
if(xianshishu/10000==0){if(smnr[3]!=12) smnr[3]=10;}
else smnr[3]=xianshishu/10000;
if(xianshishu/1000==0){if(smnr[4]!=12) smnr[4]=10;}
else smnr[4]=xianshishu/1000%10;
if(xianshishu/100==0){if(smnr[5]!=12) smnr[5]=10;}
else smnr[5]=xianshishu/100%10;
if(xianshishu/10==0){if(smnr[6]!=12) smnr[6]=10;}
else smnr[6]=xianshishu/10%10;
smnr[7]=xianshishu%10;
dissm(smnr,0xff);
}
}
评论0