Projekt odpočet času se zobrazením na 7-segmentovém displeji

Dobrý den, jsem nováček a žádám o nějakou radu na moji práci.
Mám za ukol, sestavit odpočet nastaveného času. Používám 4místný sedmisegmentový displej ( bez dvojtečky ) a nezobrazuju ani tečku.Na prvních dvou displejích jsou minuty a na dalších jsou sekundy. Tlačítkem nastavuji čas(jen minuty) a po stisku jineho se čas odpočvítává po sekundách.
Chtel bych se zeptat jakých systémem se dá realizovat v 8051 tato fukci. Byl bych moc rád, kdybste mi poradili nebo se podelili o vaše zkušenosti.
Děkuji.

:arrow_right: administrator: přejmenováno z "Odpocet casu"

Zdar, záleží co všechno umíš a jak to máš zapojené.
Potřebuješ umět číst/nastavovat piny procesoru, zobrazit 4místné číslo z paměti na disp. (řízení multiplexní, posuvné registry, nějaký řadič nebo snad má každý displej svuj port?).
Dále pracovat s timerem (jednotlivé módy), užitečné nikoli však nezbytné by bylo využití přerušení.

Nejdřív nám tedy pošli zapojení (včetně konkrétního typu mcu) a frekvenci krystalu/oscilátoru, od toho se odvíjí struktura programu.
Taky co z toho uvedeného výše umíš.

Omlouvám se za pozdní odepsání, ale nedostal jsem se k tomuto projektu. Zato ted na tom musím hoodně zapracovat.
K Hardwaru:
Procesor mi byl doporučen a tak budu používat AT89C52. K nemu zapojím 4místný tento displej(semic-shop.cz/semic-shop-cz/ … B10-435HOR )
Zapojení je pomocí 4 spínacích PNP tranzistoru. A číslo do displeje posílám přes dekodér ( bohužel momentálně nemohu najít přesně typ, ale to ihned dodám, popř. pokud o nejakem nevite… ?) Takze 4 vyvody z dekodéru a 4 bazové povedu na port procesoru. A na druhém portu budou 2 tlačítka ( 1 na nastavení času a druhé na spuštění času- popř pauzy). Popř. bych ještě zapojil na další port nejaký malý reproduktorek at zapípá při dokončeném odpočtu.
Dotaz k hardware. Chci procesor napájet baterii. A chtel bych se zeptat jestli neznáte nějaká doporučená zapojení, popř jaké baterie.
S frekvenci krystalu… Tento dotaz mě trochu zarazil. Myslel jsem, že procesor má krystal již v sobě… Nebo snad musím koupit externí??

K softwaru:
Zobrazovat číslo umím, pracovat s timerem a přerušením taky. ALe není mi pořádně jasne jak realizova funkci nastavení a následné odečítání po sekundách… Ale nejprve mi dělají problém ty hardwarové věci.Jakmile zapojení budu mít v eaglu, pošlu jej.
Doufám, že Vám nebudou vadit tyto dotazy, pokud vám budou připadat triviální.
Děkuji za každou radu.

Mcu nemívají integrované krystaly. Některé typy obsahují RC oscilátory, to ovšem neplatí o atmeláckých x51. Připojení krystalu je na str.12 datasheetu, který nalezneš na atmel.com/dyn/products/produ … rt_id=1931

Pro počítání vteřin je vhodné využít některý z timerů.
89C52 obsahuje 3 timery, timer2 umí auto-reload.
Např. při krystalu 12MHz čítá timer rychlostí 1e6 kroků/s. To se ovšem do 16-bit timeru nevejde (65536). Ovšem např. 1e6/16 = 62500. To je celé číslo, které se již do timeru vejde. Stačí tedy nastavit čítač do módu auto-reload aby se po každém přetečení nastavila hodnota 62500-1 v případě čítání dolů nebo 65535-62500 pro počítání vzhůru. Jakmile napočítáš 16 přetečení, odečteš 1 vteřinu a je to.