Forum: Mikrocontroller und Digitale Elektronik Erster Versuch Assembler Code


von Jens M. (Firma: vzdub) (jens-mander)


Lesenswert?

Hallo an alle!

Ich habe letztes Wochenende mir die Velleman K8048 Pogrammierplatine 
gkauft und nun meinen ersten Assembler Code geschrieben.
Der Code ist recht simpel dennoch funktioniert er nicht so wie er 
sollte.

Funktion des Programms:
Eine LED soll invertiert werden d.h. wenn man keinen Taster betätigt 
soll die LED an sein.
Wenn man den Taster betätigt soll sie aus gehen.

Wenn das Programm läuft passiert genau das Gegenteil. Es muss wohl noch 
ein grundlegender Fehler vorhanden sein.

Mein Code:

       list                            p=16f627
       #include                        <p16f627.inc>

       __CONFIG                        _BODEN_ON & _CP_OFF & 
_DATA_CP_OFF
& _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _XT_OSC

                       movlw           B'00000111';digital inputs!
                       movwf           CMCON

                       bsf             STATUS,RP0   ;switch to
Bank1


                       movlw           B'11000000'   ;RB0-RB5
are Outputs
                       movwf           TRISB

                       movlw           B'11111111' ;RA0-RA7
are Inputs
                       movwf           TRISA

                       bcf             STATUS,RP0 ;switch to Bank0

                       clrf            PORTB ;clear all outputs


HAUPT             btfss           PORTA,0
                       goto            JA

NEIN                bsf             PORTB,0
                       goto            HAUPT

JA                    bcf             PORTB,0
                       goto            HAUPT

                       end

von holger (Gast)


Lesenswert?

Wenn der Taster an 0 GND Masse angeschlossen ist musst du
JA und NEIN vertauschen.

von Jens M. (Firma: vzdub) (jens-mander)


Lesenswert?

Vielen Dank für deine Antwort.
Die Taster schalten 5V.

---->http://www.audiodesignguide.com/Robot/schem1.jpg

von holger (Gast)


Lesenswert?

>Eine LED soll invertiert werden

Sorry das hatte ich übersehen.
Dein Code wäre richtig wenn der Taster gegen
GND schaltet. Du musst immer noch JA und NEIN
vertauschen.

von Jens M. (Firma: vzdub) (jens-mander)


Lesenswert?

Danke Holger du hast auf jeden Fall recht.

Also liegt am Eingang des PIC 5V an und es müsste eigentlich nach Masse 
geschaltet werden?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.