简易计算器数码管c语言,天祥单片机数码管实现简易计算器问题

display(unsigned long a);

uchar keyscan();

void delay(uint xms);

void main()

{

unsigned long num1=0,num2=0,dispbuf=0;

unsigned  char key,flag=1,fuhao;

while(1)

{

if(flag==1)

{

key=keyscan();

if(key<10)

{

num1=num1*10+key;

dispbuf=num1;

}

else if(key==12)

{

fuhao='+';

flag=2;

}

else if(key==13)

{

fuhao='-';

flag=2;

}

else if(key==14)

{

fuhao='*';

flag=2;

}

else if(key==15)

{

fuhao='/';

flag=2;

}

}

else if(flag==2)

{

key=keyscan();

if(key<10)

{

num2=num2*10+key;

dispbuf=num2;

}

else if(key==11)

{

switch(fuhao)

{

case'+':dispbuf=num1+num2;break;

case'-':dispbuf=num1-num2;break;

case'*':dispbuf=num1*num2;break;

case'/':dispbuf=num1/num2;break;

}

}

}

display(dispbuf);

}

}

void maco(unsigned char du,unsigned char we)

{

duan=1;

P0=table[du];

duan=0;

P0=0xff;

wei=1;

P0=weima[we];

wei=0;

}

void display(unsigned long  x)

{

int i;

unsigned char a[6];

if(x==0)

{

maco(0,1);

}

else

{

for(i=0;x!=0;i++)

{

a[i]=x%10;

x/=10;

}

switch(i)

{

case 1:

maco(a[0],1);

while(1);

case 2:

while(1)

{

maco(a[1],1);

delay(1);

maco(a[0],2);

delay(1);

}

case 3:

while(1)

{

maco(a[2],1);

delay(1);

maco(a[1],2);

delay(1);

maco(a[0],3);

delay(1);

}

case 4:

while(1)

{

maco(a[3],1);

delay(1);

maco(a[2],2);

delay(1);

maco(a[1],3);

delay(1);

maco(a[0],4);

delay(1);

}

case 5:

while(1)

{

maco(a[4],1);

delay(1);

maco(a[3],2);

delay(1);

maco(a[2],3);

delay(1);

maco(a[1],4);

delay(1);

maco(a[0],5);

delay(1);

}

case 6:

while(1)

{

maco(a[5],1);

delay(1);

maco(a[4],2);

delay(1);

maco(a[3],3);

delay(1);

maco(a[2],4);

delay(1);

maco(a[1],5);

delay(1);

maco(a[0],6);

delay(1);

}

}

}

}

699ba7046c51816a17b33a7caa85f179.png

0

97b4b3417991aabde46fdac613e34292.png

已退回1积分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值