/*
利用ADC0809(ADC0808)巡回采集两路电压值(0~5V),采样周期为0.1S.设计电路图并编写相应程序实现。
*/
#include<reg51.h>
#include<absacc.h>
#define PIN0 XBYTE[0X7FF8]
float result=0,result_reg;
unsigned char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int i)
{
unsigned int j=0;
while (j<i)
j++;
}
void panduan()
{
unsigned char i;
PIN0=0xFF;
for(i=0;i<0x9f;i++);
result_reg=PIN0;
result=result_reg*5/255;
}
void display(int a,b,c)
{
P1=0x00;
P2=0xf4;
P1=tab[c];
delay(100);
P1=0x00;
P2=0xf2;
P1=tab[b];
delay(100);
P1=0x00;
P2=0xf1;
P1=tab[a]+0x80;
delay(100);
P1=0x00;
P2=0xf8;
P1=0x3e;
}
void main(void)
{
int a,b,c,r;
while(1)
{
panduan();
r=result*100;
a=r/100;
b=(r-a*100)/10;
c=(r-a*100)%10;
display(a,b,c);
}
}