mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC16F84A-04 Programm anhand PAP schreiben


Autor: Sven Angel (dj-skydriver)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.?

Autor: Tino N. (tino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss es unbedingt Assembler sein ?

Autor: Sven Angel (dj-skydriver)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Mein Ausbilder hat es so vorgesehen. Assembler und mit MP/LAB 
Programmieren.

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
    list  p=pic16f84,f=inhx8m,n=85,st=off
        ;gültiger prozessor = PIC16F84
    include <ip16f84.inc>
    __config _xt_osc&_pwrte_on&_cp_off&_wdt_off
        ;xt-oscillator 4MHz, power-on-timer aktiv
        ;watchdog und codeprotection inaktiv

;-------konstanten definition------------------------------------------------
;
xy  equ  H'00'
;
;-------variablen definition-------------------------------------------------
;
  cblock  H'0020'

  endc
;
  cblock  H'0030'
    temp1, temp2
    temp3, temp4
  endc
;
;
;-------bit definition-------------------------------------------------------
;
#define blah  porta, 3    ;datenleitung
;
;-------startvektoren--------------------------------------------------------
;
  org  H'0000'
  goto  anfang
  org  H'0004'
  goto  anfang
  org  H'0010'    ;starte mit programmcode ab adresse H'0010'

Autor: 16F84A (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das Grundgerüst findest Du in der Datei 16F84ATEMP.ASM irgendwo im 
Ordner Microchip - suchen und öffnen!

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sergey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundgerüst findest du bei Sprut, er hat einige Lernbeispiele mit 16F84.
http://www.sprut.de/electronic/pic/programm/laufli...

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

Autor: Sergey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sven Angel (dj-skydriver)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende Pull-Down Widerstände für die Taster. Somit könnte ich die 
Pull Option des PIC´s ja deaktivieren

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.