#include <reg52.h>
#include <INTRINS.H>
unsigned char dispbitcode[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
unsigned char ADC_DATA;
sbit ST = P1^2;
sbit OE = P1^0;
sbit EOC = P1^1;
sbit CLK = P1^3;
sbit LED = P2^7;
void TimeInitial();
void DelayUs(unsigned int us);
unsigned char adc_red(void);
void TimeInitial()
{
TMOD = 0x10;
TH1 = (65536 - 5000) / 256;
TL1 = (65536 - 5000) % 256;
EA = 1;
ET1 = 1;
TR1 = 1;
}
void DelayUs(unsigned int us)
{
unsigned int i;
for (i = 0; i < us; i++)
_nop_();
}
unsigned char adc_red()
{
unsigned char getdata;
ST = 1;
DelayUs(2);
ST = 0;
while(EOC == 0);
OE = 1;
getdata = P3;
OE=0;
return getdata;
}
void displayDigitOnSevenSegment(unsigned char digit)
{
P2 = 0XFE;
P0 = dispbitcode[digit % 10];
DelayUs(50);
P2 = 0XFD;
P0 = dispbitcode[digit / 10];
}
void main()
{
TimeInitial();
while (1)
{
ADC_DATA = adc_red();
displayDigitOnSevenSegment(ADC_DATA);
DelayUs(1);
}
}
为啥数码管输出的一直都是0没变化 是数据没采集到吗
