Ich soll bis Morgen ein PIC-Programm anhand des Programmablaufplanes mit Assembler entwerfen. PIC 16F84A-04 wird in der Schaltung verwendet. Kann mir da mal jemand helfen, wie ich dabei vorgehe? Grundgerüst ect.?
Muss es unbedingt Assembler sein ?
Ja. Mein Ausbilder hat es so vorgesehen. Assembler und mit MP/LAB Programmieren.
Gast
#1603364
Na wenn dir dein Ausbilder diese Aufgabe gegeben hat, dann wirst du ja schon mal in Assembler programmiert haben bzw. dein Ausbilder wird davon ausgehen, dass du diese Aufgabe lösen kannst. Und da du ja schon Assembler kennst, dann kennst du auch ein Grundgerüst für diesen PIC. Hausaufgaben werden hier eigentlich generell nicht beantwortet. Wenn du eine konkrete Frage zu einem Unterproblem hast, gerne her damit. Grundgerüst:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
Gast
#1603375
Hallo, das Grundgerüst findest Du in der Datei 16F84ATEMP.ASM irgendwo im Ordner Microchip - suchen und öffnen!
Gast
#1603377
http://www.sprut.de/electronic/pic/assemble/assembler.html Das minimale Template reicht völlig. und schau dir noch das button-debounce an, http://www.rentron.com/Myke6.htm
Gast
#1603394
Grundgerüst findest du bei Sprut, er hat einige Lernbeispiele mit 16F84. http://www.sprut.de/electronic/pic/programm/lauflicht/lauflich.htm Da es sich beim 16F84 um einen PIC mit rein digitalen I/Os handelt, musst du auch keine Ports initalisieren (bis auf die I/O Richtung, also ob es ein Eingang oder Ausgang sein soll, das machst du im Register TRISA/TRISB) Dazu musst du dir besonders die Bank-Umschaltung ansehen, denn TRIS-Register liegen in Bank 1, PORT-Register in Bank 0. Normalerweise musst du bei so einfachen Aufgaben nur am Anfang deine Ports einstellen, danach bleibst du in Bank 0, da dieser PIC auch nicht soviel RAM hat, dass du es über andere Banks adressieren musst. Schau dir besonders diese Befehle an: BTFSS = Bit test file, skip if set = Teste ein Bit in einem Register, überspringe den nachfolgenden Befehl falls gesetzt (falls es 1 ist) BTFSC = Bit test file, skip if clear = Teste ein Bit in einem Register, überspringe den nachfolgenden Befehl falls leer (falls es 0 ist) BSF = Bit set file = Setze ein Bit (schreib eine 1 in das Bit) in einem Register BCF = Bit clear file = Lösche ein Bit (schreib eine 0 in das Bit) in einem Register Diese Befehle wendest du jetzt ganz einfach auf die Port-Register an: BTFSS/BTFSC => Damit schaust du, ob ein bestimmter Pegel anliegt BSF/BCF => Damit gibst du einen bestimmten Pegel aus
Gast
#1603397
PS: nochwas vergessen... je nachdem ob du externe Pullups hast (Hochzieh-Widerstände) an Leitungen mit Tastern verwendest kannst du diese im PIC aktivieren/deaktivieren. Wenn du keine verwendest, empfiehlt es sich, die im PIC zu aktivieren.
Ich verwende Pull-Down Widerstände für die Taster. Somit könnte ich die Pull Option des PIC´s ja deaktivieren
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
