hello all,
Ich arbeitet mit AT89C51CC01.
Ich habe eine program geschreiben, bitte sehen Sie die code wie folgt.
In diesem program brauche ich die Ausgang von ADC im Temrinal.
#include <stdio.h>
#include "reg_c51.h"
#define channel 7 // ADC Eingang
void SerialInit();
void tx(unsigned char x);
void SendADCData(unsigned short dat);
void main()
{
unsigned short value_converted; // ADC Ausgang
ADCF = 0x80; // kanal P1.7 für ADC
ADCON = 0x20; // Anfang ADC
ADCON &= 0xF8; // Clear the field SCH[2:0]
ADCON |= channel; // Select kanal
ADCON |= 0x08; // Fangt Umrechnung im Stadard Mode an
while((ADCON & 0x10)!= 0x10)
{} // Warte flag
ADCON &= 0xEF; // Clear the End of conversion flag
value_converted = (ADDH << 2 )+(ADDL); // Lesen die value
SerialInit();
SendADCData(value_converted);
//printf("%d",value_converted);
//P2 = value_converted;
//P0 = (value_converted >> 8);
while (1)
{}
}
void SerialInit()
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
}
void tx(unsigned char x)
{
SBUF = x;
while(!TI);
TI = 0;
}
void SendADCData(unsigned short dat)
{
const char ascii[] = "0123456789ABCDEF";
unsigned char temp;
temp = (dat>>12)&0xF;
tx(ascii[temp]);
temp = (dat>>8)&0xF;
tx(ascii[temp]);
temp = (dat>>4)&0xF;
tx(ascii[temp]);
temp = dat&0xF;
tx(ascii[temp]);
}
Ich gebe die ADC eingang mit pin P1_7 [Pot-R12 in Board].
Nach prüfen diese Program habe ich keine im Terminal.
Ich habe nicht die richtig problem gefunden.
Bitte sagen mir die Problem in diese Program.
Danke im voraus.