#include<public.h>
#include<LCD12864.h>
#include<key.h>
u1 jianhaoflag=0;
u1 jiahaoflag=0;
u1 chenhaoflag=0;
u1 chuhaoflag=0;
u1 denghaoflag=0;
u1 stop=0;
u1 a=0;
u1 temp=0;
u1 k=0;
long c=0;
long b=0;
long sum=0;
void main()
{
u1 key_num=0,num=0,num1=0;
delay10us(20);
delay1ms(1);
LCD12864_inti();
while(1)
{
key_num=key_scan();
if(key_num!=20&&key_num!=3&&key_num!=7&&key_num!=11&&key_num!=12&&key_num!=13&&key_num!=14&&b==0
&&jiahaoflag!=1&&jianhaoflag!=1&&chenhaoflag!=1&&chuhaoflag!=1&&denghaoflag!=1&&stop!=1)
num++;
else if(num!=0&&key_num!=20&&key_num!=3&&key_num!=7&&key_num!=11&&key_num!=12&&key_num!=13&&key_num!=14&&denghaoflag!=1)
num1++;
if(key_num==0||key_num==1||key_num==2||key_num==3)
{
if(key_num==0)
a=1;
else if(key_num==1)
a=2;
else if(key_num==2)
a=3;
else if(key_num==3)
jiahaoflag=1;
if(key_num!=3&&(jiahaoflag==1||jianhaoflag==1||chenhaoflag==1||chuhaoflag==1)&&denghaoflag==0)
b=b*10+a;
else if(key_num!=3&&denghaoflag==0)
c=c*10+a;
}
else if(key_num==4||key_num==5||key_num==6||key_num==7)
{
if(key_num==4)
a=4;
else if(key_num==5)
a=5;
else if(key_num==6)
a=6;
else if(key_num==7)
jianhaoflag=1;
if(key_num!=7&&(jiahaoflag==1||jianhaoflag==1||chenhaoflag==1||chuhaoflag==1)&&denghaoflag==0)
b=b*10+a;
else if(key_num!=7&&denghaoflag==0)
c=c*10+a;
}
else if(key_num==8||key_num==9||key_num==10||key_num==11)
{
if(key_num==8)
a=7;
else if(key_num==9)
a=8;
else if(key_num==10)
a=9;
else if(key_num==11)
chenhaoflag=1;
if(key_num!=11&&(jiahaoflag==1||jianhaoflag==1||chenhaoflag==1||chuhaoflag==1)&&denghaoflag==0)
b=b*10+a;
else if(key_num!=11&&denghaoflag==0)
c=c*10+a;
}
else if((key_num==12)||(key_num==13)||(key_num==14)||(key_num==15))
{
if(key_num==12)
denghaoflag=1;
else if(key_num==13)
stop=1;
else if(key_num==14)
chuhaoflag=1;
else if(key_num==15)
a=0;
if(key_num==15&&(jiahaoflag==1||jianhaoflag==1||chenhaoflag==1||chuhaoflag==1)&&denghaoflag==0)
b=b*10+a;
else if(key_num==15&&denghaoflag==0)
c=c*10+a;
}
LCD12864_write_cmd(0x80);
if(key_num!=13)
{
if(num>=7)
LCD12864_write_dat(c/1000000+0x30);
if(num>=6)
LCD12864_write_dat(c%1000000/100000+0x30);
if(num>=5)
LCD12864_write_dat(c%1000000%100000/10000+0x30);
if(num>=4)
LCD12864_write_dat(c%1000000%100000%10000/1000+0x30);
if(num>=3)
LCD12864_write_dat(c%1000000%100000%10000%1000/100+0x30);
if(num>=2)
LCD12864_write_dat(c%1000000%100000%10000%100/10+0x30);
LCD12864_write_dat(c%10+0x30);
if(jiahaoflag==1)
{
LCD12864_write_dat('+');
}
if(jianhaoflag==1)
{
LCD12864_write_dat('-');
}
if(chenhaoflag==1)
{
LCD12864_write_dat('*');
}
if(chuhaoflag==1)
{
LCD12864_write_dat('/');
}
if(num1>=7)
LCD12864_write_dat(b/1000000+0x30);
if(num1>=6)
LCD12864_write_dat(b%1000000/100000+0x30);
if(num1>=5)
LCD12864_write_dat(b%1000000%100000/10000+0x30);
if(num1>=4)
LCD12864_write_dat(b%1000000%100000%10000/1000+0x30);
if(num1>=3)
LCD12864_write_dat(b%1000000%100000%10000%1000/100+0x30);
if(num1>=2)
LCD12864_write_dat(b%1000000%100000%10000%100/10+0x30);
if(num1>=1)
LCD12864_write_dat(b%10+0x30);
if(denghaoflag==1)
{
LCD12864_write_cmd(0x90);
LCD12864_write_dat('=');
if(jianhaoflag==1)
{
if(c<=b)
{
LCD12864_write_dat('-');
sum=b-c;
while(sum!=0)
{
sum=sum/10;
k++;
}
sum=b-c;
}
if(c>=b)
{
sum=c-b;
while(sum!=0)
{
sum=sum/10;
k++;
}
sum=c-b;
}
}
if(jiahaoflag==1)
{
sum=c+b;
while(sum!=0)
{
sum=sum/10;
k++;
}
sum=c+b;
}
if(chenhaoflag==1)
{
sum=c*b;
if(sum<=0)
{
LCD12864_write_dat('-');
sum=-sum;
}
while(sum!=0)
{
sum=sum/10;
k++;
}
sum=c*b;
}
if(chuhaoflag==1)
{
sum=(long)(((float)c/b)*100);
while(sum!=0)
{
sum=sum/10;
k++;
}
sum=(long)(((float)c/b)*100);
if(c<=b)
k=k+1;
}
if(k>=7)
LCD12864_write_dat(sum/1000000+0x30);
if(k>=6)
LCD12864_write_dat(sum%1000000/100000+0x30);
if(k>=5)
LCD12864_write_dat(sum%1000000%100000/10000+0x30);
if(k>=4)
LCD12864_write_dat(sum%1000000%100000%10000/1000+0x30);
if(k>=3)
LCD12864_write_dat(sum%1000000%100000%10000%1000/100+0x30);
if(k>=2)
{
if(chuhaoflag==1)
LCD12864_write_dat('.');
LCD12864_write_dat(sum%1000000%100000%10000%100/10+0x30);
}
if(k>=1)
LCD12864_write_dat(sum%10+0x30);
k=0;
}
}
if(key_num==13)
{
jiahaoflag=0;
denghaoflag=0;
chuhaoflag=0;
chenhaoflag=0;
jianhaoflag=0;
sum=0;
stop=0;
c=0;
b=0;
num=0;
num1=0;
LCD12864_write_cmd(0x01);
}
}
}
无偿分析,QQ1494728092