Vėlavimas su 16F84a

H

hassan1980

Guest
Kaip padaryti, kad 31 dienų vėlavimo, naudojant 16F84A? Prašome padėti man.
 
Tiesiog sukurkite daugiau "skaitikliai", tai yra failo registrus, kad gauti decremented. Pavyzdžiui, jei jūsų laikrodis 32.768kHz ir jei jūs naudojate TMR0, turinčioje 32 prescaler, tada jis bus perkrautas į: 32768/4/32/256 = 1 sekundė. Tai reiškia, kad kiekvieną kartą, TMR0 perpildymo žinote, kad antras praėjo Kiekvieną kartą, perpildymas, jūs Mažėja skaitiklis (inicializuoti tam tikrą skaičių). Pavyzdžiui, jei jūs inicijuoti, kad registras iki 60, tada kiekvieną kartą ji pasieks nulį žinote minutės jau praėjo. Tada, kai šis skaitiklis pasiekia nulį, jūs Mažėja kitą skaitiklis, kuris skaičiuoja minutes. Kai 60 minučių praėjo, jūs turite 1 val. Ir taip toliau, iki 31 dienų. Dėl skirtinga kristalo dažnį, jums tiesiog reikia patikslinti pirmąją skaitikliai gauti antra, jei norite. Kitas daro tai būdas yra tiesiog apskaičiuoti instrukcija ciklų skaičių per laikotarpį jums reikia, ir tiesiog naudokite dvejetainiai skaitikliai, jei jums nereikia rūpintis sekundes ir minutes.
 
galite naudoti realaus laiko laikrodis RTC (lustą), pvz DS1307 ar PCF8583. šiuo atveju jūsų laikmatis veiks net kai galia prarasti.
 

Welcome to EDABoard.com

Sponsor

Back
Top