Таймер за кухнята на pic16f628a. Часовник - будилник на микроконтролер PIC16F628A

10.09.2021

Микроконтролерите имат полезно нещо - таймер. Таймерът може да се използва като брояч или да се използва за генериране на импулси с дадена дължина (PWM). С помощта на таймер можете например да изградите часовник или генератор.

Семейството микроконтролери 16 има 3 таймера: TRM0, TRM1 и TRM2. Всеки от тях е по-подходящ за определен типработа. Нека разгледаме по-отблизо тези таймери:

  • 8-битов таймер (брои от 0 до 255)
  • тактова от честотата на системата или от външен източник
  • разчита на нарастващия или спадащия фронт на сигнала
  • 8-битов предскалер
  • прекъсването се генерира при препълване (при преминаване от 255 към 0)
  • таймерът работи постоянно

Този таймер може да се използва за генериране на импулси с дадена дължина или за преброяване на входящите импулси.

OPTION_REG (ОПЦИЯв програмата).

  • 16-битов таймер (0..65535)
  • може да се тактова както от външен източник на сигнал, така и от
  • допълнителен часовник кварц
  • максимален прескалер - 1:8
  • таймерът отчита само нарастващите фронтове на сигнала
  • таймерът може да се използва от CCP модула
  • таймерът може да бъде деактивиран

Подобни приложения на TMR0.

Таймерът се управлява от регистър T1CON.

  • 8-битов таймер
  • тактова се само от системната честота
  • прескалер 1:1, 1:4, 1:16
  • таймерът може да бъде деактивиран

Този таймер има различен принцип на работа. Таймерът брои импулси от нула до дадена стойност PR2. След като TRM2 и PR2 съвпаднат, сигналът отива към 4-битовия постделител и се генерира прекъсване. Тази система ви позволява да генерирате честоти с минимална стъпка. Таймерът може да изпраща сигнали към CCP като PWM синхронизираща база.

Таймерът се управлява от регистър T2CON.

Пример

Нека да преминем към кода на фърмуера. Примерът използва два брояча TRM0 за брояч на входни импулси и TRM1 за мигащи 2 светодиода.

Нека включим таймери TRM0 за брояча и TRM1 за мигане на 2 светодиода.

INTCON=0b11100000; // Конфигуриране на прекъсвания OPTION=0b00101000; // Настройка на TMR0 T1CON =0b00110001; // Настройка на TMR1 TMR1IE=1;

Основният код на програмата показва само стойността на брояча на дисплея.

Void main() ( low_init(); // инициализиране на MK InitLCD(); // инициализиране на дисплея TMR0=0; // нулиране на таймера TMR0 LED=0; // нулиране на променливата, отговорна за светодиодите while(1= =1) ( IntToLCD (0,0,TMR0); // показване на съдържанието на таймера delay(1000); // delay ) )

Основното действие се извършва в манипулатора на прекъсвания.

Void прекъсване isr(void) ( if(T0IF) // когато TMR0 препълва ( T0IF=0; // нулира флага за неговото препълване ) if(TMR1IF) // когато TMR1 препълва ( LED++; // LED контрол if(LED> 3) (LED=0;) PORTA=LED; // нулиране на флага)

В манипулатора на първия таймер TRM0: когато препълва, не се случва нищо полезно, само флагът за препълване се нулира. Когато вторият таймер TRM1 препълни: светодиодите светват по нов начин (на тях се показва двоичен брояч) и флагът за препълване на втория таймер се нулира.

По-долу има снимка и видео на примерните работещи таймери.

  • 24.09.2014

    Сензорният превключвател, показан на фигурата, има двуконтактен сензорен елемент, когато двата контакта се докоснат, захранващото напрежение (9V) от източника на захранване се подава към товара и когато сензорните контакти се докоснат следващо, захранването се изключва от товара, товарът може да бъде лампа или реле. Сензорът е много икономичен и консумира малък ток в режим на готовност. В момента...

  • 08.10.2016

    MAX9710/MAX9711 - стерео/моно UMZCH с изходна мощност 3 W и режим на ниска консумация. Спецификации: Изходна мощност 3 W при товар от 3 ома (при THD до 1%) Изходна мощност 2,6 W при товар от 4 ома (при THD до 1%) Изходна мощност 1,4 W при товар 8 Ohms (при THD нагоре до 1%) Коефициент на намаляване на шума...

  • 30.09.2014

    Характеристики: Възпроизводим честотен диапазон 88...108 MHz Реална чувствителност 3 µV ULF изходна мощност 2*2W Възпроизводим честотен диапазон 40...16000Hz Захранващо напрежение 3...9V Приемникът е изграден върху 2 микросхеми CXA1238S и TEA2025B. CXA1238S съдържа универсален AM\FM радиоприемник; изборът на режим на работа се определя от дневника. ниво на 15-ия щифт на микросхемата. Световната купа включва...

  • 22.04.2015

    Фигура № 1 показва диаграмата прост индикатормрежово напрежение. R1 ограничава тока напред през светодиода HL1. C1 се използва като баластен елемент, което е подобрило топлинните условия на дисплея. С отрицателна полувълна на мрежовото напрежение, ценеровият диод VD1 работи като обикновен диод, предпазвайки светодиода от повреда при обратно отклонение. С положителен...

  • 21.09.2014

    В днешно време, когато мнозина са придобили дача или къща в село, където заваряването е необходимост, възниква проблем с неговото придобиване. Закупуването на фабрично произведено устройство се усложнява от високата му цена. Най-трудоемката част е направата на самия заваръчен трансформатор. В този случай производителят е изправен пред проблема с закупуването на магнитна сърцевина. Към магнитната верига се налагат следните изисквания: достатъчна площ...

Това е друг занаят, направен от боклук - таймер за кухнята, макар и не непременно за кухнята. Използвахме части, които лежаха бездействащи, по-специално стари ALS индикатори, резистори, запоени от стари платки и т.н. Основата на устройството е микроконтролер PIC16F628A, един от най-разпространените и най-евтините. Таймерът се управлява с помощта на валкодер и един бутон. Диапазон на забавяне от 1 до 99 минути. В края на цикъла на синхронизиране се подава прекъсващ сигнал. звуков сигнал. В архива има два фърмуера, първият е само таймер, а вторият с някои звънци и свирки, повече за това по-долу.

Има опция и за индикатори с общ анод. Моля, имайте предвид, че фърмуерът за всяка от схемите е различен. Всички разлики са подчертани в червено на диаграмата.

След включване на захранването индикаторите показват определено време, светодиодът не свети. Чрез завъртане на енкодера можете да промените настройката за време от 1 до 99 минути. Когато времето е зададено, натиснете бутона - чува се кратък звуков сигнал и таймерът започва да отброява, светодиодът мига, а времето на индикатора намалява всяка минута. Когато времето достигне нула, таймерът издава прекъсващи звукови сигнали и светодиодът свети непрекъснато. Сега, чрез натискане на бутона, звуковият сигнал се премахва и устройството се връща към начално състояние- режим на настройка на времето. Ето как работи първата версия на фърмуера.

Втората версия на фърмуера работи по същия начин като първия, но има няколко допълнения. В режим на настройка на времето, ако енкодерът не бъде докоснат няколко секунди, на дисплея започва да работи анимиран скрийнсейвър. Натискането на бутона или завъртането на енкодера ще изключи анимацията и ще се върне към режима за настройка на времето. По време на обратното броене, ако остава една минута, дисплеят показва секунди от 60 до 00. При задействане на звуковия сигнал той няма да звучи безкрайно, а около 20 секунди. След това дисплеят започва да показва анимиран скрийнсейвър (различен от този в инсталационния режим). И също така, след всяка минута ще ви напомня с кратък звуков сигнал. Чрез натискане на бутона, точно както в първия фърмуер, таймерът се нулира в режим на настройка на времето. Когато остават 3 секунди преди таймерът да изгасне, той издава кратък звуков сигнал за всяка секунда, т.е. 3...2...1 и по-нататък работи както обикновено. И двата фърмуера са налични и са в архива заедно с чертеж на печатната платка.

Звуковият сигнал се реализира чрез хардуерна ШИМ, вградена в микроконтролера. Динамичната глава трябва да има съпротивление около 50 ома. Можете също да използвате динамични глави с нисък импеданс (4 или 8 ома), но в този случай е по-добре да инсталирате изходен трансформатор с малък размер, т.к. Голям ток ще тече през 4-омовата глава, което може да претовари захранването и да предизвика нулиране на микроконтролера.

Печатна платка, версия на Алексей Антонов

Коментари

1 2

0 #21 kaktuss 14.06.2015 16:08

Цитирам AntonChip:

Можете да видите екранна снимка на настройка на конфигурационните битове по време на програмиране


Попитах автора каква конфигурация е необходима за фърмуера, той отговори, че всичко вече е във фърмуера. Затова не инсталирах нищо, просто качих фърмуера.
Бих публикувал екранни снимки, но не знам как. Мога ли да ви го изпратя по имейл?

Това е друг занаят, направен от боклук - таймер за кухнята, макар и не непременно за кухнята. Използвахме части, които лежаха бездействащи, по-специално стари ALS индикатори, резистори, запоени от стари платки и т.н. Основата на устройството е микроконтролер PIC16F628A, един от най-разпространените и най-евтините. Таймерът се управлява с помощта на валкодер и един бутон. Диапазон на забавяне от 1 до 99 минути. В края на цикъла на синхронизиране се подава прекъсващ звуков сигнал. В архива има два фърмуера, първият е само таймер, а вторият с някои звънци и свирки, повече за това по-долу.

Има опция и за индикатори с общ анод. Моля, имайте предвид, че фърмуерът за всяка от схемите е различен. Всички разлики са подчертани в червено на диаграмата.

След включване на захранването зададеното време се показва на индикаторите, светодиодът не свети. Чрез завъртане на енкодера можете да промените настройката за време от 1 до 99 минути. Когато времето е зададено, натиснете бутона - чува се кратък звуков сигнал и таймерът започва да отброява, светодиодът мига, а времето на индикатора намалява всяка минута. Когато времето достигне нула, таймерът издава прекъсващи звукови сигнали и светодиодът свети непрекъснато. Сега с натискане на бутона звуковият сигнал се премахва и устройството се връща в първоначалното си състояние - режим на настройка на времето. Ето как работи първата версия на фърмуера.

Втората версия на фърмуера работи по същия начин като първия, но има няколко допълнения. В режим на настройка на времето, ако енкодерът не бъде докоснат няколко секунди, на дисплея започва да работи анимиран скрийнсейвър. Натискането на бутона или завъртането на енкодера ще изключи анимацията и ще се върне към режима за настройка на времето. По време на обратното броене, ако остава една минута, дисплеят показва секунди от 60 до 00. При задействане на звуковия сигнал той няма да звучи безкрайно, а около 20 секунди. След това дисплеят започва да показва анимиран скрийнсейвър (различен от този в инсталационния режим). И също така, след всяка минута ще ви напомня с кратък звуков сигнал. Чрез натискане на бутона, точно както в първия фърмуер, таймерът се нулира в режим на настройка на времето. Когато остават 3 секунди преди таймерът да изгасне, той издава кратък звуков сигнал за всяка секунда, т.е. 3...2...1 и по-нататък работи както обикновено. И двата фърмуера са налични и са в архива заедно с чертеж на печатната платка.

Звуковият сигнал се реализира чрез хардуерна ШИМ, вградена в микроконтролера. Динамичната глава трябва да има съпротивление около 50 ома. Можете също да използвате динамични глави с нисък импеданс (4 или 8 ома), но в този случай е по-добре да инсталирате изходен трансформатор с малък размер, т.к. Голям ток ще тече през 4-омовата глава, което може да претовари захранването и да предизвика нулиране на микроконтролера.

Печатна платка, версия на Алексей Антонов

Коментари

1 2

0 #21 kaktuss 14.06.2015 16:08

Цитирам AntonChip:

Можете да видите екранна снимка на настройка на конфигурационните битове по време на програмиране


Попитах автора каква конфигурация е необходима за фърмуера, той отговори, че всичко вече е във фърмуера. Затова не инсталирах нищо, просто качих фърмуера.
Бих публикувал екранни снимки, но не знам как. Мога ли да ви го изпратя по имейл?
Споделяне на:
След включване на захранването зададеното време се показва на индикаторите, светодиодът не свети. Чрез завъртане на енкодера можете да промените настройката за време от 1 до 99 минути. Когато времето е зададено, натиснете бутона - чува се кратък звуков сигнал и таймерът започва да отброява, светодиодът мига, а времето на индикатора намалява всяка минута. Когато времето достигне нула, таймерът издава прекъсващи звукови сигнали и светодиодът свети непрекъснато. Сега с натискане на бутона звуковият сигнал се премахва и устройството се връща в първоначалното си състояние - режим на настройка на времето. Ето как работи първата версия на фърмуера. Втората версия на фърмуера работи по същия начин като първия, но има няколко допълнения. В режим на настройка на времето, ако не докоснете енкодера за няколко секунди, на дисплея започва да работи анимиран скрийнсейвър. Натискането на бутона или завъртането на енкодера ще изключи анимацията и ще се върне към режима за настройка на времето. По време на обратното броене, ако остава една минута, дисплеят показва секунди от 60 до 00. При задействане на звуковия сигнал той няма да звучи безкрайно, а около 20 секунди. След това дисплеят започва да показва анимиран скрийнсейвър (различен от този в инсталационния режим). И също така, след всяка минута ще ви напомня с кратък звуков сигнал. Чрез натискане на бутона, точно както в първия фърмуер, таймерът се нулира в режим на настройка на времето. Когато остават 3 секунди преди таймерът да изгасне, той издава кратък звуков сигнал за всяка секунда, т.е. 3...2...1 и по-нататък работи както обикновено. И двата фърмуера са налични и са в архива заедно с чертеж на печатната платка.
Звуковият сигнал се реализира чрез хардуерна ШИМ, вградена в микроконтролера. Динамичната глава трябва да има съпротивление около 50 ома. Можете също да използвате динамични глави с нисък импеданс (4 или 8 ома), но в този случай е по-добре да инсталирате изходен трансформатор с малък размер, т.к. Голям ток ще тече през 4-омовата глава, което може да претовари захранването и да предизвика нулиране на микроконтролера. Печатна платка, версия на Алексей Антонов
Автор: Мамед АРХИВ: Раздел за изтегляне: