- Алфанумерички ЛЦД екран од 16к2
- 16к2 ЛЦД ЦЦС библиотека за МСП430
- ЛЦД функције за ЛЦД екран од 16к2 на МСП430
- Шема споја на ЛЦД интерфејс са МСП430
- Програмирање МСП430 помоћу Цоде Цомпосер Студио за ЛЦД екран
Овај чланак је наставак нашег упутства о програмирању МСП430 помоћу Цоде Цомпосер Студио. Последњи водич је заснован на спољним прекидима на МСП430 помоћу ГПИО пинова. Овај водич говори о повезивању екрана са МСП430, а када је у питању приказ ЛЦД екрана 16 * 2, то је први избор за сваког електронског хобиста. Раније смо такође повезали ЛЦД са МСП430 користећи Ардуино ИДЕ, у овом упутству ћемо користити матичну платформу Цоде Цомпосер студио уместо да користимо Ардуино ИДЕ, тако да као дизајнер добијамо већу флексибилност.
Да бисте сазнали више о ЛЦД екрану 16к2 и употреби са другим микроконтролером, погледајте доле упутства.
- Повезивање ЛЦД-а са АТмега16
- Повезивање ЛЦД-а са Распберри Пи
- Повезивање ЛЦД-а са ПИЦ микроконтролером
- Повезивање ЛЦД-а са АРМ7-ЛПЦ2148
- Повезивање ЛЦД-а са НодеМЦУ
- Повезивање ЛЦД-а са СТМ32
- Повезивање ЛЦД-а са МСП430Г2
- Повезивање ЛЦД-а са СТМ8
Има уграђени ИЦ хд44780 који може да ускладишти наредбу и податке који су јој прослеђени. ЛЦД модул има око 16 пинова. Од тога су 8 пинови за податке, од којих су 4 пинови за напајање за позадинско осветљење ЛЕД-а и цео ЛЦД модул, 3 за контролу рада и 1 пин за подешавање контраста. Водич је заснован на библиотеци коју је створио Деннис Еицхманн. Веома је једноставно користити библиотеку са одвојеним функцијама за штампање различитих типова података. Такође садржи одредбе за приказ података у различитим облицима са водећим, празним и избрисаним нулама. То је прилично опсежна и свеобухватна библиотека и подесива је за различите везе. Овде је датотека заглавља модификована да прилагоди 8-пинску паралелну конфигурацију за пренос података.
Алфанумерички ЛЦД екран од 16к2
Генерички екран 16к2 има уграђену хд44780 ИЦ (заокружену црвеном бојом доле), која може да ускладишти наредбу и податке који су јој прослеђени. ЛЦД модул има око 16 пинова. Од тога су 8 пинови за податке, од којих су 4 пинови за напајање за позадинско осветљење ЛЕД-а и цео ЛЦД модул, 3 за контролу рада и 1 пин за подешавање контраста.
Овај ЛЦД модул је приказан изнад свестраности и користи минималне игле у поређењу са другим сегментираним ЛЦД екранима. Ако сте знатижељни како тачно све ово функционише, требало би да проверите рад ЛЦД екрана 16к2 где смо већ детаљно разговарали о томе како ЛЦД ради.
РС пин: РС = 1 ће омогућити регистар података на ЛЦД-у, који се користи за уписивање вредности у регистар података на ЛЦД-у. РС = 0 ће омогућити регистар упутстава ЛЦД-а.
Омогући пин: окидач негативне ивице; када се пин промени из стања ХИГХ у ЛОВ, ЛЦД ће се тражити да упише у пинове података. Позитивно покретање ивице; када се пин промени из стања ЛОВ у ХИГХ, од ЛЦД-а ће се затражити читање са пинова података.
Р / В пин: Р / В = 0 ће уписати у регистар инструкција или регистар података према одабиру РС пин-а. Р / В = 1 очитаваће се са ИР или ДР према одабиру РС пина.
РС Р / В операција
0 0 ИР писање као интерна операција (приказ чист, итд.)
0 1 Читање заставе заузетости (ДБ7) и бројача адреса (ДБ0 до ДБ6)
1 0 ДР запис као интерна операција (ДР у ДДРАМ или ЦГРАМ)
1 1 ДР очитава се као интерна операција (ДДРАМ или ЦГРАМ у ДР)
Д0-Д7 пинови: Подаци се преносе у и из наредбе и регистара података преко ових пинова.
Суппли игле: в СС, в дд игле се користе за власт ЛЦД модула. А, К игле напајаће ЛЕД позадинско осветљење. В 0 пинови се користе за контролу контраста.
16к2 ЛЦД ЦЦС библиотека за МСП430
Водич је заснован на библиотеци коју је створио Деннис Еицхманн. Веома је једноставно користити библиотеку са одвојеним функцијама за штампање различитих типова података. Такође садржи одредбе за приказ података у различитим облицима са водећим, празним и избрисаним нулама. То је прилично опсежна и свеобухватна библиотека и подесива је за различите везе. Овде је датотека заглавља модификована да прилагоди 8-пинску паралелну конфигурацију за пренос података. Библиотеку можете преузети са доње везе, након преузимања следите кораке у наставку за додавање библиотеке у ЦЦС.
Преузмите библиотеку 16к2 за МСП430 - Цоде Цомпосер Студио
Корак 1: Креирање датотека и пројеката
Подразумевани ЦЦС пројекат се креира помоћу менија датотека. У дијалошком оквиру Цреате Пројецт изаберите уређај и наведите хд44780 као назив пројекта. У оквиру типа пројекта и ланца алата одаберите тип излаза као статичку библиотеку и креирајте пројекат.
У траци Пројецт Екплорер (лева страна), креирајте датотеку заглавља у директоријуму инцлуде и назовите је хд44780.х . Затим копирајте садржај преузете датотеке хд44780.х у ову новостворену.
Сада креирајте главни пројекат променом типа излаза у извршну датотеку и креирајте пројекат назван ЦЦС_ЛЦД .
Корак 2: Укључите стазе за претрагу до главног пројекта
У дијалошки оквир својстава пројекта хд44780 и унутар опција укључивања за компајлер МСП430, додајте фасциклу укључивања у датотеку путању претраживања.
Затим, направите овај пројекат да бисте креирали потребне датотеке за повезивање као што су .либ датотеке . Ако ово направите, створиће се датотека хд44780.либ унутар фасцикле за отклањање грешака.
Корак 3: Укључите путање претраживача за Линкер
У дијалошки оквир својстава за пројекат ЦЦС_ЛЦД и у путању за претрагу датотека на картици МСП430 Линкер укључите хд44780.либ која се налази унутар фасцикле за отклањање грешака пројекта хд44780. Фасцикла за отклањање грешака је такође укључена у путању за претрагу датотека.
Фасцикла за укључивање поново се додаје опцијама за укључивање МСП430 компајлера пројекта ЦЦС_ЛЦД .
Библиотека је успешно компајлирана и додата у повезивач главног пројекта.
ЛЦД функције за ЛЦД екран од 16к2 на МСП430
воид хд44780_тимер_иср (воид): То се периодично назива у ИСР-у тајмера А. Тајмер А се користи за периодично обављање ЛЦД функција попут чишћења екрана, подешавања курсора и приказивања података. Функција се користи у ИСР-у. Не враћа ништа.
уинт8_т хд44780_врите_стринг (цхар * цх__стринг, уинт8_т у8__ров, уинт8_т у8__цолумн, уинт8_т у8__цр_лф): Записат ће низ наведен у првом аргументу.
цхар * цх__стринг: Низ који се записује у међуспремник података (унутар функције хд44780_тимер_иср ). Подаци ће се копирати у регистар података и регистар упутстава ЛЦД ИЦ-а када се периодично позове хд44780_тимер_иср .
уинт8_т у8__ров: Дефинише ред у који ће се записати низ.
уинт8_т у8__цолумн: Дефинише колону у којој ће бити записан низ.
уинт8_т у8__цр_лф: Ако је постављено 1, ред ће се пренети на следећи. Ако је 0, штампање се зауставља у истом реду.
воид хд44780_цлеар_сцреен (воид): Ова функција ће очистити цео екран. Не враћа ништа.
уинт8_т хд44780_оутпут_унсигнед_16бит_валуе (уинт16_т у16__валуе, уинт8_т у8__леадинг_зеро_хандлинг, уинт8_т у8__ров, уинт8_т у8__цолумн, уинт8_т у8__цр_лф): функција ће приказати вредност ЛЦД на непотписаној 16.
уинт16_т у16__валуе: Цели број који ће се приказати дат је у првом аргументу.
уинт8_т у8__леадинг_зеро_хандлинг: Ако се положи 0, водеће нуле ће бити приказане на целобројној вредности. Ако се положи 1, нуле ће бити празне. Ако се као параметар преда 2, приказаће се само значајне цифре.
уинт8_т у8__ров: Одабран је ред у којем је приказан цели број.
уинт8_т у8__цолумн: Колона која се штампа бира се помоћу аргумента.
уинт8_т у8__цр_лф: Ако је постављено 1, ред ће се пренети на следећи. Ако је 0, штампање се зауставља у истом реду.
Шема споја на ЛЦД интерфејс са МСП430
Комплетна шема кола приказана је на доњој слици. Као што видите, хардверске везе су врло једноставне и напајали смо комплетну плочу помоћу адаптера од 5В.
Везе су изведене према горњој скици. Молимо погледајте табелу испод за детаљне везе.
Всс | Земља 5В напајања |
Вдд | 5В |
В0 | Излаз потенциометра |
РС | П2.1 |
Р / В | Приземље |
Е. | П2.0 |
Д0 | П1.0 |
Д1 | П1.1 |
Д2 | П1.2 |
Д3 | П1.3 |
Д4 | П1.4 |
Д5 | П1.5 |
Д6 | П1.6 |
Д7 | П1.7 |
А. | Отпорник од 220 ома |
К. | Приземље |
Анода ЛЕД позадинског осветљења не може се директно повезати са напајањем од 5В. Требао би бити повезан на отпор како би се минимализовао проток струје кроз ЛЦД модул. Повезао сам се помоћу перф плоче за лемљење ЛЦД-а, а затим сам користио краткоспојне жице за повезивање ЛЦД-а са плочом МСП430, моја поставка изгледа овако доле, али за повезивање можете једноставно користити плочу за пренос података.
Програмирање МСП430 помоћу Цоде Цомпосер Студио за ЛЦД екран
Комплетни код коришћен у овом пројекту дат је на дну ове странице. Објашњење употребе кода је следеће. Прво отворите датотеку заглавља (хд44780.х) и укључите број дела микроконтролера у први део датотеке.
#инцлуде "мсп430г2553.х"
Прво треба зауставити тајмер чувара. Контролни регистри ДЦОЦТЛ и БЦСЦТЛ1 користе се за конфигурисање осцилатора микроконтролера. Доле наведени редови ће конфигурисати МЦЛК на 1 МХз.
ВДТЦТЛ = (ВДТПВ - ВДТХОЛД); БЦСЦТЛ1 = ЦАЛБЦ1_1МХЗ; ДЦОЦТЛ = ЦАЛДЦО_1МХз;
Прикључци порта 1 морају се навести као излаз, што ће се користити за пинове података. Пин 0 и пин 1 такође се морају споменути као излаз у прикључку 2, који ће се користити за РС и Р / В пин.
П1ДИР = 0кФФ; П2ДИР = (0к01 - 0к02);
Уграђени тајмер се користи за периодично приказивање вредности. Тајмер А је одабран са СМЦЛК (1 МХз) као извором сата, а непрекидни режим је режим рада.
ТА0ЦЦР1 = 32768; ТА0ЦЦТЛ1 = ЦЦИЕ; ТА0ЦТЛ = (ТАССЕЛ_2 - МЦ_2 - ТАЦЛР);
Прекиди за упоредне канале 1 и 2 и прекид преливања тајмера деле исти вектор прекида ( ТИМЕР0_А1_ВЕЦТОР ) са различитим почетним адресама. Канал за упоређивање хватања (ЦЦР1) користи 2 као адресу, која се користи у случају прекидача.
#прагма вецтор = ТИМЕР0_А1_ВЕЦТОР __интеррупт воид тимер_0_а1_иср (воид) { свитцх (ТА0ИВ) { цасе 2: { хд44780_тимер_иср (); пауза; } } }
Након што саставите код, можете га отпремити на плочу МСП430, као што је објашњено у почетку рада са упутством за МСП430. Ако се све одвија према очекивањима, на ЛЦД екрану ћете видети неки контраст као што је приказано доле.
Ако је ваш тест врло затамњен, можете покушати да прилагодите потенциометар да бисте постигли бољи контраст. Комплетан рад пројекта такође се може наћи у доњем видео линку. Надам се да вам се свидео пројекат и било вам је занимљиво да направите свој. Ако имате питања, оставите их у одељку за коментаре испод. Такође можете да напишете сва своја техничка питања на форумима да бисте добили одговоре или започели дискусију.