Hallo allemaal,

Op internet liep ik tegen deze site aan. Nu wil ik deze klok graag bouwen en wanneer alles werkt zou ik hem kunnen bouwen met leds of numitrons.

Nu zitten er al een aantal fouten in. Zo zijn de aansluitingen voor de knopjes op rb3 tm 6 en niet 1 tm 4.
Op de foto staan diodes die we in het schema niet terug vinden. De led staat ook niet op het schema en zo mist er dus het e.e.a.

Om het uit te testen heb ik de boel opgebouwd in Proteus simulatiesoftware. Hij kan de multiplexing volgensmij niet aan, maar de segmenten knipperen onregelmatig in de stand 1004.

Tot dusver hoeft dit geen probleem te zijn.

Maar wanneer ik op de knoppen klik gebeurt er helemaal niks. Het lijkt wel of hij niet eens in het gedeelte keyscan van het ASM programma komt. In de text staat veel uitleg.

Kan iemand mij uitleggen wat ik verkeerd doe of klopt het programma niet?(ik zie geen fout...)

Alvast bedankt!

edit: ik heb de schrijver hierover gemailt ca 1,5week geleden. Nog geen reactie..

Door het progje te simuleren in MPLAB kun je gemakkelijk zien of hij in het keyscan-gedeelte komt.
Wat mij opvalt is dat tijdens het scannen de ingangen voor de toetsen volgens mij allemaal laag blijven.
In het schema staan geen pull-ups en in het progje zag ik zo gauw ook niets staan m.b.t. interne pull-ups??

Okee, ik heb het met MPLAB geprobeerd.
Ik heb MPLAB SIM gebruikt als debugger. Wanneer ik die laat lopen loopt hij over alle GOTO commando's heen. Iets wat mij een beetje vreemt lijkt. Dus ook wanneer er niet voorstaat 'skip if zero'.
Dus wanneer ik simuleer loopt hij het programma van boven naar beneden af en begint daarna weer gewoon bovenaan...

Wat doe ik nu fout?

Geen idee. Ik heb 'm er even in gezet en bij mij werken de goto instructies feilloos. Dit ondanks dat de tabs niet netjes stonden na het kopieren van de asm-tekst.
Heb je de file "16F84.INC" er wel bij gezet als header-file?

Klopt, stom, was ik vergeten. Al een tijd geleden dat ik met MPLAB heb gewerkt..
Zijn goto commando's werken allemaal wel goed inderdaad.
Vervolgens heb ik hem opnieuw geladen in Proteus Isis. Maar dit maakt totaal geen verschil. hij geeft nog steeds geen reactie op de knoppen..
De knoppen werken wel. Ze maken de poort 'active low'. Dat kan je zien doordat het vlakje van kleur verandert bij de schakelaar..

-edit- geprobeert of ze toevallig andersom moesten werken. Dus 5volt op knoppen gezet. geen verschil.

[Bericht gewijzigd door MAH op ]

Ik heb ondertussen geprobeert uit te zoeken hoe de diodes op de foto geplaatst zijn. Ze staan op de plaats van R8-11 met de anode richting de Uc. Andersom met 5v op de schakelaars maakt overgens geen verschil, hij geeft nog steeds geen reactie.

Ik heb hem nu versnelt in Proteus Isis lopen. Normaal vertraagt hij ca. 100x.

Toch gaat er ergens iets fout... maar wat?

edit: de klok werkt wel gewoon... hij springt op het goede moment van 10:04 naar 10:05

[Bericht gewijzigd door MAH op ]

De 16F84 heeft wel interne pull-ups op portb, dus als dat in de software goed geregeld is moet 't wel kunnen met die 4 toetsjes.
De klok loopt dus naar behoren, alleen de toetsen doen het niet?

[edit] Er zit wel verrekte weinig initialisatie in 't programma. Moeten die pull-ups niet aan gezet worden?

[edit2] Ik lees net in de datasheet Dat het RBPU bit in het option register gecleared moet worden. Waar gebeurt dat in 't progje?
[edit3] ja gevonden, staat in het 'start'gedeelte.

Je kunt de vier toetsen simuleren in MPLAB, en dan kijken hoe het programmaverloop is.

[Bericht gewijzigd door Zonnepaneeltje op ]

De RB pull-ups worden in regel 92 aangezet.

Op 14 januari 2007 13:00:45 schreef MAH:
De RB pull-ups worden in regel 92 aangezet.

Ja, en de 4 common cathodes worden ook uit gezet voordat naar keyscan wordt gesprongen. Dit is nodig omdat anders de pullups de displays zouden aansturen en de spanning dus niet hoog genoeg zou worden.

Die diodes op de print blijven voor mij een raadsel. Dat moeten gewoon weerstanden zijn zoals op 't schema staat.

Jaag hem gewoon door MPLAB heen en simuleer de toetsen, dat is 't makkelijkst.

[Bericht gewijzigd door Zonnepaneeltje op ]

in regel 92 staat movlw b'01010110' ;enable portb pull-ups. dat is dus rb1, 3, 5 en 6?

Ik kan niet vinden hoe ik met MPLAB SIM een ingang 1 kan maken. Moet nu even weg, ik ga zo verder zoeken.

Nee, zie datasheet. In het option-register is bit7 het RBPU-bit.
Als je dit bitje nul maakt krijgen alle pinnen van portb een weak pull-up.

Dat is dus in orde.

Met de Stimulus Controller kan ik nu dus de poortenRB3-6 'low' maken. Maar toen ging ik dus zoeken in welk register de tijd dan zou staan. Bij equates (r44) staat hrh equ 0x10 ;hours 10's . Maar moet 0x10 niet 0x0A zijn? dikke onzin. 10 komt na 0f |:(

Wanneer ik de poort aanklik die low moet worden, gebeur er niet zoveel. maar dat is natuurlijk ook niet zo vreemd. Aangezien er een timeset en een alarm set is.

Is het ook mogelijk om 2 poorten tegelijk 'low' te maken? Hoe dan?