Ich hab also das Problem das er meiner Meinung nach eigentlich dy auf PORTA ausgeben sollte! Und da er das ja nach dem MOVWF PORTA ja noch im Accu hat sollte das mit der Komplementierung kein Problem sein! Die anschließende Ausgabe auf PORTB müsste dann ja auch noch möglich sein, schließlich hat der das ja alles noch im Accu und kanns direkt schreiben.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 BCF STATUS, RP0 ; auf Bank 0 zurückschalten CLRF PORTA ; alle Port A Latches ausschalten CLRF PORTB ; 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'FF' ; 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
Ich versteh einfach nicht wieso der das nicht hinkriegt!!
*heul*







Zitieren

Lesezeichen