Šolski center Ptuj Poklicna in tehniška elektrošola Seminarska naloga Ptuj, april 1999 Milan Bukšek
Šolski center Ptuj
Poklicna in tehniška elektro šola
Seminarska naloga
Ptuj, april 1999 Milan Bukšek
2
3
Šolski center Ptuj
Poklicna in tehniška elektro šola
Seminarska naloga
Ptuj, april 1999 Milan Bukšek
4
Šolski center Ptuj
Poklicna in tehniška elektro šola
Seminarska naloga
Prikazovalniki na tekoèe kristale( LCD prikazovalniki )
Kandidat : Milan Bukšek
VIP Elektrotehnik elektronik
Mentor : Rudolf Weinzerl, univ. dipl. ing. el.
Ptuj, april 1999
5
Navodila za uporabo prikazovalnikov
6
VSEBINA
1. UVOD……………………………………………………………………………………………...8
1.1. Nekaj primerov uporabe LCD prikazovalnikov………………………………………11
1.2. Karakteristièni podatki nekaterih LCD prikazovalnikov……………………………..15
2. DELO Z LCD DISPLEJI s kontrolerjem HD44780…………………………………………..31
2.1. Kontroler HD44780…………………………………………………………………...31
2.1.1. Karakteristike LCD prikazovalnikov s kontrolerjem HD44780………32
2.1.2. LCD moduli z vezjem HD44780……………………………………...32
2.1.3. Registri………………………………………………………………...33
2.1.4. Busy flag (BF)………………………………………………………...33
2.1.5. Naslovni š tevec (AC)………………………………………………….35
2.1.6. Èasovno vezje…………………………………………………………35
2.1.7. Podatkovni RAM (DD RAM)………………………………………...35
2.1.8. Karakter generator ROM (CG ROM)…………………………………37
2.1.9. Karakter generator RAM (CG RAM)…………………………………37
2.1.10. Vezje za pogon displeja……………………………………………….37
2.2. Prikljuèitev LCD modula na mikroprocesor (µP)…………………………………….40
2.2.1. Inicializacija…………………………………………………………...43
2.2.2. Programiranje…………………………………………………………45
2.2.3. Opis inš trukcij…………………………………………………………46
2.3. Prikazovalniki na tekoèe kristale š e malo drugaèe……………………………………50
2.3.1. Za zaèetek tehnièni podatki…………………………………………...51
2.3.2. Prikljuèevanje…………………………………………………………51
2.4. Princip delovanja LCD prikazovalnikov……………………………………………...53
2.5. Rezultat seminarske naloge…………………………………………………………...55
2.5.1. Stikalni naèrt…………………………………………………………..55
2.5.2. Diagram poteka programa…………………………………………….58
2.5.3. Program………………………………………………………………..59
2.5.4. Opis prikljuèevanja mikrokontrolerja in LCD prikazovalnika………..64
7
3. ATMEL 89C2051………………………………………………………………………………..65
3.1. Glavne znaèilnosti mikrokontrolerja………………………………………………….65
3.2. Opis prikljuèkov mikrokontrolerja……………………………………………………66
3.3. Èasovniki / š tevci……………………………………………………………………..69
4. C JEZIK………………………………………………………………………………………….69
4.1. Opis uporabljenih ukazov C jezika…………………………………………………...69
5. PREVAJALNIK…………………………………………………………………………………73
6. PROGRAMATOR PG302
ZA PROGRAMIRANJE ÈLANOV DRUŽINE 80C51 IN AVR…………………………….74
6.1. Elektronika……………………………………………………………………………75
6.1.1. Elektrièna shema………………………………………………………75
6.1.2. Gradnja in umerjanje………………………………………………….76
6.1.3. Izdelava serijskega kabla za povezavo s PC in napajalnega kabla……77
6.1.4. ISP (In-System-Programming) – programiranje mikrokontrolerjev v
ciljnem sistemu………………………………………………………..78
6.2. Programska oprema…………………………………………………………………...78
6.2.1. Nameš èanje programa v PC…………………………………………...78
6.2.2. Nastavitve programa (Setup)………………………………………….79
6.2.3. Programiranje…………………………………………………………80
7. ZAKLJUÈEK……………………………………………………………………………………82
Uporabljena literatura…………………………………………………………………………….82
8
1. UVOD
Prikazovalniki na tekoèe kristale se uporabljajo že dalj èasa. Proizvaja jih veè proizvajalcev v
množici oblik in dimenzij, od najmanjš ih pa do pravih zaslonov. Raznolikost ponudbe, sprejemljiva
cena in majhna poraba so prednosti, ki so jih izkoristili mnogi projektanti elektronskih naprav in
danes lahko najdemo LCD displeje v š tevilnih napravah od telefonov, telefaksov, ur pa do merilnih
instrumentov itd.
V zadnjem èasu je tudi v domaèih trgovinah možno najti LCD prikazovalnike raznih dimenzij
in sprejemljivih cen, tako da so postali dostopnejš i tudi doma. Zato bodo elektroniki gotovo veèkrat
segli po njih, bodisi za profesionalno uporabo ali pa za hobby.
Kot smo že omenili, proizvajalci izdelujejo LCD prikazovalnike, ki se razlikujejo po:
• obliki
• dimenziji oz. velikosti
• š tevilu prikaznih vrstic
• š tevilu in obliki prikazanih znakov
Primeri:
9
• napajanju (razlièni tipi prikazovalnikov se napajajo z razliènimi napetostmi)
• naèinu prikazovanja (npr. navadni-sploš ni, grafièni, barvni prikazovalnik)
Primeri:
- navaden-sploš ni prikazovalnik
- grafièni prikazovalnik
- barvni prikazovalnik
10
• vrsti tekoèih kristalov (npr. TN, NTN, STN)
• vidljivosti pod razliènimi zornimi koti (npr. TN, NTN, STN)
- TN tekoèi kristali: tukaj vidni kot znaš a 40° pri gledanju iz vodoravne lege navzgor
- NTN tekoèi kristali: tukaj vidni kot znaš a 35° pri gledanju iz vodoravne lege navzgor in
35° pri gledanju iz vodoravne lege navzdol oz. celoten kot znaš a 70°
- STN tekoèi kristali: tukaj vidni kot znaš a pri gledanju iz vodoravne lege 25° navzgor in
50° navzdol oz. celoten kot znaš a 75°
• tem, ali ima kontrolno vezje (kontroler) ali ne
• po š tevilu bit-ov kontrolerja oz.vrsti naslavljanja (4-bitno, 8-bitno) itd.
Kateri prikazovalnik bomo uporabili, pa je odvisno od namena uporabe prikazovalnika oz. od
namena uporabe naprave, v katero bo prikazovalnik vgrajen.
11
1.1. Nekaj primerov uporabe LCD prikazovalnikov:
- (brezžiène-radijske) elektronske vremenske naprave (merjenje temperature, vlage, rose, zraènega
pritiska, hitrosti vetra, smeri vetra, nivoja padavin in èasa)
- roène, stenske in namizne ure, š toparice, kolesarski raèunalniki
12
- audio in video tehnika (CD playerji, avtoradio,daljinski upravljalec,…)
- pisarniš ka oprema (kalkulatorji, databanki, monitorji za osebne raèunalnike,…)
13
- komunikacijska tehnika (roène radijske CB postaje, prenosne radijske postaje,…)
- navigacijska tehnika (GPS sistemi, elektronski kompas,…)
14
- merilna tehnika
15
1.2. Karakteristièni podatki nekaterih LCD prikazovalnikov
Tabela 1: Grafièni LCD prikazovalniki
Obseg Model Obseg Celotna Vidna Velikost Trajanje Napajanje Polarizatortoèk prikaz. znakov velikost površina toèke periode
32*120 LM51 4*20 152*56*15 90*32 0,65*0,75 1/32 +5/-5 DAS5V764*120 LM53 8*20 124*64*15 70,5*39,5 0,48*0,48 1/32 +5/-5 DAS5V764*240 LM54 8*40 180*75*15 132*39 0,48*0,48 1/32 +5/-5 DAS5V7
LM83 8*40 180*75*15 132*39 0,48*0,48 1/64 +5/-10 DAS5V764*480 LM95 8*80 290*73*12 246*38 0,45*0,45 1/64 +5/-12 DAS5V14128*256 LM56 16*40 200*110*12 128*66,5 0,43*0,43 1/64 +5/-12 DAS5V14
LM656 16*40 211*110*15 128*66,5 0,43*0,43 1/64 +5/-12 DAS12F06128*480 LM57 16*80 290*110*12 237*67 0,43*0,43 1/64 +5/-12 DAS5V12200*320 LM650 25*40 166*110*16 125*79 0,33*0,33 1/200 +5/-20 DAS12F06200*640 LM89 25*80 270*130*12 247*95 0,34*0,40 1/100 +5/-12
LM91 25*80 265*200*12 215*160 0,28*0,73 1/100 +5/-15 DAS5V11LM205 25*80 270*110*12 240*79 0,33*0,33 1/200 +5/-20 DAS5V11
25*80 215*163 1/200 DAS5V1125*80 240*79 1/200 DAS12F0625*80 215*163 1/200 DAS12F0625*80 215*163 1/200 DAS12F06
LM213 270*210*14,5 0,33*0,386 +5/-22LM218 254*170*13 0,27*0,27 +5/-22LM638 265*170*15 0,27*0,27 +5/-22LM643 281*210*16 0,33*0,386 +5/-22LM858 263*170*18 0,27*0,27 +5/-23LM853 281*210*18 0,33*0,386 +5/-23
480*640 60*80 220*166 1/240 DAS5V1660*80 220*166 1/240 DAS12F0660*80 271*204*18 220*166 0,30*0,30 1/240 +5/+35 DAS12F06
Vse mere so v milimetrih
Tabela 2: Barvni LCD prikazovalniki
Obseg Model Obseg Celotna Vidna Velikost Trajanje Napajanjetoèk prikaz. znakov velikost površina toèke periode
200*640 LM8310 25*80 292*199*30 218*138 0,09*0,64 - +7/+38400*640 LM8308 50*80 292*199*30 218*138 0,09*0,31 - +7/+38480*640 LM8309 60*80 292*227*30 218*165 0,09*0,31 1/400 -
Vse mere so v milimetrih
16
Tabela 3: TN+NTN prikazovalniki
Vrsta Model Višina Trajanje Podroèje Celotnaprikaz. prikaz. periode vidljivosti
viš.*dol. (mm) viš.*dol.*šir.(mm)
LM65 4,51 35,0*15,0 58,0*32,0*12,0LM12 5,8 1/11 63,5*15,8 85,0*36,0*12,0LM61 5,8 1/8 64,5*13,8 80,0*36,0*12,0LM67* 6,6 1/16 64,5*13,8 80,0*36,0*12,0LM71 8,01 1/16 99,0*13,0 115,0*35,0*10,0
LM107* 5,55 1/16 63,5*13,8 85,0*36,0*13,5LM108 4,51 1/16 57,0*10,0 82,5*23,0*10,0LM2012 4,85 1/11 63,5*13,8 85,0*36,0*9,6LM2015 5,95 1/8 64,5*13,8 80,0*36,0*11,0LM2020 5,95 1/16 64,5*13,8 80,0*36,0*11,0
1*16
LM2128 8,06 1/16 99,0*13,0 122,2*33,2*11,0LM68 3,8 1/8 63,3*13,8 80,0*36,0*12,0
LM105 4,5 1/16 64,5*13,8 80,0*36,0*10,01*20
LM106 5,9 1/16 99,0*13,0 115,0*35,0*10,01*24 LM13 7,96 1/11 93,5*15,8 118,0*36,0*13,0
LM109 8,45 1/11 141,2*16,8 174,5*31,0*14,01*32 LM2132 5,8 1/11 123,5*16,5 174,5*31,0*11,2
LM14 7,96 1/11 154,5*15,8 182,0*33,5*13,01*40 LM2131 5,8 1/11 152,2*16,5 182,0*33,6*11,21*80 LM18 3,31 1/8 207,0*16,0 264,0*50,0*15,02*8 LM70* 3,8 1/16 35,0*15,0 58,0*32,0*12,0
LM22* 5,81 1/16 63,5*15,8 85,0*36,0*12,0LM66* 4,85 1/16 61,0*15,8 84,0*44,0*15,0
LM2016 4,85 1/16 61,0*16,0 84,0*44,0*11,0LM2022 4,85 1/16 63,5*15,8 85,0*36,0*10,3
2*16
LM2230 8,06 1/16 99,0*24,0 122,0*44,0*12,0LM69* 4,85 1/16 83,0*18,6 116,0*37,0*13,0
2*20 LM2215 5,55 1/16 82,8*18,5 116,2*44,2*11,0LM23* 4,51 1/16 93,5*15,8 118,0*36,0*13,0
2*24 LM2227 4,8 1/16 93,5*15,8 118,0*36,0*11,0LM110* 5,1 1/16 141,2*16,8 174,5*31,0*14,0
2*32 LM2017 5,1 1/16 141,2*16,7 174,5*31,0*11,2LM24* 4,45 1/16 154,5*15,8 182,0*33,5*13,0
LM2218 5,55 1/16 152,2*16,5 182,0*33,6*11,22*40
LM2402 4,59 1/16 130,8*13,2 149,4*27,0*8,12*80 LM28* 3,31 1/8 207,0*16,0 264,0*50,0*15,0
LM73* 4,15 1/16 61,8*25,2 87,0*60,0*14,04*16 LM2433 4,75 1/16 61,8*25,2 87,0*60,0*11,0
LM2434 4,75 1/16 76,0*25,5 98,8*60,2*11,04*20 LM2043 4,016 1/16 58,6*21,0 77,0*47,0*11,5
LM44* 4,85 1/16 160,0*34,0 215,0*60,0*17,54*40 LM2457 4,89 1/16 147,0*29,5 190,0*54,0*11,04*80 LM48* 4,15 1/16 227,0*33,0 290,0*88,0*15,0
17
Tabela 4: Mehaniène dimenzije TN+NTN prikazovalnikov
Vrsta Model A B C D E F G H J K L M N P Q R S T U V W Poz.prikaz. prikaz. (φφ) pin-a
1*8 LM65 6 53 2,5 45 27,8 35 4,1 11,5 32 27 2,5 28,6 6 5 13,5 15 8,5 12 1,4 4,7 2,5 PP2
LM12 85 80 2,5 73,5 59,4 63,5 2,05 13,2 36 31 2,5 28 7,88 8,7 13,6 15,8 10,1 9,3 1,4 4,7 2,5 PP2
LM61 80 75 2,5 73,5 58,7 64,5 2,9 8,3 36 31 2,5 27 5,5 8,7 13,6 13,8 11,4 12 1,4 5 2,5 PP1
LM67 80 75 2,5 73,5 59,5 64,5 2,5 8,2 36 31 2,5 27 8 6,2 15,2 13,8 11,4 12 1,4 5 2,5 PP1
LM71 115 110 2,5 107,5 94,9 99 2,1 8 35 30 2,5 25 10 7,95 13,5 13 11 10 1,4 4,78 2,5 PP1
LM107 85,5 80 2,5 73,5 59,45 63,5 2,05 13,2 36 31 2,5 28,5 7,8 7,15 14,4 15,8 10,1 11 1,4 5 2,5 PP2
LM108 82,5 80,5 1 66,3 52,2 57 2,4 12,7 23 15 4 20,3 2 5,8 8,6 10 6,5 10 1,6 5 1,3 PP2
LM2012 85 80 2,5 71,5 59,45 63,5 2ali5 10,7 36 31 2,5 24 7,88 8,2 13,9 13,8 11,1 9,6 1,6 5 2,5 PP2
LM2015 80 75 2,5 71,5 59,45 64,5 2,525 7,75 36 31 2,5 27 8 5,24 10,4 13,8 11,1 11 1,6 5,5 2,5 PP1
LM2020 80 75 2,5 71,5 59,4 64,5 2,55 7,75 36 31 2,5 27 8 5,08 15,4 13,8 11,1 11 1,6 5,5 2,5 PP1
1*16
LM2128 122,2 115 3,6 106,2 90 99 4,5 11,6 33,2 25 4,1 23,6 12,48 7,67 12,7 13 10,1 11 1,6 5,7 3,5 PP1
LM68 80 75 2,5 71,3 53,5 63,3 4,9 8,35 36 31 2,5 25,5 8 4,9 15,5 13,8 11,2 12 1,4 5,3 2,5 PP1
LM105 80 75 2,5 73,5 59,45 64,5 2,525 7,75 36 31 2,5 27 8 5,8 15,1 13,8 11,1 10 1,6 5 2,5 PP11*20
LM106 115 110 2,5 107,5 91,1 99 3,95 8 35 30 2,5 25 12,5 7,6 13,7 13 11 10 1,6 4,7 2,5 PP1
1*24 LM13 118 113 2,5 108,5 89,4 93,5 2,05 15 36 31 2,5 28,5 7,88 8,7 13,6 15,8 10,1 9,3 1,4 4,7 2,5 PP2
LM109 174,5 167,5 3,5 156 133,6 141,2 2,54 19,6 31 24 3 29,5 7,88 10,5 10,2 16,8 9,07 13,4 1,4 4,7 3,5 PP2
1*32 LM2132 174,5 167,5 3,5 132,4 117,9 123,5 3 26 31 24 3,5 29 4,5 8,2 11,4 16,5 7,25 11,2 1,6 5,6 3,5 PP2
LM14 182 175 3,5 163,5 149,4 154,5 2,85 16,3 33,5 26,5 3,5 32,5 7 8,7 13,2 15,8 8,5 9,3 1,4 4,7 3,5 PP2
1*40 LM2131 182 175 3,5 161,4 147,5 152,2 2,35 17,2 33,6 26,5 3,55 32,4 7,88 8,2 12,7 16,5 8,55 11,2 1,6 5,6 3,5 PP2
1*80 LM18 264 256 4 242 199,5 207 3,73 34,5 50 42 4 33,6 6 5,23 21,8 16 16 15 2 5 3,5 PP6
2*8 LM70 58 53 2,5 45 25,6 35 4,7 11,5 32 27 2,5 28,6 6 9,6 11,2 15 8,5 12 1,4 4,7 2,5 PP2
LM22 85 80 2,5 73,5 59,4 63,5 2,05 13,2 36 31 2,5 28,5 7,88 12,3 11,8 15,8 10,1 9,3 1,4 4,7 2,5 PP2
LM66 84 76 4 75 56,2 61 2,4 11,5 44 36 4 34,5 8,2 11,5 14,7 15,8 12,6 15 1,4 5,8 2,5 PP3
LM2016 84 76 4 71,5 56,2 61 2,4 11,5 44 36 4 34,5 4 11,5 16,2 16 12,5 11 1,6 5,7 2,5 PP3
LM2022 85 80 2,5 71,5 56,2 63,5 3,65 13,2 36 31 2,5 31,5 7,88 11,5 12,2 15,8 10,1 10,3 1,6 5,3 2,5 PP2
2*16
LM2230 122 115 3,5 106 94,84 99 4,16 11,5 44 37 3,5 35,4 7,48 20 12 24 10 11 1,6 5,7 3,5 PP3
LM69 116 108 4 95 73,5 83 4,75 16,5 37 29 2,5 36 6,9 11,5 12,8 18,6 9,2 13 1,4 4,7 3,5 PP2
2*20 LM2215 116 108 4 91,8 75,4 82,8 3,7 16,6 44,2 29 7,6 35,2 5,9 11,5 16,3 18,5 12,9 11 1,6 5,7 3,5 PP3
LM23 118 113 2,5 108,5 89,4 93,5 2,05 15 36 31 2,5 28,5 7,88 12,3 11,8 15,8 10,1 9,3 1,4 4,7 2,5 PP2
2*24 LM2227 118 113 2,5 102 88,3 93,5 2,5 14 36 31 2,5 28,5 7,8 11,5 12,5 15,8 10 11 1,4 5,7 2,5 PP3
LM110 174,5 167,5 3,5 156 133,6 141,2 3,77 12,1 31 24 3,5 29,5 7,88 11,75 9,07 16,8 7,07 12 1,6 5,6 2,5 PP2
2*32 LM2017 174,5 167,5 3,5 155,4 133,6 141,2 3,775 16,6 31 24 3,5 29 4,38 11,75 9,62 16,7 7,15 11,2 1,6 5,6 3,5 PP2
LM24 182 175 3,5 163,5 149,4 154,5 2,85 16,3 33,5 26,5 3,5 32,5 7 12,3 10,6 15,8 8,5 9,3 1,4 4,7 3,5 PP2
LM2218 182 175 3,5 161,4 147,5 152,2 2,35 14,9 33,6 26,5 3,55 32,4 7,09 11,5 11 13,3 10,1 11,2 1,6 5,58 3,5 PP2
2*40 LM2402 149 144 2,5 138 126,3 130,8 2,25 9,1 26 20 3 23,5 / 9,6 8,2 13,2 6,4 8,1 1,6 3,55 2,5 PP1
2*80 LM28 264 256 4 242 195,5 207 3,73 34,5 50 42 4 33,6 6 9,04 19,5 16 16 15 2 5 3,5 PP6
LM73 87 82 2,5 85 56,2 61,8 2,8 12,6 60 55 2,5 42 7,5 20,8 19,6 25,2 17,4 14 1,4 4,7 2,5 PP1
4*16 LM2433 87 82 2,5 81,5 56,2 61,8 2,8 12,6 60 55 2,5 25,2 7,5 20,8 19,6 25,2 17,4 11 1,6 5,4 2,5 PP1
LM2434 98,8 93 2,9 97,7 70,4 76 2,8 11,4 60,2 55 2,6 55 7,5 20,8 19,7 25,2 17,4 11 1,6 5,7 2,8 PP1
4*20 LM2043 77 70 3,5 75,4 55 58,6 1,8 9,2 47 40 3,5 32,3 4,5 17,5 14,7 21,1 13 11,5 1,2 6 3 PP1
LM44 215 207 4 197 149,4 160 5,28 39,5 60 52 4 58 7,5 27,25 16,4 34 13 17,5 / 7,6 3,2 PP5
4*40 LM2457 190 183 3,5 166,8 140,4 147 3,27 21,5 54 47 3,5 43 14,61 23,2 15,4 29,5 12,3 11 1,6 5,7 3,5 PP4
4*80 LM48 290 280 5 264 220,3 227 3,33 36,5 88 78 5 52 8,7 23,5 32,3 33 27,5 15 1,5 5 3,5 PP7
Delovna temperatura, standard (TA) 0°C +50°C
Max. delovna temperatura -20°C +70°C
Prikazovalniki oznaèeni z zvezdico (*) so uporabni za gledanje pri veèjih zornih kotih.
18
Slika 1: Mehaniène dimenzije TN+NTN prikazovalnikov in pozicije pin-ov
Tabela 5: Prikljuèitev pin-ov pri TN+NTN prikazovalnikih
Signal Model prikazovalnika Signal Potencial FunkcijaPP8 PP7 PP6 PP5 PP4 PP1,2,3
Vss 1 2, 19 1 15, 16 13 1 Vss Masa Masa=0VVdd 2 4, 17 2 14 14 2 Vdd 5V Logièno stanje=5VVo 3 1 3 13 12 3 Vo - Napajanje za kontrastRS 4 3 4 11 11 4 RS L INST:H CHAR Izbira registrovRW 5 6 5 12 10 5 RW L WH R Izbira pisanje/branjeE1 6 10 6 9 9 6 E1 LATCHFALL Vžigni impulz
DBo 7 18 7 7 8 7 DBo HLDB1 8 15 8 8 7 8 DB1 HL Nižji 4-je biti.DB2 9 16 9 5 6 9 DB2 HL Podatkovno vodilo zaDB3 10 13 10 6 5 10 DB3 HL prenos podatkov.DB4 11 14 11 3 4 11 DB4 HLDB5 12 11 12 4 3 12 DB5 HL Višji 4-je biti.DB6 13 12 13 1 2 13 DB6 HL Podatkovno vodilo zaDB7 14 9 14 2 1 14 DB7 HL prenos podatkov.E2 16 7 16 10 15 E2 LATCHFALL Vžigni impulzNC 15 20 15 - 16 NC -
Slika 2: Primeri razporeditve pin-ov pri TN+NTN prikazovalnikih
19
Tabela 6: Pisalni cikel TN+NTN prikazovalnikov
PISALNI CIKELLastnosti Oznaka Min. Tip. Max. Enota
Enable Cycle Time tcyc E 1,0 / / µs(dovoljen èas periode)Enable Pulse Width PW E 450 / / ns
(dovoljena širina impulza)Enable Rise/Fall Time tEr, tEf / / 25 ns
(dovoljen èas dviga/padca)Address Set-up Time tAS 140 / / ns
(èas naslavljanja)Address Hold Time tAH 10 / / ns
(èas držanja)Data Start-up Time tDSW 195 / / ns
(èas aktiviranja podatkov)Data Hold Time tH 10 / / ns
(èas držanja podatkov)
Slika 3: Pisalni cikel TN+NTN prikazovalnikov
20
Tabela 7: Bralni cikel TN+NTN prikazovalnikov
BRALNI CIKELLastnosti Oznaka Min. Tip. Max. Enota
Enable Cycle Time tcyc E 1,0 / / µs(dovoljen èas periode)Enable Pulse Width PW E 450 / / ns
(dovoljena širina impulza)Enable Rise/Fall Time tEr, tEf / / 25 ns
(dovoljen èas dviga/padca)Address Set-up Time tAS 140 / / ns
(èas naslavljanja)Address Hold Time tAH 10 / / ns
(èas držanja)Data Delay Time tDDR / / 320 ns
(èas brisanja podatkov)Data Hold Time tDHR 20 / / ns
(èas držanja podatkov)
Slika 4: Bralni cikel TN+NTN prikazovalnikov
21
Tabela 8: STN prikazovalniki
Vrsta Model Višina Trajanje Napetost Podroèje Celotnaprikaz. prikaz. znaka (mm) periode vidljivosti velikost
viš.*dol. (mm) viš.*dol.*šir.(mm)
1*8 LM65 4,51 1/8 +5V 35,0*15,0 58,0*32,0*12,0LM12 5,8 1/11 +5V 63,5*15,8 85,0*36,0*12,0LM61 5,8 1/11 +5V 64,5*13,8 80,0*36,0*12,0LM67 6,6 1/16 +-5V ali +5V** 64,5*13,8 80,0*36,0*12,0LM71 8,01 1/16 +-5V ali +5V** 99,0*15,0 115,0*35,0*10,0
1*16
LM107 5,55 1/16 +-5V ali +5V** 63,5*13,8 85,0*36,0*13,51*20 LM68 3,8 1/8 5V 63,3*13,8 80,0*36,0*12,01*24 LM13 7,96 1/11 +5V 93,5*15,8 118,0*36,0*13,01*32 LM109 8,45 1/11 +5V 141,2*16,8 174,5*31,0*14,0
LM14 7,96 1/11 +5V 123,5*16,5 182,0*33,5*13,01*40 LM760 12,69 1/8 +5V 245*19,91 285,0*40,0*12,01*80 LM18 3,31 1/11 +5V 207,0*16,0 264,0*50,0*15,02*8 LM70* 3,8 1/16 +-5V ali +5V** 35,0*15,0 58,0*32,0*12,0
LM22* 5,81 1/16 +-5V ali +5V** 63,5*15,8 85,0*36,0*12,02*16 LM66 4,85 1/16 +-5V ali +5V** 61,0*15,8 84,0*44,0*15,02*20 LM69* 4,85 1/16 +-5V ali +5V** 83,0*18,6 116,0*37,0*13,02*24 LM23* 4,51 1/16 +-5V ali +5V** 93,5*15,8 118,0*36,0*13,02*32 LM110 5,1 1/16 +-5V ali +5V** 141,2*16,8 174,5*32,0*14,0
LM24* 4,45 1/16 +-5V ali +5V** 154,5*15,8 182,0*33,5*13,02*40LM780 12,69 1/16 +-5V 245,0*37,9 285,0*56,0*12,0
2*80 LM28 3,31 1/16 +-5V 207,0*16,0 264,0*50,0*15,04*16 LM73 4,15 1/16 +-5V ali +5V** 61,8*25,2 87,0*60,0*14,0
LM44 4,85 1/16 +-5V 160,0*34,0 215,0*60,0*17,54*40 LM790 13,69 1/16 +-5V 244,0*68,0 280,0*88,0*13,04*80 LM48 4,15 1/16 +-5V 227,0*33,0 290,0*88,0*15,0
Delovna temperatura, standard (TA) 0°C +50°C
Prikazovalniki oznaèeni z zvezdico (*) imajo možnost osvetlitve ozadja z LED diodami.
Prikazovalniki oznaèeni z dvema zvezdicama (**) lahko imajo simetrièno napajanje +-5V ali pa
samo asimetrièno 5V.Napajanje +5V je primerno za delovanje prikazovalnikov v temperaturnem
podroèju med 0°C in +40°C.
22
Tabela 9: Mehaniène dimenzije STN prikazovalnikov
Vrsta Model A B C D E F G H J K L M N P Q R S T U V W Poz.prikaz. prikaz. (φφ) pin-a
1*8 LM65 58 53 2,5 45 27,8 35 4,1 11,5 32 27 2,5 28,6 6 5 13,5 15 8,5 12 1,4 4,7 2,5 PP2
LM12 85 80 2,5 73,5 59,4 63,5 2,05 13,2 36 31 2,5 28 7,88 8,7 13,6 15,8 10,1 9,3 1,4 4,7 2,5 PP2
LM61 80 75 2,5 73,5 58,7 64,5 2,9 8,3 36 31 2,5 27 5,5 8,7 13,6 13,8 11,4 12 1,4 5 2,5 PP1
LM67 80 75 2,5 73,5 59,5 64,5 2,5 8,2 36 31 2,5 27 8 6,2 15,2 13,8 11,4 12 1,4 5 2,5 PP1
LM71 115 110 2,5 107,5 94,9 99 2,1 8 35 30 2,5 25 10 7,95 13,5 13 11 10 1,4 4,78 2,5 PP1
1*16
LM107 85,5 80 2,5 73,5 59,45 63,5 2,05 13,2 36 31 2,5 28,5 7,8 7,15 14,4 15,8 10,1 11 1,4 5 2,5 PP2
1*20 LM68 80 75 2,5 71,3 53,5 63,3 4,9 8,35 36 31 2,5 25,5 8 4,9 15,5 13,8 11,2 12 1,4 5,3 2,5 PP1
1*24 LM13 118 113 2,5 108,5 89,4 93,5 2,05 15 36 31 2,5 28,5 7,88 8,7 13,6 15,8 10,1 9,3 1,4 4,7 2,5 PP2
1*32 LM109 174,5 167,5 3,5 156 133,6 141,2 2,54 19,6 31 24 3 29,5 7,88 10,5 10,2 16,8 9,07 13,4 1,4 4,7 3,5 PP2
LM14 182 175 3,5 163,5 149,4 154,5 2,85 16,3 33,5 26,5 3,5 32,5 7 8,7 13,2 15,8 8,5 9,3 1,4 4,7 3,5 PP2
1*40 LM2131 182 175 3,5 161,4 147,5 152,2 2,35 17,2 33,6 26,5 3,55 32,4 7,88 8,2 12,7 16,5 8,55 11,2 1,6 5,6 3,5 PP2
1*80 LM18 264 256 4 242 199,5 207 3,73 34,5 50 42 4 33,6 6 5,23 21,8 16 16 15 2 5 3,5 PP6
2*8 LM70 58 53 2,5 45 25,6 35 4,7 11,5 32 27 2,5 28,6 6 9,6 11,2 15 8,5 12 1,4 4,7 2,5 PP2
LM22 85 80 2,5 73,5 59,4 63,5 2,05 13,2 36 31 2,5 28,5 7,88 12,3 11,8 15,8 10,1 9,3 1,4 4,7 2,5 PP2
2*16 LM66 84 76 4 75 56,2 61 2,4 11,5 44 36 4 34,5 8,2 11,5 14,7 15,8 12,6 15 1,4 5,8 2,5 PP3
2*20 LM69 116 108 4 95 73,5 83 4,75 16,5 37 29 2,5 36 6,9 11,5 12,8 18,6 9,2 13 1,4 4,7 3,5 PP2
2*24 LM23 118 113 2,5 108,5 89,4 93,5 2,05 15 36 31 2,5 28,5 7,88 12,3 11,8 15,8 10,1 9,3 1,4 4,7 2,5 PP2
2*32 LM110 174,5 167,5 3,5 156 133,6 141,2 3,77 12,1 31 24 3,5 29,5 7,88 11,75 9,07 16,8 7,07 12 1,6 5,6 2,5 PP2
LM24 182 175 3,5 163,5 149,4 154,5 2,85 16,3 33,5 26,5 3,5 32,5 7 12,3 10,6 15,8 8,5 9,3 1,4 4,7 3,5 PP2
2*40 LM2218 182 175 3,5 161,4 147,5 152,2 2,35 14,9 33,6 26,5 3,55 32,4 7,09 11,5 11 13,3 10,1 11,2 1,6 5,58 3,5 PP2
2*80 LM28 264 256 4 242 195,5 207 3,73 34,5 50 42 4 33,6 6 9,04 19,5 16 16 15 2 5 3,5 PP6
4*16 LM73 87 82 2,5 85 56,2 61,8 2,8 12,6 60 55 2,5 42 7,5 20,8 19,6 25,2 17,4 14 1,4 4,7 2,5 PP1
LM44 215 207 4 197 149,4 160 5,28 39,5 60 52 4 58 7,5 27,25 16,4 34 13 17,5 / 7,6 3,2 PP5
4*40 LM2457 190 183 3,5 166,8 140,4 147 3,27 21,5 54 47 3,5 43 14,61 23,2 15,4 29,5 12,3 11 1,6 5,7 3,5 PP4
4*80 LM48 290 280 5 264 220,3 227 3,33 36,5 88 78 5 52 8,7 23,5 32,3 33 27,5 15 1,5 5 3,5 PP7
Slika 5: Mehaniène dimenzije STN prikazovalnikov in pozicije pin-ov
23
Tabela 10: Prikljuèitev pin-ov pri STN prikazovalnikih
Signal Model prikazovalnika Signal Potencial FunkcijaPP8 PP7 PP6 PP5 PP4 PP1,2,3
Vss 1 2, 19 1 15 13 1 Vss Masa Masa=0VVdd 2 4, 17 2 14 14 2 Vdd 5V Logièno stanje=5VVo 3 1 3 13 12 3 Vo - Napajanje za kontrastRS 4 3 4 11 11 4 RS L INST:H CHAR Izbira registrovRW 5 6 5 12 10 5 RW L WH R Izbira pisanje/branjeE1 6 10 6 9 9 6 E1 LATCHFALL Vžigni impulz
DBo 7 18 7 7 8 7 DBo HLDB1 8 15 8 8 7 8 DB1 HL Nižji 4-je biti.DB2 9 16 9 5 6 9 DB2 HL Podatkovno vodilo zaDB3 10 13 10 6 5 10 DB3 HL prenos podatkov.DB4 11 14 11 3 4 11 DB4 HLDB5 12 11 12 4 3 12 DB5 HL Višji 4-je biti.DB6 13 12 13 1 2 13 DB6 HL Podatkovno vodilo zaDB7 14 9 14 2 1 14 DB7 HL prenos podatkov.E2 16 7 16 10 15 E2 LATCHFALL Vžigni impulzNC 15 20 15 - 16 NC -
Slika 6: Primeri razporeditve pin-ov pri STN prikazovalnikih
24
Tabela 11: Pisalni cikel STN prikazovalnikov
PISALNI CIKELLastnosti Oznaka Min. Tip. Max. Enota
Enable Cycle Time tcyc E 1,0 / / µs(dovoljen èas periode)Enable Pulse Width PW E 450 / / ns
(dovoljena širina impulza)Enable Rise/Fall Time tEr, tEf / / 25 ns
(dovoljen èas dviga/padca)Address Set-up Time tAS 140 / / ns
(èas naslavljanja)Address Hold Time tAH 10 / / ns
(èas držanja)Data Start-up Time tDSW 195 / / ns
(èas aktiviranja podatkov)Data Hold Time tH 10 / / ns
(èas držanja podatkov)
Slika 7: Pisalni cikel STN prikazovalnikov
25
Tabela 12: Bralni cikel STN prikazovalnikov
BRALNI CIKELLastnosti Oznaka Min. Tip. Max. Enota
Enable Cycle Time tcyc E 1,0 / / µs(dovoljen èas periode)Enable Pulse Width PW E 450 / / ns
(dovoljena širina impulza)Enable Rise/Fall Time tEr, tEf / / 25 ns
(dovoljen èas dviga/padca)Address Set-up Time tAS 140 / / ns
(èas naslavljanja)Address Hold Time tAH 10 / / ns
(èas držanja)Data Delay Time tDDR / / 320 ns
(èas brisanja podatkov)Data Hold Time tDHR 20 / / ns
(èas držanja podatkov)
Slika 8: Bralni cikel STN prikazovalnikov
26
Tabela 13: Prikazovalniki z osvetlitvijo ozadja
Vrsta Model Višina Trajanje Tok Podroèje Celotnaprikaz. prikaz. znaka (mm) periode LED diode vidljivosti velikost
(mA) viš.*dol. (mm) viš.*dol.*šir.(mm)
1*8 LM465 4,51 1/8 72,0 35,0*15,0 58,0*32,0*12,0LM407* 5,55 1/16 84,0 63,5*13,8 85,0*36,0*13,5LM412 5,8 1/11 168,0 63,5*15,8 85,0*36,0*12,0
°LM4012 4,85 1/11 30,0 63,5*13,8 85,0*36,0*9,6°LM4015 5,95 1/8 30,0 64,5*13,8 80,0*36,0*11,0°LM4020 5,95 1/16 30,0 64,5*13,8 80,0*36,0*11,0LM4128** 8,06 1/16 150,0 99,0*13,0 122,2*33,2*11,0
1*16
°LM4617 4,73 1/16 35,0 53,5*12,0 61,0*30,0*10,51*24 LM413 7,96 1/11 189,0 93,5*15,8 118,0*36,0*13,01*40 LM414 7,96 1/11 180,0 154,5*15,8 182,0*33,5*13,02*8 LM470* 3,80 1/16 72,0 35,0*15,0 58,0*32,0*12,02*12 °LM4221 4,95 1/16 15,0 44,5*15,5 55,7*50,0*13,0
LM422* 5,81 1/16 168,0 63,5*15,8 85,0*36,0*12,0°LM4016** 4,85 1/16 60,0 61,0*16,0 84,0*44,0*11,0°LM4022** 4,85 1/16 60,0 63,5*15,8 85,0*36,0*10,3
2*16
LM4230 8,06 1/16 190,0 99,0*24,0 122,0*44,0*12,02*20 LM469* 4,85 1/16 168,0 83,0*18,6 116,0*37,0*13,0
LM423* 4,51 1/16 189,0 93,5*15,8 118,0*36,0*13,02*24LM4227 4,80 1/16 180,0 93,5*15,8 118,0*36,0*11,0LM424* 4,45 1/16 180,0 154,5*15,8 182,0*33,5*13,0
2*40
4*16 °LM4433 4,75 1/16 60,0 61,8*25,2 87,0*60,0*11,0°LM4434** 4,75 1/16 60,0 76,0*25,5 98,8*60,2*11,04*20
LM4043 4,016 1/16 190,0 58,6*21,7 77,0*47,0*11,54*40 LM4457** 4,89 1/16 180,0 147,0*29,5 190,0*54,0*11,0
Lastnosti:
- Vsi prikazovalniki imajo vidljivost v š irš em zornem kotu.
- Prikazovalniki oznaèeni z eno zvezdico (*) vsebujejo STN kristale.
- Prikazovalniki oznaèeni z dvema zvezdicama (**) vsebujejo NTN kristale.
- Prikazovalniki oznaèeni s praznim krožcem (°) imajo omejeno (konstantno oz. nespremenljivo)
svetilnost ozadja, vsem drugim prikazovalnikom pa lahko svetilnost ozadja spreminjamo.
27
Tabela 14: Mehaniène dimenzije prikazovalnikov z osvetlitvijo ozadja
Vrsta Model A B C D E F G H J K L M N P Q R S T U V W Poz.prikaz. prikaz. (φφ) pin-a
1*8 LM465 58 53 2,5 45 27,8 35 4,1 11,5 32 27 2,5 28,6 6 5 13,5 15 8,5 12 1,4 4,7 2,5 PP2
LM407 85,5 80 2,5 73,5 54,45 63,5 2,05 13,25 36 31 2,5 28,5 7,8 7,15 14,43 15,8 10,1 11 1,4 5,0 2,5 PP2
LM412 85 80 2,5 73,5 59,4 63,5 205 13,25 36 31 2,5 28 7,88 8,7 13,65 15,8 10,1 9,3 1,4 4,7 2,5 PP2
LM4012 85 80 2,5 71,5 59,45 63,5 2ali5 10,75 36 31 2,5 24 7,88 8,2 13,9 13,8 11,1 9,6 1,6 5 2,5 PP2
LM4015 80 75 2,5 71,5 59,45 64,5 25,25 7,75 36 31 2,5 27 8 5,24 10,38 13,8 11,1 11 1,6 5,5 2,5 PP1
LM4020 80 75 2,5 71,5 59,4 64,5 2,55 7,75 36 31 2,5 27 8 5,08 15,46 13,8 11,1 11 1,6 5,5 0,25 PP1
LM4128 122,2 115 3,6 106,2 96 99 4,5 11,6 33,2 25 4,1 23,6 12,48 7,67 12,76 13 10,1 11 1,6 5,7 3,5 PP1
1*16
LM4617 61 53,5 2,0 53,5 41,6 45 1,7 3,75 30 24 2,5 23 - 4,7 14,8 12 6 11 - 6,5 2,5 PP2
1*24 LM413 118 113 2,5 108,5 89,4 93,5 2,05 15 36 31 2,5 28,5 7,88 8,7 13,65 15,8 10,1 9,3 1,4 4,7 2,5 PP2
1*40 LM414 182 175 3,5 163,5 149,4 154,5 2,85 16,3 33,5 26,5 3,5 32,5 7,0 8,7 13,25 15,8 8,5 9,3 1,4 4,7 3,5 PP2
2*8 LM470 58 53 2,5 45 25,6 35 4,7 11,5 32 27 2,5 28,6 6,0 9,6 11,2 15 8,5 12 1,4 4,7 2,5 PP2
2*12 LM4221 55,7 46,7 4,5 52,3 37,9 44,5 3,9 1,7 50,5 - - 25 - 4,95 - 11,7 - 13 - 6,6 2,5 PP5
LM422 85 80 2,5 73,5 59,4 63,5 2,05 13,25 36 31 2,5 28,5 7,88 12,3 11,85 15,8 10,1 9,3 1,4 4,7 2,5 PP2
2*16 LM4016 84 76 4 71,5 56,2 61 2,4 11,5 44 36 4,0 34,5 4 11,5 16,25 16 12,5 11 1,6 5,7 2,5 PP2
LM4022 85 80 2,5 71,5 56,2 65,5 3,65 13,25 36 31 2,5 31,5 7,88 11,5 12,25 15,8 10,1 10,3 1,6 5,3 2,5 PP2
LM4230 122 115 3,5 106 94,84 99 4,16 11,5 44 37 3,5 35,4 7,48 20 12 24 10 11 1,6 5,7 3,5 PP3
2*20 LM469 116 108 4 95 73,5 83 4,75 16,5 37 29 2,5 36 6,9 11,5 12,8 18,6 9,2 13 1,4 4,7 3,5 PP2
LM423 118 113 2,5 108,5 89,4 93,5 2,05 15 36 31 2,5 28,5 7,88 12,3 11,85 15,8 10,1 9,3 1,4 4,7 2,5 PP2
2*24 LM4227 118 113 2,5 93,5 88,3 93,5 2,6 7 36 31 3,75 28,5 - 11,5 - 15,8 - 15 - 4,3 2,5 PP2
LM424 182 175 3,5 163,5 149,4 154,5 2,85 16,3 33,5 26,5 3,5 32,5 7,0 12,3 10,6 15,8 8,5 9,3 1,4 4,7 3,5 PP2
2*40 LM4402 149 144 2,5 138 126,3 130,8 2,25 9,1 26 20 3 23,5 - 9,6 8,2 13,2 6,4 8,1 1,6 3,55 2,5 PP1
4*16 LM4433 87 82 2,5 81,5 56,2 61,8 2,8 12,6 60 55 2,5 25,2 7,5 20,8 19,6 25,2 17,4 11 1,6 5,4 2,5 PP1
LM4434 98,8 93 2,9 97,7 70,4 76 2,8 11,4 60,2 55 2,6 55 7,5 20,8 19,7 25,2 17,35 11 1,6 5,7 2,8 PP1
4*20 LM4043 77 70 3,5 75,4 55 58,6 1,8 9,2 47 40 3,5 32,3 4,5 17,5 14,75 21,1 12,95 11,5 1,2 6 3,0 PP1
4*40 LM4457 190 183 3,5 160,8 140,5 147 3,275 21,5 54 47 3,5 43 14,61 23,16 15,42 29,5 12,25 11 1,6 5,7 3,5 PP4
Slika 9: Primeri razporeditve pin-ov pri prikazovalnikih z osvetlitvijo ozadja
28
Slika 10: Mehaniène dimenzije prikazovalnikov z osvetlitvijo ozadja in pozicije pin-ov
Tabela 15: Prikljuèitev pin-ov pri prikazovalnikih z osvetlitvijo ozadja
Model Signal Potencial Funkcijaprikazovalnika
PP4 PP2 PP1, 3
13 1 1 Vss Masa Masa=0V14 2 2 Vdd 5V Logièno stanje=+5V12 3 3 Vo - Napajanje za kontrast11 4 4 RS L INST.H CHAR Izbira registrov10 5 5 RW L WH R Izbira pisanje/branje9 6 6 E1 LATCHFALL Vžigni impulz8 7 7 DBo HL7 8 8 DB1 HL Nižji 4-je biti.6 9 9 DB2 HL Podatkovno vodilo za5 10 10 DB3 HL prenos podatkov.4 11 11 DB4 HL3 12 12 DB5 HL Višji 4-je biti.2 13 13 DB6 HL Podatkovno vodilo za1 14 14 DB7 HL prenos podatkov.
15 NC - E2 LATCHFALL Vžigni impulz16 NC NC VLED +5V Nap. za osvetljenost ozadja
29
Tabela 16: Pisalni cikel prikazovalnikov z osvetlitvijo ozadja
PISALNI CIKELLastnosti Oznaka Min. Tip. Max. Enota
Enable Cycle Time tcyc E 1,0 / / µs(dovoljen èas periode)Enable Pulse Width PW E 450 / / ns
(dovoljena širina impulza)Enable Rise/Fall Time tEr, tEf / / 25 ns
(dovoljen èas dviga/padca)Address Set-up Time tAS 140 / / ns
(èas naslavljanja)Address Hold Time tAH 10 / / ns
(èas držanja)Data Start-up Time tDSW 195 / / ns
(èas aktiviranja podatkov)Data Hold Time tH 10 / / ns
(èas držanja podatkov)
Slika 11: Pisalni cikel prikazovalnikov z osvetlitvijo ozadja
30
Tabela 17: Bralni cikel prikazovalnikov z osvetlitvijo ozadja
BRALNI CIKELLastnosti Oznaka Min. Tip. Max. Enota
Enable Cycle Time tcyc E 1,0 / / µs(dovoljen èas periode)Enable Pulse Width PW E 450 / / ns
(dovoljena širina impulza)Enable Rise/Fall Time tEr, tEf / / 25 ns
(dovoljen èas dviga/padca)Address Set-up Time tAS 140 / / ns
(èas naslavljanja)Address Hold Time tAH 10 / / ns
(èas držanja)Data Delay Time tDDR / / 320 ns
(èas brisanja podatkov)Data Hold Time tDHR 20 / / ns
(èas držanja podatkov)
Slika 12: Bralni cikel prikazovalnikov z osvetlitvijo ozadja
31
2. DELO Z LCD DISPLEJI
s kontrolerjem HD44780
Krmiljenje LCD prikazovalnikov je sorazmerno zahtevno delo. Glede na naèin krmiljenja bi jih lahko
razvrstili v veè skupin, ena izmed njih so LCD prikazovalniki z vgrajeno krmilno elektroniko. Ta
skupina je š e najenostavnejš a za uporabo, saj LCD prikazovalnike iz te skupine lahko prikljuèimo na
vodilo mikroprocesorja kot vsako drugo vhodno/izhodno enoto. Najpogostejš e krmilno vezje, ki je
vgrajeno v take prikazovalnike, je LSI integrirano vezje HD44780. Namen tega zapisa je posredovati
tchniène podatke ter praktièna navodila za prikljuèitev ter programiranje LCD displejev z vgrajenim
vezjem HD44780.
2.1. Kontroler HD44780Da bi spoznali delovanje LCD prikazovalnikov, se bomo prvo seznanili z delovanjem njihovega
kontrolnega vezja HD44780. Naš mikroprocesor bo namreè kontaktiral samo z njim. Zato nas zanima
vse, kar se tièe povezave tega kontrolerja z naš im procesorjem, dostop do njega, programiranje,
spominski prostor in podobno. Kot uporabnike pa nas ne zanima, kako HD44780 naprej opravlja
kontrolo samega prikazovalnika.
LSI integrirano vezje HD44780 je vezje za krmiljenje prikazovalnikov na tekoèe kristale, ki
prikazujejo karakterje s toèkami razporejenimi v obliki matrike. Vezje izvaja vse funkcije, ki so
potrebne za krmiljenje prikazovalnikov in se navzven prikljuèi na 4-bitno ali 8-bitno vodilo
kontrolnega mikroraèunalnika. Omogoèa prikazovanje alfanumeriènih in ostalih karakterjev po
ASCII tabeli, možno pa je tudi kreirati razne grafiène znake ali simbole po lastni potrebi. Z
dodatnimi vezji HD44100H lahko prikaže do 80 karakterjev.
HD44780 je izveden v CMOS tehnologiji ( Pozor pri rokovanju! ) in v kombinaciji s CMOS
mikroraèunalniki lahko konstruiramo prenosne naprave z zelo nizko porabo energije za baterijsko
napajanje. Prikazovalniki so obièajno izvedeni v obliki modula s prikazovalno površ ino in tiskanino z
vgrajenim krmilnim vezjem. Na tiskanini so tudi prikljuèki za prikljuèitev na vodilo, obièajno za
spajkanje (slika 13).
32
2.1.1. KARAKTERISTIKE LCD PRIKAZOVALNIKOV S KONTROLERJEM HD44780 :
- možnost prikljuèitve na 4-bitno ali na 8-bitno vodilo;
- podatkovni RAM: 80 x 8 bitov (max. 80 karakterjev);
- karakter generator ROM: za 5 x 7 toèk (dvovrstièni prikazovalniki): 160 karakterjev,
za 5 x 10 toèk (enovrstièni prikazovalniki): 32 karakterjev;
- kontrolni procesor lahko bere podatke iz obeh spominov;
- množica ukazov: brisanje, vrnitev kurzorja, vklop/izklop kurzorja, utripanje karakterja,
vklop/izklop kazanja, pomik kazanja, pomik kurzorja;
- vgrajeno vezje za avtomatsko resetiranje ob vklopu.
2.1.2. LCD MODULI Z VEZJEM HD44780 :
l. Z eno prikazno vrstico:
- LM054 – LM015 - LM066 - LMS68F - H2570 - LM067 - LM020 – LM087LN - LM070 LM038 -
LM027 - H2571 - H2572.
2. Z dvema prikaznima vrsticama:
- LMl04L - LM052 - LM068 – LM0l6L LM086ALN – LM093LN – LM032L LMl0SL- LM06lL –
LM09lLN - LM060 - LM017L - LM107L - LM069L - LM018L - LM092LN.
3. S štirimi prikaznimi vrsticami:
- LM041L - LM044L.
Slika 13: Primeri razliènih veèvrstiènih prikazovalnikov
33
2.1.3. REGISTRI
Iz sheme na sliki 14 je razvidno, da ima HD44780 dva 8-bitna registra: IR - inš trukcijski register in
DR - podatkovni register.V inš trukcijski register se shranjujejo inš trukcije oziroma ukazi za
delovanje prikazovalnika, kot npr. pomik kurzorja, brisanje kazanja, utripanje kurzorja in podobno.
Sem se vpisujejo tudi naslovi podatkov za kazanje v podatkovnem RAM-u (DD RAM - data display
RAM) ter naslovi karakterjev v generatorju karakterjev (CG RAM - character generator RAM).
Kontrolni raèunalnik lahko vpisuje v inš trukcijski register, ne more pa iz njega brati.
Podatkovni register zaèasno shranjuje podatke za vpis v DD RAM ali CG RAM. Podatki, ki jih
raèunalnik vpiš e v podatkovni register (DR), se z interno operacijo avtomatsko vpiš ejo v DD RAM
ali CG RAM. Podatkovni register se uporablja tudi za zaèasno shranjevanje podatkov, ki se berejo iz
DD RAM-a ali CGRAM-a. Z vpisom naslova v inš trukcijski register se avtomatsko z interno
operacijo prenese podatek iz DD RAM-a ali CG RAM-a v podatkovni register. Prenos podatka se
konèa s tem, da kontrolni raèunalnik prebere podatek iz podatkovnega registra (DR). Ko raèunalnik
prebere podatek, se iz DD ali CG RAM-a prenese novi podatek iz naslednjega naslova v DR in je
tako pripravljen na novo branje raèunalnika. Register Select (RS) signal na vhodu izbira med vpisom
v inš trukcijski ali podatkovni register.
2.1.4. BUSY FLAG (BF)
Busy flag je zastavica, ki s svojo vrednostjo "1" oznaèuje, da HD44780 izvaja interno operacijo in da
ni dostopen za zunanje inš trukcije. Kot kaže tabela l8, se BF lahko prebere, kadar je RS = 0 in R/W =
l. Ker se vedno prebere 8 bitni podatek, je BF dostopna na podatkovnem bitu D7. Program v
raèunalniku mora zagotoviti, da poš lje novo inš trukcijo v displej š ele takrat, ko je vrednost BF enaka
"0".
Tabela 18: Selektiranje registrov
34
Tabela 19:Odvisnost pozicijekarakterja na displejuod njegovega naslovav DD RAM-u
35
2.1.5. NASLOVNI ŠTEVEC (AC)
Naslovni š tevec doloèa naslov podatka v DD RAM-u ali CG RAM-u. Ko kontrolni raèunalnik vpiš e
inš trukcijo z vsebovanim naslovom v inš trukcijski register, se podatek o naslovu prenese iz IR v
naslovni š tevec. Selektriranje med DD in CG RAM-om se izvede s prehodnim ukazom. Po vpisu ali
branju DD ali CG RAM-a se naslovni š tevec avtomatsko poveèa za 1 (ali zmanjš a za l, odvisno od
predhodne inš trukcije). Vrednost naslovnega š tevca se lahko prebere na podatkovnem vodilu, kadar
je RS = 0 in R/W = 1. Vrednost naslovnega š tevca v tem primeru zaseda podatkovne bite D0 - D6.
2.1.6. ÈASOVNO VEZJE
Èasovno vezje generira vse potrebne, èasovno usklajene signale za sinhronizacijo delovanja notranjih
blokov. Signale za branje DD RAM-a in pogon prikazovalnika se generira loèeno, da se prepreèi
medsebojne vplive. To vezje generira tudi signale za eventuelno dodatno prikljuèeno LSI vezje
HD44100H.
2.1.7. PODATKOVNI RAM (DD RAM)
Podatkovni RAM shranjuje podatke kot 8-bitno ASCII kodo za izpis na prikazovalniku. Kapaciteta
RAM-a je 80 x 8 bitov oziroma 80 karakterjev. Èe je prikazovalnik manjš i, ne more prikazati 80
karakterjev, lahko preostanek DD RAM-a uporablja kontrolni raèunalnik kot navaden RAM za
shranjevanje in branje tekoèih podatkov.
V tabeli 19 je prikazana odvisnost pozicije karakterja na displeju v odvisnosti od njegovega naslova v
DD RAM-u. Naslov karakterja v DD RAM-u je nastavljen v naslovnem š tevcu in je v tabeli zapisan
v heksadecimalnem zapisu.
Kot je že bilo reèeno,je maksimalno š tevilo ka rakterjev 80. Enovrstièni prikazovalnik ima torej lahko
v eni vrstici 80 karakterjev, ki jim v DD RAM-u pripadajo naslovi od 00h do 4Fh. Taki enovrstièni
displeji pa so redki, veèkrat se uporabljajo enovrstièni displeji z manjš im š tevilom karakterjev, kot
npr. z osmimi karakterji s tabele l9. Pri tem pripada zaèetni naslov 00h v DD RAM-u vedno skrajno
levemu karakterju na poziciji 1 na prikazovalniku, ne glede na to, koliko karakterjev lahko prikaže.
Pri pomiku kazanja, ki je tudi eden izmed ukazov za prikazovalnik, se pozicijam karakterjev na
prikazovalniku priredijo novi naslovi. Pri pomiku kazanja v desno pride na prvo pozicijo karakter z
zadnjega naslova v DD RAM-u za tekoèo vrstico, to pa je pri enovrstiènih displejih karakter z
36
naslova 4Fh. Torej se ne pomikajo samo karakterji, ki jih prikazovalnik lahko prikaže, paè pa vsi
karakterji iz spomina DD RAM-a. Isto velja za pomik v levo.
Tudi dvovrstièni prikazovalnik ima lahko najveèje skupno š tevilo karakterjev 80, po 40 v vsaki
vrstici. Pri tem so pripadajoèi naslovi za prvo vrstico od 00h do 27h in za drugo vrstico od 40h do
67h. Tudi tukaj velja enako pravilo za pomik kazanja, kot pri enovrstiènem prikazovalniku. V tabeli
19 je prikazan primer naslovov in pozicij na displeju za prikazovalnik LM0l6L, 2 x 16 karakterjev.
Paziti je treba na to, da prvi naslov v novi vrstici ni nadaljevanje zadnjega naslova v prejš nji vrstici.
Obstajajo tudi š tirivrstièni prikazovalniki, pri katerih je lahko najveèje š tevilo karakterjev v eni
vrstici 20 (npr. LM044L). Pri tem gredo naslovi v prvi vrstici od 00h do 13h, v drugi vrstici od 40h
do 53h, v tretji od 14h do 27h in v èetrti od 50h do 5Fh. Zapiš imo š e naslove karakterjev v DD RAM-
u glede na pozicijo za displej LM041L, popularni š tirivrstièni displej s po 16 karakterji v vrstici: prva
vrstica od 00h do 0Fh, druga od 40h do 4Fh, tretja od 10h do 1Fh in èetrta od 50h do 5Fh.
Vezje HD44780 lahko krmili le 8 karakterjev. Za veèje prikazovalnike so dodana š e dodatna vezja
kot npr. HD44100H, ki lahko krmili dodatnih 8 karakterjev. Prikazovalnik za 80 karakterjev ima tako
dodanih 9 vezij . Pri tem pa je pomembno to, da s stališ èa uporabnika oz. kontrolnega raèunalnika ni
pomembno, koliko dodatnih vezij uporablja LCD modul, saj vso komunikacijo ohranja HD44780.
Slika 14: Blokovna shema LCD kontrolerja HD44780
37
2.1.8. KARAKTER GENERATOR ROM (CG ROM)
Generator karakterjev je ROM pomnilnik, ki iz 8-bitne kode generira obliko karakterjev iz toèk,
razporejenih v matriko 5x 10 toèk pri enovrstiènih in 5x7 toèk pri dvovrstiènih prikazovalnikih.Slika
15 podaja obliko karakterja v odvisnosti od vhodne 8-bitne kode v DD RAM-u. Tabela velja za
matrièno obliko 5x7 toèk, torej za veèvrstiène prikazovalnike. Pri enovrstiènih je razpored
karakterjev podoben, le da so izpisani na 5x10 toèk.
2.1.9. KARAKTER GENERATOR RAM (CG RAM)
Uporabnik lahko definira tudi lastne znake, ki jih shrani v CG RAM. Pri obliki karakterja 5x7 toèk se
lahko definira 8 lastnih karakterjev, pri 5x10 toèk pa 4. Na sliki 15, ki prikazuje obliko karakterjev v
odvisnosti od vhodne kode, so lastno definirani karakterji v skrajno levem stolpcu. Narisani so kot
prazni, uporabnik sam definira njihovo obliko. Èeprav je narisanih 16 takih karakterjev,jih je lahko le
8.Ali bo uporabljenih zgornjih ali spodnjih 8,je odvisno od podatkovnega bita D3.
Tabela 20 podaja naèin kreiranja lastnih karakterjev na primeru matriène oblike 5x7 toèk. Za opis
vsakega karakterja je potrebno 8x8 bitov in ker ima CG RAM možnost shranitve 512 bitov,je možno
vpisati 8 lastnih znakov. Obliko znaka doloèi uporabnik s podatki, ki jih shrani v CG RAM. Ti
podatki doloèajo za vsako toèko v matriki, ali je prikazana ali ne. V tabeli so ti podatki v desnem
stolpcu, prvi primer je narejen za èrko "R", skrajna spodnja, 8. vrstica znaka je pozicija kurzorja.
Drugi primer je narejen za pravokotnik. Levi stolpec podaja kodo, ki se jo vpiš e v podatkovni RAM,
da se na displeju prikaže lastno kreirani znak. Kakš ne so inš trukcije za vpis podatkov v CG RAM na
doloèen naslov, bo jasno kasneje, ko bomo opisovali inš trukcije za krmiljenje displeja.
2.1.10. VEZJE ZA POGON DISPLEJA
To vezje je sestavljeno iz 16 gonilnikov skupnega signala in 40 gonilnikov posameznih segmentov. V
to, kako to vezje deluje, se ne bomo spuš èali, saj s stališ èa uporabnika to niti ni pomembno.
Omenimo le, da je paralelno/serijska pretvorba potrebna zaradi poš iljanja podatkov dodatnim vezjem
HD44100H, èe so le ti potrebni zaradi veèjega š tevila karakterjev.
38
Tabela 20: Oblikovanje lastnih karakterjev
39
ASCII set karakterjev LCD displeja s karakterji 5*7 toèk
Slika 15: Oblike karakterjev na displeju v odvisnosti od vhodne kode
40
2.2. Prikljuèitev LCD modula na mikroprocesor (µµP)
Slika 16 podaja blokovni diagram LCD modula, prikljuèenega na mikroprocesor in izmenjavo
signalov med njima. Mikroprocesor kontaktira samo z internim kontrolerjem v LCD modulu, LSI
kontrolerjem HD44780, le ta pa naprej skrbi za pravilno delovanje in prikazovanje modula. Modul
dobiva iz mikroprocesorja ukaze za branje ali vpis, selektiranje registra in signal za omogoèanje de-
lovanja, "enable", poleg teh pa š e podatke in napajanje.
Podatke lahko mikroprocesor poš lje v LCD modul v 4-bitnem ali 8-bitnem formatu, tako da lahko z
modulom upravlja tudi 4-bitni procesor. 4-bitni format prihrani tudi na I/O pinih, èe je modul
krmiljen direktno z I/O porta mikrokontrolerja (npr. 8051).
Pri 4-bitnem formatu prenosa podatkov se na LCD modulu prikljuèijo samo podatkovne linije D4 do
D7, ostale pa ostanejo neprikljuèene (DO - D3). Da se zagotovi prenos celotnega 8.bitnega podatka,
mora procesor prenos izvajati dvakrat, prviè prenese podatkovne MSB bite D4-D7, potem pa š e LSB
bite DO-D3. Med posameznimi prenosi mora kontrolirati "Busy Flag", zastavico, ki oznaèuje
zasedenost modula.
8-bitni format povezave je enostavnejš i za programiranje, saj zahteva le enkraten prenos za cel
podatek. Mikroprocesor je lahko na ta naèin povezan z LCD modulom preko PIA-e, direktno preko
podatkovnega vodila ali preko I/O pinov, èe gre za mikrokontroler.
Od iznajdljivosti oblikovalca hardvera in od uporabljenega mikroprocesorja, ki krmili LCD modul,je
odvisno, kako bosta modul in procesor povezana med seboj.V literaturi, iz katere smo jemali podatke
za LM016 (Hitachi Data Sheets), smo naš li primer povezave s procesorji Z80 in 6800.Glede na to, da
sta to že starejš a tipa procesorjev in za nove aplikacije veè ali manj neustrezna, teh shem ne bomo
objavljali.Ne glede na to, kateri procesor krmili LCD modul, je treba upoš tevati nekaj zakonitosti.
• Prviè, novejš i mikrokontrolerji teèejo prehitro, da bi lahko z njihovimi standardnimi signali
sestavili enable signal za LCD modul. Minimalni èas enable ciklusa naj ne bi bil krajš i od 1µs in
èas trajanja enable signala ne krajš i od 450ns. Vsi signali npr. iz 8051 so krajš i. Zato je treba
enable signal sestaviti na drug naèin ali ga programsko simulirati. Pri tem je treba paziti tudi na
41
to, da se enable signal aktivira samo takrat, kadar je na naslovnem vodilu pravilni naslov, ki na-
slavlja LCD modul.
• In drugiè, podatkovno vodilo med procesorjem (lahko tudi PIO) in LCD modulom mora biti
dvosmerno. Èe uporabljamo vmesnike, kot je to npr. PIA, moramo uporabiti dvosmerne porte. Le
na ta naèin bo tudi procesor lahko bral iz LCD modula, kar je š e posebej važno za branje
zastavice zasedenosti, ki jo mora procesor prekontrolirati pred vsakim novim vpisovanjem v
modul.
LCD modul lahko na svojem podatkovnem portu D0-D7 poganja eno TTL breme ali kapacitivnost
l30pF. Podatkovni prikljuèki so tristanjski (three state), kar pomeni da zavzamejo visoko impedanco
v èasu, ko enable signal ni aktiviran. Podatkovno vodilo ima CMOS pull up upore in torej zavzame
visok nivo, èe so prikljuèki odprti.
Slika 16: Blokovni diagram prikljuèitve LCD modula
Slika 16.1: Blokovni diagram z dodatnimi vezji HD44100H (zaradi veèjega š tevila karakterjev)
42
Za lažje naèrtovanje hardverskih reš itev sliki 17 in 18 podajata èasovna diagrama vpisovanja podatka
oz. inš trukcije v LCD modul ter branje podatka iz njega.
Slika 17: Èasovni diagram vpisovanja v LCD modul
Slika 18: Èasovni diagram branja iz LCD modula
43
Še en hardverski problem je treba reš iti pred pristopom k programiranju LCD prikazovalnega modula
in sicer napajanje LCD prikazovalnika. Modul sprejema tri napajalne nivoje: Vdd, Vo in GND oz.
Vss. Prikazovalnik se napaja z razliko nivojev Vdd-Vo. Od tipa modula je odvisno, koliko naj bi
znaš ala ta razlika, ki je odvisna tudi od temperature okolice. Za LM016, dvovrstièni prikazovalni
LCD modul s 16 karakterji po vrstici, znaš a Vdd-Vo 4.6V za T=0°C, 4.4V za T=25 °C in 4.2V za
T=50°C. V mejah med 4.6V pri 0°C in 3.3V pri 50°C se giblje tudi pri ostalih LCD modulih.
Enostavno reš itev napajanja modula prikazuje slika 19, kjer lahko s trimer potenciometrom
10-20k om-ov kompenziramo vpliv temperature in izberemo najboljš o nastavitev Vo za najboljš e
kazanje modula. Slika 20 prikazuje reš itev s termistorjem za avtomatsko kompenzacijo vpliva
temperature na kazanje.
Slika 19: Nastavljiva napajalna napetost LCD modula Slika 20: Napajanje s kompenzacijo temperaturnega
vpliva
2.2.1. INICIALIZACIJA
Po prikljuèitvi napajanja HD44780 avtomatsko izvede interni reset oz. inicializacijo LCD modula. V
èasu inicializacije je zastavica zasedenosti postavljena (BF=1) in sicer cca. 10ms po tistem, ko Vcc
naraste na 4.5V. Izvedejo se naslednje operacije:
- brisanje displeja
- funkcijska nastavitev: 8-bitni format, 1-linijski displej, 5x7 toèk displej
- kontrola displeja: displej izkljuèen, kazanje kurzorja izk., utripanje izkljuèeno
- režim selovanja: inkrement kazanja +1, ni pomika
Kadar porast napajalne napetosti ni v obmoèju 0,1 ms – l0 ms ali kadar nizek nivo napajalne
napetosti ne traja dovolj èasa (manj kot lms), tedaj interno reset vezje ne bo delovalo pravilno. V tem
primeru tudi inicializacija modula ne bo izvrš ena pravilno in je treba inicializacijo izvesti programsko
na zaèetku programa. Sliki 21 in 22 podajata naèin programsko izvrš ene inicializacije za 8-bitni in
4-bitni podatkovni format.
44
Slika 21: Inicializacija displeja za 8-bitni Slika 22: Inicializacija displeja
podatkovni format za 4-bitni podatkovni format
45
2.2.2. PROGRAMIRANJE
Mikroprocesor ima dostop do samo dveh registrov HD44780 v LCD modulu in sicer do
inš trukcijskega registra in podatkovnega registra. Ker LCD modul lahko dela z razliènimi procesorji
z razliènimi hitrostmi, ta dva registra delujeta kot vmesni pomnilnik, v katerega se shrani informacija
o ukazu in podatku, preden modul zaène izvajati interno operacijo. HD44780 interna operacija je
doloèena s signali, ki jih poš ilja mikroprocesor. Ti signali vsebujejo izbiro registrov (RS), signal za
branje ali vpisovanje (R/W) in podatke (D0-D7) ali inš trukcijo.
Obstajajo 4 vrste inš trukcij:
l. za doloèitev funkcij HD44780, kot so format displeja, format podatkov itd.,
2. podajanje naslova internega RAM-a,
3. menjava podatkov z internim RAM-om,
4. in druge.
V normalni uporabi se najveèkrat uporabljajo inš trukcije 3. tipa, to je vpis podatkov, ki pomenijo
prikaz na displeju, v interni RAM. Avtomatsko inkrementiranje naslova internega RAM-a pri vsakem
vpisu olajš uje delo kontrolnega mikroprocesorja. V èasu izvajanja inš trukcije, med interno operacijo,
je zastavica zasedenosti setirana (BF=1), zato mora program v mikroprocesorju vedno kontrolirati
stanje te zastavice, preden poš lje novo inš trukcijo.
Pripomba 1:
Pred vsakim vpisom nove inš trukcije naj program v mikroprocesorju prekontrolira stanje zastavice
zasedenosti in poš lje inš trukcijo le v primeru, da ta ni postavljena.
Pripomba 2:
Po izvedbi inš trukcije ali po vpisu podatka v CG/DD RAM je RAM naslovni š tevec avtomatsko
poveèan (ali pomanjš an) za 1. Poveèanje se izvede, ko zastavica zasedenosti ponovno pade.
46
2.2.3. OPIS INŠTRUKCIJ
Clear display (briši displej)
Vpiš e karakter kodo 20h (prazen prikaz) v vse naslove DD RAM-a. Naslov DD RAM-a postavi na 0
in vrne displej v njegov originalni status, èe je bil premaknjen. Kurzor se postavi v levi zgornji kot,
I/D = 1, S se ne spremeni. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 0 1
Return home (vrnitev na zaèetek)
Postavi naslovni š tevec DD RAM-a na 0, vrne displej v originalni status, kurzor se postavi v levi
zgornji kot displeja. Vsebina DD RAM-a se ne spremeni! Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 1 x
Entry mode set (naèin vnosa)
Doloèa naèin, kako se vnaš ajo podatki v DD RAM. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 I/D S
I/D: Poveèa (I/D=1 ) ali zmanjš a (I/D=0) DD RAM naslov za 1, kadar je podatek vpisan v RAM ali
pa se iz njega prebere.Isto vela tudi za CG RAM.
S: Kadar je S=1 se celotni prikaz na displeju premakne v levo (èe je I/D=1) ali v desno (èe je
I/D=0) pri vpisu novega karakterja. Izgleda, kot da bi kurzor stal na mestu, zapis pa se premika.
Pri branju iz DD RAM-a in pri vpisu ali branju CG RAM-a se prikaz ne premika.
47
Display ON/OFf control (vklop in izklop displeja)
Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 D C B
D: Displej je vklopljen, kadar je D=1 in izklopljen (prazen, ne prikazuje), kadar je D=0. Pri
izklopljenem displeju ostanejo podatki v DD RAM-u nespremenjeni in so lahko takoj prikazani,
èim se postavi D=1 .
C: Kurzor je prikazan, kadar je C=1 in ni prikazan, kadar je C=0.
B: Karakter, na katerega kaže kurzor, utripa, kadar je B=1.
Cursor or display shift (pomik kurzorja ali displeja)
Pomakne pozicijo kurzorja ali displeja v levo ali v desno ne da bi se vpisal ali bral podatek. Pri
dvolinijskih displejih bo kurzor padel v naslednjo vrstico, ko bo preš el 40. karakter prejš nje vrstice.
Pri pomiku displeja se premakneta 1. in 2. vrstica istoèasno. Vsaka vrstica se pomika samo
horizontalno, kar pomeni, da se prva vrstica ne premakne v drugo in obratno. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 S/C R/L x x
S/C R/L
0 0 pomakne pozicijo kurzorja v levo, naslovni š tevec je zmanjš an
0 1 pomakne kurzor v desno, naslovni š tevec je poveèan za 1
1 0 pomakne cel displej v levo, kurzor sledi pomiku displeja
1 1 pomakne cel displej v desno, kurzor sledi pomiku displeja
Function set (nastavifev funkcije)
Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 DL N F x x
48
DL: Doloèi dolžino oz. format podatka.Za DL=1 je podatek 8-bitni, za DL=0 je podatek 4-bitni.
N: Doloèi š tevilo linij na displeju.
F: Doloèi font karakterjev.
N F š t. vrstic font karakterja
0 0 1 5*7 toèk
0 1 1 5*10 toèk
1 x 2 5*7 toèk
Dvovrstièni displeji imajo lahko font velikosti samo 5x7 toèk! Ta nastavitev se opravi pred drugimi
inš trukcijami in kasnejš a spremeba ni možna, razen èe se zamenja format podatka!
Set CG RAM address (nastavitev naslova CG RAM-a)
Postavi dano binarno vrednost AAAAAA v naslovni š tevec CG RAM-a. Ta inš trukcija se obièajno
izvede pred vpisom ali branjem iz CG RAM-a. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 A A A A A A
Set DD RAM address (nastavitev naslova DD RAM-a)
Postavi dano binarno vrednost AAAAAAA v naslovni š tevec DD RAM-a. Kadar je N=0 (1-vrstièni
displej), je AAAAAAA v obmoèju 00h do 4Fh, kadar pa je N=1 (dvovrstièni displej), jeAAAAAAA
lahko v obmoèju 00h do 27h za prvo vrstico in 40h do 67h za drugo vrstico. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 A A A A A A A
Read busy flag & address (beri zastavico zasedenosti & nasl.)
Prebere zastavico zasedenosti (busy flag BF), ki nakazuje, da sistem izvaja interno operacijo
izvajanja predhodno sprejete inš trukcije. BF=1 nakazuje, da je interna operacija v teku in se
naslednja operacija ne bo izvajala, dokler ne bo BF=0. Pred vpisom nove inš trukcije mora kontrolni
program v mikroprocesorju preveriti stanje BF. Istoèasno se prebere tudi stanje naslovnega š tevca v
binarni obliki AAAAAAA. Naslovni š tevec uporabljata oba CG RAM in DD RAM.
49
Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 1 BF A A A A A A A
Write data to CG or DD RAM (vpis podatka v CG ali DD RAM)
Vpiš e 8-bitni binarni podatek DDDDDDDD v CG ali DD RAM. Kateri od obeh RAM-ov bo vpisan,
je odvisno od predhodne nastavitve naslovnega š tevca. Po vpisu se naslov avtomatsko poveèa ali
pomanjš a za 1 glede na nastavitev vnosa. Glede na nastavitev vnosa se tudi izvede avtomatski pomik
displeja. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 0 D D D D D D D D
Read data from CG or DD RAM (branje podatka iz CG ali DD RAM-a)
Prebere bin. 8-bitni podatek DDDDDDDD iz CG ali DD RAM-a. Predhodna nastavitev naslova
doloèa, ali gre za CG ali DD RAM, zato je pred branjem treba izvrš iti inš trukcijo nastavitve naslova
CG oz. DD RAM-a. Èe tega ne storimo, je prvi prebrani podatek neveljaven. Po konèanem branju
podatka se glede na nastavitev vnosa naslov ali poveèa ali pa zmanjš a za 1, kar omogoèa serijsko
branje podatka za podatkom, ne da bi vmes vedno nastavljali naslov. Pomik displeja se ne glede na
nastavitev vnosa pri branju podatka ne izvrš i. Koda:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 1 D D D D D D D D
Opomba:
Naslovni š tevec se avtomatsko inkrementira ali dekrementira po izvedbi vpisa podatka v CG ali DD
RAM. Vendar pa podatka ni možno prebrati iz RAM-a, èe je bil naslov doloèen na tak naèin. Pred
izvedbo branja iz RAM-a je treba vedno izvesti inš trukcijo nastavitve naslova ali pa inš trukcijo
pomika kurzorja, èe gre za branje iz DD RAM-a (tudi pomik kurzorja doloèi naslov).
50
2.3. Prikazovalniki na tekoèe kristale š e malo drugaèe
Vèasih so bili prikazovalniki na tekoèe kristale (LCD) nerodni za prikljuèevanje, saj so imeli mnogo
prikljuèkov, naèrtovalec pa je moral paziti na èasovne in elektriène omejitve.
Aplikacija neredko zahteva, da bi prikazovalnik prikazal poleg š tevilk tudi vse èrke abecede. Na hitro
si lahko izraèunamo, da bi potrebovali za krmiljenje prikazovalnika z eno vrstico, 16 znaki in znaki z
matriko 5X7 toèk 560 povezav za krmiljenje. Èe pa pomislimo tudi na èasovne zahteve, je to že obilo
dela za naš krmilni procesor, Na sreèo je tukaj prispevala svoj delež tehnologija. Zadnje èase se tudi
v naš ih trgovinah dobi množica razliènih alfanumeriènih prikazovalnikov velikosti 1X16 znakov,
2X16 znakov (ti so najpogostejš i), 4X20 znakov itd. Vsi ti prikazovalniki imajo svoj procesor in
krmilna vezja za prikazovalnik s tekoèimi kristali. Tako postane uporaba takega prikazovalnika zelo
enostavna, saj ima vsega skupaj samo 14 linij.
Èlanek je namenjen razjasnitvi priklopa takega prikazovalnika na PC raèunalnik zaradi testiranja in
uèenja dela z njim.
Za krmiljenje inteligentnega LCD prikazovalnika sem uporabil osebni raèunalnik (PC). Tako se
lahko na enostaven in hiter naèin mnogo nauèimo, saj ne potrebujemo dodatne elektronike.
Programiranje v viš jenivojskih jezikih je enostavneje kot programiranje v zbirniku za doloèen
mikrokrmilnik. Pripomniti moram, da je ta èlanek namenjen predvsem prikazu uporabe takih
prikazovalnikov.
Ker je procesor, ki krmili tak prikazovalnik, v veèini primerov Hitachijev HD44780, se bom omejil
na uporabo le-tega. Priznati moram, da drugega procesorja na takih prikazovalnikih š e nisem videl.
Do sedaj sem uporabljal Philipsove, Hitachijeve, Optrexove in Sharpove prikazovalnike in vsi so
imeli Hitachijev procesor HD44780. Ostala vezja na prikazovalniku so krmilna vezja in jih je veè ali
manj odvisno od š tevila znakov, ki jih tak prikazovalnik prikazuje.
51
2.3.1. ZA ZAÈETEK TEHNIÈNI PODATKI
Za komunikacijo z zunanjim svetom uporablja tak prikazovalnik 4 ali 8 bitni vmesnik, ki se ga doloèi
programsko. Velikost pomnilnika za prikazovanje je 80 byte-ov in zato lahko tak prikazovalnik
prikaže najveè 80 znakov (to pomeni, da so prikazovalniki 4X20 znakov najveè, kar zmore
prikazovalnik s procesorjem HD44780). Ta pomnilnik je bralno pisalni. Tako lahko del pomnilnika,
ki se ne prikazuje, uporabimo kot pomnilnik za naš o aplikacijo. Prikazovalnik ima vgrajen generator
znakov in sicer 160 znakov (matrika znaka 5X7 toèk) ali 32 znakov (matrika znaka 5X10 toèk).
Osem znakov lahko sami doloèimo (npr. è, š in ž). Veèina prikazovalnikov uporablja matriko 5X7
pik. Poleg izpisovanja znakov, pozna prikazovalnik š e množico ukazov kot so premikanje niza
znakov, utripanje kurzorja itn. V sam prikazovalnik je tudi vgrajen avtomatièni RESET ob vklopu
napajanja. Za napajanje potrebuje 5V. Vsi nivoji za krmilne linije so tipa TTL. Poraba je zelo nizka
tipièno 0,5mA (najveè 2mA).
2.3.2. PRIKLJUÈEVANJE (naveden je primer prikljuèitve s pomoèjo 4-bitnega vmesnika)
Pri prikljuèevanju moramo paziti, kje je nožica 1, saj imajo nekateri prikazovalniki prikljuèni
konektor na zgornjem delu, drugi pa na spodnjem delu tiskanega vezja. Nekateri prikazovalniki tudi
nimajo oznaèene nožice 1. Najlažje jo najdemo tako, da z ohm-metrom poiš èemo povezavo med
kovinskim okrovom, ki drži stekleni del prikazovalnika in nožico 1, ki je skrajno desno ali skrajno
levo. Nožica, ki je povezana s kovinskim okrovom, je masna nožica (Vss nožica 1).
Razpored nožic je:
1 Vss 0V
2 Vdd 5V
3 V0 kontrast
4 RS izbiranje: ukaz ali podatek
5 R/W branje/pisanje
6 E izbirni signal
7 DB0 podatkovna linija
8 DB1 podatkovna linija
9 DB2 podatkovna linija
10 DB3 podatkovna linija
11 DB4 podatkovna linija
52
12 DB5 podatkovna linija
13 DB6 podatkovna linija
14 DB7 podatkovna linija
Pri 4-bitnem vmesniku so uporabljene samo zgornje 4 podatkovne linije (DB4..DB7). Zdaj lahko
prikljuèimo prikazovalnik na osebni raèunalnik (PC). Na sliki 23 je prikazana prikljuèitev
prikazovalnika na raèunalnik. Prikljuèil sem ga na paralelna vrata za tiskalnik (angl. Printer Port
LPT). Za prikljuèitev potrebujemo moš ki konektor DB25 in nekaj žic, katerih dolžina naj ne presega
1,5 m. Za delovanje samega prikazovalnika potrebujemo š e napajalnik 5V.
Za prikljuèevanje sem uporabil 4-bitni vmesnik (manj dela s prikljuènimi dovodi). Ker bom v
prikazovalnik samo vpisoval, sem nožico 5 (R/W) prikljuèil na maso (GND ali Vss). Nožico 3 (Vo)
za kontrast sem prikljuèil na maso. Tako prikljuèen prikazovalnik ima za malenkost premoèen
kontrast. Noži co 6 (E) prikazovalnika sem prikljuèil na podatkovno linijo 5 vrat tiskalnika. Pri pre-
hodu napetosti na nožici 6 (E) iz visokega stanja v nizko se vpiš ejo v prikazovalnik podatki, ki so
vpisani na nožicah 11, 12, 13 in 14 na prikazovalniku (pri 4 bitnem vme sniku). Nožice 11, 12, 13 in
14 so povezane s podatkovnimi linijami 0, 1, 2 in 3 vrat tiskalnika. Podatkovna linija 4 vrat tiskalnika
je povezana z nožico 4 (RS) prikazovalnika. Signal na tej nožici doloèa, ali vpisujemo v
prikazovalnik podatek (RS je v visokem stanju) ali ukaz (RS je v nizkem stanju). Ostane nam š e
prikljuèitev na napajanje 5V. Napajalno linijo 5V prikljuèimo na nožico 2 in napajalno linijo GND
(maso ali Vss) na nožico 1. Za tako prikljuèen prikazovalnik potrebujemo š e nekaj programske
opreme, ki ga bo oživila. Za pisanje programov sem uporabil viš ji programski jezik C.
Slika 23:Prikljuèitev prikazovalnikana vrata za tiskalnik PCraèunalnika
53
2.4. Princip delovanja LCD prikazovalnikov
Tekoèi kristali so organske snovi z zelo dolgimi molekulami, ki imajo v elektriènem polju posebne
lastnosti. Molekule so sicer gibljive kot v tekoèini, vendar razporejene po doloèenih pravilih, ki
veljajo za kristalne strukture. Od tod ime tekoèi kristali.
Prikazovalnik s tekoèimi kristali (angl. liquid crystal display) je zgrajen iz dveh optiènih
polarizatorjev, prevodnih prosojnih elektrod ter vmesne celice, kjer so zaprti tekoèi kristali. Vmesna
celica s tekoèimi kristali je zelo tanka in meri nekaj 10µm. Razporeditev molekul lahko vsilimo s
posebnimi dodatki, ki so v kontaktu s tekoèimi kristali. Molekule razporedimo tako, da so na površ ini
vse orientirane navpièno, z globino pa se postopoma orientirajo vodoravno.
Slika 24: Princip delovanja nematiènih tekoèih kristalov
Tekoèi kristali prepuš èajo le svetlobo, ki je enako polarizirana kot so usmerjene molekule tekoèih
kristalov. Èe so torej molekule orientirane navpièno, bodo prepuš èale le navpièno polarizirano
svetlobo. Ker se molekule z globino postopoma zasuèejo za 90°, se isto zgodi tudi s svetlobo -
postane vodoravno polarizirana. Ko pa med elektrodama prikljuèimo elektrièno napetost, se vse
molekule tekoèega kristala razporedijo v eno smer in sukanja svetlobe ni veè. Opisan naèin delovanja
velja za t.i. nematiène tekoèe kristale (slika 24).
54
Slika 25: Zgradba prikazovalnika s tekoèimi kristali
Tekoèe kristale sedaj postavimo med dva optièna polarizatorja - s prvim poskrbimo, da pada na
tekoèe kristale le navpièno polarizirana svetloba, drugi pa naj prepuš èa le vodoravno polarizirano
svetlobo. Èe na kristalih ni napetosti, bo izhodna svetloba polarizirana vodoravno in jo bo zato
vodoravni optièni polarizator prepuš èal; èe pa na kristale pritisnemo napetost, zasuka svetlobe na
kristalih ne bo, zato (navpièno polarizirana) svetloba ne bo mogla skozi vodoravni optièni polarizator
- površ ina bo postala èrna.
Poznamo transmisijske in refleksijske prikazovalnike. Pri prvih je vir svetlobe postavljen za
prikazovalnikom, pri drugih pa se svetloba, ki prehaja skozi prikazovalnik, odbija nazaj s pomoèjo
ogledala.
Prikazovalnike krmilimo z izmenièno napetostjo, saj bi pri enosmerni napetosti prihajalo
do nezaželjenih elektrolitskih pojavov.Prikazovalniki s tekoèimi kristali imajo zelo majhno
porabo elektriène moèi, njihova slabost pa je v dolgem odzivnem èasu.
55
2.5. Rezultat seminarske naloge2.5.1. Stikalni naèrt :
Slika 26: Stikalni naèrt vezja z LCD prikazovalnikom
56
Slika 27: Razporeditev elementov na ploš èici tiskanega vezja
Slika 28: Povezave – film za tiskano vezje
57
Slika 29: Prikaz povezave elementov na ploš èici tiskanega vezja
Tabela 21: Seznam uporabljenih elementov pri izdelavi LCD prikazovalnika
Kosov Opis Vrednost Oznaka
1 Kondenzator elektrolitski 100 µF C1
1 Kondenzator plastni 100 nF C2
2 Kondenzator elektrolitski 1 µF C3, C4
2 Kondenzator keramièni 30 pF C5, C6
1 Dioda 1N 4007 D1
1 Stabilizator napetosti LM 7805 Ic1
1 Mikrokontroler ATMEL 89C2051 Ic2
1 Podnožje za DIP 20
1 Trimer upor 10 kE P1
1 Upor 100 kE R1
1 Quartz kristal 12 MHz Q1
4 Tipke T1, T2, T3, T4
1 LCD prikazovalnik 2*16 znakov
58
2.5.2. Diagram poteka programa :
Slika 30: Diagram poteka
START
Inicializacija µK
Inicializacija LCD
T1 = ?
T2 = ?
T3 = ?
T4 = ?
Napis 1
Napis 2
Napis 3
Napis 4
DA
DA
DA
DA NE
NE
NE
NE
59
2.5.3. Program :
/********************************************************************TIMER.CPrikaz uporabe LCD prikazovalnika
=====================================================================Verzija Datum Avtor:1 1-2-1999=====================================================================OPIS:
V odvisnosti od pritisnjene tipke se na LCD pojavljajorazlicni napisi.
********************************************************************/#pragma SMALL REGISTERBANK(0) ROM(SMALL) CODE#include <AT892051.h> // konfiguracijska datoteka
void smallDelay(unsigned char); // zakasnitev za char mikrosekvoid delay(unsigned char); // zakasnitev za char msekvoid bigDelay(unsigned char); // zakasnitev za char*100 msekvoid initLCD(void); // inicializacija LCD displajavoid outLCD(char,char,char[17]); // izpis niza na LCDvoid clearLCD(void); // zbrise zaslon LCD-ja
#define MILI_SEC 0x033E // makro ukaz#define RS P3_0 // P3_0 je izhodni port za signal RS prik.#define ELCD P3_1 // P3_1 je izhodni port za signal enable prik.#define T1 P3_2 // P3_2 je vhodni port za tipko T1#define T2 P3_3 // P3_3 je vhodni port za tipko T2#define T3 P3_4 // P3_4 je vhodni port za tipko T3#define T4 P3_5 // P3_5 je vhodni port za tipko T4
60
/********************************************************************glavni program
********************************************************************/
void main(void){ // zacetek funkcije main
TMOD=0x01; // inicializacija T0 za 16 bitni casovnik// notranja kontrola
initLCD(); // inicializacija LCDwhile(1){ // zacetek neskoncne while zanke
if(!T1) { // zacetek prvega pogojabigDelay(5); // zakasnitev za 0.5 sekoutLCD(1,1,"POZDRAVLJEN UFO!"); // izpis teksta na LCDoutLCD(2,1,"KAKO SE POCUTIS?"); // izpis teksta na LCD
} // konec prvega pogoja
if(!T2) { // zacetek drugega pogojabigDelay(5); // zakasnitev za 0,5 sekoutLCD(1,1,"Uzivaj MLADOST ,"); // izpis teksta na LCDoutLCD(2,1,"pozabi STAROST !"); // izpis teksta na LCD
} // konec drugega pogoja
if(!T3) { // zacetek tretjega pogojabigDelay(5); // zakasnitev za 0,5 sekoutLCD(1,1,"Raje lepo hodim,"); // izpis teksta na LCDoutLCD(2,1,"kakor grdo vozim"); // izpis teksta na LCD
} // konec tretjega pogoja
if(!T4) { // zacetek cetrtega pogojabigDelay(5); // zakasnitev za 0,5 sekoutLCD(1,1,"Lepo se imejte ,"); // izpis teksta na LCDoutLCD(2,1,"pa NASVIDENJE !!"); // izpis teksta na LCD
} // konec cetrtega pogoja
} // konec neskoncne while zanke} // konec funkcije main
61
/* *************************************************************initLCD()
************************************************************* */
void initLCD() { // zacetek podprograma za// inicializacijo LCD-ja
bigDelay(2); // zakasnitev pri vklopu napraveRS=0; // instrukcija (ukaz)
ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=0x38; // doloci dolzino podatka (8-bitni),
stevilo vrstic (2)in format karakterja(5*7)
smallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)delay(64); // zakasnitev za 64 ms
ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=0x38; // doloci dolzino podatka (8-bitni),
stevilo vrstic (2)in format karakterja(5*7)
smallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)delay(64); // zakasnitev za 64 ms
ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=0x38; // doloci dolzino podatka (8-bitni),
stevilo vrstic (2)in format karakterja(5*7)
smallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)bigDelay(1); // zakasnitev za 100 ms
ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=0x0d; // pomakne cel displej v desno,
kurzor sledi pomiku displejasmallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)bigDelay(1); // zakasnitev za 0,1 s
ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=0x06; // vklopi displej,prikaze kurzor,
karakter na katerega kaze kurzor ne utripasmallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)delay(64); // zakasnitev za 64 ms
clearLCD(); // zbrise zaslon LCD-ja} // konec podprograma za inicializacijo LCD-ja
62
/* *************************************************************clearLCD()zbrise zaslon na LCD displaju
************************************************************* */
void clearLCD() { // zacetek podprograma za brisanje LCD-ja
RS=0; // instrukcija (ukaz)
ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosek
P1=0x01; // naslov porta P1smallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)delay(64); // zakasnitev za 64 ms
} // konec podprograma za brisanje LCD-ja
/* *************************************************************outLCD(char y,char x,char item[])x - zacetni stolpec izpisa (1-16)y - zacetna vrstica izpisa (1-2)item - string, koncan z \0
************************************************************* */
void outLCD(char y,char x, char item[]) { // dolocitev pozicij izhoda LCD-ja
unsigned char data pozicija; // nepred. znak. tip podat. naslovachar stevec=0; // dolocitev vrednosti stevcaswitch (y) { // zacetek pogojnega stavka case 1: // pogoj 1
pozicija=0x80; // zacetni naslov 1. vrsticebreak; // prekine izvajanje pogoja 1
case 2: // pogoj 2pozicija=0xc0; // zacetni naslov 2. vrsticebreak; // prekine izvajanje pogoja 2
default : // ce pogoji niso izpolnjenireturn; // vrnitev na zacetek
} // konec pogojnega stavka
pozicija=pozicija+(unsigned char)(x - 1); //naslov stolpca v izbrani vrstici
RS=0; // instrukcija (ukaz)ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=pozicija; // na zeleno pozicijosmallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)delay(1); // zakasnitev za 1 ms
while (item[stevec] != '\0') { // neskoncna zankaRS=1; // instrukcija (podatek)ELCD=1; // LCD enable (LCD omogoèen)smallDelay(1); // zakasnitev za 1 mikrosekP1=item[stevec++]; // dolocitev nove vrednosti stevcasmallDelay(1); // zakasnitev za 1 mikrosekELCD=0; // LCD disable (LCD onemogoèen)delay(1); // cakaj 1 ms
} // konec pogojnega stavka} // konec dolocevanja pozicij izhoda LCD-ja
63
/* *************************************************************void smallDelay(unsigned char cas)
zakasnitev za cas mikrosekunduporablja stevec T0
************************************************************* */
void smallDelay(unsigned char cas) { // zacetek dolocevanja casovnika
TR0=0; // ustavi T0TF0=0; // brisi morebitno zastavico T0TL0=(unsigned char)0xff-cas; // 255-cas v L zlog T0TH0=0xff; // H zlog T0
TR0=1; // start T0while (TF0==0); // cakaj na konec stetja (TF0=1)
} // konec dolocevanja casovnika
/**************************************************************void delay(unsigned char cas)
zakasnitev za cas milisekunduporablja stevec T0, ki steje strojne cikle (1,2 mikrosek)za cas 1 msek mora presteti 833 strojnih ciklov
**************************************************************/
void delay(unsigned char cas) { // zacetek dolocevanja casovnika
unsigned char stevec; // dolocitev tipa stevcaunsigned int initTimer; // dolocitev tipa casovnikainitTimer=0xffff-MILI_SEC; // 65535-830TR0=0; // ustavi T0TF0=0; // brisi morebitno zastavico T0for (stevec = cas; stevec > 0 ; stevec--) { // obseg stetja
TL0=(unsigned char)(initTimer & 0x00ff);TH0=(unsigned char)(initTimer >> 8); // initTimer v L&H zloga T0
TR0=1; // start T0while (TF0==0) { // cakaj na konec stetja
// (TF0=1)stevec=stevec; // prireditev vrednosti stevca
}TF0=0;
}} // konec dolocevanja casovnika
/**************************************************************void bigDelay(unsigned char cas)
zakasnitev za cas*100 milisekund**************************************************************/
void bigDelay(unsigned char cas) { // zacetek dolocevanja casovnika
unsigned char stevec; // dolocitev tipa stevcafor (stevec=0;stevec++ < cas;delay(50)); // obseg stetjafor (stevec=0;stevec++ < cas;delay(50)); // obseg stetja
} // konec dolocevanja casovnika
64
2.5.4. Opis prikljuèevanja mikrokontrolerja in LCD prikazovalnika
GND prikljuèek kontrolerja in prikazovalnika je prikljuèen na minus (na maso), Vcc pa na plus
napajanja.
Prikljuèek W0 prikazovalnika je prikljuèen na spremenljivi prikljuèek trimer upora (P1), s
katerim lahko spreminjamo kontrast ozadja prikazovalnika.Prikljuèek RS prikazovalnika, ki izbira,
ali je na vrsti ukaz ali podatek, je prikljuèen na vhod P3.0 kontrolerja. R/W prikazovalnika je
prikljuèen na maso, ker prikazovalnik tekst samo izpisuje. E prikazovalnika lahko prikljuèimo na
plus napajanja, ali pa na P3.1 kontrolerja, saj je to izbirni signal, ki v stanju 0 omogoèa vpisovanje
podatkov v prikazovalnik.Prikljuèki prikazovalnika D0 do D7 (vhodi) so prikljuèeni na izhode
kotrolerja, ki so oznaèeni s P1.0 do P1.7, saj kontroler v odvisnosti od pritisnjene tipke na vhodu na
te prikljuèke poš ilja izhodne podatke (razliène tekste), ki pa jih doloèimo programsko.
Prikljuèek RST kontrolerja je prikljuèen na vezje za reset. Prikljuèek 3.0 je že zgoraj
omenjen, prikljuèen pa je na RS prikazovalnika. Tudi P3.1 je že zgoraj omenjen. XTAL1 in XTAL2
sta prikljuèka za zunanji kristal, ki doloèa frekvenco (hitrost) delovanja kontrolerja.
Na vhode, oznaèene s P3.2 do P3.5 smo prikljuèili tipke. Pritisk katerekoli od teh š tirih tipk
povzroèi izpis teksta na LCD prikazovalniku in sicer :
- T1……………POZDRAVLJEN UFO!
KAKO SE POCUTIS?
- T2……………Uzivaj MLADOST ,
pozabi STAROST !
- T3……………Raje lepo hodim,
kakor grdo vozim
- T4……………Lepo se imejte ,
pa NASVIDENJE !!
65
3. ATMEL 89C2051
Èe že govorimo toliko o krmiljenju LCD desplejev z mikrokontrolerjem ATMEL 89C2051, je prav,
da š e povemo nekaj besed o njem samem.
3.1. Glavne znaèilnosti mikrokontrolerja :
1. Kompatibilnost z družino 8051 :
a) 8-bitni mikroprocesor
b) moèan nabor ukazov primeren za avtomatiko
c) Boolov procesor, ki omogoèa direktno operiranje z biti
d) 5 virov prekinitev
e) 2 16-bitna èasovnika / š tevca
f) programabilni serijski port
g) 2 nizkopotroš na režima delovanja
h) napajalna napetost od 2,7 V do 6 V
i) vgrajen oscilator (potrebuje zunanji kristal) s frekvenco takta do 24 MHz
2. 2 kB Flash pomnilnika z zmožnostjo 1000 vpisov in 10 letne obstojnosti za programski
pomnilnik
3. dvonivojska zaš èita programa
4. 128 byteov statiènega RAM pomnilnika
5. 15 programabilnih digitalnih I/O signalov
6. analogni komparator
66
Slika 31: Zgradba mikrokontrolerja ATMEL 89C2051
3.2. Opis prikljuèkov mikrokontrolerja :
Slika 32: Razporeditev prikljuènih pinov na mikrokontrolerju
67
Port 1
Port 1 je 8-bitni dvosmerni vhodno/izhodni port. Pini P1.2 do P1.7 imajo vgrajene notranje pull-up
upore. Pina P1.0 in P1.1 pa potrebujeta zunanja pull-up upora, èe sta uporabljena kot vhoda. Ta dva
pina imata v drugi funkciji vlogo vhodov analognega komparatorja.
Slika 33: Pina P1.0 in P1.1 v vlogi vhodov analognega komparatorja
Izhodni bufferji porta 1 lahko požirajo tok 20 mA in lahko direktno napajajo LED diode. Kadar so v
bufferje vpisane logiène enke, je port 1 lahko uporabljen kot vhodni port ( vsak pin posebej ). Takrat
pini P1.2 do P1.7 dajejo tok 50 µA skozi notranje pull-up upore, kadar na njih forsiramo nizek nivo.
Port 1 med programiranjem sprejema 8-bitno programsko kodo, pri verifikaciji programa pa se ta ista
koda lahko na teh pinih prebere.
Port 3
Pini P3.0 do P3.5 in P3.7, so dvosmerni vhodno/izhodni pini porta 3 z internimi pull-up upori. P3.6 je
notranje povezan kot izhod iz vgrajenega preciznega analognega komparatorja in je dostopen le
programsko za branje tega izhoda ( nima prikljuèka na èipu ). Izhodni bufferji porta lahko požirajo
tok 20 mA. Kadar so v bufferje vpisane logiène enke, je port 1 lahko uporabljen kot vhodni port
( vsak pin posebej ). Port 3 sprejema nekatere kontrolne signale med programiranjem in verifikacijo
FLASH pomnilnika. Razen tega služi za alternativne funkcije:
P3.0 RxD vhod serijskega porta ;
P3.1 TxD izhod serijskega porta ;
P3.2 /INTO zunanja prekinitev 0 ;
P3.3 /INT1 zunanja prekinitev 1 ;
P3.4 TO zunanji vhod èasovnika / š tevca 0 ;
P3.5 Tl zunanji vhod èasovnika / š tevca 1.
68
Slika 34: Porta P1 in P3 kot zadrževalnika
RST
Reset vhod. Vsi vhodno/izhodni pini se postavijo na 1, ko RST doseže visok nivo.Zadrževanje RST
na 1 za 2 strojni periodi povzroèi resetiranje mikrokontrolerja.
Najpreprostejš e vezje za reset prikazuje naslednja slika :
Slika 35: Vezje za reset
XTAL1 , XTAL2
Sta vhod in izhod invertirajoèega ojaèevalnika, ki je lahko uporabljen kot on-chip oscilator. V ta
namen lahko med njiju prikljuèimo kvarèni kristal in kondenzatorja 30pF +/- 10pF proti masi.
Oscilator goni interno vezje za taktno uro. En strojno cikel traja 12 period oscilatorja in je razdeljen
na 6 stanj ( S1-S6 ). Vsako stanje ima 2 periodi. V prvi se tipièno izvedejo aritmetiène in logiène
operacije, v drugi pa prenosi podatkov med posameznimi internimi registri.
69
3.3. Èasovniki / š tevci
Mikrokontroler ima dva 16-bitna registra za èasovne in š tevne funkcije.
V funkciji èasovnika register poveèuje svojo vrednost na vsak CPU cikel. Ker cikel vsebuje 12
period oscilatorja, se vrednost registra poveèuje z 1/12 frekvence oscilatorja ( s kristalom l2MHz je ta
èas 1 µsek ).
V funkciji š tevca se vrednost v registru poveèuje ob prehodu signala iz 1 v 0 na pripadajoèem pinu
( T0 in T1 ). Najveèja frekvenca š tetja je 1/24 oscilatorjeve frekvence.
4. C JEZIK
4.1. Opis uporabljenih ukazov C jezika
#pragma……….Prevajalniš ki – predprocesorski ukaz
#include………..Prevajalnik obdela datoteko s programom v C jeziku v veè fazah in pozna doloèene
ukaze in operatorje, ki niso del programskega jezika. Te ukaze (prevajalniš ki ukazi)
obdeluje v prvi fazi – predprocesiranje. Vsak ukaz predprocesorja se zaène z
znakom #. Èe je program napisan v veè datotekah, jih moramo vkljuèiti s
predprocesorskim ukazom include. Na tem mestu bo predprocesor vrinil želeno
datoteko.Možne oblike :
#include "filename"
#include <filename>
Prva oblika je znaèilna za vkljuèevanje deklaracij funkcij iz drugih delov naš ega
programa. Druga oblika pa je znaèilna za vkljuèevanje deklaracij funkcij
standardne knjižnice. V standardni knjižnici so zbrane sploš no uporabljive funkcije,
ki jih napiš e proizvajalec compilerja (prevajalnika). Grupirane so po datotekah z
70
ekstenzijo .h, v katerih so deklarirane. Tako so matematiène funkcije deklarirane v
datoteki math.c, funkcije za delo z datotekami v stdio.h, za uro in datume time.h, za
delo z nizi string.h, za konfiguracijo procesorjev pic.h, 8051.h itd..
Primer :
#include <pic.h>
#include <8031.h>
#define…………Makro ukazi so ukazi, ki so sestavljeni iz ukazov C jezika in imajo svoje
ime.Definiramo jih s predprocesorskim ukazom define. Prevajalnik bo ime makroja
zamenjal z nizom ukazov, kjer bo priredil tudi spremenljivke.
#define ime niz_simbolov
Primer :
#define MAX 10
#define ABS_DIFF(a,b) ((a)>(b) ? (a)-(b) : (b)-(a))
void main (void) {
unsigned int x, y, E;
E=ABS_DIF(x, y);
}
void main (void)………Je ukaz funkcije MAIN, v kateri steèe program po resetu in ko se
inicializirajo globalne spremenljivke. Predstavlja glavni program, ki klièe
ostale funkcije.
Primer :
void main (void) {
ukaz1 ;
klic_funkcije1;
…
/* telo glavnega programa */
…
}
71
while(1)………..To je neskonèna while zanka. Ukazi, ki so v telesu while zanke se ponavljajo v
neskonènost.
Primer :
while(1) {
…
/* telo zanke */
…
}
if……………….If stavek spada med kontrolne ukaze, ki kontrolirajo programski tok oz. vrstni red
izvajanja programa. Zanke omogoèajo ponavljanje izvajanja doloèenega niza
ukazov, dokler ni zahtevani pogoj izpolnjen.
Primer :
if(pogoj) { /* opravilo 1 se bo izvrš ilo le, èe bo pogoj izpolnjen */
izvrsi_opravilo_1;
}
switch………….Switch stavek uporabimo, èe je postavljeno veliko pogojev in postane if stavek
nepregleden. Glede na vrednost doloèene spremenljivke lahko izvajamo
veèopravilnost.
Primer :
switch(spremenljivka) {
case konstanta1:
izvrsi_opravilo_1;
break;
case konstanta2:
izvrsi_opravilo_2;
break;
…
case konstantaN:
izvrsi_opravilo_N;
72
break;
default:
rezervno_opravilo;
break;
}
Ukaz default je opcijski in ni obvezen. Izvrš i se samo, èe nobeden od pogojev ni izpolnjen.Ukaz
break pa je zelo pomemben, saj prekine izvajanje switch stavka, ko je posamezen pogoj izpolnjen.
return………….Ta ukaz uporabljamo, kadar želimo funkcijo predèasno zapustiti ali pa vrniti
vrednost doloèene lokalne spremenljivke.
Primer :
unsigned char PI_regulator (unsigned int Xizm, unsigned int Xzel) {
unsigned int y;
if(Xizm==0)
return;
…izraèun nove korekcijske vrednosti
…
return y;
}
for……………...For zanka. Pri inicializaciji postavimo zaèetno vrednost š tevca. S pogojem
testiramo tudi pogoj za izhod iz zanke. S spremembo pa doloèimo stopnjo
inkrementiranja / dekrementiranja š tevca ob vsakem prehodu zanke. Testiranje
pogoja se izvrš i prej kot izvajanje.
for(inicializacija š tevca;pogoj za ponovitev zanke;sprememba š tevca)
Primer :
for(i=0;i<10;i++) {
a=2*i;
if(a==10)
alarm();
}
73
5. PREVAJALNIK
c51 LCD.c
l51 LCD.obj to LCD.abs CODE (0030H)
if ERRORLEVEL = 1 GOTO NAPAKA
ohs51 LCD.abs NOSB NOP NOM
IF ERRORLEVEL = 0 GOTO KONEC
:NAPAKA
REM PREVAJANJE NEUSPESNO
:KONEC
pause
rem del LCD.lst
del LCD.obj
del LCD.abs
del LCD.sym
rem del LCD.m51
rem hexobj.exe LCD.hex LCD.bin I
rem del LCD.hex
Vhodna datoteka je LCD.c (iz TURBO C jezika), izhodna pa LCD.hex (iz TURBO C PIC
prevajalnika).
Slika 36: Blokovna shema poteka programiranja mikrokontrolerja
PrevajalnikLCD.c LCD.hex Programator
MikrokontrolerATMEL89C2051
74
6. PROGRAMATOR PG302
ZA PROGRAMIRANJE ÈLANOV
DRUŽINE 80C51 IN AVR
Priš li so novi mikrokrmilniki in naš emu staremu programatorju je poš la sapa. Zaradi tega smo
poiskali novo poceni možnost programiranja mikrokontrolerjev družine 8051. Prièujoèi programator
je v osnovi namenjen programiranju popularnih malih Atmelovih mikrokrmilnikov serije 89C1051 in
89C2051 v DIL 20 ohiš ju, takoj zatem pa novim RISC mikrokontrolerjem AVR serije 90SXXXX.
Seveda zna programator PG302 programirati poleg Atmelovih mikrokontrolerjev tudi
mikrokontrolerje proizvajalcev AMD, Dallas, Intel in Philips.
Koncept
Resnejš i razvijalci programske opreme za mikrokrmilnike uporabljajo pri programiranju emulatorje.
Pri tem lahko sledijo toku podatkov, preverjajo lahko stanja akumulatorjev in ostalih registrov, po-
stavljajo lahko tudi prekinitvene toèke. Vse to jim pomaga pri hitrem pisanju kode in kar je najbolj
važno pri razhroš èevanju kode. Ker pa je naš programator prvenstveno na menjen mikroprocesorjem z
majhnim pomnilnikom (89C1051 ima le 1Kb) emulatorja, mikrokrmilnikov niti ne potrebujemo, saj
je naš a koda zelo kratka in lahko sledimo toku podatkov tudi na zaslonu ali na listingu programa. Z
metodo poizkuš anja lahko program kar hitro razhroš èimo, nakar ga š e zadnjiè sprogramiramo,
zaklenemo lock bite in ga vstavimo v naš e ciljno vezje. Š e enostavnejš a stvar je pri programiranju
AVR mikrokrmilnikov z SPI vodilom, preko katerega lahko procesor vpiš emo kar v ciljnem sistemu
in to lahko storimo do 10.000-krat.
Programator PG302 sodi v razred amaterskih in polprofesionalnih programatorjev in je prime-
ren tako za domaèe delo kot za programiranje manjš ih serij mikrokrmilnikov. Programira precejš en
del družine mikrokrmilnikov 80C51, odlikuje pa ga tudi dovolj nizka cena. Kljub temu pa programira
zanesljivo in hitro, uporabniš ki vmesnik na PC ju pa deluje v prijaznem Windows okolju.
75
6.1. Elektronika
6.1.1. Elektrièna shema
Programator je pravzaprav zelo enostavna napravica. Datoteko s strojno kodo mora paè vpisati v
izbrani mikroprocesor na enega od dveh možnih naèinov: normalno preko port a P1 in P3 (za obièajne
krmilnike s Flash ali PROM pomnilnikom) ali preko SPI vodila (AVR-ji). Glavna komponenta
programatorja je mikrokontroler Atmel 89C2051, ki deluje s taktom 11MHz. Mikrokontroler skrbi za
to, da prevzame kodo in jo po doloèenem programirnem algoritmu shrani v pomnilnik
mikrokrmilnika, ki ga programiramo. PG302 je na PC povezan po navadnem serijskem kanalu
RS232, zato je uporabljen MAX232ACPE, znani pretvornik nivojev TTL/±9V, ki uporablja kon-
denzatorje vrednosti 1 µF, napajamo pa ga le s petimi volti.
Ker ima mali AT89C2051 premalo portov za programiranje vstavljenega mikrokrmilnika, je
za preklapljanje med programiranjem in normalnim delovanjem ter vkljuèevanje delovne napetosti
uporabljen dodaten latch, ki "demultipleksira" port Pl. Kot Chip select za 74HC573 je uporabljen
izhod P3.7 (LATCH).
Programator se napaja z napetostjo od +15 do +25 V DC max. . Uporabimo lahko kar
standardni adapter-napajalnik, ki ga lahko kupimo za nekaj 100 tolarjev v skoraj vsaki trgovini z
elektromaterialom. Pri tem pazite na polariteto na vaš em adapterju! Notranji prikljuèek na
napajalnem konektorju je plus, minus je zunanji prikljuèek (oklep), kar je tudi razvidno iz elektriène
sheme (slika 37). Napajalnik mora zagotoviti vsaj 200 mA ali veè toka, da bo programator pravilno
deloval..
Napajalni del mora zagotoviti delovno napetost Vcc in programirno napetost Vpp. Za
stabilizacijo Vcc je uporabljen klasièni 5-voltni regulator LM7805. Zaradi precejš nje disipacije je
uporabljen 1-amperski, èeprav bi po porabi zadostoval tudi manjš i. Programirno napetost dobimo z
regulatorjem LM3I7LZA. To je nastavljiv regulator v plastiènem ohiš ju, ki zagotavlja cca. 100 mA
toka, kar pa povsem zadoš èa. Napetost lahko nastavljamo s trimer potenciometrom vrednosti 500
ohmov, lahko pa vgradimo kar navaden upor, ki ga prej umerimo.
Procesor ICl preklaplja med programirno in reset napetostjo s signali Power_2 in Power_3 z
vkljuèevanjem tranzistorja Q1 ali Q3. Nizek signal Power_2 pomeni reset napetost, visok signal
Power_3 pa programirno napetost. S signalom Power_1 vkljuèujemo in izkljuèujemo delovno
napetost programiranega mikrokontrolerèka.
76
Slika 37: Elektrièna shema programatorja PG302
6.1.2. Gradnja in umerjanje
Samogradnja programatorja je izredno enostavna. Po ustaljenem redu najprej prispajkajte vse nizke
elemente, nato vse viš je, èisto na koncu pa š e konektorje. Vendar POZOR! Pred vgradnjo TEXTOOL
podnožja moramo najprej preveriti delovanje po naslednjih toèkah:
• Programator prikljuèimo na napajalno napetost in z voltmetrom pomerimo na testnih toèkah
GND in Vcc. Voltmeter mora pokazati 5V.
• Voltmeter prikljuèimo na toèki GND in Vpp. Tokrat moramo nameriti 12.75V . Èe temu ni tako,
moramo s trimer potenciometrom TP1 nastaviti napetost tako, da bo voltmeter pokazal 12.75V .
• Programator izkljuèimo in dokonèamo gradnjo programatorja. Èe želite vezje vgraditi v ohiš je,
je najbolje, da pod TEXTOOL podnožje vtaknete š e eno DIL podnožje. S tem boste pridobili na
viš ini. Roèica TEXTOOL podnožja mora nam reè gledati iz ohiš ja tudi takrat, ko je podnožje
zaprto. Ker je najviš ja komponenta stabilizator, jo lahko prispajkate na spodnji strani tiskanine.
Adapter 220V/l5V DC do 25V DC lahko vgradite v ohiš je programatorja. Èe programatorja ne boste
vgradili v ohiš je, pa je najbolje, da je adapter v solidnem plastiènem ohiš ju. Že zaradi varnosti!
77
Slika 38: Montažna shema programatorja PG302
6.1.3. Izdelava serijskega kabla za povezavo s PC in napajalnega kabla
Izdelava kabla je enostavna:
po zgornji shemi sestavite dva konektorja DB9, na strani programatorja je moš ki in na strani PC-ja
ženski. Namesto na DB9 lahko na PC strani namestite konektor DB25. V tem primeru se držite
sheme na sliki 39. Uporabljene so le tri žice: TXD, RXD in GND.
Slika 39: Razpored prikljuèkov na serijskem kablu s konektorji DB9 in DB9 na DB25 na PC strani
78
6.1.4. ISP (In-System-Programming) - programiranje mikrokontrolerjev v ciljnem sistemu
Èe uporabljate mikrokrmilnike z SPI vodilom, potem praktièno ne potrebujete emulatorja. Procesor
lahko vstavimo v tiskano vezje in celo prispajkamo, nato pa ga preko kabla zvežemo z naš im
programatorjem, tako kot je narisano v spodnji shemi (slika 40). Jasno pa je, da si morate konektor za
ISP programiranje pripraviti tudi v ciljnem sistemu in ga seveda povezati na ustrezne prikljuèke
mikrokrmilnika!
Slika 40: Prikljuèki kabla za programiranje ISP komponent
Slika 41: Opozorilo za ISP programiranje preko SPI vodila. Žal program š e ne zna zakleniti lock
bitov AVR mikrokrmilnikov
6.2. Programska oprema
6.2.1. Namešèanje programa v PC
Krmilni program v PC-ju teèe v Windows okolju. Deluje tako v Win 3.11 kot tudi v Win95 ali
Windows NT operacijskem sistemu. Program za namestitev dobite na 3.5-inchni disketi. Pri
instalaciji naložite na mestitveni program setup3_0.exe v svoj direktorij oz. mapo in ga zaženite. Ker
je to samorazš iritveni program, sam razpakira programe, ki so potrebni za delovanje programatorja.
Ko je to narejeno, lahko zaženete program Pg302.exe.
79
6.2.2. Nastavitve programa (Setup)
Ko se odpre okno programa, najprej izberite proizvajalca in vrsto mikrokontrolerja, ki ga želite
programirati. Nadalje svetujemo, da si v meniju Setup odkljukate Auto Verify in Auto Erase. Tako
bo programiranje teklo tekoèe. Lahko tudi poizkusite drugaèe, vendar se utegne vaš raèunalnik v
ekstremnih primerih tudi "obesiti".
Programator preko zgoraj opisanega standardnega kabla za serijsko komunikacijo priklopite
na eno od prostih serijskih komunikacijskih vrat. Nato morate doloèiti komunikacijska vrata
(slika 42), preko katerih bo potekalo programiranje. V kolikor ne veste, na katerih komunikacijskih
vratih je vaš programator priklopljen, lahko poizkuš ate tako, da v meniju Setup.Comms najprej
izberete Comm1, izpraznete TEXTOOL podnožje pro gramatorja, priklopite napajalno napetost in
pritisnete Blank Check ter poèakate na odgovor programatorja. V kolikor bo odgovor "Programmer
not responding", zamenjajte komunikacijska vrata v meniju Setup.Comms ali celo preklopite serijski
kabel na druga komunikacijska vrata vaš ega raèunalnika. To poèenjajte toliko èasa, da dobite
odgovor "Device Blank".
Mikrokontroler vložimo v TEX TOOL podnožje programatorja. Mikrokontroler naj bo obrnjen tako,
da ima nogico 1 pri roèici TEXTOOL podnožja, oziroma vsa integrirana vezja na programatorju naj
imajo nogico 1 na isti strani!.
Slika 42: Izbira komunikacijskega porta Slika 43: Programiranje
Slika 45: Izbira procesorjev, ki jih želimo programirati
Slika 44:Opozorilo prednapaènim formatomhex datoteke
80
6.2.3. Programiranje
Sedaj že lahko programirate mikro kontrolerje, jih berete in shranite njihovo vsebino v datoteko.
Seveda ne morete prebrati vsebine mikrokontrolerja, ki so ga pri programiranju "zaklenili" s t.i. Lock
biti.
Samo programiranje poteka tako, da najprej z ukazom "Browse" poiš èemo, kje se nahaja
datoteka, ki jo želimo programirati. Ko jo naj demo, jo kliknemo z miš ko in š e enkrat kliknemo na
OK. Program bo v primeru programiranja v spodnjem oknu napisal, kakš en je status programiranja.
Po uspeš nem programiranju lahko zaklenemo Lock bite tako, da pritisnemo "Program Lock
Bits".
Pri programiranju moramo upoš tevati, da programator programira SAMO Intelovo HEX ali
OBJ kodo! Vse druge oblike programske kode bodo napaèno sprogramirane in mikrokontroler ne bo
deloval po programu. Pri programiranju morate paziti, da ni hex koda prevelika glede na spominski
prostor mikrokontrolerja. Predolga koda za spominski prostor doloèenega mikrokontrolerja bo
pomenila, da bo programator pri preverjanju vsebine javil napako. Enako velja za EE-PROM pri
AVR procesorjih. Jasno je, da se mora oznaka mikrokontrolerja, ki ga želimo progra mirati, ujemati z
nastavljeno oznako mikrokontrolerja na programatorju. Tako bo programiranje npr. 89C2051
neuspeš no, èe je programator nastavljen na 89C51 in podobno.
Za programiranje 40-pinskih mikrokontrolerjev je potrebno dodatno podnožje-adapter. V
meniju Setup.Device so mikrokontrolerji brez oznake programirljivi brez dodatnih adapterjev, tisti
oznaèeni z eno zvezdico (*) se programirajo v adapterju, oznaèenim z #ADT87, tisti oznaèeni z
dvema zvezdicama (**) pa se programirajo v adapterju, oznaèenim z #ADT90. Na voljo pa je tudi
ISP programirni kabel, s katerim lahko programiramo AVR mikrokotrolerje kar v konènem vezju.
Seveda mora AVK mikrokontroler imeti SPI vodilo.
81
Slika 46: Izdelan programator
Tabela 22: Seznam uporabljenih elementov pri izdelavi programatorja
82
7. ZAKLJUÈEK
Prispeli smo do konca naš e poti po labirintih o LCD-ju. Èe ste dobili nove ideje o tem, kako bi
izboljš ali zasnovo ali uporabo programiranja LCD-ja, potem je namen te seminarske naloge dosežen.
Èe ste razumeli idejo o programiranju LCD-ja in o delovanju LCD-ja, potem prepustite vaš i
domiš ljiji prosto pot pri pisanju programov in s tem pri programiranju LCD-ja samem.Programi naj
bodo enostavni za uporabo. Past v katero se lahko ujamete pri okraš evanju programa je, da se s
pretiravanjem program naredi težji za uporabo, kot bi bil brez teh dodatkov. Glavno vodilo pri
uporabi podatkov naj bo torej zmernost in preudarnost, èe si noèete nakopati na glavo plohe poznih
noènih telefonskih klicev obupanih uporabnikov.
Predvsem pa imejte pred oèmi geslo : Nobena stvar ni dokonèana !!!!
83
UPORABLJENA LITERATURA:
1. ACTRON, Vertrieb elektronischer Bauelemente und Systeme GMBH,
navodila za uporabo LCD prikazovalnikov
2. Rudolf Weinzerl, ANSI C, navodila za uporabo programskega jezika ANSI C,
Šolski center Ptuj, Poklicna in tehniš ka elektro š ola
3. Rudolf Weinzerl, ATMEL 89C2051, navodila za uporabo mikrokontrolerja ATMEL 89C2051,
Šolski center Ptuj, Poklicna in tehniš ka elektro š ola
4. Robert Lorencon, Elektronski elementi in vezja, Studio Maya, Ljubljana 1996
5. Svet elektronike, Delo z LCD displeji s kontrolerjem HD44780 1. del, strokovna revija
6. Svet elektronike, Delo z LCD displeji s kontrolerjem HD44780 2. del, strokovna revija
7. Svet elektronike, Hobi, Samogradnje, Programator PG302 za programiranje èlanov družine
80C51 in AVR, strokovna revija, december 1997
84
ZAHVALA : Zahvaljujem se profesorju Rudolfu Weinzerlu univ. dipl. ing. el. za pomoè, nasvete,
trud in èas, ki ga je vložil v to seminarsko nalogo.Hvala.