Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Таймер на мікроконтролері. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Годинники, таймери, реле, комутатори навантаження У таймері передбачено два режими зворотного відліку інтервалів часу тривалістю від 1-ї до 999 хвилин або такого ж числа секунд. Схема пристрою представлена малюнку. У ньому є вимикач SA1, за допомогою якого вибирають, в яких одиницях, хвилинах або секундах вестиметься рахунок, кнопки управління SB1-SB3, трирозрядний світлодіодний індикатор HG1 (розряд сотень) - HG3 (розряд одиниць). Після включення живлення таймера RC-ланцюг R2C3 формує імпульс, що встановлює мікроконтролер DD1 (AT90S2313-10PI) у вихідний стан. При встановленні тривалості витримки, що формується, кожним натисканням на кнопку SB1 (Л) показання індикатора збільшують на одиницю. Якщо утримувати цю кнопку натиснутою більше 3 с, значення на індикаторі збільшуватиметься в кожну секунду на 5 одиниць (хвилин або секунд). Кнопка SB2 (V) діє аналогічно кнопці SB1, але значення на індикаторі не збільшується, а зменшується. Після досягнення значень 999 або 0, подальша зміна показань у відповідну сторону автоматично блокується. Вибравши вимикачем SA1, в хвилинах або секундах буде відлічуватися час і встановивши кнопками SB1 і SB2 необхідну тривалість витримки, слід натиснути на кнопку SB3 (С). З цього моменту починається робота таймера - високий рівень на виході мікроконтролера PD6 змінюється низьким, подається напруга на виконавчий пристрій, підключений до роз'єму Х2, про що сигналізує неонова лампа HL1 (з вбудованим баластовим резистором), і починається зворотний відлік заданого часу. Число, виведене на індикатор, щохвилини або секунди зменшується на одиницю. Десяткова точка у розряді одиниць блимає з періодом 1 с. Як тільки показники індикатора досягнуть нуля, низький рівень на виході PD6 знову стане високим, що призведе до вимкнення виконавчого пристрою. Крім того, в режимі відліку хвилин у цей момент на виході PD4 буде сформовано імпульсну послідовність тривалістю 60 с - прозвучить звуковий сигнал. Потім прилад повернеться у вихідний стан. Для дострокового завершення витримки на кнопку SB3 слід ще раз натиснути - виконавчий пристрій буде вимкнено. Щоб сформувати нову витримку, необхідно встановити її тривалість заново. Вузол управління виконавчим пристроєм зібраний на твердотільному реле U1, випромінюючий діод якого з'єднаний з виходом мікроконтролера PD6. Завдяки цьому реле ланцюга, пов'язані з мережею 220, ізольовані від інших ланцюгів таймера. П'єзоелектричний випромінювач НА1, що подає звуковий сигнал закінчення витримки, підключений до виходу PD4. На виходах порту мікроконтролер DD1 формує сигнали, що надходять через струмообмежувальні резистори R4-R11 на катоди елементів світлодіодних індикаторів HG1-HG3, і сигнали, що використовуються для визначення стану кнопок SB1-SB3. Другі висновки всіх кнопок з'єднані разом і підключені до входу мікроконтролера PD3. Діоди VD1-VD3 запобігають замиканню між лініями порту при одночасному натисканні на кілька кнопок. Транзистори VT1-VT3, керовані сигналами з виходів PDO-PD2, по черзі з'єднують із джерелом живлення загальні аноди індикаторів HG1-HG3, що потрібно організації динамічної індикації. Тактова частота мікроконтролера DD1 задана кварцовим резонатором ZQ1 10 МГц. Програма, що завантажується в мікроконтролер таймера, вихідний текст якої є в додатку до статті, складається з трьох основних частин: модуля ініціалізації (мітка INIT), основного нескінченного циклу (мітка SE1) та обробника переривання від таймера Т/С1 (мітка TIM0). Вона починає свою роботу, ініціалізуючи регістри, лічильники, стек, таймер Т/С1, сторожовий таймер, порти вводу-виводу. Після ініціалізації на індикатор виведено число 001, всі десяткові точки вимкнені, на виході PD6 встановлений високий рівень, тому ланцюг виконавчого пристрою розімкнуто. Відлік часу зупинено. Завдання формування точних інтервалів часу тривалістю 1 с вирішено за допомогою переривань від таймера Т/С1, запити яких випливають через кожні 3,9 мс (1/256 с). Їх підраховує лічильник у регістрі г25. За допомогою лічильника, організованого в регістрі г21, формується інтервал за 1 хв. У процесі обробки переривань проводяться також зміна розряду, що відображається на індикаторі, і перетворення двійкового значення цифри, що виводиться в цьому розряді, в "семісегментний" код. Крім того, виконується опитування стану кнопок, формуються сигнали керування оптоелектронним реле та звуковим сигналізатором. У пам'яті даних мікроконтролера з адреси $060 по $062 організований буфер, що зберігає значення часу, що залишився до завершення витримки. Саме з нього програма обробки переривання бере цифри динамічного виведення на індикатор. При натисканні на кнопку SB1 значення, що зберігається в буфері, збільшується на одиницю. Одночасно запускається лічильник секунд у регістрі r1. Якщо кнопка утримується натиснутою більше 3 с, значення буфера починає збільшуватися на одиницю п'ять разів за кожну секунду. Підрахунок інтервалу часу, протягом якого відбувається це збільшення, організований у регістрі ГО. Після відпускання кнопки SB1 лічильники в регістрах г1 і г обнуляються. Абсолютно аналогічно організована обробка натискань на кнопку SB2, що зменшують число в буфері. Лічильники часу цієї кнопки перебувають у регістрах гЗ і г2. У процесі відліку заданої витримки число буфері декрементується (зменшується на одиницю) кожну хвилину або секунду в залежності від положення вимикача SA1. Зверніть увагу, що при переведенні його в інше положення до завершення заданої витримки відповідно зміниться період декрементування. У регістрі г22 зберігається двійковий код з одиницею в розряді, що відповідає включеному в даний момент розряду індикатора. При ініціалізації до нього записується 00000001 (включено індикатор HG3), а регістр Y - початкова адреса буфера ($060). При кожному виклик процедури обробки переривання вміст регістру г22 зсувається на один розряд вліво, а регістр Y інкрементується. Зрозуміло, що як тільки одиниця в регістрі г22 буде зсунута в третій розряд (пройдено всі індикатори), регістри г22 та Y слід перезавантажити, відновивши в них вихідні значення. На час опитування стану кнопок SB1-SB3 всі індикатори вимикаються, а на виходах PB0-РВ2 мікроконтролера формується код "нуль, що біжить". Виявивши низький рівень на вході PD3 і знаючи, на якому з виходів PB0-РВ2 рівень низький, процедура обробки переривання приймає рішення про те, яка кнопка натиснута. Уся програма займає близько 670 байт пам'яті програм мікроконтролера. Таймер зібраний на макетній платі, поміщеній у пластмасовий корпус, на передню панель якого виведені індикатори HG1-HG3, кнопки SB1-SB3, вимикач SA1 та неонова лампа HL1. Споживаний від джерела напруги 5 струм не перевищує 100 мА.
Програму мікроконтролера можна завантажити звідси. Автор: С. Шишкін, м. Саров Нижегородської обл.; Публікація: radioradar.net Дивіться інші статті розділу Годинники, таймери, реле, комутатори навантаження. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Лазерні голограми покращать якості промислового тривимірного друку. ▪ Темної матерії навколо Сонця не знайшли ▪ Виміряно час існування вільного нейтрону ▪ Відношення до людей можна змінювати ▪ Розклад лекцій – на панелях E Ink Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ Розділ сайту Електрику. ПТЕ. Добірка статей ▪ стаття Чудо-юдо риба-кит. Крилатий вислів ▪ стаття Що таке лейкемія? Детальна відповідь ▪ стаття Опіки. Види опіків. Профілактика опіків. Медична допомога ▪ стаття Безконтактні ємнісні датчики. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Морквяний пульверизатор. Фізичний експеримент
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |