PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ansteuerung Port D PIC16F877



DarkFire
17.10.2005, 17:17
Hallo!

Ich bin neu auf diesem Gebiet und habe mir vor kurzem einen PIC16F877 zugelegt.
Nun wollte ich in Assembler ein erstes kleines Testprogramm schreiben, in dem ich alle Pins (0-7) des Port D als Ausgänge definiere und High anlege, um ein Led zum Leuchten zu bringen.
Nur gelingt mir das ganze nicht so wirklich.
Kann mir einer von euch vielleicht helfen, bzw. erklären wie ich das in Assembler hinbekomme?
Kennt jemand ein gutes Tutorial für Anfänger?

Danke im Voraus
Chris

PICture
17.10.2005, 19:53
Hallo DarkFire!
Schau, bitte, dort: http://www.sprut.de
MfG

stowoda
18.10.2005, 10:53
Hey, unter http://www.microchip.com/ gibs auch Tutorials!

DarkFire
18.10.2005, 17:54
Also, ich habe mir einmal das Beispiel mit dem LED-Lauflicht auf Spruts page angeschaut.


bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 schalten
clrf PORTB ; alle LEDs ausschalten
bsf PORTB,0 ; LED an RB0 einschalten

So steht das dort auf Port B bezogen.
Kann ich das dann einfach wie folgt auf Port D ändern?


bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw D'00000000' ; PortB alle output
movwf TRISD
bcf STATUS, RP0 ; auf Bank 0 schalten
clrf PORTD ; alle LEDs ausschalten
bsf PORTD,0 ; LED an RB0 einschalten

Außerdem komme ich mit dem "Bank"-System des PICs nicht ganz klar.
Könnte mir das jemand erklären?

Chris

Max W.
18.10.2005, 18:46
Hallo,
Das stimmt nicht ganz. Die zweite Zeile muss:

movlw B'00000000'

heißen.
Dann sollte es meiner Meinung nach funktionieren.

MfG

Max W.

DarkFire
18.10.2005, 20:13
Und für was steht das movlw B'00000000' ?
Ich habe es so probiert, nur wenn ich es in meinen PIC übertrage, bzw. brenne, und danach an die Ports die LEDs anschließe, leuchten immer nur die an Pin 1, 3 und 5. Kann es sein, das mein PIC vielleicht einen Defekt hat?
Gibt es im MPLAB Suite die Möglichkeit einer Simulation?
Wenn ja, wie?

stowoda
18.10.2005, 23:27
Hey!

Es kann alles der Fall sein.
Die Leds können kaputt sein, sie können falsch gepolt sein, die Leiter können einen Wackelkontackt haben .. und und und..
Ich bezweifle allerdings, dass der PIC einen Defekt hat, ich denke er würde sonst überhaupt nicht funktionieren.



MOVLW Kopiere einen Zahl (L) nach W
Syntax: MOVLW k
Bedeutung: Die Zahl k wird in das Arbeitsregisters W geschrieben
Beispiel: MOVLW 5 ; Der Wert 5 wird in das Arbeitsregister geschrieben

Das Ganze stammt von http://www.sprut.de/electronic/pic/assemble/befehle.html#movlw


Hallo DarkFire!
Schau, bitte, dort: http://www.sprut.de
MfG


Wenn Du wirklich etwas lernen möchtest dann solltest Du es auch alleine versuchen. Auf der schon zig mal genannten Seite findest Du alles was Du brauchst um mit den PIC's vertraut zu werden.

Es soll nicht so klingen als ob wir Dir nicht helfen wollten, aber solche trivialen Sachen solltest Du Dir selbst erschließen können.

Übrigens hast Du Dir nicht grade den leichtesten PIC ausgesucht für den Anfang. Ein 16F84 oder besser 16F88 wäre, denk ich weitaus mehr angebracht.

Gruß
lk


Achso..
Lade Dir unbedingt das Datenblatt runter und drucke es am besten aus!