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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.