Электронный регистратор событий » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

На каком языке программирования вы пишите программы?


Ассемблер
Си
Бейсик
Паскаль
Другой


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Электронный регистратор событий
    Автор публикации: alex Просмотров: 7497 Добавлен: 24-09-2012, 08:41 Комментарии: 1

         Идею создания этого устройства автору подсказал один натуралист. Для наблюдения за дикими животными ему потребовалось фиксировать время срабатывания нескольких датчиков на протяжении длительного промежутка времени. Существуют и множество других областей деятельности, где такое устройство может оказаться полезным.
         Имеющиеся в продаже электронные регистраторы событий в основном рассчитаны на промышленное применение и довольно дороги. Предлагаемый прибор можно изготовить самостоятельно. Он не содержит дорогих деталей и фиксирует срабатывания четырех датчиков, контактных или с выходными сигналами стандартных логических уровней
         Схема регистратора показана на рис. 1. Его основа — микроконтроллер PIC16F628A (DD1). Информация о событиях (изменениях состояния контактных датчиков SF1— SF4) сохраняется в микросхеме энергонезависимой памяти DS1, соединенной с микроконтроллером по последовательному интерфейсу 12С.
         Выбор микроконтроллера PIC16F682A обусловлен следующим:
    —    имеется встроенный USART для организации связи с компьютером;
    —    низкое энергопотребление;
    —    работоспособность сохраняется при снижении напряжения питания до 2,2 В;
    —    имеется синхронизируемый отдельным кварцевым резонатором таймер, удобный для организации часов реального времени и работающий даже в "спящем" режиме микроконтроллера.
         Информация о каждом событии занимает в памяти микросхемы DS1 восемь байтов. Это означает, что имеющихся 32 Кбайт достаточно для регистрации 4096 событий. Чтение и запись осуществляются поблочно: за адресом первого байта блока следуют восемь байтов информации. Инкремент (увеличение на единицу) адреса каждого принятого или переданного байта происходит автоматически.
    Электронный регистратор событий

         Основную часть времени микроконтроллер DD1 находится в спящем режиме, работает только его таймер TMR1, синхронизируемый "часовым" кварцевым резонатором ZQ2. Один раз в секунду этот таймер генерирует запрос прерывания, для обработки которого микроконтроллер "просыпается", увеличивает на единицу счетчик времени и опрашивает датчики. Если их состояние изменилось, производится запись информации о событии в микросхему DS1, после чего микроконтроллер "засыпает" до следующего прерывания.
         К регистрации события (с указанием состояния датчиков, времени и даты) приводит изменение состояния любого из четырех датчиков. Но нужно иметь в виду, что датчики SF1 и SF2 опрашиваются 1 раз в секунду, поэтому кратковременные изменения их состояния могут быть пропущены. Этим можно воспользоваться для устранения последствий дребезга контактов. А вот изменения состояния датчиков SF3 и SF4 будут зафиксированы, даже если они произошли в интервалах между опросами, а к моменту опроса датчик возвратился в исходное состояние. Указанные особенности следует учитывать при выборе конструкции датчиков и способа их подключения.
         Ток потребления регистратора от батареи напряжением 3 В — около 200 мкА, что позволяет ему работать от двух щелочных элементов типоразмера ААА не менее шести месяцев.
    Электронный регистратор событий

         Для взаимодействия с компьютером в регистраторе имеется последовательный интерфейс RS-232, разъем которого Х1 подключают к разъему COM-порта компьютера Это позволяет:
    —    перенести список зарегистрированных событий из устройства в компьютер;
    —    очистить этот список в регистраторе;
    —    установить точное время в часах регистратора.
         Сигнал RTS, формируемый СОМ-портом компьютера, использован не по прямому назначению, а для питания микросхемы преобразования уровней DA1. Это уменьшает ток, потребляемый от батареи GB1, и продлевает срок ее службы. Напряжение питания микросхемы DA1 ограничено стабилитроном VD1 до 3,3 В. Это меньше типового для примененной микросхемы МАХ232СРЕ значения, однако достаточно для ее нормального взаимодействия с физическим или виртуальным (организованным с помощью преобразователя USB—RS-232) COM-портом компьютера.
         Напряжение 3,3 В с линии RTS подается также на светодиод HL1, сигнализирующий о его наличии, и на вход RA2 микроконтроллера. Обнаружив его, микроконтроллер выходит из спящего режима и инициализирует свой USART. Обмен ведется со скоростью 19200 Бод.
         Микроконтроллер устанавливается в исходное состояние при включении питания внутренним сигналом. Вход MCLR не используется.
    Электронный регистратор событий

         К линиям порта В микроконтроллера программно подключены внутренние резисторы, соединяющие их с плюсом питания. Они обеспечивают вытекающий из каждой линии ток около 200 мкА. Датчиками событий могут служить не только физические контакты (герконы, кнопки), но и любые устройства с выходными логическими сигналами, имеющими стандартные уровни ТТЛ.
         Розетка Х1 — DB-9F. В качестве Х2 для подключения датчиков можно использовать любой удобный разъем. При соединении регистратора с устройствами, имеющими собственные источники питания, особенно сетевые (например, для фиксации перебоев энергоснабжения, отказов оборудования), необходимо позаботиться о гальванической развязке с помощью оптронов или реле.
         Для взаимодействия с регистратором разработана компьютерная программа logger.exe, позволяющая подавать ему команды, приведенные в таблице, принимать ответы на них и сохранять список зарегистрированных событий в файле на диске компьютера. Окно этой программы показано на рис. 2 При подключенном регистраторе в нем отображаются число зафиксированных им событий, а также текущее время и дата согласно внутренним часам регистратора
         Открыв пункт главного меню ’’Журнал" можно синхронизировать часы регистратора и компьютера, сохранить список событий в файле формата CSV (Comma Separated Values), a также очистить память регистратора. Формат CSV выбран как наиболее универсальный, такой файл можно открыть, например, в программе Microsoft Excel или в другой электронной таблице Несложно написать и собственную программу его обработки.
         Формат записи о событии следующий: день, месяц, год, час. минута, секунда, датчик 1, датчик 2, датчик 3. датчик 4. Все значения в ней — текстовые десятичные. Разделяющий их символ (в данном случае точка с запятой) задают в окне, открывающемся при выборе пункта меню "Параметры". В том же окне выбирают COM-порт компьютера, к которому подключен регистратор, и период опроса его компьютером (не путать с периодом опроса датчиков регистратором)
    Материал взят из: Журнала Радио 2010 №3

    Файлы в архиве:
    Программа на Delphi и исходники к ней
    Исходники и прошивка дял микроконтроллера

    logsoft.rar [217,55 Kb] (cкачиваний: 448)

    Комментарии
    kombatus 19 сентября 2014 12:38 Группа: Посетители
    Здравствуйте!
    Как добавить индикатор, чтобы выводить на него всю информацию?