8051 s konverzie ADC a RS232 kód

M

Maverickmax

Guest
Nazdar

Som sa snažil, aby môj mikroprocesora pre posielanie dát do programu HyperTerminal, ale nič sa nestalo.Im nie 100 percent úplne istý, či môj kód príčinu problému.Takže si môžete skontrolovať láskavo môj kód za chyby?

Cheer

Maverick Max

Kód:

/ / Header súbory

# Include "main.h"

# Include "PORT.hu"

# Include "delay_loop.h"int result_G;void serial_init ();

void send_serial (unsigned char * s);

void send_1_char (unsigned char c);void initialize ();

void start_conversion ();/ / Interrupt1 () prerušenie 2void serial_init ()

(

Scone = 0x50, / / nastavenie pre 8-bitová data

TMOD = 0x20, / / Nastavíme časovač 1 pre auto-reload

TH1 = 0xf3; / / nastavenie na 2400 Baud

TR1 = 1; / / Zapne timer 1

TI = 1; / / Uveďte pripravený odovzdať

)void send_serial (unsigned char * s)

(

while (* s! = 0x00)

(

SBUF =* y;

while (! TI)

()

TI = 0;y ;

)

)void send_1_char (unsigned char c)

(

SBUF = c;

while (! TI)

()

TI = 0;

)void initialize ()

(

ADC_RD = 1;

ADC_WR = 1;

IT1 = 1;

V1 = 1;

EA = 1;

)void start_conversion ()

(

ADC_WR = 0;

ADC_WR = 1;

)interrupt1 () prerušenie 2

(

ADC_RD = 0;

result_G = DATA;ADC_RD = 1;

send_1_char (result_G);

Delay_Loop (100);

start_conversion ();

)void main (void)

(

unsigned char crlf [] = (0x0D, 0x0A, 0x00);

serial_init ();

send_serial (CRLF);

send_serial ("--------------------------------");

send_serial (CRLF);initialize ();

start_conversion ();while (1)

(

LED = ON;

Delay_Loop (25);

LED = OFF;

Delay_Loop (25);

))

 
Aká je frekvencia kryštálu?Je časovač reload správne hodnoty pre krištáľ a prenosovú rýchlosť uvažujete?

I všeobecne konfigurovať UART s dvojitým prenosová rýchlosť nastavením-bit v PCON.Možno ste si ujsť, že?
Kód:

PCON | = 0x80; / / Double Baud Rate

Scone = 0x50, / / Scone: režim 1, 8-bit UART, aby rcvr

TMOD | = 0x20; / / TMOD: časovač 1, mód 2, 8-bit reload

TH1 = BAUD_CONST; / / TH1: reload hodnota

TL1 = BAUD_CONST;

TR1 = 1; / / TR1: časovač 1 jazda

TI = 1;

RI = 0;
 
Nazdar

Im using 11.0592MHz kryštálu pre mikrokontrolér môj čip ......

V podstate to funguje, keď som nastavený kód, aby vytlačiť jednoduchý text na obrazovke, ale nemohol som dostať dáta z ADC na obrazovke.

Im bude zahŕňať PCON v mojom kódy teraz

Will späť asap

Maverick Max

 
1.TH1 = 0xf3; / / nastavenie na 2400 Baud
Na 2400 baudový na 11.0592MHz krištáľ správne načítanie hodnoty 0xF4.Pozri "biblie" a Keil na prenosové rýchlosti kalkulačka http://www.keil.com/c51/baudrate.asp

2.Ak nastavíte TI = 1 v počiatočnej nastavenia a potom nemusia čakať na to v send_serial _before_ odosielanie znaku, stratíte jeden z prvých dvoch bytov sa pokúsite odoslať

3.http://www.8052.com/users/jonled/RS232gd.pdf

wek

 

Welcome to EDABoard.com

Sponsor

Back
Top