www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Steuerung über Atmel 8051


Autor: SK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
arbeite zur Zeit an nem Schulprojekt und hab nen problem muss ein 
Programm für den Atmel 8051 schreiben in C, Assambler oder mischung.
Ich weis genau wie das Programm laufen soll nur bekomme es irgendwie net 
hin.
Kleine übersicht:

Endlosschleife
{
  Port0 soll gelesen werden
  if(Port0>=1)
  {
    if(Port0=3)
    {
      auf Port1 01h übertragen
      (Verzögerungsschleife von 20sek)
        if(Port0=3)//Ja erneute Abfrage
        {
           While(Port0>2)
           {
              Port1 07h
           }
         Port1 00h
        }
         else
         {
            Port1 00h
}}} }

So hoffe mir kann jemand helfen.
MfG
SK

Autor: Alexander S. (schroeder_90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
//Endlosschleife
*fett*while(1)*fett*
{
  //Port0 soll gelesen werden
  if(Port0>=1)
  {
    *fett*if(Port0==3)*fett*
    {
      auf Port1 01h übertragen
      (Verzögerungsschleife von 20sek)
       *fett* if(Port0==3)*fett*//Ja erneute Abfrage
        {
           While(Port0>2)
           {
              Port1 = 07;
           }
         Port1 = 00h;
        }
         else
         {
            Port1 = 00;
         }
      }
   
   }
}

So vielleicht?

Autor: SK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne, ich brauch das in Assembler oder C code für den 8051 also mit 
Portansteuerung -.-
Also lauffähig
mir würde ne erklärung für if bedinung die sich auf einen Port bezieht 
in Assembler reichen

Autor: Alexander S. (schroeder_90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ober Programm geht doch???
bis auf die zeitschleife und auf Port1 01h übertragen, wenn du eine 
richtig header datei mit den register und port definitionen hast...

in asm ne if schleife(geht auch mit pointer und registern statt a):

mov a,port
cjne a,#wert,#ifschleife

Autor: E. B. (roquema) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was denn jetzt C oder Assembler?
Findet sich alles im Netz.
In Assembler: schau Dir den Befehlssatz an. Z.B. hier:
http://www.ipd.uka.de/~buchmann/microcontroller/as...
JB [Pin],[Sprungziel] springe wenn Pin high
JNB [Pin],[Sprungziel] springe wenn Pin low

CJNE [Op1],[Op2],[Label] springe zu Label, wenn Op1 und Op2 unterschiedlich
In C:
Kommt es auf den Compiler an --> Handbuch, beim SDCC geht:
if (P1_0) tu was; //Pinabfrage
if (P1 == 0x07) tu was; //Portabfrage
Das da oben ist aber noch kein vollständiges Programm...

Autor: SK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke vielmals das Programm funzt nu wie es soll hab irgendwie zu 
kompliziert Gedacht =)
Danke an alle Posts
MfG
SK

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.