#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//0-9的碼表
uint temp;
sbit START = P2^4;
sbit ALE = P2^7;
sbit OE = P2^6;
sbit EOC = P3^3;
sbit ADD_A = P2^2;
sbit Q1 = P3^4;
sbit Q2 = P3^5;
sbit Q3 = P3^6;
sbit Q4 = P3^7;
void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
void ADC0809_init()
{
ALE = 0;
START = 0;
ADD_A = 0;
ALE = 1;
START = 1;
}
void display(uint num)
{
uint qian,bai,shi,ge;
qian = num/1000;
bai = num%1000/100;
shi = num%100/10;
ge = num%10;
Q4 = 1;
Q1 = 0;
P1 = table[qian] | 0x80;
delay(5);
Q1 = 1;
Q2 = 0;
P1 = table[bai];
delay(5);
Q2 = 1;
Q3 = 0;
P1 = table[shi];
delay(5);
Q3 = 1;
Q4 = 0;
P1 = table[ge];
delay(5);
}
void main()
{
ADC0809_init();
EA = 1;
EX1 = 1;
IT1 = 1;
while(1);
}
void ADC_int() interrupt 2
{
display(temp);
ALE = 0;
START = 0;
temp = P0/256.0*5*1000;
ALE = 1;
START = 1;
EA = 1;
}
|