Atmel 89C51RD2 in C programmieren

Gast #22057
Lesenswert?

Grüße,
nun ich programmiere seit einiger Zeit 80c535 und
den Atmel 89C51RD2 also 5051er Kern Microproz.'s in
Assembler. Nun werden meine Assembler Programme schon
etwas umfangreicher (Grafik-Display versch. Algorithmen).
Das ich zu dem Entschluss gekommen bin die Programme in
C zu schreiben. So da fängt mein Problem an.
Ich habe nur Grundkenntnisse in C und hab keine Ahnung
wie die Form des C Programms für einen MC auszusehen
hat und wie man solches verwirklicht! Und geschweige
denn mit welchen Compiler man dieses compiliert.
Für Infos Hilfe und Tip's währe ich sehr dankbar.

MFG Sven B.
Gast #22059
Lesenswert?

Compiler gibts von Keil (Keil.com) und von Raissonance.com.
Das sind jedenfalls die wichtigsten '51 Compilerbauer.
Beide bieten eine kostenlose Evaluation Version zum Download an.
Die ist voll funktionsfaehig, solange man keine esoterischen Sachen 
haben will,
wie spezielle Libraries herstellen oder Preemptive 
Multitaskingbetriebssysteme.
Gast #22060
Lesenswert?

Grüße,
so den freien Keil habe ich mir gesaugt. So... ähh...
nun ja... fangen wir so an, kann mir bitte jemand ein
Beispiel senden in dem z.B. ein Port eingelesen wird
und an einem anderen Port wieder ausgegeben wird.
Oder vielleicht gleich eine Seite in der die C51 Befehle
aufgelistet sind oder sogar beschrieben.

Danke...
Gast #22061
Lesenswert?

n'abend,
Beispiele en masse gibts hier auf mikrocontroller.com,
auf den Herstellerseiten, die da waeren: Philips.com, Atmel.com,
intel (8051 Erfinder) und infineon und alle anderen natuerlich auch.
Und natuerlich auf Keil.com und Raisonance.com.
Schau auch mal in ein anderes Forum, 8052.com (nicht 8051.com!), hier
gibts viele Experten, die auch gerne Ihren Senf anbringen.

Die Beispiele heissen Application Note, und sind
oft gut (und auf englisch) dokumentiert.

Viel Spass,
Christian
#22062
Lesenswert?

Es gibt keine "C51-Befehle".
Das ist ein stinknormaler ANSI-C-Compiler mit einigen CPU-spezifischen 
Erweiterungen.
Z.B. zur Auswahl bestimmter Speicherbereiche oder für Bitzugriffe.


Auch unter C kommst Du nicht umhin, Dich erstmal gründlich mit der CPU 
zu beschäftigen.

Also, was sind Ports, wie werden die angesprochen, wie unterscheidet man 
Eingang und Ausgang, was bedeutet read-modify-write.

Und was sind Timer, UART und all die anderen SFRs.

Nicht umsonst wird oft empfohlen, diese Grundlagen erstmal in purem 
Assembler auszuprobieren.

Danach weißt Du auch, wie Du das in C machen mußt.

Auch hilft Dir der "C51-Primer" weiter.


Peter
Gast #22063
Lesenswert?

@peter
du solltest erstmal lesen lernen... sorry... aber wie du
oben lesen kannst arbeite ich schon seit langem mit Assembler und ich 
kenne, denk ich, die Befehle und den Proz.
IN UND AUSWENDIG schon wegen meiner Ausbildung.

Was ich meine... ach egal christian kulig hat mir
weitergeholfen... aber der wichtig Boss peter eben nicht... sorry...

MfG Sven B.
PS.: Naja eigentlich hast du mir auch weitergeholfen
denn jetzt weis ich das die Port und Bit Befehle die
gleichen sind wie im Assembler. Danke.
#22064
Lesenswert?

Ja ja, ich hab nur den unteren Beitrag gelesen und nicht rausgefunden, 
worin die Schwierigkeit liegt, von:

MOV P1, P0

auf:

P1 = P0;

zu kommen. Und deshalb gedacht, es müßte an mangelnder CPU-Kenntnis 
liegen. Das ganz oben hatte ich schon wieder völlig vergessen.
Ich denke mal, es ist besser, lieber einmal daneben zu liegen, als gar 
nicht zu antworten.


Der C51-Primer erklärt alles nochmal ganz genau, z.B.:

http://www.hitex.co.uk/c51primer/c51primer.pdf


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren