This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:display:lcd_alphanumeric [2010/02/08 14:18] – Links to et:software:library:module:lcd_alphanumeric changed to et:software:homelab:library:module:lcd_alphanumeric mikk.leini | et:examples:display:lcd_alphanumeric [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Teksti LCD====== | ||
| + | //Vajalikud teadmised: [HW] [[et: | ||
| + | |||
| + | ===== Teooria ===== | ||
| + | |||
| + | Teksti LCD ehk alfabeetiline LCD on vedelkristall-ekraan (inglise keeles //liquid crystal display//), mis on ette nähtud tähtede ja numbrite kuvamiseks. Inglise keeles nimetatakse seda kui // | ||
| + | |||
| + | Põhiline iseloomustaja on alfabeetilise LCD juures tema segmentide paigutus. Ekraan on jagatud paljudeks indikaatoriteks. Igal indikaatoril on kas piisavalt palju segmente tähtede ja numbrite kuvamiseks või moodustub see väikeste ruudukujuliste segmentide (pikslite) maatriksist. Näiteks 5x7 pikslisest maatriksist piisab kõigi numbrite, ladina tähestiku ja täppidega tähtede kuvamiseks. Indikaatoreid on tavaliselt 1-4 rida ja 8-32 tulpa. Igal indikaatoril on väike vahe sees, täpselt nagu tekstis tähtedelgi. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | Alfabeetiline LCD ekraan koosneb peale ekraani enda veel ka kontrollerist, | ||
| + | |||
| + | Alfabeetilised LCD ekraanid on üldjuhul passiivmaatriksiga, | ||
| + | |||
| + | ===== Praktika ===== | ||
| + | |||
| + | Kodulabori digitaalse mooduli külge ühendub 2x16 märgiline alfabeetiline LCD WC1602A. Ekraani juhtimiseks on 4-bitine andmesiin ja 3 juhtviiku, kuid selle suhtlusprotokoll on liiga mahukas, et seda siinkohal lahti seletada. Lihtsuse huvides on ekraani kasutamiseks Kodulabori teegis olemas vastavad funktsioonid, | ||
| + | |||
| + | Esimene asi, mis ekraani kasutamiseks teha tuleb, on see algseadistada. Vastavaks otstarbeks on funktsioon // | ||
| + | |||
| + | Järgnev programmikood demonstreerib alfabeetilise LCD kasutamist kellana. Kellaaeg algab alates " | ||
| + | |||
| + | <code c> | ||
| + | // | ||
| + | // Kodulabori alfabeetilise LCD kasutamise näide. | ||
| + | // LCD-le kuvatakse kellaaeg programmi algusest alates. | ||
| + | // | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // | ||
| + | // Põhiprogramm | ||
| + | // | ||
| + | int main(void) | ||
| + | { | ||
| + | int seconds = 0; | ||
| + | char text[16]; | ||
| + | |||
| + | // LCD ekraani seadistamine | ||
| + | lcd_alpha_init(LCD_ALPHA_DISP_ON); | ||
| + | |||
| + | // LCD ekraani puhastamine | ||
| + | lcd_alpha_clear(); | ||
| + | |||
| + | // Programmi nimi | ||
| + | lcd_alpha_write_string(" | ||
| + | |||
| + | // Lõputu tsükkel | ||
| + | while (true) | ||
| + | { | ||
| + | // Sekundite teisendamine kellaaja kujule | ||
| + | // hh:mm:ss | ||
| + | sprintf(text, | ||
| + | (seconds / 3600) % 24, | ||
| + | (seconds / 60) % 60, | ||
| + | seconds % 60); | ||
| + | |||
| + | // Kellaaja teksti kuvamine LCD teise rea alguses | ||
| + | lcd_alpha_goto_xy(0, | ||
| + | lcd_alpha_write_string(text); | ||
| + | |||
| + | // Sekundi suurendamine 1 võrra | ||
| + | seconds++; | ||
| + | |||
| + | // Riistvaraline paus 1000 millisekundit | ||
| + | hw_delay_ms(1000); | ||
| + | } | ||
| + | } | ||
| + | </ | ||