- Потребни материјали:
- Кратки увод у матрични ЛЦД екран од 16 × 2 тачке:
- Кружни дијаграм и веза:
- Програмирање МСП430 за ЛЦД помоћу Енергије:
- ЛЦД од 16к2 са МСП430Г2:
Ово је трећи туториал у низу лекција у којем учимо да програмирамо МСП430Г2 ЛаунцхПад користећи Енергиа ИДЕ. У нашем претходном водичу научили смо како да контролишемо дигиталне улазне и излазне пинове на нашој МСП плочи. У овом упутству научићемо како повезати ЛЦД са плочом како бисмо могли приказати корисне информације.
ЛЦД који користимо у овом пројекту је најчешће коришћени матрични ЛЦД екран са димензијама 16 × 2 тачке као алфанумерички дисплеји. Већина нас би се с тим сусрела било путем јавних ПЦО-а или других електронских пројеката. Овакав приказ ће бити врло користан за наше будуће водиче за приказ података и других информација о отклањању грешака. Повезивање овог ЛЦД-а са МСП430 је врло једноставно захваљујући доступној библиотеци. Па заронимо !!
Потребни материјали:
- МСП430Г2 ЛаунцхПад компаније Текас Инструментс
- ЛЦД екран са матрицом од 16 × 2 тачке
- Повезивање жица
- Енергиа ИДЕ
Кратки увод у матрични ЛЦД екран од 16 × 2 тачке:
Као што је раније речено, Енергиа ИДЕ нуди прелепу библиотеку која чини повезивање комадићем торте, па стога није обавезно знати било шта о модулу екрана. Али, зар не би било занимљиво показати шта користимо !!
Назив 16 × 2 подразумева да екран има 16 колона и 2 реда, што заједно (16 * 2) чини 32 кутије. Једна појединачна кутија изгледала би отприлике овако на слици испод
Једно поље има 40 пиксела (тачака) са редоследом матрице од 5 редова и 8 колона, ових 40 пиксела заједно чине један знак. Слично томе, 32 знака се могу приказати помоћу свих поља. Сада ћемо погледати пиноуте.
ЛЦД има укупно 16 пинова, као што је приказано горе, они се могу сврстати у четири групе на следећи начин
Изворни клинови (1, 2 и 3): Ови клинови дају снагу и контраст за екран
Контролни пинови (4, 5 и 6): Ови пинови постављају / контролишу регистре у ИЦ интерфејсу за ЛЦД (више тога можете пронаћи на доњој вези)
Пинови за податке / наредбе (7 до 14): Ови пинови пружају податке о томе које информације треба приказати на ЛЦД-у.
ЛЕД пинови (15 и 16): Ови пинови се користе за осветљење позадинског осветљења ЛЦД-а ако је потребно (опционално).
Од свих ових 16 пинова, само 10 пинова треба користити обавезно за правилан рад ЛЦД-а ако желите да сазнате више о овим ЛЦД екранима, пређите на овај чланак о ЛЦД-у.
Кружни дијаграм и веза:
Комплетна шема кола за повезивање матричног ЛЦД екрана од 16 × 2 тачке са МСП430Г2 је приказана испод.
Једно од главних ограничења приликом повезивања ове две су њихови радни напони. ЛЦД екран има радни напон од + 5В, док МСП ради само са 3,6В. Срећом по нас, дата пин ЛЦД интерфејса ИЦ (ХД44780У) има широк радни напон од 2,7 В до 5,5 В. Тако да морамо бринути само о Вдд (пин 2) ЛЦД-а, док игле за податке могу радити чак и са 3,6 В.
Плоча МСП430Г2 подразумевано не даје + 5В пин, али ми можемо направити мали хак да добијемо + 5В од МСП430 помоћу УСБ порта. Ако пажљиво погледате близу УСБ порта можете пронаћи терминал под називом ТП1, овај терминал ће нам дати + 5в. Све што треба да урадимо је да залемимо мали мушки затик за заглавље као што је приказано доле како бисмо га могли повезати са нашим ЛЦД екраном.
Напомена: Не повезујте оптерећења која могу потрошити више од 50мА на овај 5В пин, јер би то могло пржити ваш УСБ порт.
Ако вас не занима лемљење, једноставно користите било које напајање + 5В које регулишете и напајајте ЛЦД, у том случају обавезно повежите уземљење напајања са масом МСП плоче.
Једном када завршите са + 5В пином који повезује остале пинове прилично је једноставан. Сада када је наш хардвер спреман, пређимо на софтверски део.
Програмирање МСП430 за ЛЦД помоћу Енергије:
Комплетан програм за повезивање се МСП430Г2553 са ЛЦД дисплејом је дат на крају ове странице. Код се може саставити, учитати и користити као такав. У следећим пасусима ћу објаснити како програм функционише.
Пре него што наставимо са објашњењем, морамо да забележимо игле које користимо. Ако погледате шему кола горе и шему пин-оут-а МСП430 доле
Можете закључити да смо ЛЦД повезали према следећој табели
Име ЛЦД екрана |
Повезан |
Всс |
Приземље |
Вдд |
+ 5В УСБ пин |
Рс |
Пин 2 МСП-а |
Р / В |
Приземље |
Омогући |
Пин 3 МСП-а |
Д4 |
Пин 4 МСП-а |
Д5 |
Пин 5 МСП-а |
Д6 |
Пин 6 МСП-а |
Д7 |
Пин 7 МСП-а |
Имајући ово на уму, кренимо са дефинисањем ЛЦД пинова који се користе у нашем програму. Сваки пин ћемо именовати смисленијим именом, тако да ћемо га касније лако користити.
#дефине РС 2 #дефине ЕН 3 #дефине Д4 4 #дефине Д5 5 #дефине Д6 6 #дефине Д7 7
То једноставно значи да уместо да позивам пин 2, убудуће га могу назвати РС, слично за свих 6 пинова.
Следећи корак био би укључивање ЛЦД библиотеке. Ова библиотека би се аутоматски инсталирала када сте инсталирали Енергиа ИДЕ. Дакле, само га додајте користећи следећи ред
#инцлуде
Следећи корак је помињање пинова на које је повезан ЛЦД, јер смо га већ назвали помоћу #дефине , а сада можемо једноставно да поменемо називе ЛЦД пинова. Обавезно следите исти редослед.
ЛЦД ЛикуидЦристал (РС, ЕН, Д4, Д5, Д6, Д7);
Сада ћемо прећи у празнина подешавање () функцију. Постоји толико много врста ЛЦД екрана који се разликују по величини и природи, а ми користимо 16 * 2, па хајде да то прецизирамо у нашем програму
лцд.бегин (16, 2);
Да бисмо штампали нешто на ЛЦД-у, у програму морамо споменути две ствари. Један је положај текста који се може поменути помоћу линије лцд.сетЦурсор (), а други је садржај за штампање који се може споменути помоћу лцд.принт (). У овом реду постављамо курсор на 1. ред и 1. колону.
лцд.сетЦурсор (0,0);
Слично томе, можемо и ми
лцд.сетЦурсор (0, 1); // подесимо курсор на 1. колону 2. ред
Баш као и брисање беле табле након писања на њој, ЛЦД би такође требало избрисати када се на њој нешто напише. То се може урадити помоћу линије испод
лцд.цлеар ();
Дакле, комплетна воид сетуп () функција би изгледала отприлике овако.
воид сетуп () {лцд.бегин (16, 2); // Користимо ЛЦД екран 16 * 2 лцд.сетЦурсор (0,0); // Поставите курсор на 1. ред лцд.принт 1. колоне ("МСП430Г2553"); // Приказује уводну поруку лцд.сетЦурсор (0, 1); // подесимо курсор на 1. колону 2. ред лцд.принт ("- ЦирцуитДигест"); // Приказивање кашњења уводне поруке (2000); // Сачекајте да се на екрану прикаже инфо лцд.цлеар (); // Затим очистите}
Даље, унутар наше функције воид лооп () , наставимо да увећавамо број за сваких 500 мс и прикажемо број на ЛЦД-у. Овај број се тестира и иницијализује се на 1 као што је приказано у наставку
инт тест = 1;
За стварање кашњења можемо користити уграђену функцију делаи (). Морамо напоменути колико нам времена треба да дође до кашњења. У нашем случају сам искористио 500мс како је приказано доле
кашњење (500);
Повећавање променљиве може се извршити тестом ++, остало је већ објашњено. Комплетан код унутар воид петље је приказан испод
воид лооп () {лцд.принт ("ЛЦД са МСП-ом"); // Приказује уводну поруку лцд.сетЦурсор (0, 1); // подесимо курсор на колону 0, ред 1, лцд.принт (тест); // Приказује кашњење уводне поруке (500); лцд.цлеар (); // Затим очистите тест ++; }
ЛЦД од 16к2 са МСП430Г2:
Једном када су хардвер и код спремни, једноставно повежите плочу са рачунаром и отпремите код као што смо то урадили у првом упутству. Једном када је код отпремљен, на екрану ћете видети следеће.
После две секунде, екран екрана ће се променити из подешавања у петљу и почети повећавати променљиву и приказивати се на екрану као што је приказано на слици испод.
Комплетан радни може наћи у видео испод. Само напред и покушајте да промените оно што се приказује на ЛЦД-у и поиграјте се с тим. Надам се да сте разумели туторијал и научили нешто корисно из њега. Ако сумњате, оставите их у одељку за коментаре испод или користите форуме. Упознајмо се у другом упутству.