永发信息网

用四位数码管显示的单片机计算器程序

答案:1  悬赏:0  手机版
解决时间 2021-04-05 08:44
用四位数码管,16位键盘显示。求个程序,思路也行,主要是能把这个做出来
最佳答案
给个6位数码管的主程序,子程序 是显示和按键扫描 也比较长,就不贴出来了
假设结果不会溢出,还是6位数
void main()
{
while(1)
{
c=1;
while(c<7)//输入第1个6 位数
{
keyval=keyscan();
if(keyval<10)
{
switch(c)
{
case 1:b1=keyval; break;
case 2:b2=keyval; break;
case 3:b3=keyval; break;
case 4:b4=keyval; break;
case 5:b5=keyval; break;
case 6:b6=keyval; break;
}
c++;
}
display(b1,b2,b3,b4,b5,b6);//显示
}

while(c==7) //输入计算符号
{
keyval=keyscan();
if(keyval>=10)
{
d=keyval;
}
c=1;
}
while(c<7) //输入第2个6 位数
{
keyval=keyscan();
if(keyval<10)
{
switch(c)
{
case 1:d1=keyval; break;
case 2:d2=keyval; break;
case 3:d3=keyval; break;
case 4:d4=keyval; break;
case 5:d5=keyval; break;
case 6:d6=keyval; break;
}
c++;
}
display(d1,d2,d3,d4,d5,d6);
}
P1=0;
bb= b1*100000+b2*10000+b3*1000+b4*100+b5*10+b6;
dd=d1*100000+d2*10000+d3*1000+d4*100+d5*10+d6;

while(keyval!=15) //等待按下"="号
{
keyval=keyscan();
}
delay(100);
switch(d1)//根据输入的运算符,作不同的运算
{
case 10:ee=bb+dd; break;//加法
case 11:
flag1=0;//flagj 是正负号标志
if(bb>=dd);//减法
{
ee=bb-dd;
flag1=1;
}
else ee=bb-dd;
break;
case 12:ee=bb*dd; break;;//乘法
case 13:ee=bb/dd; break; ;//除法
}
f1=ee/100000%10;// 分离 个十百千万
f2=ee/10000%10;
f3=ee/1000%10;
f4=ee/100%10;
f5=ee/10%10;
f6=ee%10;
display(f1,f2,f3,f4,f5,f6);//显示运算结果
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
巴山夜雨时是什么意思,夜雨是什么意思?
绚芽儿童装特价店平桥店我想知道这个在什么地
2018年6月19日杨靖书,如何用隶书落款
找人做衣服
对前任祝福的话,祝福前女友的话
WIN7设置热点一会自动断网,策略组怎么设置?
从1到100个位数比十位数大5的两位数有那几个
梦幻西游 有一个副本 战斗结束后立刻自动进入
新东方最后3小时ab班如何选择
2016年7月毕业,三月份还能报英语四级吗
根据右图世界气候类型分布示意图,完成下列题
关于专用话机
天圆地方手工放样图圆径1米方口1米×1米
河北适朗环保科技发展公司可信吗?
梦幻西游109辅助地府好还是无底洞好,不知道
推荐资讯
诺亚方舟相关的那次大洪水发生的时间?
6月有什么新电影上映
frontpage 怎么在表格旁边插入图片?每次插入
什么耳机录音效果最好,iPhone 的录音效果如何
中国经典教师的电影有哪些
LTE网络中的DOU指的是什么,有哪些影响因素,
Uncle Dick an interesting story for the ch
单选题WhenIopenedmyeyes,Ifound______
这狗长的大吗?
我用驾驶证帮亲戚亲戚补分可以吗.以后对自己
老板7g06嵌入式灶具怎么打火
寻仙中的召唤师
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?