Дисплеј је неопходан део било које машине било да се ради о кућним апаратима или индустријским машинама. Екран не само да приказује опције управљања за управљање машином, већ приказује и статус и излаз задатка који је та машина извршила. Постоји много врста екрана који се користе у електроници, попут 7-сегментног екрана, 16к2 ЛЦД екрана, ТФТ екрана осетљивог на додир, ОЛЕД екрана итд.
ЛЦД екран од 16к2 је најосновнији модул за приказ, а користи се и у малој електронској опреми попут калкулатора, дигиталног бројила итд. Направили смо пуно пројеката користећи ЛЦД 16к2, укључујући основно повезивање са другим микроконтролерима:
- ЛЦД интерфејс са микроконтролером 8051
- Повезивање ЛЦД-а са АТмега32 микроконтролером
- ЛЦД повезивање са ПИЦ микроконтролером
- Повезивање ЛЦД-а од 16к2 са Ардуином
- ЛЦД повезивање 16к2 са Распберри Пи помоћу Питхона
У овом упутству ћемо видети како повезати ЛЦД 16к2 са Атмега16 АВР микроконтролером и приказати једноставну поруку добродошлице.
Компоненте потребне
- Атмега16
- ЛЦД модул од 16к2
- Скакачи
- Бреадбоард
Кружни дијаграм
Програмирање Атмега16 за ЛЦД екран од 16к2
Програмирање не захтева спољне библиотеке. Овде се Атмега16 програмира помоћу УСБАСП и Атмел Студио7.0. Комплетни програм и радни видео даје се на крају пројекта, само отпремите програм у Атмега16 и ротирајте 10к ПОТ да бисте подесили осветљеност ЛЦД екрана.У почетку дефинишите фреквенцију процесора и укључите потребне библиотеке које се испоручују са Атмел Студио пакетом, као што је приступ ИО пиновима
У програму дефинишите РС и ЕН пин ЛЦД- а. РС пинови се користе за одабир регистра података и наредби. Омогућавајућа игла закључава податке.
#дефине ен ПА3 #дефине рс ПА2
Такође дефинишите који ПОРТ од Атмега16 ће се користити за повезивање ЛЦД-а. Овде се користи ПОРТА.
#дефине лцдДирецтион ДДРА #дефине лцдПорт ПОРТА
Следећи корак је конструисање функције која ће прихватити наредбу прослеђивањем параметра. Постоји много ЛЦД ХЕКС команди. Хек наредбе се користе за дефинисање функције ЛЦД-а. Будући да користимо 4-битни режим ЛЦД-а, бајт (8-битни) ће бити послат у два пакета. Један пакет ће бити Горњи грицкање (4-битни), а други пакет Доњи грицкање (4-битни).
воид лцдЦомманд (непотписане цхар команде) { лцдПорт = (лцдПорт & 0к0Ф) - (команде & 0кФ0); лцдПорт & = ~ (1 <
Следећи корак био би прихватање знакова и закачивање за порт ЛЦД-а. Примљени ликови се затим грицкају на ЛЦД грицкајући. Функција узима знак користећи параметар пасс би, а затим узима горњи и доњи грицкање. Пин рс је постављен на високу вредност за регистар података, а затим се шаље импулс у порасту да би се подаци закључали. Слично томе, доњи грицкање је послато променом вредности омогућавања и слањем пораста импулса за омогућавање.
воид лцдЦхар (непотписани цхар знак) { лцдПорт = (лцдПорт & 0к0Ф) - (стринг & 0кФ0); лцдПорт - = (1 <
Ова функција само претвара знак у низ и може се касније користити у програму тамо где је потребно писање низа.
воид лцдСтринг (цхар * стр) { инт ј; за (ј = 0; стр! = 0; ј ++) { лцдЦхар (стр); } }
Сада је написана функција само за чишћење екрана. Само треба да пошаљете команду 01 у хексадецималном формату, а затим само поставите курсор у почетни положај.
воид лцдЦлеар () { лцдЦомманд (0к01); _делаи_мс (2); лцдЦомманд (0к80); }
Сада је у главној функцији ЛЦД иницијализован. У почетку подесите правац ПОРТ за интерфејс ЛЦД-а. Овде је ПОРТ постављен као ОУТПУТ, па је подешен ФФ.
лцдДирецтион = 0кФФ; _делаи_мс (20)
Затим поставите ЛЦД у 4-битни режим слањем 02 у хексадецималном облику. Такође пошаљите 28 у хексадецималном положају да бисте га поставили у 2 линије, 15к7 матричних пиксела у 4-битном режиму.
лцдЦомманд (0к02); лцдЦомманд (0к28);
Команда 0 ° Ц и 06 се користи за контролу курсора. И на крају само очистите екран слањем 01 у хексадецималном облику. Ово ће завршити иницијализацију ЛЦД-а.
лцдЦомманд (0к0ц); лцдЦомманд (0к06); лцдЦомманд (0к01);
По завршетку иницијализације само тестирајте ЛЦД слањем низа. Овде шаљемо низ „ Интерфацинг ЛЦД “ у 1. реду.
лцдСтринг ("Интерфацинг ЛЦД");
Затим померите курсор у следећи ред слањем наредбе ц0 у хексадецималном облику. И на крају на овој позицији напишите низ „Витх Атмега1 6“.
лцдЦомманд (0кЦ0); лцдСтринг ("Са Атмега16");
Овим је завршен комплетан водич о повезивању ЛЦД дисплеја 16к2 са Атмега16. Имајте на уму да ако не добијете никакву слику или пикселе, тада проверите ожичење према коду и шеми или промените вредност ПОТ-а причвршћеног на В0 пин на ЛЦД-у. Ако имате било какве сумње или предлога, можете нас контактирати писањем на наш форум или коментаром у наставку.