51单片机实现281016进制转换.docx
- 文档编号:26223396
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:34
- 大小:17.45KB
51单片机实现281016进制转换.docx
《51单片机实现281016进制转换.docx》由会员分享,可在线阅读,更多相关《51单片机实现281016进制转换.docx(34页珍藏版)》请在冰豆网上搜索。
51单片机实现281016进制转换
#include
sbitdula=P2^6;
sbitwela=P2^7;
sbitkey1=P3^4;
sbitkey2=P3^5;
sbitkey3=P3^6;
sbitkey4=P3^7;
#defineucharunsignedchar
#defineuintunsignedint
uinta,b,c,d,e,f,g,h,j,num,temp,num1,num2,num3,num4,num5,num6;
ucharSHZ[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
voiddkeyscan();
voidjia();
voidjian();
voidcheng();
voidchu();
voiddeng();
voidqingchu();
voiddelay(ucharz);
voiddisplay1();
voiddisplay2();
voiddisplay3();
voiddisplay4();
voiddisplay5();
voiddisplay6();
voiddisplay7();
voidjinzhi2();
voidjinzhi8();
voidjinzhi10();
voidjinzhi16();
voidjkeyscan();
voidchushi();
voidjiance();
voidmain()
{
chushi();
while
(1)
{
P3=0xff;
dkeyscan();
P3=0xff;
delay
(2);
//P3=0xff;
jkeyscan();
//P3=0xff;
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>0;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;
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==10)
{
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;
}
}
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;
}
if(num1==10)
{
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;
}
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%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()
{
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;
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;
}
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;
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;
}
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;
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()
{
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%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;
}
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;
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;
}
if(num1==10)
{
num2=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
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;
}
}
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);
while(!
key1);
P3=0xff;
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
num3=8;
while(!
key2);
delay(10);
while(!
key2);
P3=0xff;
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
num3=10;
while(!
key3);
delay(10);
while(!
key3);
P3=0xff;
}
}
if(key4==0)
{
delay(10);
if(key4==0)
{
num3=16;
while(!
key4);
delay(10);
while(!
key4);
P3=0xff;
}
}
}
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;
if(num1==10)
num2=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
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==2)
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;
a=b=c=d=e=f=g=h=j=0;
num=0;
num4=1;
}
voidjian()
{
//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;
if(num1==10)
num2=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
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==2)
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;
a=b=c=d=e=f=g=h=j=0;
num=0;
num4=2;
}
voidcheng()
{
//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;
if(num1==10)
num2=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
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==2)
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;
a=b=c=d=e=f=g=h=j=0;
num=0;
num4=3;
}
voidchu()
{
//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;
if(num1==10)
num2=a+b*10+c*10*10+d*10*10*10+e*10*10*10*10+f*10*10*10*10*10;
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==2)
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;
a=b=c=d=e=f=g=h=j=0;
num=0;
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()
{
//if(num1==16)
//num5=a+b*16+c*16*16+d*16*16*16+e*16*16*16*16+f*16*16*16*16*16;
if(num1==10)
{
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;
}
if(num1==8)
{
num5=a+b*8+c*8*8+d*8*8*8+e*8*8*8*8+f*8*8*8*8*8;
yunsuan();
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;
}
if(num1==2)
{
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;
yunsuan();
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;
}
num=0;
}
voidqingchu()
{
g=0;
a=b;
b=c;
c=d;
d=e;
e=f;
f=h;
h=j;
j=g;
num--;
}
voidanjian1(ucharx)
{
if(num1==2)
{
g=x;
j=h;
h=f;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
}
}
voidanjian2(ucharx)
{
if(num1==8)
{
g=x;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
}
}
voidanjian3(ucharx)
{
if(num1==10)
{
g=x;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
}
}
voidanjian4(ucharx)
{
if(num1==16)
{
g=x;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
}
}
voidjkeyscan()
{
P3=0xfe;//第1次检验
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(5);
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xee:
if(num1==2)
{
g=0;
j=h;
h=f;
f=e;
e=d;
d=c;
c=b;
b=a;
a=g;
num++;
if(num==1)
num=0;
}
anjian2
(1);
anjian3
(1);
anjian4
(1);
break;
case0xde:
anjian1
(1);
anjian2
(2);
anjian3
(2);
anjian4
(2);
break;
case0xbe:
anjian2(3);
anjian3(3);
anjian4(3);
break;
case0x7e:
anjian4(4);
jia();
break;
}
temp=temp&0xf0;
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
delay(5);
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
P3=0xff;
}
}
P3=0xfd;//第2次检验
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(5);
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xed:
anjian2(4);
anjian3(4);
anjian4(5);
break;
case0xdd:
anjian2(5);
anjian3(5);
anjian4(6);
break;
case0xbd:
anjian2(6);
anjian3(6);
anjian4(7);
break;
case0x7d:
anjian4(8);
jian();
break;
}
temp=temp&0xf0;
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
delay(5);
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfb;//第3次检验
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
delay(5);
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xeb:
anjian2(7);
anjian3(7);
anjian4(9);
break;
case0xdb:
anjian2(8);
anjian3(8);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 实现 281016 转换