Lai izveidotu labu komunikāciju starp cilvēku pasauli un mašīnu pasauli, svarīga loma ir displeja blokiem. Tāpēc tās ir svarīga iegulto sistēmu sastāvdaļa. Displeja vienības - lielas vai mazas, darbojas pēc tā paša pamatprincipa. Papildus sarežģītām displeja vienībām, piemēram, grafiskiem displejiem un 3D displejiem, jāzina, kā strādāt ar vienkāršiem displejiem, piemēram, 16x1 un 16x2. 16x1 displeja blokam būs 16 rakstzīmes, un tas būs vienā rindā. 16x2 LCD būs 32 rakstzīmes kopējā 16in 1 st līnijas un vēl 16 2 ndlīnija. Šeit jāsaprot, ka katrā rakstzīmē ir 5x10 = 50 pikseļi, tāpēc, lai parādītu vienu rakstzīmi, visiem 50 pikseļiem ir jādarbojas kopā. Bet mums par to nav jāuztraucas, jo displeja blokā ir vēl viens kontrolieris (HD44780), kas veic pikseļu kontroli. (to var redzēt LCD vienībā, tā ir melnā acs aizmugurē).
Nepieciešamās sastāvdaļas
Aparatūra:
ATmega32 mikrokontrolleris
Barošanas avots (5v)
AVR-ISP programmētājs
JHD_162ALCD (16x2 LCD)
100uF kondensators.
Programmatūra:
Atmel studija 6.1
Progisp vai zibspuldzes maģija
Shēmas shēma un paskaidrojums
Kā parādīts LCD saskarnē ar ATmega32 ķēdi, jūs varat redzēt, ka ATMEGA32 PORTA ir savienots ar datu porta LCD. Šeit jāatceras atspējot JTAG sakarus ATMEGA PORTC, mainot drošinātāju baitus, ja vēlaties PORTC izmantot kā parastu sakaru portu. 16x2 LCD ekrānā ir 16 tapas, ja ir aizmugures gaisma, ja aizmugures apgaismojuma nav, būs 14 tapas. Var darbināt vai atstāt aizmugurējās gaismas tapas. Tagad 14 tapas ir 8 datu tapas (7-14 vai D0-D7), 2 el piegādes tapas (1 un 2 vai VSS un VDD vai GND & + 5v), 3 rd pin kontrasta kontrole (Vee-kontrolē, cik biezu rakstzīmēm jābūt parādīts), 3 vadības tapas (RS & RW & E)
Iepriekš minētajā ķēdē, lai saskarne 16x2 LCD ar AVR mikrokontrolleru, jūs varat novērot, ka man ir tikai divas vadības tapas. Tas dod elastību labākai izpratnei. Kontrasta bits un READ / WRITE netiek bieži lietoti, tāpēc tos var saīsināt. Tas nodrošina LCD kontrasta un lasīšanas režīmu. Mums vienkārši jākontrolē ENABLE un RS tapas, lai atbilstoši nosūtītu rakstzīmes un datus.
Savienojumi starp ATmega32 mikrokontrolleru un 16x2 LCD ir norādīti zemāk:
PIN1 vai VSS - zeme
PIN2 vai VDD vai VCC - + 5v jauda
PIN3 vai VEE - zeme (nodrošina maksimālu kontrastu iesācējam)
PIN4 vai RS (Register Selection) - mikrokontrollera PD6
PIN5 vai RW (lasīšana / rakstīšana) - zeme (LCD displejs tiek iestatīts lasīšanas režīmā, kas atvieglo saziņu lietotājam)
PIN6 vai E (iespējot) - mikrokontrollera PD5
Mikrokontrollera PIN7 vai D0 - PA0
PIN8 vai D1 - PA1
PIN9 vai D2 - PA2
PIN10 vai D3 - PA3
PIN11 vai D4 - PA4
PIN12 vai D5 - PA5
PIN13 vai D6 - PA6
PIN14 vai D7 - PA7
Shēmā jūs varat redzēt, ka esam izmantojuši 8 bitu sakarus (D0-D7), taču tas nav obligāti, un mēs varam izmantot arī 4 bitu sakarus (D4-D7), bet ar 4 bitu sakaru programma iesācējiem kļūst mazliet sarežģīta, tāpēc mēs vienkārši gājām 8 bitu komunikācija.
Tātad, vienkārši novērojot no tabulas augšpusē, mēs savienojam 10 LCD tapas ar kontrolieri, kurā 8 tapas ir datu tapas un 2 tapas kontrolei.
Strādā
Tagad, lai sāktu darbu, jums jāzina 16x2 LCD 10 kontaktu (8 datu tapas + 2 vadības tapas) funkcijas. 8 datu tapas ir paredzētas datu vai komandu nosūtīšanai uz LCD. Divās vadības tapās:
1. RS (Reģistrācijas atlase) tapa ir LCD norāde, vai mēs tam sūtām datus vai komandējam.
Piemēram:
Pirmajā tabulā datu porta (D7-D0) vērtībai “0b0010 1000 vai 0x28” LCD tiek parādīts simbols “(”. Otrajā tabulā tā pati 0x28 vērtība norāda LCD “jūs esat 5x7 punktu LCD un uzvesties kā viens ”, tāpēc lietotājs var definēt divas lietas attiecībā uz to pašu vērtību, tagad šī situācija tiek neitralizēta ar reģistra atlases tapu, ja RS spraudnis ir iestatīts uz zema līmeņa, tad LCD saprot, ka mēs sūtām komandu. LCD saprot, ka mēs sūtām datus. Tāpēc abos gadījumos LCD ievēro datu porta vērtību atbilstoši RS pin vērtībai.
2. E (Iespējot) kontakts ir vienkārši pateikt “datora strāvas indikācijas gaismas diode”, šī tapa ir iestatīta uz augstu, lai LCD norādītu “saņemt datu formas kontroliera datu portu”. Kad šī tapa pēc augsta līmeņa pazeminās, LCD apstrādā saņemtos datus un parāda atbilstošo rezultātu. Tātad šī tapa pirms datu sūtīšanas ir iestatīta uz augstu un pēc datu nosūtīšanas tiek novilkta uz zemes.
Pēc aparatūras pievienošanas sāciet programmu Atmel un sāciet jaunu programmas rakstīšanas projektu, tagad atveriet programmēšanas ekrānu un sāciet programmu izvīt. Programmai ir jāseko kā šovam.
Vispirms mēs pastāstām kontrolierim, kurus portus mēs izmantojam LCD datiem un kontrolei. Tad pasakiet kontrolierim, kad attiecīgi jānosūta dati vai komanda, spēlējot ar RS un E tapām.
Īss programmā izmantoto jēdzienu skaidrojums:
1. E ir iestatīts uz augšu (LCD sakot, lai saņemtu datus), un RS ir iestatīts uz zemu (sakot, LCD mēs dodam komandu)
2. Piešķirt vērtību 0x01 datu portam kā komandu ekrāna notīrīšanai
3. E ir iestatīts augsts (liekot LCD saņemt datus) un RS ir iestatīts augstu (LCD sakot, ka mēs sniedzam datus)
4. Ņemot rakstzīmju virkni, katru rakstzīmi nosūtot virknē pa vienam.
5. E ir iestatīts uz leju (LCD paziņo, ka esam sūtījuši datus)
6. Pēc pēdējās komandas LCD pārtrauc sakarus, apstrādā datus un ekrānā parāda rakstzīmju virkni.
Šajā scenārijā mēs sūtīsim rakstzīmes vienu pēc otras. Rakstzīmes LCD tiek piešķirtas ar ASCII kodiem (Amerikas standarta informācijas apmaiņas kods).
ASCII kodu tabula ir parādīta iepriekš. Lai LCD parādītu rakstzīmi “@”, mums jānosūta heksadecimālais kods “64”. Ja mēs uz LCD nosūtīsim “0x62”, tiks parādīts simbols “>”. Šādi mēs nosūtīsim attiecīgos kodus uz LCD, lai parādītu vārdu.
Saziņas veidu starp LCD un ATmega32 AVR mikrokontrolleru vislabāk var izskaidrot soli pa solim ar C kodu zemāk,