这是原理图:
下面就是源代码了:
#include <reg52.h>
char table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
char table2[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
char xuantong[6]={0x7e,0x7d,0x7b,0x77,0x6f,0x5f};
unsigned char wei[6];
unsigned char buffer;
float value;
sbit wr=P3^6;
sbit rd=P3^7;
fresh()
{
wr=0;
rd=0;
wr=1;
}
process()
{
float s;
s=5.0/256.0;
value=buffer*s;
wei[0]=(unsigned char)value;
wei[1]=(unsigned char)(value*10-wei[0]*10);
wei[2]=(unsigned char)(value*100-wei[0]*100-wei[1]*10);
wei[3]=(unsigned char)(value*1000-wei[0]*1000-wei[1]*100-wei[2]*10);
wei[4]=(unsigned char)(value*10000-wei[0]*10000-wei[1]*1000-wei[2]*100-wei[3]*10);
wei[5]=(unsigned char)(value*100000-wei[0]*100000-wei[1]*10000-wei[2]*1000-wei[3]*100-wei[4]*10);
}
delay1()
{
int i;
for(i=0;i<300;i++);
}
delay()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++);
}
}
show()
{
int i;
for(i=0;i<6;i++)
{
P3=xuantong[i];
if(i==0)
{
P2=table2[wei[i]];
}
else
{
P2=table[wei[i]];
}
delay1();
}
}
main()
{
while(1)
{
fresh();
delay();
buffer=P1;
process();
show();
}
}
主要是学会了adc0801的使用方法吧,多学会一些芯片的使用方法对自己也有好处,谁知道到时会用什么芯片呢。