Рефераты. Сетевые источники питания

Во время выполнения этого участка программы, все прерывания должны быть запрещены для точного выполнения временной диаграммы. Время записи - примерно 10мс. Фактическое время записи будет изменяться в зависимости от напряжения, температуры и индивидуальных свойств кристалла. В конце записи бит WR автоматически обнуляется, а флаг завершения записи EEIF, он же запрос на прерывание, устанавливается.

Для предотвращения случайных записей в память данных предусмотрен специальный бит WREN в регистре EECON1. Рекомендуется держать бит WREN выключенным, кроме тех случаев, когда нужно обновить память данных. Более того, кодовые сегменты, которые устанавливают бит WREN и те, которые выполняют запись должны храниться на различных адресах, чтобы избежать случайного выполнения их обоих при сбое программы.[1]

Обзор команд и обозначения.

Каждая команда PIC16C84 – это 14-битовое слово, которое разделено по смыслу на следующие части: - 1. код операции, -2. поле для одного и более операндов, которые могут участвовать или нет в этой команде. Система команд PIC16C84 включает в себя байт-ориентированные команды, бит-ориентированные, операции с константами и команды передачи управления.

Для байт-ориентированных команд «f» обозначает собой регистр, с которым производится действие; «d» – бит определяет, куда положить результат. Если «d» =0, то результат будет помещен в W регистр, при «d»=1 результат будет помещен в «f», упомянутом в команде. Для бит-ориентированных команд «b» обозначает номер бита, участвующего в команде, а «f» –это регистр , в котором этот бит расположен.

Для команд передачи управления и опреаций с константами, «k» обозначает восьми или одиннадцатибитную константу.

Все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла: -1. проверка условия и переход, -2.изменение программного счетчика как результат выполнения команды. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.[1]

Дополнительные режимы работы:

Конфигурационное слово:

Кристалл PIC16C84 имеет пять битов конфигурации, которые хранятся в EEPROM и устанавливаются на этапе программирования кристалла. Эти биты могут быть запрограммированы (читается как `0`) или оставлены не- запрограммироваными (читается `1`) для выбора подходящего варианта конфигурации устройства. Эти биты расположены в EEPROM памяти по адресу 2007h. Пользователю следует помнить, что этот адрес находится ниже области кодов и недоступен программе. Ячейка EEPROM конфигурации.

CP - Бит защиты кода.

CP = 1: Код защиты выключен

CP = 0: Код защиты включен

Остальные биты в слове не используются и читаются как единицы.

Индивидуальная метка:

Кристалл PIC16C84 имеет четыре слова, расположенные по адресу (2000h-2003h) Они предназначены для хранения идентификационного кода (ID) пользователя, контрольной суммы или другой информации. Как и слово конфигурации, они могут быть прочитаны или записаны только с помощью программатора. Доступа по программе к ним нет. Если кристалл защищен, пользователю рекомендуется использовать для идентификации только младшие семь бит каждого ID слова, а в старший бит записывать `0`. Тогда ID слова можно будет прочитать даже в защищенном варианте.

Защита программ от считывания:

Программный код, который записан в кристалл, может быть защищен от считывания при помощи установки бита защиты (CP) в слове конфигурации в ноль. Содержимое программы не может быть прочитано так, что с ним можно было бы работать. Кроме того, при установленном бите защиты становится невозможным изменять программу. То-же относится и к содержимому памяти данных EEPROM.

Если установлена защита, то бит CP можно стереть только вместе с содержимым кристалла. Сначала будет стерта EEPROM программная память и память данных и в последнюю очередь бит защиты кода CP.

Проверка кристалла с установленной защитой. При считывании защищенного кристалла, чтение любого адреса памяти даст результат, похожий на 0000000XXXXXXX(двоичный код), где X- это 0 или 1. Чтобы проверить сохранность памяти в защищенном кристалле, следуйте правилам:

1) запрограммируйте и проверьте работу исправного кристалла.

2) установите защиту кода программы и считайте содержимое программной памяти в файл-эталон.

3) проверяйте любой защищенный кристалл путем сравнения его программной памяти с содержимым этого эталона.

Память данных EEPROM не может быть проверена после установки бита защиты.

Режим пониженного энергопотребления:

Вход в режим SLEEP осуществляется командой SLEEP. По этой команде, если WDT разрешен, то он сбрасывается и начинает счет времени, бит "PD" в регистре статуса (f3) сбрасывается, бит "TO" устанавливается, а встроенный генератор выключается. Порты ввода/вывода сохраняют состояние, которое он имели до входа в режим SLEEP. Для снижения потребляемого тока в этом режиме, ножки на вывод должны иметь такие значения, чтобы не протекал ток между кристаллом и внешними цепями. Ножки на ввод должны быть соединены внешними резисторами с высоким или низким уровнем, чтобы избежать токов переключения, вызываемых плавающими высокоомными входами. То же и про RTCC. Ножка /MCLR должна быть под напряжением Vihmc.

Выход из режима SLEEP осуществляется в результате следующих событий:

1. Внешний сброс - импульс низкого уровня на на ножке /MCLR.

2. Сброс при срабатывании WDT(если он разрешен)

3. Прерывания. (Прерывание с ножки INT, прерывание при изменении порта B, прерывание при завершении записи данных EEPROM).

При первом событии происходит сброс всего устройства. Два других события предполагают продолжение выполнения программы. Бит "PD" в регистре статуса (f3), который устанавливается при включении, но обнуляется командой "SLEEP", может быть использован для определения состояния процессора до "просыпания": или процессор был в режиме "SLEEP"(горячий старт), или было просто выключено питание (холодный старт). Бит "TO" позволяет определить, чем был вызван выход из режима SLEEP: или внешним сигналом на ножке /MCLR, или срабатыванием WDT.

Чтобы устройство вышло из режима SLEEP через прерывание, это прерывание должно быть разрешено установкой соответствующей маски в регистре INTCON. При выходе из режима SLEEP будет выполняться фоновая программа, если общая маска запрещает все прерывания (GIE=0). Если GIE=1, то будет выполняться подпрограмма обработки прерываний.[1]


3. Многофункциональный частотомер на PIC16F84A


Основные технические характеристики описываемого частотомера следующие: диапазон измерения частоты — 0,1 Гц...60 МГц (реально верхняя граница выше); порог чувствительности по входному напряжению — 0,08...0,15 В (амплитудное значение); минимальное надежно фиксируемое прибором значение частоты синусоидального сигнала — 2 Гц (амплитудой 0,15 В); максимальная амплитуда входного сигнала — 3 В. Питается прибор от батареи типа "Крона" (возможно использование внешнего источника напряжением 7...16 В), потребляемый ток — 10... 12 мА. Предусмотрено изменение времени измерения (0,1; 1 и 10 с), умножение показаний на 1000 (при применении внешнего делителя частоты), удержание показаний, запись одного значения частоты в энергонезависимую память и возможность последующего считывания.

Принципиальная схема частотомера изображена на рис. 3.1.


Рис 3.1. Многофункциональный частотомер


Его основа — микроконтроллер PIC16F84A, который осуществляет счет импульсов внешнего сигнала, обработку полученных значений и вывод результатов измерения на ЖКИ. В функции микроконтроллера также входят опрос кнопок (SB1—SB4) и управление питанием прибора.

Включают и выключают частотомер кнопкой SB1. После подсоединения батареи питания (или подачи напряжения от внешнего источника) прибор остается в выключенном состоянии. При нажатии на кнопку SB1 напряжение питания через диод VD1 поступает на интегральный стабилизатор напряжения DA1, а с его выхода — на входной каскад (VT3), микроконтроллер DD1 и индикатор HG1. Затем на выводе 1 (RA2) микроконтроллера появляется высокий логический уровень, что приводит к открыванию транзисторов VT1 и VT2. Далее контроллер ожидает отпускания кнопки SB1 (контролируя сигнал на выводе 6). После размыкания ее контактов напряжение питания подается на вход стабилизатора DA1 через открытый транзистор VT1 и начинается измерение частоты.

Во время удержания SB1 на экране индикатора (рис. 3.2,а) высвечиваются надписи "ЧАСТОТОМЕР" и "ВЕРСИЯ: 1.00" (версия пришивки контроллера). При повторном нажатии нa SB1 напряжение питания поступает на вывод 6 (RB0) микроконтроллера, который после этого ожидает размыкания ее контактов, и когда это произойдет, устанавливает низкий логический уровень на выводе 1 (RA2).

В результате транзисторы VT1, VT2 закрываются и прибор обесточивается. Если в режиме измерения на индикаторе отображаются нулевые показания в течение примерно 3 мин, микроконтроллер устанавливает низкий логический уровень на выводе 1 (RA2), тем самым отключая себя от источника питания.

Время измерения, выбранное кнопкой SB2 (0,1; 1 или 10 с), отображается в правой части нижней строки индикатора (рис. 3.2,б). Цена младшего разряда — 10,1 или 0,1 Гц соответственно. При времени измерения 0,1; 1 и 10 с максимально на ЖКИ может отображаться семь, восемь или девять разрядов, т. е. максимальное отображаемое значение равно соответственно 99,999.99, 99,999.999 или 99,999.999.9 МГц.

Нажатием кнопки SB3 показания частоты умножают на 1000. Это сделано для удобства считывания показаний при использовании внешнего делителя на 1000 [1, 2]. Коэффициент умножения ("х1" или "х1000") отображается в середине нижней строки.

Чтобы удержать (зафиксировать) показания, нажимают кнопку SB4 ("Память"). При этом на ЖКИ остается значение той частоты, которое было в момент нажатия кнопки. Его можно сохранить в энергонезависимой памяти микроконтроллера, воспользовавшись кнопкой SB2, функция которой в этом случае — "Запомнить" (рис. 3.2, в). Прежнее значение при этом теряется. Если необходимо считать частоту из памяти, нажимают на SB3 (ее новая функция — "Считать"). Для выхода из режима работы с памятью используют кнопку SB4 (новая функция — "Выход"). В режиме работы с памятью частотомер автоматически выключается примерно через 3 мин после нажатия на любую кнопку независимо от показаний индикатора. После выключения питания в энергонезависимой памяти сохраняются последние параметры измерения (время измерения и множитель).

В качестве VT1, VT2 в приборе можно применить любые транзисторы указанных на схеме серий. Стабилизатор КР1157ЕН502А заменим на 78L05, LM2931Z (при использовании последнего нижняя граница напряжения питания снизится до 5,5 В, а потребляемый ток уменьшится на 2 мА).

Страницы: 1, 2, 3, 4, 5, 6, 7



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.