Главная страница Комбинированное использование портов в предыдущих главах уже рассматривалось немало примеров hcnoji зования PIC-микроконтроллеров подсемейства 16СХХ и соотве-у ствующее программное обеспечение. Теперь вам предлагается сколько конкретных устройств. Эти устройства были выбраны по двум причинам. Во-первых, ощ представляют практический интерес и, во-вторых, используют одцц или несколько методов, не описанных в предыдущих главах. ЧАСЫ С БУДИЛЬНИКОМ Ниже приведен полный исходный текст соответствующей программы, поскольку без этого наш рассказ потерял бы часть своего смысла. Программное обеспечение для часов с будильником включает в себя несколько очень часто употребляемых подпрограмм: ♦ подпрограмму управления матричной клавиатурой, работающую совместно с 4-разрядным цифровым индикатором от одних линий микроконтроллера; ♦ подпрограмму динамической индикации; ♦ подпрограмму отсчета времени, использующую Таймер реального времени (RTCC) и кварцевый синхрогенератор микроконтроллера. Схема устройства представлена на рис. 5.1. Что касается клавиатуры и индикатора, то их схема практически идентична той, что приведена в главе 3. Если вы посчитаете, что несмотря на относительно высокое значение сопротивления резисторов R12 - R15 существует слишком сильное влияние клавиатуры на индикатор, вы можете использовать схему, представленную на рис. 5.2, которая благодаря диодам устраняет эту связь. Частота тактового генератора микроконтроллера равна 4,096 МГц. Она стабилизируется кварцевым резонатором и позволяет для часов получить частоту, период которой является кратной частью ceKpi-ды. Частота командных циклов микроконтроллера с данным генератором составляет 1,024 МГц. Задав коэффициент деления предварительного делителя RTCC равным 32, получаем частоту 32 КГц, которая, если установить модуль счета RTCC равным 96, позволяет получить период в 5 мс. Эти сигналы будут использованы для отсчета секунд и далее - минут и часов, а также для управления индикацией и клавиатурой, как видно из временной диаграммы, приведенной на рис. 5.3. 4.096 MHz X C2 20pF PIC 16C57 RAO RAl RA2 RA3 RBO RBI RB2 RB3 RB4 MCLR RB5 RTCC RB6 RB7 0SC1 RCO RC1 RC2 0SC2 RC3 RCA-RC5 RC6 RC7 -cz} c3 24 R1 1 2 3 4 5 6 7 8 9 10 1112 ALARM 4x2200 L 4x1ООП 1-CD- R11 -CZb **Ципиальная стма будильника 4x2200 R12 nrl3fsr14hr15n ЮкП UlOkQUlOkflUlOknU Oj 04 fO o> rO o- O+rO o- LTC3710G или экбибалентньО CI 20pF 4.096 г MHz i C2 20pF PIC 16C57 -C7- RAO RBO RA1 RBI RA2 RB2 RA3 RB3 RB4 fTCLR RB5 RTCC RB6 RB7 OSC 1 RCO RC1 RC2 0SC2 RC3 RC4 RC5 RC6 RC7 4x1N914 Vcc f r f P . R8 fl 2 3 U b б I7 is 9 [10 11 12 ALARM f]R1 17 16 R4?] R5[) R6[] R7]4,220Q 4x220n nr3 4ZD- R9 4=3- -CD- -C=b Рис. 5.2 Принципиальная аема будильника с развязкой клавиатуры через диоды .KGHUpoBoHue СкаиороЬоние столбца 4 Цифра 1 ЦФро 2 Цифро 3 Цифоо 4 рис. 5.3 3JUS 40jus 3;js 40jjs 20ms Временные диаграммы опроса клавиат/ры и индикации Каждый разряд индикатора отображается в течение 5 мс с периодом 20 мс. Сканирование клавиатуры осуществляется импульсами длительностью 3 мкс (по столбцам), с паузами в 40 мкс. Алгоритм программы представлен на рис. 5.4 и не требует особых комментариев; отметим только, что данное устройство достаточно эффективно использует возможности PIC-микроконтроллера бСХХ. Действительно, большинство функциональных циклов вы-0-1Няются менее чем за 5 мс, что согласуется с циклом работы таймера RTCC. Внешний вид клавиатуры устройства представлен на рис. 5.5. С Помощью функциональных клавиш устанавливаются различные Р*Имы работы устройства. Начало J
Рис. 5.4 Алгоритм лрофоммы будильника Рис. 5.5 Внешний вид клавиатуры
установка текущего времени дсать клавишу SET, затем с помощью цифровых клавиш последова-jjjo установить десятки часов, единицы часов, десятки минут, еди-jjubi минут. Нажатием клавиш АМ/РМ и SET подтвердить выпол-1еННЫеустановки. Отображение времени будильника 4аясать клавиш}AIARM. Время, когда прозвонит будильник, высве-ч,1вается в течение 5 с. Профаммировоние времени будильника Нажать клавишу ALARM, затем SET, так чтобы светодиод a/am индикатора начал мигать. Потом последовательно набрать десятки часов, единицы часов, десятки минут, единицы минут. С помощью клавиш дМ/РМ и SET подтвердить выполненные установки. Разрешение/отмена режима будильника Нажать один или два раза клавишу ALARM. При каждом нажатии устройство переходит из одного режима в друтой. Текущее состояние будильника указывается светодиодом с надписью alarm. Временная приостановка звукового сигнала будильника Нажать клавиш) DISABLE ALARM. Звуковой сигнал будет прерван на десять минут. Эта функция предназначена для ленивых , которые хотят понежиться в постели лишних десять минут! Отмена звукового сигнала будильника Нажать CLEAR ALARM. Бмгшомггг.Это действие окончательно, и звуковой сигнал повторится только на следующий день в тот же час, Отмена набора Нажать клавиш) CLEAR ENTRY в режиме установки времени или установки времени будильника. Предшествующий нажатию клавиши LEAR ENTRY набор будет аннулирован и восстановятся ранее за-ные значения. Программа, приведенная в листинге 5.1, реализует все вышеперечисленные функции.
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |