Hallo Leute,
ich bin neu hier im Forum und vor allem ein Neuling was PICs angeht.
Darum hab ich auch Probleme mit dem folgenden Code:
Irgendwie läuft das Alles nicht so richtig!Code:;************************************************************** ;* ;* Pinbelegung ;* ---------------------------------- ;* PORTA: ;* Pin Funktion ;* 0 Ausgang ;* 1 Ausgang ;* 2 Ausgang ;* 3 Ausgang ;* 4 Ausgang ;* 5 Ausgang ;* ;* PORTB: ;* Pin Funktion ;* 0 Ausgang ;* 1 Ausgang ;* 2 Ausgang ;* 3 Ausgang ;* 4 Ausgang ;* 5 Ausgang ;* 6 Ausgang ;* 7 Ausgang ;* ;* PORTC: ;* NN ;* ;* ;************************************************************** ; Includedatei für den 16F84 einbinden list p=16f876 #include <P16f876.INC> ERRORLEVEL -302 ; SUPPRESS BANK SELECTION MESSAGES ;********************************************************** ; Variablennamen vergeben dx EQU 0x20 dy EQU 0x21 org 0 ; Programmstart immer bei 0 goto init ; Init ausführen ;********************************************************** ; Anfangsinitialisierung init CLRF dx ; Schleifenende CLRF dy ; Schleifenzaehler MOVLW H'55' ; Schleifenlaenge ins W-Register setzen` MOVWF dx ; Schleifenlaenge aus W-Register nach dx BSF STATUS, RP0 ; auf Bank 1 umschalten BCF STATUS, RP1 ; MOVLW B'00000000' ; PortA alle output MOVWF TRISA MOVLW B'10001111' ; PortA dig output MOVWF ADCON1 MOVLW B'00000000' ; PortB alle output MOVWF TRISB BSF STATUS, RP0 ; auf Bank 0 zurückschalten BCF STATUS, RP1 ; CLRF PORTB ; alle Port A Latches ausschalten CLRF PORTA ; alle Port B Latches ausschalten ;********************************************************** ; Hauptprogrammschleife Main MOVF dx,0 ; lädt Schleifenende MOVWF dy ; setzt Schleifenzähler SchleifeBegin MOVF dy,0 ; hohle Schleifenzähler ins W-Register NOP MOVWF PORTA ; W-Register auf PORT A ausgeben XORLW H'00' ; Komplement bilden MOVWF PORTB ; Komplement auf PORT B ausgeben DECF dy,1 ; dy um eins erniedrigen MOVF dy,1 ; Prüfen auf 0 und Zero-Flag setzen BNZ SchleifeBegin NOP ; ende end
Könnt ihr mir helfen?
Danke Vinc







Zitieren

Lesezeichen