Да би се успоставила добра комуникација између људског света и света машина, јединице приказа имају важну улогу. Дакле, они су важан део уграђених система. Дисплејне јединице - велике или мале, раде на истом основном принципу. Поред сложених јединица приказа попут графичких дисплеја и 3Д дисплеја, мора се знати радити и са једноставним екранима попут јединица 16к1 и 16к2. Екран 16к1 имаће 16 знакова и налази се у једном реду. 16к2 ЛЦД ће имати 32 знакова у укупном 16ин 1 -ог линије и још 16 у 2 ндлинија. Овде треба схватити да у сваком знаку има 5к10 = 50 пиксела, тако да за приказ једног знака свих 50 пиксела морају да раде заједно. Али не треба да бринемо због тога, јер се у јединици екрана налази још један контролер (ХД44780) који обавља посао контроле пиксела. (можете га видети на ЛЦД јединици, то је црно око позади).
Компоненте потребне
Хардвер:
Микроконтролер АТмега32
Напајање (5в)
АВР-ИСП програмер
ЈХД_162АЛЦД (16к2 ЛЦД)
Кондензатор од 100уФ.
Софтвер:
Атмел студио 6.1
Прогисп или фласх магија
Шема и објашњење
Као што је приказано на ЛЦД повезивању са кругом АТмега32, можете видети да је ПОРТА од АТМЕГА32 повезана на ЛЦД порт за пренос података. Овде треба имати на уму да онемогућите ЈТАГ комуникацију у ПОРТЦ-у АТМЕГА-е променом бајтова осигурача, ако желите да ПОРТЦ користите као нормалан комуникациони порт. На ЛЦД екрану 16к2 има 16 пинова, ако постоји позадинско светло, ако нема позадинског светла, биће 14 пинова. Може се напајати или оставити игле задњег светла. Сада у 14 пинова постоји 8 пинова за податке (7-14 или Д0-Д7), 2 пина за напајање (1 и 2 или ВСС & ВДД или гнд & + 5в), трећи пин за контролу контраста (ВЕЕ - контролише колико дебели знакови треба да буду приказано), 3 контролна пина (РС & РВ & Е)
У горњем кругу за повезивање ЛЦД-а 16к2 са АВР микроконтролером можете приметити да сам узео само два контролна пина. Ово даје флексибилност бољег разумевања. Контрастни бит и РЕАД / ВРИТЕ се не користе често, тако да могу бити кратко спојени на масу. Ово ЛЦД поставља у највећи контраст и режим читања. Само треба да контролишемо ЕНАБЛЕ и РС пинове да би у складу са тим слали знакове и податке.
Везе између АТмега32 микроконтролера и 16к2 ЛЦД приказане су у наставку:
ПИН1 или ВСС - уземљење
ПИН2 или ВДД или ВЦЦ - + 5в снаге
ПИН3 или ВЕЕ - земља (даје максимални контраст најбољи за почетнике)
ПИН4 или РС (Избор регистра) - ПД6 микроконтролера
ПИН5 или РВ (читање / писање) - уземљење (ставља ЛЦД у режим читања олакшава комуникацију за корисника)
ПИН6 или Е (Омогући) - ПД5 микроконтролера
ПИН7 или Д0 - ПА0 микроконтролера
ПИН8 или Д1 - ПА1
ПИН9 или Д2 - ПА2
ПИН10 или Д3 - ПА3
ПИН11 или Д4 - ПА4
ПИН12 или Д5 - ПА5
ПИН13 или Д6 - ПА6
ПИН14 или Д7 - ПА7
У кругу можете видети да смо користили 8-битну комуникацију (Д0-Д7), међутим то није обавезно, а такође можемо користити и 4-битну комуникацију (Д4-Д7), али са 4-битним комуникацијским програмом постаје мало сложен за почетнике, па смо управо кренули 8-битна комуникација.
Тако из пуког посматрања из горње табеле повезујемо 10 пинова ЛЦД-а на контролер у којем су 8 пинова пинови за податке и 2 пина за контролу.
Рад
Сада да бисте започели морате знати функције 10 пинова ЛЦД-а 16к2 (8 пина за податке + 2 пина за управљање). 8 пинова за податке служи за слање података или команди на ЛЦД. У два контролна пина:
1. Прибадача РС (Регистар за одабир) говори ЛЦД-у да ли му шаљемо податке или команду.
На пример:
У горњој табели једна за вредност Дата порт (Д7-Д0) вредности „0б0010 1000 или 0к28“ говори ЛЦД-у да прикаже симбол „(“. У табели две иста вредност 0к28 говори ЛЦД-у „ви сте ЛЦД са 5 тачака и понашајте се као један ", тако да за исту вредност корисник може дефинисати две ствари, сада је ова ситуација неутралисана регистрационим избором, ако је РС пин постављен на низак ниво, ЛЦД разуме да шаљемо наредбу. Ако РС пин поставимо на висок тада ЛЦД разуме да шаљемо податке, па у оба случаја ЛЦД поштује вредност порта података према РС пин вредности.
2. Е (Омогући) пин је само да каже „ЛЕД индикатор напајања рачунара“, овај пин је постављен на високо да каже ЛЦД-у „да прима податке из порта података контролера“. Једном када се овај пин при крају смањи, ЛЦД обрађује примљене податке и приказује одговарајући резултат. Дакле, овај пин је постављен на високу вредност пре слања података и срушен на земљу након слања података.
Сада након повезивања хардвера, покрените Атмел студио и започните нови пројекат за писање програма, сада отворите екран за програмирање и покрените програм за ожичење. Програм мора следити како следи.
Прво кажемо контролеру које портове користимо за податке и контролу ЛЦД-а. Затим реците контролеру када треба да пошаље податке или наредбу у складу са играњем са РС и Е пиновима.
Кратко објашњење концепата који се користе у програму:
1. Е је постављено високо (говори ЛЦД-у да прима податке), а РС је постављено ниско (говори ЛЦД-у дајемо команду)
2. Давање вредности 0к01 на порт података као наредба за брисање екрана
3. Е је постављено високо (говори ЛЦД-у да прима податке), а РС је постављено високо (говори ЛЦД-у дајемо податке)
4. Узимање низа знакова, слање сваког знака у низ један по један.
5. Е је постављено на ниско (говори ЛЦД да смо завршили са слањем података)
6. Након последње наредбе, ЛЦД прекида комуникацију и обрађује податке и приказује низ знакова на екрану.
У овом сценарију ћемо слати ликове један за другим. Знакови се на ЛЦД-у додељују АСЦИИ кодовима (амерички стандардни код за размену информација).
Табела АСЦИИ кодова је приказана горе. Овде да би ЛЦД приказао знак „@“, морамо послати хексадецимални код „64“. Ако на ЛЦД пошаљемо '0к62', показат ће симбол '>'. Овако ћемо послати одговарајуће кодове на ЛЦД да прикажу име.
Начин комуникације између ЛЦД-а и АТмега32 АВР микроконтролера најбоље је објаснити корак по корак Ц кода доле,