Steuerung über Atmel 8051

Gast #1572395
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
#1572405
1
//Endlosschleife
2
*fett*while(1)*fett*
3
{
4
  //Port0 soll gelesen werden
5
  if(Port0>=1)
6
  {
7
    *fett*if(Port0==3)*fett*
8
    {
9
      auf Port1 01h übertragen
10
      (Verzögerungsschleife von 20sek)
11
       *fett* if(Port0==3)*fett*//Ja erneute Abfrage
12
        {
13
           While(Port0>2)
14
           {
15
              Port1 = 07;
16
           }
17
         Port1 = 00h;
18
        }
19
         else
20
         {
21
            Port1 = 00;
22
         }
23
      }
24
   
25
   }
26
}

So vielleicht?
Gast #1572423
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
#1572494
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
Persönliche Seite #1572499
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/assembler2.htm
1
JB [Pin],[Sprungziel] springe wenn Pin high
2
JNB [Pin],[Sprungziel] springe wenn Pin low
3

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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.