51单片机实现281016进制转换Word格式.docx
《51单片机实现281016进制转换Word格式.docx》由会员分享,可在线阅读,更多相关《51单片机实现281016进制转换Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
![51单片机实现281016进制转换Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/10/ae956214-017b-4785-b264-ea40a68da1c4/ae956214-017b-4785-b264-ea40a68da1c41.gif)
voidjinzhi16();
voidjkeyscan();
voidchushi();
voidjiance();
voidmain()
{
chushi();
while
(1)
{
P3=0xff;
dkeyscan();
delay
(2);
//P3=0xff;
jkeyscan();
if(num3==2)
jinzhi2();
if(num3==8)
jinzhi8();
if(num3==10)
jinzhi10();
if(num3==16)
jinzhi16();
jiance();
display7();
}
}
voiddelay(ucharz)
ucharx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
voidchushi()
num3=10;
num1=10;
a=b=c=d=e=f=g=h=j=0;
voidjinzhi2()//二进制数
if(num1==16)
num2=a+b*16+c*16*16+d*16*16*16+e*16*16*16*16+f*16*16*16*16*16;
a=num2%2;
b=num2/2%2;
c=num2/2/2%2;
d=num2/2/2/2%2;
e=num2/2/2/2/2%2;
f=num2/2/2/2/2/2%2;
h=num2/2/2/2/2/2/2%2;
j=num2/2/2/2/2/2/2/2%2;
num1=2;
if(num1==8)
num2=a+b*8+c*8*8+d*8*8*8+e*8*8*8*8+f*8*8*8*8*8;
if(num1==10)
voidjinzhi8()
if(num1==2)
num2=a+b*2+c*2*2+d*2*2*2+e*2*2*2*2+f*2*2*2*2*2;
a=num2%8;
b=num2/8%8;
c=num2/8/8%8;
d=num2/8/8/8%8;
e=num2/8/8/8/8%8;
f=num2/8/8/8/8/8%8;
num1=8;
voidjinzhi10()
f=num2%1000000/100000;
e=num2%100000/10000;
d=num2%10000/1000;
c=num2%1000/100;
b=num2%100/10;
a=num2%10;
num1=10;
voidjinzhi16()
a=num2%16;
b=num2/16%16;
c=num2/16/16%16;
d=num2/16/16/16%16;
e=num2/16/16/16/16%16;
f=num2/16/16/16/16/16%16;
num1=16;
num2=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
voidjiance()
if(j==0)
if(h==0)
{
if(f==0)
{
if(e==0)
{
if(d==0)
{
if(c==0)
{
if(b==0)
{
if(a==0)
{
num=0;
}
elsenum=1;
}
elsenum=2;
}
elsenum=3;
}
elsenum=4;
}
elsenum=5;
}
elsenum=6;
}
elsenum=6;
elsenum=6;
voiddkeyscan()
P3=0xff;
if(key1==0)
delay(10);
if(key1==0)
num3=2;
while(!
key1);
delay(10);
P3=0xff;
if(key2==0)
if(key2==0)
num3=8;
key2);
if(key3==0)
if(key3==0)
num3=10;
key3);
if(key4==0)
if(key4==0)
num3=16;
key4);
voidjia()
//if(num1==16)
//num2=a+b*16+c*16*16+d*16*16*16+e*16*16*16*16+f*16*16*16*16*16;
num2=a+b*2+c*2*2+d*2*2*2+e*2*2*2*2+f*2*2*2*2*2+h*2*2*2*2*2*2+j*2*2*2*2*2*2*2;
num=0;
num4=1;
voidjian()
num4=2;
voidcheng()
num4=3;
voidchu()
num4=4;
voidyunsuan()
if(num4==1)
num6=num5+num2;
if(num4==2)
num6=num2-num5;
if(num4==3)
num6=num2*num5;
if(num4==4)
num6=num2/num5;
voiddeng()
//num5=a+b*16+c*16*16+d*16*16*16+e*16*16*16*16+f*16*16*16*16*16;
num5=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
yunsuan();
f=num6%1000000/100000;
e=num6%100000/10000;
d=num6%10000/1000;
c=num6%1000/100;
b=num6%100/10;
a=num6%10;
num5=a+b*8+c*8*8+d*8*8*8+e*8*8*8*8+f*8*8*8*8*8;
a=num6%8;
b=num6/8%8;
c=num6/8/8%8;
d=num6/8/8/8%8;
e=num6/8/8/8/8%8;
f=num6/8/8/8/8/8%8;
num5=a+b*2+c*2*2+d*2*2*2+e*2*2*2*2+f*2*2*2*2*2+h*2*2*2*2*2*2+j*2*2*2*2*2*2*2;
voidqingchu()
g=0;
a=b;
b=c;
c=d;
d=e;
e=f;
f=h;
h=j;
j=g;
num--;
voidanjian1(ucharx)
g=x;
j=h;
h=f;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
voidanjian2(ucharx)
voidanjian3(ucharx)
voidanjian4(ucharx)
voidjkeyscan()
P3=0xfe;
//第1次检验
temp=P3;
temp=temp&
0xf0;
if(temp!
=0xf0)
delay(5);
P3=0xfe;
temp=P3;
temp=temp&
if(temp!
temp=P3;
switch(temp)
case0xee:
g=0;
j=h;
h=f;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
if(num==1)
anjian2
(1);
anjian3
(1);
anjian4
(1);
break;
case0xde:
anjian1
(1);
anjian2
(2);
anjian3
(2);
anjian4
(2);
case0xbe:
anjian2(3);
anjian3(3);
anjian4(3);
case0x7e:
anjian4(4);
jia();
temp=temp&
while(temp!
temp=P3;
temp=temp&
delay(5);
P3=0xfd;
//第2次检验
P3=0xfd;
case0xed:
anjian2(4);
anjian3(4);
anjian4(5);
case0xdd:
anjian2(5);
anjian3(5);
anjian4(6);
case0xbd:
anjian2(6);
anjian3(6);
anjian4(7);
case0x7d:
anjian4(8);
jian();
}
P3=0xfb;
//第3次检验
P3=0xfb;
case0xeb:
anjian2(7);
anjian3(7);
anjian4(9);
case0xdb:
anjian2(8);
anjian3(8);