Forum: Mikrocontroller und Digitale Elektronik Atmel 89C51RD2 in C programmieren


von Sven B. (Gast)


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.

von Peter D. (peda)


Lesenswert?

Hier findest Du einige Beispiele:

http://www.specs.de/users/danni/contents.htm


Das Problem ist bloß, an einen guten Compiler zu kommen.
Der Keil ist sehr gut, leider wird der aber nur sehr teuer verkauft.


Peter

von christian kulig (Gast)


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.

von Sven B. (Gast)


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...

von christian kulig (Gast)


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

von Peter D. (peda)


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

von Sven B. (Gast)


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.

von Peter D. (peda)


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

von Sven B. (Gast)


Lesenswert?

:-) Dank dir...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.