- 16к2 матрични ЛЦД контролер ИЦ ХД44780:
- Приказивање прилагођеног карактера на ЛЦД екрану од 16к2:
- Програмирање и објашњење рада:
- Везе и испитивање струјних кругова:
У нашем претходном упутству научили смо како повезати ЛЦД са 16 * 2 са ПИЦ микроконтролером. Ако сте почетник у ПИЦ микроконтролеру, препоручујемо вам да га прођете пре него што наставите даље. Претходно смо такође научили основе ПИЦ-а користећи ЛЕД програм за трептање и тајмере у ПИЦ микроконтролеру. Овде можете погледати све водиче о учењу ПИЦ микроконтролера помоћу МПЛАБКС и КСЦ8 компајлера.
У овом упутству учинимо га занимљивијим стварањем сопствених прилагођених ликова и приказивањем на нашем ЛЦД екрану помоћу ПИЦ16Ф877А ПИЦ микроконтролера. Такође постоје неки унапред дефинисани углавном коришћени прилагођени знакови које даје сама ХД44780А ИЦ, а видећемо и како их можемо користити. Као што је објашњено у претходном упутству, на нашем ЛЦД екрану уграђен је контролер Хитацхи ХД44780 који нам помаже да приказујемо знакове. Сваки знак који приказујемо је већ унапред дефинисан унутар РОМ-а ХД44780 ИЦ. Научићемо о ЛЦД контролеру ИЦ ХД44780, пре приказивања карактера на ЛЦД-у.
16к2 матрични ЛЦД контролер ИЦ ХД44780:
Да бисмо приказали прилагођени знак, морамо некако да кажемо ИЦ-у како ће изгледати прилагођени знак. Да бисмо то урадили, требали бисмо знати о три врсте меморија присутних у ИЦ4444 ЛЦД ЛЦД контролеру:
РОМ генератора знакова (ЦГРОМ): То је меморија само за читање која, као што је раније речено, садржи све обрасце знакова унапред дефинисаних у њој. Овај РОМ ће се разликовати од сваке врсте ИЦ интерфејса, а неки могу имати неки унапред дефинисани прилагођени карактер.
Приказ података РАМ-а (ДДРАМ): Ово је меморија са случајним приступом. Сваки пут када прикажемо знак, његов образац ће бити преузет из ЦГРОМ-а и пребачен у ДДРАМ, а затим постављен на екран. Поједностављено, ДДРАМ ће имати узорке свих знакова који се тренутно приказују на ЛЦД екрану. На овај начин за сваки циклус ИЦ не мора да преузима податке са ЦГРОМ-а и помаже у добијању кратке фреквенције ажурирања
РАМ генератора знакова (ЦГРАМ): Ово је такође меморија са случајним приступом, тако да из ње можемо писати и читати податке. Као што назив имплицира, ова меморија ће се користити за генерисање прилагођеног карактера. Морамо формирати образац за лик и записати га у ЦГРАМ, овај образац се може прочитати и приказати на екрану када је то потребно.
Сада, пошто смо стекли основно разумевање типова меморије присутних у ИЦ интерфејсу ХД44780. Погледајмо његову таблицу података да бисмо разумели нешто више.
Као што се у техничком листу подразумева, ХД44780 ИЦ је обезбедио 8 локација за чување наших прилагођених образаца у ЦГРАМ-у, такође са десне стране можемо видети да постоје неки унапред дефинисани знакови који се такође могу приказати на нашем ЛЦД екрану. Да видимо како то можемо.
Приказивање прилагођеног карактера на ЛЦД екрану од 16к2:
Да бисмо приказали прилагођени знак, прво морамо генерисати образац за њега, а затим га сачувати у ЦГРАМ-у. С обзиром да већ имамо функције библиотеке, требало би то лако учинити помоћу неких једноставних наредби. Ево библиотеке за функције ЛЦД-а, али овде смо копирали све функције библиотеке у сам програм, тако да нема потребе за укључивањем ове датотеке заглавља у наш програм. Такође у овом чланку погледајте основни рад ЛЦД-а и његове пиноуте.
Први корак је генерисање узорка или прилагођеног карактера. Као што знамо, сваки знак је комбинација 5 * 8 тачака. Морамо одабрати која тачка (пиксел) треба да иде високо, а која треба да остане ниска. Једноставно нацртајте оквир као испод и осенчите регионе на основу вашег карактера. Мој лик овде је човек са палицама (надам се да изгледа тако). Једном осенчени, једноставно напишите еквивалентну бинарну вредност сваког бајта као што је приказано доле.
Једноставно ставите '1' на засјењену регију и '0' на засјењену регију за сваки бајт, и то је да је наш прилагођени образац спреман. Слично томе, направио сам 8 прилагођених кодова образаца за наших 8 меморијских простора који представљају ЦГРОМ. Наведени су у доњој табели.
С.НО: |
Прилагођени карактер |
Шифра узорка |
1 |
|
0б01110, 0б01110, 0б00100, 0б01110, 0б10101, 0б00100, 0б01010, 0б01010 |
2 |
|
0б00000, 0б00000, 0б01010, 0б00100, 0б00100, 0б10001, 0б01110, 0б00000 |
3 |
|
0б00100, 0б01110, 0б11111, 0б11111, 0б01110, 0б01110, 0б01010, 0б01010 |
4 |
|
0б01110, 0б10001, 0б10001, 0б11111, 0б11011, 0б11011, 0б11111, 0б00000 |
5 |
|
0б01110, 0б10000, 0б10000, 0б11111, 0б11011, 0б11011, 0б11111, 0б00000 |
6 |
|
0б00000, 0б10001, 0б01010, 0б10001, 0б00100, 0б01110, 0б10001, 0б00000 |
7 |
|
0б00000, 0б00000, 0б01010, 0б10101, 0б10001, 0б01110, 0б00100, 0б00000 |
8 |
|
0б11111, 0б11111, 0б10101, 0б11011, 0б11011, 0б11111, 0б10001, 0б11111 |
Напомена: Није обавезно учитавање свих 8 места предвиђених у ЦГРАМ-у.
Програмирање и објашњење рада:
Сада су наши кодови образаца спремни, само их морамо учитати у ЦГРАМ ЛЦД-а и приказати помоћу ПИЦ микроконтролера. Да бисмо их учитали у ЦГРАМ, можемо формирати низ елемената 5 * 8 и учитати сваки бајт помоћу ' фор петље '. Низ кодова узорка приказан је испод:
цонст унсигнед схорт Цустом_Цхар5к8 = {0б01110,0б01110,0б00100,0б01110,0б10101,0б00100,0б01010,0б01010, // Шифра простора меморије ЦГРАМ 1 0б00000,0б00000,0б01010,0б00100,0б00100,0б10001,0б01110,0б00, ЦГРАМ меморијски простор 2 0б00100,0б01110,0б11111,0б11111,0б01110,0б01110,0б01010,0б01010, // Шифра за меморијски простор ЦГРАМ 3 0б01110,0б10001,0б10001,0б11111,0б11011,0б11011,0б11111,0б00000АМ // Цоде фор ЦГР простор 4 0б01110,0б10000,0б10000,0б11111,0б11011,0б11011,0б11111,0б00000, // Код за меморијски простор ЦГРАМ 5 0б00000,0б10001,0б01010,0б10001,0б00100,0б01110,0б10001,0б00000, // Код за меморијски простор ЦГРАМ 6 0б00000,0б00000,0б01010,0б10101,0б10001,0б01110,0б00100,0б00000, // Шифра простора меморије ЦГРАМ 7 0б11111,0б11111,0б10101,0б11011,0б11011,0б11111,0б10001,0б11111 // Код за меморијски простор ЦГРАМ 8};
Сваки меморијски простор је препун свог поштованог узорка карактера. Да би се овај образац учитао у ХД44780 ИЦ, мора се упутити технички лист ХД44780, али само су командне линије које се могу користити за подешавање адресе ЦГРАМ-а
// *** Учитај прилагођени цхар у ЦГРОМ *** ////// Лцд_Цмд (0к04); // Постављање ЦГРАМ адресе Лцд_Цмд (0к00); //.. поставити ЦГРАМ адресу за (и = 0; и <= 63; и ++) Лцд_Принт_Цхар (Цустом_Цхар5к8); Лцд_Цмд (0); // Повратак на почетну страницу Лцд_Цмд (2); //.. повратак на почетну страницу // *** Учитавање прилагођеног знака комплетно *** //////
Овде се унутар „ фор петље“ свака бинарна вредност учитава у ЦГРОМ. Једном када се узорак учита, прилагођени знакови се могу приказати једноставним позивањем локације узорка помоћу воид функције Лцд_Принт_Цхар (цхар дата) као што је приказано доле.
Лцд_Принт_Цхар (0); // Прикажемо прилагођени знак 0 Лцд_Принт_Цхар (1); // Прикажемо прилагођени знак 1 Лцд_Принт_Цхар (2); // Прикажемо прилагођени знак 2 Лцд_Принт_Цхар (3); // Прикажемо прилагођени знак 3 Лцд_Принт_Цхар (4); // Прикажемо прилагођени знак 4 Лцд_Принт_Цхар (5); // Прикажемо прилагођени знак 5 Лцд_Принт_Цхар (6); // Прикажемо прилагођени знак 6 Лцд_Принт_Цхар (7); // Приказивање прилагођеног карактера 7
Штампај предефинисани специјални карактер:
ИЦ ХД44780 има неке унапред дефинисане специјалне знакове сачуване у ДДРОМ-у. Ови знакови се могу директно одштампати на екрану позивањем на његову бинарну вредност у техничком листу.
На пример: Бинарна вредност знака „АЛФА“ је 0б11100000. Како се то може добити може се разумети са доње слике, такође можете добити вредност за било који посебан знак који је унапред дефинисан у ИЦ.
Једном када је бинарна вредност позната, одговарајући знак се може одштампати на екрану једноставним коришћењем воид функције Лцд_Принт_Цхар (цхар дата) као што је приказано доле, Лцд_Принт_Цхар (0б11100000); // бинарна вредност алфа из техничког листа
Комплетан код овог пројекта је у наставку у Цоде делу, такође проверите детаљни видео објашњење на крају овог туторијала.
Везе и испитивање струјних кругова:
Овај пројекат нема додатних хардверских захтева, већ смо једноставно користили исте везе из претходног водича за повезивање ЛЦД-а и користили исту плочу коју смо креирали у водичу за трептање ЛЕД-а. Као и увек, симулирајмо програм користећи Протеус да бисмо верификовали наш излаз.
Једном када симулација ради како се очекује, омогућава директно сагоревање кода у нашу хардверску поставку. Резултат програма би требао бити отприлике овако:
Дакле, на тај начин можете приказати било који прилагођени карактер на ЛЦД- у димензија 16к2 помоћу ПИЦ микроконтролера са МПЛАБКС и КСЦ8 компајлером. Овде такође погледајте нашу комплетну ПИЦ серију за учење микроконтролера.