Teplomer s LCD - project - Diversant Software

Logo DSW
Logo DSW
Logo DSW
Prejsť na obsah

Teplomer s LCD - project

Projekty > 8051 > Programy
LCD Teplomer

Teplomer je osadený osvedčeným mikroprocesorom AT89C4051, alebo AT89LP4052 s radičom HD44780. Teplotný snímač je DS1624, alebo DS1631 od Maxim Integrated. Zároveň je osadený hodinovým obvodom DS1307 ktorý je zálohovaný pred výpadkom napájania 3V líthiovou batériou typ CR2032. V prípade použitia špecializovaného hodinového obvodu DS12887A od firmy Dallas Semiconductor je súčasťou obvodu integrovaná batéria výrobcom so zaručenou životnosťou asi 10 rokov. Kontakty výstupného relé DIP05-1A72-12L môžu ovládať elektrické spotrebiče o výkone max. 200V/1A.

Program pre AT89C4051 si môžete stiahnúť kliknutím na nižšie uvedenú ikonu.
Hlavným problémom nielen na procesore 8051 býva pomerne komplikovaná inicializácia z 8-bitového do 4-bit módu. Po prvom zapnutí na napájanie je totiž LCD nastavený na 8-bit komunikačný mód. Prvá inštrukcia (stále je však LCD v 8-bit móde) spôsobí prepnutie na 4-bit režim. Keďže bity LCD display-a DB0-DB3 sú na GND, tak LCD dostane len hornú časť inicializačného bytu a dolné 4 bity sú DB0-DB3=0000B. Ak potrebujeme nastaviť aj spodnú štvoricu bitov, musíme celú inicializáciu opäť zopakovať tentoraz už vo 4-bit móde. Od teraz už možno komuninovat len v 4-bit móde. Čo sa ale stane pri ISP programovaní, kedy sa celá jednotka procesora zresetuje, zatiaľ čo LCD zostáva stále v 4-bit móde. Procesor sa bude pokúšať zapísať prvú inicializáciu v 8-bit móde (jeden impulz na vývode E) čím dôjde k rozsynchronizovaniu. Preto sa buď musí vždy po programovaní, alebo resete procesora odpojiť a pripojiť napájanie radiča display-a, alebo vykonať zložitejší inicializačný proces. To predstavuje odoslať celú inicializačnú sekvenciu v 8-bit móde (DB4-DB7=0010B), ale ako keby 4-bitovo. Ak bol LCD display predtým v 4-bit móde, korektne sa prepne do 8-bit módu a pokiaľ sa jednalo o jeho prvé zapnutie, tak prvý E impulz (dátové bity DB4-DB7) nevykonajú nič (LCD je v 8-bit móde) a druhý impulz pochopí LCD ako ďalšiu inštrukciu. Ešte pred druhým impulzom sa však musia DB4-DB7 nastaviť na kombináciu DB4-DB7=0000B a so t=40us oneskorením (vykonanie prvej inštrukcie). Keďže ostatné dátové vodiče sú na log.0, LCD bude inštrukciu 00000000 B ignorovať. Po uplynutí t=1.64ms je už možné vykonať samotnú inicializáciu LCD display-a.
Aktualizácia údajov bola vykonaná dňa 15.04.2024.
Logo DSW
Logo DSW
Návrat na obsah