Frage zu Assembler

Gast #2175781
Lesenswert?
• ▲
▼
;project5
;----------------------------------------------------------------------- 
-----
list        p=16f84a             ; processor pic16f84a
#include    <p16f84a.inc>         ; verwendet definition
;----------------------------------------------------------------------- 
-----
__CONFIG  _CP_OFF&_PWRTE_ON&_WDT_OFF&_RC_OSC ; voreinstellungen
;----------------------------------------------------------------------- 
-----
      org      0x00             ; reset adresse 00(hex)
      goto    main             ; sprung zu main
;----------------------------------------------------------------------- 
-----

main
      bsf      STATUS,RP0           ; schaltet auf bank1
      bcf      TRISB,0             ; setzt RB0 auf out
      bcf      TRISB,1             ; setzt RB1 auf out
      bcf      TRISB,2             ; setzt RB2 auf out
      bcf      TRISB,3             ; setzt RB3 auf out
      bcf      TRISB,4             ; setzt RB4 auf out
      bcf      TRISB,5             ; setzt RB5 auf out
      bcf      TRISB,6               ; setzt RB6 auf out
      bcf      TRISB,7             ; setzt RB7 auf out
      bcf      STATUS,RP0           ; schaltet zurück auf bank0

SA      BTFSS    PORTA,0
      goto    SAEIN
      goto    SB

SB

      BTFSS    PORTA,1
      goto    SBEIN
      goto    SC

SC
      BTFSS    PORTA,0
      goto    SC2
      goto    SA

SC2      BTFSS    PORTA,1
      goto    AUS
      goto    SA

AUS      bcf      PORTB,0
      bcf      PORTB,1
      bcf      PORTB,2
      bcf      PORTB,3
      bcf      PORTB,4
      bcf      PORTB,5
      bcf      PORTB,6
      bcf      PORTB,7
      goto    SA

SAEIN    comf    PORTB,0
      comf    PORTB,1
      comf    PORTB,2
      comf    PORTB,3
      goto    SA

SBEIN
      comf    PORTB,4
      comf    PORTB,5
      comf    PORTB,6
      comf    PORTB,7
      goto    SA
end



______________________________________________________________________ 
_

Das was ihr da oben seht ist mein Code ich habe da folgendes problem und 
zwar soll SC alle Ports ausschalten aber es soll nicht passieren das ich 
das Programm SC auslöse wenn ich SA und SB ausführe,

deswegen muss ich irgendwie die Bits masskieren finde dazu aber nix in 
google kann mir das mal einer anhand meines Codes demonstrieren.
Gast #2175809
Lesenswert?
• ▲
▼
Hi
Du solltest schon dazu schreiben, welcher Assemblercode dies ist. Ein 
Goto in Assembler ist mir unbekannt. Auch Sprungmarken ohne ":"
Ansonsten such für die Bitmasken die Referenzen für "AND", "OR", "XOR".
Gruß oldmax
Gast #2175961
Lesenswert?
• ▲
▼
oldmax schrieb:
> Du solltest schon dazu schreiben, welcher Assemblercode dies ist.

oben steht, dass es ein PIC ist. Da gibt es auch ein goto und die Labels 
werden ohne ":" geschrieben.

Acker schrieb:
> habs schon hinbekommen mit AND weil unser lehrer es erklärt hat.

ok. Aber du solltest beim initialisieren noch PORTA als Eingang 
definieren. Sicher ist sicher und ich kann nicht 100%ig sagen, ob bei 
allen PICs der Start-Zustand "Eingang" ist. Zudem kannst du auch eine 0 
ins W-Register schreiben und diese dann nach TRISB kopieren. Also mit 
movlw und movf.
Gast #2176147
Lesenswert?
• ▲
▼
und alle benutzten Ports mit einem Schreibbefehl einmal initialisieren, 
siehe Datenblatt S.15, EXAMPLE 4-1

Das ist überhaupt das wichtigste, bevor man programmiert:

     ****************************
     ***** DATENBLATT LESEN *****
     ****************************
Gast #2177239
Lesenswert?
• ▲
▼
Lothar Miller schrieb:
> Deshalb habe ich seinerzeit auch nicht mit den PICs angefangen... ;-)

Das sind natürlich zwei triftige Gründe, eine µC-Familie abzuschreiben. 
Man muss kein Doppelpunkt bei den Sprungmarken schreiben und man kann an 
eine beliebige stelle im Code springen. Das stört mich auch 
immernoch..... nicht.
Gast #2178112
Lesenswert?
• ▲
▼
fang grade erst an mit dem Programmieren wir bekommen von unserem Lehrer 
aufgaben gestellt welche wir aus eigener hand meistern sollen er gibt 
uns nur kleine tips am ende spielen wir unser programm auf und testen es 
:P

meine Laufen immer xD sind zwar ein bissel unordentlich und nicht 
kommentiert aber sie funktionieren ^^

naja aller anfang ist schwer.

aber danke für eure tips

Antwort schreiben

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.

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.