- Потребни материјали:
- Шта је РТЦ ??
- Повезивање ДС3231 РТЦ са МСП430:
- Програмирање МСП430 за РТЦ модул:
У овом упутству направићемо дигитални сат повезивањем РТЦ модула ДС3231 са МСП430 и приказати време и датум на ЛЦД-у 16к2. МСП-ЕКСП430Г2 је развојни алат познат под називом ЛаунцхПад који пружа Текас Инструментс за учење и вежбање како се користе њихови микроконтролери. Ова плоча спада у категорију МСП430 Валуе Лине где можемо програмирати све микроконтролере серије МСП430. Ако сте нови у МСП-у, погледајте наш водич за почетак рада са МСП430.
Потребни материјали:
- МСП430
- ДС3231 РТЦ модул
- ПОТ -10к
- ЛЦД модул 16 * 2
- Повезивање жица
- Бреадбоард
Шта је РТЦ ??
ДС3231 је РТЦ (сат у реалном времену) модул. Користи се за одржавање датума и времена за већину пројеката Електронике. Овај модул има сопствено напајање ћелијским новчићем помоћу којег одржава датум и време чак и када је главно напајање уклоњено или је МЦУ прошао кроз хард ресет. Дакле, једном када поставимо датум и време у овом модулу, он ће их увек пратити. Доступно је неколико типова РТЦ ИЦ-а попут ДС1307, ДС3231 итд.
Раније смо користили РТЦ са осталим микроконтролерима у доњим пројектима:
Напомена: Када први пут користите овај модул, морате да подесите датум и време. Такође можете да користите РТЦ ИЦ ДС1307, ми смо раније користили ДС1307 са Ардуином.
Повезивање ДС3231 РТЦ са МСП430:
Дијаграм кола за дигитални сат заснован на микроконтролеру је дат испод. Као што је раније речено, ДС3231 ради уз помоћ И2Ц комуникације, тако да ће имати серијски сат (СЦЛ) и пин за серијске податке (СДА) који морају бити повезани са И2Ц пиновима на нашем МСП430, а то је пин 9 (ПИН 2.1, СЦЛ) и пин 10 (ПИН 2.2, СДА).
МСП430 даје 3.3В Вцц, али треба нам 5В да бисмо га повезали са ЛЦД и РТЦ модулом. Дакле, користићемо хаковање, постоји краткоспојник под називом ТП1 у близини конектора УСБ кабла. Одатле можете узети 5В.
Кружни дијаграм:
Програмирање МСП430 за РТЦ модул:
Овде користимо Енергиа ИДЕ за програмирање. Исти је као Ардуино ИДЕ и лак за употребу. Ако сте нови у МСП-у и енергији, пређите на почетак рада са МСП-ом користећи Енергиа ИДЕ. За повезивање РТЦ модула потребна нам је библиотека за ову плочу. Преузмите РТЦ библиотеку са ове везе и инсталирајте је.
Такође, треба Вире (користи се за И2Ц комуникацију) и ликуидцристал библиотеке које су већ инсталиран у Енергиа ИДЕ.
Комплетни код за овај дигитални сат МСП430 дат је на крају овог чланка. Код је једноставан и лако разумљив. Овде објашњавамо неколико његових делова.
Прво, морамо укључити потребне библиотеке.
Испод је библиотека за И2Ц комуникацију између РТЦ модула и МСП430. СДА и СЦК пинови су већ дефинисани у овој библиотеци, тако да не морамо да их декларишемо одвојено.
#инцлуде
Затим смо укључили РТЦлиб.х библиотеку за РТЦ сат и ЛикуидЦристал.х за ЛЦД функције.
#инцлуде "РТЦлиб.х" #инцлуде
Након овога, морамо створити инстанцу за иницијализацију нашег РТЦ модула.
РТЦ_ДС3231 ртц;
Затим направите низ величине 7 и чувајте свих седам дана са именом.
цхар даисОфТхеВеек = {"недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"};
Ево декларације пинова МСП430 коју ЛЦД екран користи: (РС (П2.0), ЕН (П1.4), Д4 (П1.5), Д5 (П2.3), Д6 (П2.4), Д7 (П2.5))
ЛЦД ЛикуидЦристал (8, 6, 7,11,12,13);
У воид сетуп () , иницијализирали смо интерфејс за ЛЦД екран и РТЦ и одредили димензије (ширину и висину) екрана, бегин ()
треба позвати пре било које друге наредбе библиотеке.
воид сетуп () { лцд.бегин (16, 2); лцд.сетЦурсор (3,0); лцд.принт („РТЦ сат“); кашњење (3000); лцд.цлеар (); ртц.бегин (); // ртц.адјуст (ДатеТиме (Ф (__ ДАТЕ__), Ф (__ ТИМЕ__))); }
Сада је приказано време на екрану тачно, али постоји проблем, сваки пут када поново покренете / ресетујете микроконтролер, ЛЦД ће приказати време у којем сте учитали код. То је зато што је функција ртц.адјуст () ускладиштила време вашег рачунара, па када ресетујете, она почиње са тим временом.
Да бисте решили овај проблем, прво отпремите програм са некоментарисаном функцијом ртц.адјуст () . Затим одмах коментаришите исти ред и поново отпремите програм. Сада су датум и време подешени и ресетовање микроконтролера неће утицати на то.
У функцији петље узимамо датум и време из РТЦ модула и чувамо у унапред дефинисаној променљивој која се зове сада и приказујемо је на ЛЦД-у помоћу функције лцд.принт () .
воид лооп () { ДатеТиме сада = ртц.нов (); лцд.цлеар (); лцд.сетЦурсор (3,0); лцд.принт (нов.даи (), ДЕЦ); лцд.принт ("/");…. …….
Комплетни код и видео су дати у наставку.