89C4051 wie 80535

Jul 09, 2004 2 Replies

Hallo, versuche in C über printf Zeichen über den seriellen ausgang auszugeben, beim 80C535 gehts prima, der 4051 bringt nichts raus. Nach den Unterlagen hat der 4051 einen 51er Kern, auch die notwendigen Register sind an gleicher Adresse



Programm:



#include /* prototype declarations for I/O functions */


/****************/ /* main program */ /****************/ void main (void) { BD = 1; PCON = 0x80; SCON = 0x50; TI = 1;



printf ("Hello World\n");



while (1) { ; /* ... */ }}


--



-- Greetings... Edgar Steffen { snipped-for-privacy@t-online.de} siehe auch:

formatting link


Wo wird die Baudrate gesetzt ? BD = 1 ??? Wo der Timer dafür freigegeben ? Macht das der Compiler oder hast du es nicht gemacht ? Welcher C-Compiler ? Mit etwas mehr Info könnte dir geholfen werden.....

Andreas

Du verwendest einen 535 spezifischen Baudrategenerator (clock/39). Beim 4051 mußt du T1 dafür verwenden.

void ser_init (void) { ES = 0; SCON = 0x50; PCON |= 0x80; /* SMOD = 1; */ TMOD &= 0x0f; /* use timer 1 */ TMOD |= 0x20; TH1=256-((clock+baudrate*6*16)/16/12/baudrate); ES = 1; }

MFG Gernot

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required