BCD Zähler
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  Programmiersprache Assembler  |  BCD Zähler « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: BCD Zähler  (Gelesen 2178 mal)
 
Otto
Newbie
*
Offline Offline

Beiträge: 20



Profil anzeigen
« am: September 03, 2010, 11:54:54 »

ich möchte einen BCD Zähler programmieren.
Eine Taste am Port A1 soll aufwärts zählen, eine Taste am Port A2 abwärts. Die Ausgabe soll am Port B 2,3,4,5 als LSB und am Port B 6,7,8 als MSB (bis dez. 64) ausgegeben werden.
Wie vorgehen?
Danke und GRuss
Otto
Gespeichert
Otto
Newbie
*
Offline Offline

Beiträge: 20



Profil anzeigen
« Antworten #1 am: September 04, 2010, 21:54:37 »

ich habe die Sache insofern hinbekommen, dass der PIC einwandfrei rauf und runterzählt, über einen XOR Test auch bei 63 und bei 00 stoppt. Die Ausgabe ist allerdings in Binär, nicht BCD.

Ich würde nun noch die Wandlung Binär BCD benötigen. Wenn hier niemand helfen kann, so muss ich wieder zu einem EPROM greifen welches am Eingang die Binärwerte hat und der Ausgang eben die BCD Zahl 2stellig ausgibt.
Schade, dass hier niemand weiss, wie ich den PIC dazu bringe BCD auszugeben.
Gruss
otto
Gespeichert
Edson
Globaler Moderator
Sr. Member
*****
Offline Offline

Beiträge: 373



Profil anzeigen
« Antworten #2 am: September 05, 2010, 09:06:13 »

Schade, dass hier niemand weiss, wie ich den PIC dazu bringe BCD auszugeben.

Hallo Otto,

ich kann dir versichern, daran liegt es nicht. Zu dem Thema finden sich etliche Beiträge, auch in der allgemeinen, zu deiner Frage passenden Form. Der Grund für die ausbleibenden Antworten ist aus meiner Sicht darin begründet, dass du keinerlei Bezug auf die verwendete Hardware nimmst.
Gerade für eine Assembler-Lösung ist das eine wesentliche Information.

Gib also bitte an, welchen PIC du verwendest und wie die beiden 7-Segment-Anzeigen daran angeschlossen sind.

Grüße,
Edson
Gespeichert
Otto
Newbie
*
Offline Offline

Beiträge: 20



Profil anzeigen
« Antworten #3 am: September 05, 2010, 20:27:25 »

hallo edson,
danke für den Hinweis!
Ich meinte den PIC 16F84 bzw. die anderen dazu passenden Nachfolger. Den Code kann ich ja schnell portieren.

Mein 16F 84 gibt ja schon den Binärcode aus, bis 63 (ich benötige nicht mehr) also 6 BIT breit. Ich mlchte aber, um ein externes EPROM zu vermeiden, den PIC die Arbeit machen lassen und am PORT B 2x4BIT als BCD Code ausgeben, also von 00-63
Ich habe mal einige amerikanische Seiten über Google gesucht, da ist allerhand dabei. Ich muss nun versuchen, mich durch die Programme durchzufinden.
Es wäre natürlich besser, wenn ich schon hier in Deutsch einen Codeschnipsel finden würde.
Die Suchfunktion gibt mir aber nichts aus!

Auf einer Amiseite habe ich eine interessante Variante gefunden, mit addwf PLC,f und dann den retlw, also den Code im Programmzähler abgelegt. Werde ich mal probieren.

Vielleicht aht jemand eine bessere Idee?
Gruss
Otto
« Letzte Änderung: September 05, 2010, 22:44:42 von Stampede » Gespeichert
Otto
Newbie
*
Offline Offline

Beiträge: 20



Profil anzeigen
« Antworten #4 am: September 07, 2010, 12:41:11 »

ich habe mich im Netz umgesehen und einen Binär-BCD Wandler für 8 Bit gefunden.
Ich habe das Programm auf meinen Bedarf umgeschrieben, es funkt gut!
Der PIC gibt nun ein zweistelliges BCD Wort aus.
Ich würde den Codeschnipsel hier einstellen, ich weiss nur nicht wie ich das machen soll.
Das Programm (Auszug) liegt bei mir als einfache Textdatei vor.
Gruss
Otto
Gespeichert
Lux
Jr. Member
**
Offline Offline

Beiträge: 87



Profil anzeigen WWW
« Antworten #5 am: September 20, 2010, 20:04:39 »

Hi Otto,
einfach beim Posten auf "Erweiterte Optionen" klicken und unten im Feld deine Textdatei laden.
Das sollte reichen, Syntax Hervorhebung sollte dann jeder selber hin bekommen  Zwinkernd

Siehe:


* sadasnt.PNG (8.4 KB, 653x141 - angeschaut 123 Mal.)
Gespeichert

www.PIC-Projekte.de Projekt Vorstellungen | PIC-µC-Forum
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.033 Sekunden mit 17 Zugriffen.
 
Top! Top!