PIC16F88 Einsteiger Problem

Gast #308615
Lesenswert?

Hi,
habe bisher den PIC16F84 in Assembler programmiert und wollte jetzt auf
den PIC16F88 umsteigen.
Ein kleines Programm test88.asm ist im Anhang beigefügt (blinker an
portb). Das Programm enthält auch die Fuses-Einstellungen.
Probleme:
1. Das Programm läuft, aber anscheinenend mit internem Oszillator
   Der Takt lässt sich mit externen RC-Netzwerk nicht beeinflussen.
2. Es blinken nur die LEDs Nr.0 bis 5 am portb, LEDs Nr.6 und 7 sind
   dauernd an (=1)
Vermute dass irgendwas mit der Initialisierung nicht stimmt.
Programmierung erfolgte mit ICprog und JDM-Programmer mit geschaltetem
Vcc.
Kann mir jemand helfen?
reinhardt
Angehängte Dateien:
Gast #308616
Lesenswert?

Hallo..

Also das mit den Pins RB6 und RB7 könnnte daran liegen, dass diese beim
PIC16F88 als analoge Eingänge fungieren(siehe Datenblatt Seite 11). Und
mir kommt vor, dass du nirgends den ADC abgeschalten hast, aber ich sag
es gleich... ich kann kein ASM ;-)

Warum das mit dem RC-Glied nicht funktioniert, kann ich dir leider
nicht sagen, da ich es nie benutze.

mfg schoasch
Gast #308617
Lesenswert?

Hi,

kenne das Problem,
ich verwende den CC5X Compiler und habe Projekte, die auf dem PIC16F84
problemlos laufen auf dem 16F88 nicht zum laufen bekommen. Ich habe
herausgefunden, dass man zuerst die Eingänge von analog auf digital
umschalten muss, dann funktioniert der Pic16f88 auch genauso wie der
16f84.
In CC5X geht das folgendermaßen:
man setzt einfach das ANSEL Register auf 0 und dieses möglichst gleich
ganz oben in der Main. Ausser man möchte den AD verwenden..

ANSEL=0;

das sollte in Assembler kein Problem darstellen eine 0 in das ANSEL
Register zu schieben.

Sebastian Miesner
Gast #308618
Lesenswert?

Hallo Sebastian,
vielen Dank für deinen Tipp. Hatte aber die ANSEL Register schon
richtig eingestellt.
Bei mir war das Problem die Programmierschaltung:
Beim ..f88 muss die Betriebsspannung +5V beim Programmiervorgang
geschaltet werden, beim ..f84 jedoch nicht.
Nachdem ich die Programmierschaltung umgebaut habe funktioniert alles
bestens.
Viele Grüße
R.
Gast #578662
Lesenswert?

Hallo,
ich bin auch ein Anfänger und will gerade ein Programm vom PIC16F84 auf 
den 16F88 "umschreiben" und habe wohl auch das Problem mit dem ANSEL=0. 
wie setze ich das aber auf 0? Im Hauptprogramm einfach ANSEL=0; ? ich 
verwende CC5x als Compiler.

THX
Sebastian
Gast #578755
Lesenswert?

Hi

Programmierst du in C oder auch ASM? In C wärs
1
ANSEL=0;
Und in ASM weis ich es gerade nicht. Da müsstest du wohl zuerst 0 ins 
W-Register schreiben und dann ins ANSEL-Register verschieben/kopieren.

mfg SChoasch

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren