Тип генератора кристаллах OTP устанавливается на заводе и они тестируются только для этой специальной конфигурации, включая напряжение, частоту и ток потребления, см. Маркировка. Устройства выпускаются с чистым EPROM, что позволяет пользователю самому программировать их. Кроме того, можно отключить Watchdog таймер и/или защитy кода путем программирования битов в специальном EPROM. Также доступны 16 бит для записи кода идентификации (ID).
Обзор характеристик.
- только 33 простых команды;
- все команды выполняются за один цикл(200ns), кроме команд перехода- 2 цикла;
- рабочая частота 0 Гц... 20 МГц(200 нс цикл команды)
- 12- битовые команды;
- 8- битовые данные;
- 512... 2К х 12 программной памяти на кристалле EPROM;
- 25... 72 х 8 регистров общего использования;
- 7 специальных аппаратных регистров SFR;
- двухуровневый аппаратный стек;
- прямая, косвенная и относительная адресация данных и команд;
Периферия и Ввод/Вывод
- 12... 20 линий ввода-вывода с индивидуальной настройкой;
- 8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем;
- автоматический сброс при включении;
- таймер запуска генератора;
- Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
- EPROM бит секретности для защиты кода;
- экономичный режим SLEEP;
- программируемые EPROM биты для установки режима возбуждения встроенного генератора:
- RC генератор: RC
- обычный кварцевый резонатор: XT
- высокочастотный кварцевый резонатор: HS
- экономичный низкочастотный кристалл: LP
КМОП технология
- экономичная высокоскоростная КМОП EPROM технология;
- статический принцип в архитектуре;
- широкий диапазон напряжений питания:
- коммерческий: 2.5... 6.25 В
- промышленный: 2.5... 6.25 В
- автомобильный: 2.5... 6.0 В
- низкое потребление 20 mA типично для 6В, 20МГц
2 мА типично для 5В, 4МГц
15 мкА типично для 3В, 32КГц
3 мкА типично для SLEEP режима при 3В, 0... 70 С
Структурная схема микроконтроллера
Структурная схема микроконтроллера РIС16F84A изображена на рис. 1.
Рис. 1 - Структурная схема микроконтроллера РIС16F84A
Расположение выводов
Расположение выводов микроконтроллера РIС16F84Aизображено на рис. 2.
Рис. 2 - Расположение выводов микроконтроллера РIС16F84A
Исполнение микроконтроллера
Микроконтроллер выпускается в двух видах корпусов.
Расположение выводов и конструктивные размеры различных корпусов приведены на Рис. 3 и Рис. 4.
Рис. 3 - Конструктивные размеры микроконтроллера РIС16F84A(исполнение 1)
Рис. 4 - Конструктивные размеры микроконтроллера РIС16F84A(исполнение 2)
4. Ассемблирование
Для ассемблирования используется макpоассемблеp MPASM, он содержит все необходимые нам возможности. MPASM входит в пакет программ Microchip MPLAB фирмы Microchip Technology.
В pезультате pаботы ассемблеpа создаются файлы со следующими pасшиpениями:* HEX - объектный файл* LST - файл листинга* ERR - файл ошибок и пpедупpеждений* COD Объектный файл создается в 16-pичном фоpмате и содеpжит код, котоpый должен быть записан в микpосхему. Файл листинга содеpжит полный листинг пpогpаммы вместе с загpузочным кодом. В файл ошибок и пpедупpеждений записываются все ошибки и пpедупpеждения, возникающие в пpоцессе ассемблиpования. Они также пpисутствуют и в файле листинга.После обpаботки нашей пpогpаммы ассемблеp должен был выдать сообщение "Assembly Successful", означающее, что ошибок обнаpужено не было. Файл ошибок не должен был создаться.
Листинг программы приведен в Приложении А.
5. Разработка алгоритма работы устройства
Алгоритм программы тахометра представлен на рис. 6. После включения питания происходит начальная инициализация всех регистров с последующей индикацией. После инициализации вступает в работу таймер TMR0. Таймер имеет коэффициент деления, равный 256, что вместе с предделителем, имеющим коэффициент деления, равный 32, и циклом процессора, равным 4, дает прерывания каждую секунду (4 х 32 х 256 = 32768).
При замыкании контактов прерывателя с входа RB0 также происходит прерывание. При прерывании сохраняются значения регистров, задействованных на момент прерывания, и определяется происхождение прерывания. Если прерывание с входа RB0, то двоичный 16-разрядный счетчик увеличивается на единицу. Таким образом, подсчитывается количество прерываний с входа RB0 между прерываниями от переполнения таймера, то есть за 1 секунду. Каждое прерывание заканчивается восстановлением ранее сохраненных значений регистров, и процессор переключается на работу с индикацией.
Если прерывание произошло по переполнению таймера, то определяется состояние переключателя предела измерения и, если переключатель на пределе одной секунды, двоичное значение 16-разрядного счетчика умножается на 3 (2Nх 3). 16-разрядный счетчик обнуляется, готовясь к новому циклу измерения. Полученное двоичное значение перекодируется в трехразрядное двоично-десятичное число и переписывается в регистры индикации. После восстановления значений регистров индикация происходит с новыми данными. То есть индикация обновляется каждую секунду. Если установлен предел измерения, равный 3 секундам, то при переполнении таймера значение счетчика секунд увеличивается на единицу.
Если значение счетчика секунд еще не равно трем, прерывание завершается без обнуления 16-разрядного счетчика. В противном случае в 16-разрядном счетчике накапливается количество прерываний с входа RB0 за три секунды. Это значение перекодируется в двоично-десятичное число и переписывается в регистры индикации. Двоичный счетчик обнуляется и цикл повторяется. В данном случае индикация обновляется каждые три секунды.
Рис. 5 - Алгоритм программы тахометра
6. Описание функциональных узлов МПС и алгоритма их взаимодействия
В проектируемом устройстве можно выделить следующие функциональные блоки: контакт управления; микроконтроллер, пульт управления, позволяющий изменить режимы измерений; стабилизатор напряжения; кварцевый резонатор; семисегментные светодиоды - индикатор. Функциональная схема тахометра приведена на рис. 6.
Рис. 6 - Функциональная схема тахометра
7. Описание выбора элементной базы и работы принципиальной схемы
Схема тахометра показана на рис. 8. Входной сигнал с контактов прерывателя стабилизируется стабилитроном VD1 на уровень ТТЛ и подается на вход RB0. При бесконтактной системе зажигания сигнал снимается с выхода коммутатора, выдающего перепад напряжения 3 В. Этого напряжения достаточно для срабатывания микроконтроллера.
Входы RA0-RA2 коммутируют аноды светодиодов, реализуя динамическую индикацию. Вход RA3 нагружен переключателем предела измерения «ls-3s». Внутренние подтягивающие резисторы программно отключены, но ими снабжены только входы «В» микроконтроллера, поэтому возникла необходимость в установке резистора R2. Входы RBI-RB7 использованы для вывода значений сегментов. Поскольку микроконтроллер работает при верхнем питающем напряжении 6 В, то микросхему стабилизатора напряжения КР142ЕН5 можно взять с любой буквой, обеспечивающей это напряжение. Потребляемый тахометром ток около 25 мА, поэтому микросхема стабилизатора напряжения не нуждается в радиаторе. Диод VD2 защищает прибор от переполюсовки. Если тахометр будет использоваться при регулировке карбюраторов, то светодиоды АЛ304Г нежелательно заменять индикаторами с большими размерами цифр.