Vertraging bij 16F84a

H

hassan1980

Guest
Hoe om vertraging te maken 31 dagen, met behulp van 16F84A?

Please help me.

 
Maak gewoon meer "loketten", dat is het bestand dat de registers krijgen verlaagd.
Bijvoorbeeld, als uw klok is 32.768kHz en als je het gebruik TMR0 met een prescaler van 32, dan zal het overflow in: 32768/4/32/256 = 1 seconde.Dat wil zeggen, elke keer TMR0 overflows je weet dat er een tweede is verstreken
Elke keer als het overloopt, je decrement een teller (geïnitialiseerd met een bepaald aantal).Bijvoorbeeld, als u dat register initialiseren tot en met 60, dan elke keer nul is bereikt u weet dat een minuut is verstreken.Dan, als deze teller op nul staat, kunt u decrement een andere teller, die minuut telt.Wanneer de 60 minuten zijn verstreken, heeft u 1 uur.
En zo verder, tot 31 dagen.

Voor een ander kristal frequentie, je moet alleen de tellers te passen eerste-tweede verkrijgen, indien u dat wenst.

Een andere manier van doen is het geven van instructie cycli op eenvoudige wijze berekenen van het aantal in de periode die u nodig hebt en gebruik gewoon binaire tellers, als je niet schelen seconden en minuten.

 
U kunt gebruik maken van real-time klok RTC (chip) zoals DS1307 of PCF8583.
in dit geval uw timer werkt zelfs wanneer de stroom verloren.

 

Welcome to EDABoard.com

Sponsor

Back
Top