资源简介

使用6位数码管显示,可以实现加减乘除,当计算结果超过所能显示的位数时,显示错误。

资源截图

代码片段和文件信息

#include
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit wela=P2^7;
sbit dula=P2^6;
long in1in2outx;
int cntiflag;
uchar code num[]={
 0x3f0x060x5b0x4f
 0x660x6d0x7d0x07
 0x7f0x6f0x770x7c
 0x390x5e0x790x71};
void delay(uint xms)
{
uint j;
for(i=xms;i>0;i--)
for(j=114;j>0;j--);
}
void display()
{
uchar w1w2w3w4w5w6f=0;
long y;
if(x>=0)
{
if(x>=1e6)
{
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=num[12];
dula=0;
delay(2);

P0=0xff;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=0x3e;
dula=0;
delay(2);

P0=0xff;
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=num[0];
dula=0;
delay(2);

return;

}
w1=x%10;w2=x/10%10;w3=x/100%10;w4=x/1000%10;w5=x/10000%10;w6=x/100000%10;
if(f==1||w6)
{
f=1;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=num[w6];
dula=0;
delay(2);
}

if(f==1||w5)
{
f=1;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=num[w5];
dula=0;
delay(2);
}

if(f==1||w4)
{
f=1;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
dula=1;
P0=num[w4];
dula=0;
delay(2);
}

if(f==1||w3)
{
f=1;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=num[w3];
dula=0;
delay(2);
}

if(f==1||w2)
{
f=1;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=num[w2];
dula=0;
delay(2);
}

P0=0xff;
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=num[w1];
dula=0;
delay(2);
}
else
{
y=labs(x);
if(y>=1e5)
{
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=num[12];
dula=0;
delay(2);

P0=0xff;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=0x3e;
dula=0;
delay(2);

P0=0xff;
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=num[0];
dula=0;
delay(2);

return;

}

w1=y%10;w2=y/10%10;w3=y/100%10;w4=y/1000%10;w5=y/10000%10;
if(f==1||w5)
{
if(f==0)
{
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=0x40;
dula=0;
delay(2);

}
f=1;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=num[w5];
dula=0;
delay(2);
}

if(f==1||w4)
{
if(f==0)
{
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=0x40;
dula=0;
delay(2);

}

f=1;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
dula=1;
P0=num[w4];
dula=0;
delay(2);
}

if(f==1||w3)
{
if(f==0)
{
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
dula=1;
P0=0x40;
dula=0;
delay(2);

}

f=1;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=num[w3];
dula=0;
delay(2);
}

if(f==1||w2)
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     100341  2013-02-17 17:51  新建文件夹\计算器.数码管.DSN

     文件       7416  2013-02-17 21:27  新建文件夹\计算器(数码管.仿真).c

     目录          0  2013-02-28 13:11  新建文件夹

----------- ---------  ---------- -----  ----

               107757                    3


评论

共有 条评论