Autor Thema: Frequenzzähler LED PIC 16F628  (Gelesen 3762 mal)

Offline pummi

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Frequenzzähler LED PIC 16F628
« am: Oktober 24, 2013, 19:19:56 Nachmittag »
Hallo
Habe mir einen Frequenzzähler mit 4 LED Display aufgebaut.Da mir die Anzeige etwas zu dunkel war habe ich nun 4 mal PNP Transistoren an den Anoden angehangen. Alles soweit OK, nur das ich jetzt die Software für den Pic 16F628A ändern muss.
Auf der Seite von Sprut habe ich gelesen daß man die Ports RA0-RA3 invertieren muss .Wenn ich nicht irre war da was mit
BSF PORTA,3
BSF PORTA,2
BSF PORTA,1
BSF PORTA,0
aber wo und an welcher Stelle füge ich das ein.
Ich benutze MPLAPS .
Eine ASM datei habe ich erstellt mit PIC DIASM und habe auch schon herausgefunden wie man etwas ändert und daraus wieder eine Hex datei erstellt.

Gruß Silvio

Offline cockpit123

  • Newbie
  • *
  • Beiträge: 5
    • Profil anzeigen
Re: Frequenzzähler LED PIC 16F628
« Antwort #1 am: Oktober 24, 2013, 20:03:36 Nachmittag »
Hallo,

die Frage an welcher Stelle, kann ich nicht beantworten da ich das Programm nicht kenne.

bsf PORTA,0 usw. setzt den Ausgang auf H.
bcf den Ausgang auf L.

Also einfach s durch c ersetzten dann ist die Logik invertiert und die LED’s sollten dann bei bcf leuchten.

Offline pummi

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Re: Frequenzzähler LED PIC 16F628
« Antwort #2 am: Oktober 27, 2013, 10:10:10 Vormittag »

Danke schon mal.
Nur kann ich leider keinen BCF oder BSF im zusammenhang mit PortA finden.
Aus einer anderen ASM datei habe ich zu diesem Punkt Macros gefunden aber auch diese irgendwo einfügen klappt nicht.



#define   Treiber         ; Treibertransistor vorhanden

; Makros
#ifdef Treiber
; das sind die Makros fuer ein LED-Display mit Treibertransistoren an den Anoden
#define   Ziffer0_aus   bsf   PORTA, 3   ; Ziffer0 aus
#define   Ziffer1_aus   bsf   PORTA, 2   ; Ziffer1 aus
#define   Ziffer2_aus   bsf   PORTA, 1   ; Ziffer2 aus
#define   Ziffer3_aus   bsf   PORTA, 0   ; Ziffer3 aus
#define   Ziffer0_an   bcf   PORTA, 3   ; Ziffer0 an
#define   Ziffer1_an   bcf   PORTA, 2   ; Ziffer1 an
#define   Ziffer2_an   bcf   PORTA, 1   ; Ziffer2 an
#define   Ziffer3_an   bcf   PORTA, 0   ; Ziffer3 an

#else
; das sind die Makros fuer ein LED-Display mit direkter Ansteuerung der Anoden ohne Treiber
#define   Ziffer0_aus   bcf   PORTA, 3   ; Ziffer0 aus
#define   Ziffer1_aus   bcf   PORTA, 2   ; Ziffer1 aus
#define   Ziffer2_aus   bcf   PORTA, 1   ; Ziffer2 aus
#define   Ziffer3_aus   bcf   PORTA, 0   ; Ziffer3 aus
#define   Ziffer0_an   bsf   PORTA, 3   ; Ziffer0 an
#define   Ziffer1_an   bsf   PORTA, 2   ; Ziffer1 an
#define   Ziffer2_an   bsf   PORTA, 1   ; Ziffer2 an
#define   Ziffer3_an   bsf   PORTA, 0   ; Ziffer3 an

#endif


Gruß Silvio

 


* Recent Topics