Hallo zusammen,
bin absouluter Anfänger was Assembler und das programmieren von
Mikrocontrollern.Villeicht kann mir einer bei helfen.
Benutze das mp lab ide von microchip.
Möchte als erstens Eingänge und Ausgänge definieren .Hab das so gemacht
aber etwas stimmt nicht. Danke im Voraus bin für jede Hilfe dankbar.
Grüss Caine
list p=16f877 ;der Prozessortyp wird festgelegt
include "p16f877.inc" ;inkluzivi podatci
org 0x00
goto main
init
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw D'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 schalten
clrf PORTB ; alle LEDs ausschalten
clrf w
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw C'11111111' ;PortB alle output
movwf TRISC
bcf STATUS, RP0 ; auf Bank 0 schalten
end
d.caine schrieb: > org 0x00 > goto main > > init > > bsf STATUS, RP0 ; auf Bank 1 umschalten Wo ist denn dein "main"? Und 'goto' ist doch auch bei Microship kein Assembler Befehl, oder? Da kommt doch bestimmt irgend ein Jump-Befehl zur Sprungmarke 'init' hin. Ich kenne mich leider mit den PIC's und Microchips Assembler nicht aus. Steffen
Hallo Caine, > Möchte als erstens Eingänge und Ausgänge definieren .Hab das so gemacht > aber etwas stimmt nicht. Danke im Voraus bin für jede Hilfe dankbar. WAS stimmt nicht? > goto main Muss heissen "goto init" 1. Du hast nur von In auf Out umgeschaltet, aber nicht definiert, ob die Portausgaenge H oder L sein sollen 2. bei PIC mit ADC musst Du zusaetzlich dort noch ein Configurationsbit setzen, steht aber prima im Datenblatt! Ausserdem kannst Du in MPLAB im Simulator genau sehen was passiert, dann schreib hier bitte nicht "IRGENDWAS" stimmt nicht! Gruss Michael
list p=16f877
#include <P16f877.INC>
org 0x00
Init
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'00000000' ; PortB alle output
movwf TRISD
bcf STATUS, RP0 ; auf Bank 0 schalten
clrf PORTD ; alle LEDs ausschalten
clrf W
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'11111111' ; PortC alle input
movwf TRISC
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
goto main
main
end
So jetzt habe ich alles...der Fehler war das ich C'00000000' gemacht
habe weil ich dachte ..Port C also C'00000000' . Is aber quatsch B steht
nämlich für ein Zahlenwert von 0 bis 7 mit trisc setze ich dann diesen
wert bei port c . main und goto noch hinzugefügt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.