Сетевые источники питания
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Красноярский Государственный Технический Университет
Институт Радиоэлектроники
Кафедра “Приборостроение”
Отчет по производственной практике
Выполнили:
Студенты гр. Р52-4
В. Абрамович, В. Долгих,
А. Дианов, М. Гайков,
А. Вершинин
Проверил:
А.М. Ситников
Красноярск 2005
Содержание
1. Техника безопасности
1.1 Профилактические мероприятия по ТБ
1.2 Мероприятия по ликвидации возникшей опасности
1.3 Меры пожарной безопасности
2. Общие сведения и основные определения PIC контроллеров на примере PIC16C84
2.1 Основные характеристики PIC контроллеров семейства PIC16CXX
2.2 Микроконтроллер PIC16C84. Краткое описание
2.2.1 Обзор характеристик
2.2.2 Обзор регистров и ОЗУ
2.2.3 Тактовые генераторы
2.2.4 Организация встроенного ПЗУ
2.2.5 Обзор команд и обозначения
2.2.6 Дополнительные режимы работы
3. Многофункциональный частотомер на PIC16F84A
4. Основные типы микрофонных усилителей
4.1 Микрофонный усилитель с симметричной связью
4.2 Двухкаскадный микрофонный усилитель
4.3 Микрофонный усилитель с глубокой АРУ
5. Расчет блока питания
5.1 Расчет трансформатора
5.2 Расчет выпрямителя
5.3 Расчет стабилизатора
Список литературы
1. Техника безопасности
1.1 Профилактические мероприятия по ТБ
Инструктаж радиомеханика.
1. Вводный инструктаж проводится со всеми вновь поступающими на работу, с целью ознакомления с действующей инструкцией по охране труда для данной профессии и для данной работы.
По своему назначению этот вид инструктажа подразделяется на:
а)первичный инструктаж
б)периодический (повторный)
в)внеплановый инструктаж
Защита от поражения электрическим током.
Действие электрического тока на организм человека может быть тепловое (ожог), механическое (разрыв тканей), химическое (электролиз) и биологическое (сокращение мышц, паралич дыхания и сердца).
При воздействии электрического тока на организм человека могут быть два вида поражения: электрические удары и электрические травмы.
Электрические удары - это поражение внутренних органов.
Электрические травмы - это поражение внешних частей тела (ожоги)
Электрические ожоги могут быть разной степени тяжести.
Факторы, влияющие на исход поражения человека электрическим током в основном зависят от сопротивления тела человека, которое в свою очередь зависит от:
а)состояния кожи: неповрежденная, сухая и чистая кожа, а следовательно и тело человека имеет большое сопротивление, до 10000 до 1000000м. Поврежденная, загрязненная и влажная кожа имеет малое сопротивление тела человека;
б)поверхности прикосновения с электродами тока и плотности контакта с электродами;
в)значение и рода электрического тока и приложенного напряжения;
г)частоты тока;
д)длительности прохождения тока;
е)общего состояния нервной системы,
Опасным для человека является ток более 10 мА, при котором человек не может самостоятельно освободиться от токоведущих частей. Ток в 50 мА вызывает тяжелое поражение а ток 100 мА воздействующий более 1 -2с является смертельно опасны.
Переменный ток с частотой 50-1000 Гц опаснее, чем постоянный. Чем меньше время прохождения тока через человека, тем меньше вероятность поражения.
Расчетные параметры
Длительное воздействие тока, с0.1 0,2 0,5 0,7 1.0 3,0
Допустимый ток, мА, 500 250 100 75 50 6
Допустимое напряжение, В 500 250 100 75 50 36
Так же влияет на исход поражение пути прохождения тока. Поражение будет более тяжелым, если пути тока проходят через жизненно важные органы (сердце, грудная клетка, головной и спинной мозг).
По степени поражения электрическим током помещения делятся на три категории:
1.категория - помещения с повышенной опасностью, характеризующиеся наличием в них одного из следующих факторов;
-токопроводящие полы (железобетонные, земляные, кирпичные и т.п.);
-токопроводящая пыль или сырость (при относительной влажности воздуха, длительно превышающей 75%);
-температура длительно превышающая 30°.
2.категория - особо опасные помещения, характеризующиеся наличием одного из следующих условий:
-особая сырость (относительная влажность воздуха близка к 100%);
-химически активная среда;
-одновременное наличие двух или более условий повышенной опасности.
3.категория помещения без повышенной опасности.
Чтобы избежать поражение электрическим током, необходимо соблюдать следующие правила:
1.видеть сигнал (индикаторская лампа, таблица) о включении напряжения, не пробовать наличие напряжение пальцем или отверткой;
2.работать с неисправной блокировкой, не отключать блокировочные элементы;
3.следить за состоянием изоляции;
4.не подключать блоки и приборы к оборудованию находящемуся под напряжением;
5.не измерять напряжение и токи переносными приборами с неизолированными проводами и щупами;
6.не заменять предохранители во включенной аппаратуре;
7.не производить пайку и установку, замену деталей на аппаратуре, находящейся под напряжением, возможны травмирование механика, повреждение аппаратуры;
8.при регулировке на включенной аппаратуре операции производят одной рукой: открытые токонесущие провода и монтаж должны быть хорошо видны; не оставлять включенную аппаратуру более чем на то время, которое необходимо для регулировки и настройки.
При соблюдении мер безопасности нужно правильно пользоваться электроинструментом. Запрещается разбирать его и передавать другим людям. При эксплуатации электроинструмент должен, быть безопасным в работе и иметь недоступные для случайного прикосновения токоведущие части. Напряжение электроинструмента не должно превышать до 220В в помещениях без повышенной опасности; до 42В в помещениях с повышенной опасностью.
Защитными средствами являются: диэлектрические перчатки, коврики, инструменты с изолирующими ручками, указатели напряжения. Также главной защитой человека от поражения электрическим током является защитное заземление- это преднамеренное соединение с землей нетоковедущих металлических частей электроприборов, аппаратуры молниеотводов и разрядников.
Правило ТБ для защиты работающего от механических и других травм:
К травмам различного рода могут привести причины как, неправильное обращение с инструментами, состояние человека неправильное применение тех или иных предметов, приборов и т. д.
Весь рабочий инструмент должен храниться в специальных ящиках, а ручки изолированы. Отвертки должны быть хорошо заточены, чтобы не было срыва при работе. Бокорезы острые. Для защиты от летающих частиц при откусывании провода применяются экраны.
Оборудование рабочего места имеет также очень важное значение. Во-первых рабочее место должно быть оборудовано электросветильником регулирующимся, вытяжкой, стол покрыт пластиком. На рабочем месте не должно быть лишних предметов.
Также важно соблюдать правило безопасности при пайке и пользования электропаяльниками. Пайкой осуществляется неразъемное соединение деталей с помощью припая (Г10С, ПОСК), в состав которого входит свинец, вредный для организма человека. После пайки нужно вымыть руки 1 % раствором уксуса, затем промыть их теплой водой с мылом. При использовании паяльника следует остерегаться брызг припоя и флюсов.
1.2 Мероприятия по ликвидации возникшей опасности
Первая помощь пострадавшему от электрического тока.
Если у пострадавшего сохранилось дыхание, но он без сознания, его следует ровно уложить, расстегнуть одежду, создать приток свежего воздуха. При этом пострадавшему нужно давать нюхать нашатырный спирт, обрызгивать его водой, растирать и согревать тело. Если пострадавший дышит плохо, судорожно (как умирающий), ему следует делать искусственно. Одновременно вызвать врача.
Первая помощь при ожоге:
Необходимо обожженную поверхность перевязать стерильной салфеткой или бинтом. При ожогах глаз вольтовой дугой следует делать холодные примочки из борной кислоты и немедленно вызвать врача.
Первая помощь при ранении:
Во избежании заражения столбняком особое значение нужно уделять ранам загрязненным землей. В этом случае необходимо срочно обратиться к врачу. Также не допускается:
1.Промывать рану водой или какими-то либо растворами, засыпать порошками;
2.Покрывать мазями; нельзя стирать с раны песок; нельзя удалять сгустки крови;
3.Заматывать рану изоляционной лентой и т.п. Следует перевязать рану используя стерильный индивидуальный пакет, или чисты, и конечно вызвать врача.
Первая помощь при кровотечении.
Необходимо, поднять раненую конечность вверх: кровоточащую рану накрыть перевязочным материалом (из пакета) сложенным в комочек, и придавить ее сверху, не касаясь пальцами самой раны, держать 4-5 минут, затем забинтовать рану туго.
При сильном кровотечении сдавить кровеносные сосуды при помощи сгибания конечности в суставе, а также пальцами, жгутом или закруткой. Необходимо срочно вызвать врача.
Первая помощь при переломах, вывихах, ушибах и растяжениях:
Основная задача при переломах и вывихах обеспечить больному неподвижность. Вправлять вывих должен врач. При переломе черепа (бессознательное состояние, кровотечение из ушей или рта) прикладывать к голове холодные предметы. При переломе позвоночника (резкая боль в позвоночнике, невозможно согнуть спину и повернуться) следует осторожно подсунуть под пострадавшего доску, не поднимая его, или повернуть на живот.
Первая помощь при обмороке.
Пострадавшего следует уложить в тени, опустив голову и приподняв ноги, дать воды, нюхать нашатырный спирт. Лед и примочки на голову класть не следует. Вызвать врача.
1.3 Меры пожарной безопасности
При ремонте бытовой РЭА очень важно узнать назначение огнетушителей, их применение. Возникновение пожара может быть не электрического характера и электрического. В нерабочих помещениях, без повышенной опасности применяются пенные огнетушители. Так же может применяться песок. А для тушения аппаратуры, либо других электрических предметов используются углекислотные огнетушители. Порошковые огнетушители предназначены для тушения небольших очагов загорания щелочных металлов, и других соединений. Инструкция по пользованию огнетушителями обязательно нанесена на самом баллоне.
2. Общие сведения и основные определения PIC контроллеров на примере PIC16C84
2.1 Основные характеристики PIC контроллеров семейства PIC16CXX
PIC16CXX - это 8-разрядные микроконтроллеры с RISC архитектурой, производимые фирмой Microchiр Technology. Это семейство микроконтроллеров отличается низкой ценой, низким энергопотреблением и высокой скоростью.
Рис1.1 Пpинципиальная схема устpойства индикации на PIC16F84
Микроконтроллеры имеют встроенное ЭППЗУ программы, ОЗУ данных и выпускаются в 18 и 28 выводных корпусах. PIC OTP - это однократно программируемые пользователем контроллеры, предназначенные для полностью оттестированных и законченных изделий, в которых не будет происходить дальнейших изменений кода. Эти контроллеры выпускаются в дешевых пластиковых корпусах с предварительно заданным типом внешнего генератора - кварцевым или RC. Для отладки программ и макетирования выпускается вариант контроллеров с ультрафиолетовым стиранием. Эти контроллеры допускают большое число циклов записи/стирания и имеют очень малое время стирания - обычно 1-2 минуты. Однако цена таких контроллеров существенно выше, чем однократно программируемых, поэтому их невыгодно устанавливать в серийную продукцию. Для изделий, программа которых может меняться, либо содержит какие-либо переменные части, таблицы, параметры калибровки, ключи и т.д., выпускается электрически стираемый и перепрограммируемый контроллер PIC16F84. Он также содержит электрически перепрограммируемое ПЗУ данных. Именно такой контроллер мы и будем использовать для экспериментов.
СЕМЕЙСТВО PIC16CXX:
Для применений, связанных с защитой информации, каждый PIC имеет бит секретности, который может быть запрограммирован для запрещения считывания программного кода и ПЗУ данных. При программировании сначала записывается программный код, проверяется на правильность записи, а затем устанавливается бит секретности. Если попытаться прочитать микросхему с установленным битом секретности, то для PIC16C5X старшие 8 разрядов кода будут считываться как 0, а младшие 4 разряда будут представлять собой скремблированные 12 разрядов команды. Для PIC16F84 аналогично 7 старших разрядов будут считываться нулями, а 7 младших разрядов будут представлять скремблированные 14 разрядов команды. Электрически перепрограммируемое ПЗУ данных PIC16F84 при установке бита защиты не может быть считано. Микроконтроллеры семейства PIC имеют очень эффективную систему команд, состоящую всего из 35 инструкций. Все инструкции выполняются за один цикл, за исключением условных переходов и команд, изменяющих программный счетчик, которые выполняются за 2 цикла. Один цикл выполнения инструкции состоит из 4 периодов тактовой частоты. Таким образом, при частоте 4 МГц, время выполнения инструкции составляет 1 мксек. Каждая инструкция состоит из 14 бит, делящихся на код операции и операнд (возможна манипуляция с регистрами, ячейками памяти и непосредственными данными).
Высокая скорость выполнения команд в PIC достигается за счет использования двухшинной Гарвардской архитектуры вместо традиционной одношинной Фон-неймановской. Гарвардская архитектура основывается на наборе регистров с разделенными шинами и адресным пространством для команд и для данных. Набор регистров означает, что все программные объекты, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры. Память данных (ОЗУ) для PIC16CXX имеет разрядность 8 бит, память программ (ППЗУ) имеет разрядность 12 бит для PIC16C5X и 14 бит для PIC16CXX. Использование Гарвардской архитектуры позволяет достичь высокой скорости выполнения битовых, байтовых и регистровых операций. Кроме того, Гарвардская архитектура допускает конвейерное выполнение инструкций, когда одновременно выполняется текущая инструкция и считывается следующая. В традиционной же Фон-неймановской архитектуре команды и данные передаются через одну разделяемую или мультиплексируемую шину, тем самым ограничивая возможности конвейеризации. Внутренние физические и логические компоненты, из которых состоит PIC16CXX аналогичны любому другому микроконтроллеру. Поэтому писать программы для PIC не сложнее, чем для любого другого процессора. Конечно, Гарвардская архитектура и большая разрядность команды позволяют сделать код для PIC значительно более компактным, чем для других микроконтроллеров и существенно повысить скорость выполнения программ.(1)
2.2 Микроконтроллер PIC16C84. Краткое описание
PIC16C84 относится к семейству КМОП микроконтроллеров. Отличается тем, что имеет внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 64байт EEPROM памяти данных. При этом отличаются низкой стоимостью и высокой производительностью. Все команды состоят из одного слова (14 бит шириной) и исполняются за один цикл (400 нс при 10 МГц), кроме команд перехода, которые выполняются за два цикла (800 нс). PIC16C84 имеет прерывание, срабатывающее от четырех источников, и восьмиуровневый аппаратный стек.
Периферия включает в себя 8-битный таймер/счетчик с 8-битным программируемым предварительным делителем (фактически 16 - битный таймер) и13 линий двунаправленного ввода/вывода. Высокая нагрузочная способность (25мА макс. втекающий ток, 20 мА макс. вытекающий ток) линий ввода/вывода упрощают внешние драйверы и, тем самым, уменьшается общая стоимость системы. Разработки на базе контроллеров PIC16C84 поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором и программатором.
Серия PIC16C84 подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает PIC16C84 привлекательным даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Следует добавить, что встроенный автомат программирования EEPROM кристалла PIC16C84 позволяет легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования.(1)
Обзор характеристик:
- только 35 простых команд;
- все команды выполняются за один цикл(400ns), кроме команд перехода -2 цикла;
- рабочая частота 0 Гц ... 10 МГц (min 400 нс цикл команды)
- 14 - битовые команды;
- 8 - битовые данные;
- 1024 х 14 электрически перепрограммируемой программной памяти на кристалле (EEPROM);
- 36 х 8 регистров общего использования;
- 15 специальных аппаратных регистров SFR;
- 64 x 8 электрически перепрограммируемой EEPROM памяти для данных;
- восьмиуровневый аппаратный стек;
- прямая, косвенная и относительная адресация данных и команд;
- четыре источника прерывания:
а) внешний вход -- INT
б) переполнение таймера -- RTCC
в) прерывание при изменении сигналов на линиях порта -- B
г) по завершению записи данных в память -- EEPROM
Периферия и Ввод/Вывод
- 13 линий ввода-вывода с индивидуальной настройкой;
- втекающий/вытекающий ток для управления светодиодами
. макс втекающий ток - 25 мА
. макс вытекающий ток - 20 мА
- 8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем;
- автоматический сброс при включении;
- таймер включения при сбросе;
- таймер запуска генератора;
- Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
- EEPROM бит секретности для защиты кода;
- экономичный режим SLEEP;
- выбираемые пользователем биты для установки режима возбуждения встроенного генератора:
- RC генератор : RC
- обычный кварцевый резонатор : XT
- высокочастотный кварцевый резонатор : HS
- экономичный низкочастотный кристалл : LP
- встроенное устройство программирования EEPROM памяти программ и данных; используются только две ножки.
КМОП технология:
- экономичная высокоскоростная КМОП EPROM технология;
- статический принцип в архитектуре;
- широкий диапазон напряжений питания и температур:
. коммерческий: 2.0 ... 6.0 В, 0...+70С
. промышленный: 2.0 ... 6.0 В, -40...+70С
. автомобильный: 2.0 ... 6.0 В, -40...+125С
- низкое потребление
. 3 мА типично для 5В, 4МГц
. 50 мкА типично для 2В, 32КГц
. 26 мкА типично для SLEEP режима при 2В.
Cтруктура PIC16C84:
Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14- битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов. В PIC16C84 программная память объемом 1К х 14 расположена внутри кристалла. Исполняемая программа может находиться только во встроенном ПЗУ.
Tипы корпусов и исполнений
Обозначения корпусов для кристаллов PIC16C8x. Тип корпуса указывается в Маркировке при заказе микросхем. Корпуса бывают только с 18 Выводами.
PDIP - Обычный пластмассовый двухрядный корпус. Используется для OTP EPROM версий кристаллов.
SOIC - Малогабаритный DIP корпус для монтажа на поверхность
Исполнения микросхем бывают трех типов: комерческие, для промышлености и для автомобильной электроники. Основное их отличие в температурном диапазоне и рабочем напряжении.
Коммерческое исполнение:
Рабочая температура 0 ... +70 C
Рабочее напряжение 3.0 ... 5.5 В
Исполнение для промышленности:
Рабочая температура -40 .... +85 C
Рабочее напряжение 3.0 ... 5.5 В
Исполнение для автомобилей:
Рабочая температура -40 ... +125 C
Рабочее напряжение 3.0 ... 5.5 В
Mаркировка при заказе:
Обозначение микросхем складывается из следующих полей:
<Фирм.номер>-<Частота ген.> <Темп.диапазон> /<Корпус> <Примеч>
<Фирм.номер бывает>: PIC16C84 - Vdd range 4...6 V
PIC16LC84 Vdd range 2...6 V
<Частота генератора>: 04 ---> 4 mHz
10 ---> 10mHz
Температурный диапазон бывает:
- от 0С до +70С
I от-40С до +85С
E от-40С до +125С
Корпус обозначается:
P - обычный пластмассовый DIP
SO -300 mil SOIC
ПРИМЕРЫ:
PIC16C84-04/Pxxx 4 mHz, коммерческое исполнение в PDIP корпусе, норм.диапазон Vdd, масочное ПЗУ с программой xxx
PIC16LC84-04I/SO 4 mHz, исполнение для промышленности, расширенный диапазон питания, корпус=SOIC
PIC16C84-10E/P исполнение для автомобилей, 10 mHz, PDIP, норм. питание
Максимальные значения электрических параметров
Выход параметров за данные пределы может привести к повреждению микросхемы. Работа кристалла на предельно допустимых значениях в течение длительного времени повлияет на его надежность.
Примечания:
1. Полная рассеиваемая мощность не должна превышать 800 мВт для каждого корпуса. Рассеиваемая мощность вычисляется по следующей формуле:
2. Понижение напряжения на ножке /MCLR ниже Vss(земля) вызывает большие токи, более 80 мА, и может привести к повреждению этой линии. Поэтому, рекомендуется подавать сигналы на ножку /MCLR через ограничивающий резистор 50-100 Ом.(1)
Обзор регистров и ОЗУ:
Все программные объекты, с которыми может работать PIC, представляют собой физические регистры. Чтобы понять, как работает PIC, нужно разобраться с тем, какие регистры у него существуют и как с каждым из них работать. Hачнем с набора операционных регистров. Этот набор состоит из регистра косвенной адресации (f0), регистра таймера/счетчика (f1), программного счетчика (f2), регистра слова состояния (f3), регистра выбора (f4) и регистров ввода/вывода (f5,f6).
Эти регистры представляют основную часть программно-доступных объектов микроконтроллера.
f0...РЕГИСТР КОСВЕHHОЙ АДРЕСАЦИИ IND0: Регистр косвенной адресации f0 физически не существует. Он использует регистр выбора f4 для косвенной выборки одного из 64 возможных регистров. Любая команда, использующая f0, на самом деле обращается к регистру данных, на который указывает f4.
f1...РЕГИСТР ТАЙМЕРА/СЧЕТЧИКА TMR0: Регистр таймера/счетчика TMR0 может быть записан и считан как и любой другой регистр. TMR0 может увеличиваться по внешнему сигналу, подаваемому на вывод RTCC, или по внутренней частоте, соответствующей частоте команд.
Основное применение таймера/счетчика - подсчет числа внешних событий и измерение времени. Сигнал от внешнего или внутреннего источника также может быть предварительно поделен при помощи встроенного в PIC программируемого делителя.
f2...ПРОГРАММHЫЙ СЧЕТЧИК PCL: Программный счетчик (PC) используется для генерации последовательности адресов ячеек ПЗУ программы, содержащих 14-разрядные команды.
Ширина программного счетчика - 13 бит. Младший байт программного счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт программного счетчика (PCH) не может быть прямым образом прочитан или записан. Старший байт программного счетчика может быть записан через PCLATH регистр, адрес которого 0Ah. В зависимости от того, загружается ли в программный счетчик новое значение во время выполнения команд CALL, GOTO, или в младший байт программного счетчика (PCL) производится запись, - старшие биты программного счетчика загружаются из PCLATH разными способами
f3...РЕГИСТР СЛОВА СОСТОЯHИЯ STATUS: Регистр слова состояния похож на регистр PSW, существующий в большинстве микропроцессоров. В нем находятся бит переноса, десятичного переноса и нуля, а также биты режима включения и биты страничной адресации.
f4...РЕГИСТР ВЫБОРА FSR: Как было уже сказано, регистр выбора FSR используется вместе с регистром косвенной адресации f0 для косвенной выборки одного из 64 возможных регистров. Физически задействовано 36 регистров ОЗУ пользователя, расположенных по адресам 0Ch-2Fh и 15 служебных регистров, расположенных по различным адресам.
f5, f6...РЕГИСТРЫ ВВОДА/ВЫВОДА PORTA, PORTB Регистры f5 и f6 соответствуют двум портам ввода/вывода, имеющимся у PIC16C84.
Порт A имеет 5 разрядов PA4-PA0, которые могут быть индивидуально запрограммированы как входы или выходы при помощи регистра TRISA, имеющего адрес 85h. Линии PA<3:0> двунаправленные, а линия PA4 -выход с открытым стоком. Адрес регистра порта А - 05h. Относящийся к порту А управляющий регистр TRISA расположен на первой странице регистров по адресу 85h. TRISA<4:0> - это регистр шириной 5 бит. Если бит управляющего TRISA регистра имеет значение единица, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки.
Порт В - это двунаправленный порт, шириной в восемь бит (адрес регистра 06h). Относящийся к порту В управляющий регистр TRISB расположен на первой странице регистров по адресу 86h. Если бит управляющего TRISB регистра имеет значение единица, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки. У каждой ножки порта В имеется небольшая активная нагрузка (около 100мкА) на линию питания. Она автоматически отключается, если эта ножка запрограммирована как вывод. Более того, управляющий бит RBPU OPTION<7> может отключить (RBPU=1) все нагрузки. Сброс при включении питания также отключает все нагрузки.
Порт B имеет 8 разрядов PB7-PB0 и программируется при помощи регистра TRISB, имеющего адрес 86h.
Четыре линии порта В (PB<7:4>) имеют способность вызвать прерывание при изменении значения сигнала на любой из них. Если эти линии настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения Q1. Новая величина входного сигнала сравнивается со старой в каждом командном цикле. При несовпадении значения сигнала на ножке и в защелке, генерируется высокий уровень. Выходы детекторов "несовпадений" PB4,PB5,PB6,PB7 объединяются по ИЛИ и генерируют прерывание RBIF (запоминаемое в INTCON<0>). Любая линия, настроенная как вывод, не участвует в этом сравнении. Прерывание может вывести кристалл из режима SLEEP. В подпрограмме обработки прерывания следует сбросить запрос прерывания одним из следующих способов:
1) Запретить прерывания при помощи обнуления бита RBIE INTCON<3>.
2) Прочитать порт В. Это завершит состояние сравнения.
3) Обнулить бит RBIF INTCON<0>.
Прерывание по несовпадению и программно устанавливаемые внутренние активные нагрузки на этих четырех линиях могут обеспечить простой интерфейс например с клавиатурой, с выходом из режима SLEEP по нажатию клавиш. Ножка RB0 совмещена с входом внешнего прерывания INT
Задание 1 в разряде регистра TRIS программирует соответствующий разряд порта как вход. При чтении порта считывается непосредственное состояние вывода, при записи в порт запись происходит в буферный регистр.
Проблемы при организации двунаправленных портов:
-Некоторые команды внутренне выполняются как чтение+запись. Например, команды BCF и BSF считывают порт целиком, модифицируют один бит и выводят результат обратно. Здесь необходима осторожность. Например, команда BSF для бита 5 регистра f6 (порт В) сначала считает все восемь бит. Затем выполняются действия над битом 5 и новое значение байта целиком записывается в выходные защелки. Если другой бит регистра f6 использует я в качестве двунаправленного ввода/вывода (скажем бит 0) и в данный момент он определен как входной, входной сигнал на этой ножке будет считан и записан обратно в выходную защелку этой-же ножки, затирая ее предыдущее состояние.
До тех пор пока эта ножка остается в режиме ввода, никаких проблем не возникает. Однако, если позднее линия 0 переключится в режим вывода, ее состояние будет неопределенным.
На ножку, работающую в режиме вывода, не должны "наваливаться" внешние источники токов("монтажное И", "монтажное ИЛИ"). Результирующие большие токи могут повредить кристалл.
Последовательное обращение к портам ввода/вывода:
Запись в порт вывода происходит в конце командного цикла. Но при чтении, данные должны быть стабильны в начале командного цикла. Будьте внимательны в операциях чтения, следующих сразу за записью в тот же порт. Здесь надо учитывать инерционность установления напряжения на выводах. Может потребоваться программная задержка, чтобы напряжение на ножке (зависит от нагрузки) успело стабилизироваться до начала исполнения следующей команды чтения
f8, f9...РЕГИСТРЫ ЭППЗУ EEDATA, EEADR: PIC16C84 имеет встроенное электрически перепрограммируемое ПЗУ размером 64 байта, которое может быть считано и записано при помощи регистра данных EEDATA и регистра адреса EEADR. Запись нового байта длится около 10 мсек и управляется встроенным таймером. Регистр EECON1 (адрес 88h) - это управляющий регистр шириной пять бит. Младшие пять бит физически существуют, а старшие три бита читаются всегда как `0`.
Управляющие биты RD и WR запускают соответственно чтение и запись. Они могут быть установлены только программно. Сбрасываются- аппаратно по завершения операций чтения/записи. Запрет программного сброса бита WR предотвращает преждевременное окончание записи.
RD - Бит чтения.
RD =1 : Запускает чтение памяти данных EEPROM. Чтение занимает один цикл. Устанавливается программно. Обнуляется аппаратно.
WR - Бит записи.
WR =1 : Запускает запись в память данных EEPROM.
Устанавливается программно. Обнуляется аппаратно.
WREN - Бит разрешения записи в память данных EEPROM.
WREN = 1: Разрешена запись.
WREN = 0: Запрещена запись.
После включения питания WREN обнуляется.
Флаг ошибки WRERR устанавливается, когда процесс записи прерывается сигналом сброса /MCLR или сигналом сброса от WDT таймера. Рекомендуется проверять этот флаг WRERR и при необходимости производить перезапись данных, данные и адрес которых сохраняются в регистрах EEDATA и EEADR.
WRERR - Флаг ошибки записи.
WRERR = 1: Флаг устанавливается, когда операция записи преждевременно прерывается сигналом сброса /MCLR (во время обычного режима или режима SLEEP) или сигналом сброса WDT во время обычного режима.
Флаг EEIF устанавливается, когда встроенный автомат завершает запись в память данных. Он должен быть сброшен программно.
EEIF - Флаг завершения записи.
EEIF = 1: Флаг устанавливается, когда завершена запись. Соответствующий бит разрешения прерывания - EEIE в регистре INTCON (1)
РЕГИСТРЫ ОБЩЕГО HАЗHАЧЕHИЯ
Регистры общего назначения представляют собой статическое ОЗУ, расположенное по адресам 0Ch-2Fh. Всего в PIC16C84 можно использовать 36 ячеек ОЗУ.(1)
СПЕЦИАЛЬHЫЕ РЕГИСТРЫ W, INTCON, OPTION
К ним относятся рабочий регистр W, используемый в большинстве команд в качестве регистра аккумулятора и регистры INTCON и OPTION. Регистр прерываний INTCON (адрес 0Bh) служит для управления режимами прерывания и содержит биты разрешения прерываний от различных источников и флаги прерываний. Регистр режимов OPTION (адрес 81h) служит для задания источников сигнала для предварительного делителя и таймера/счетчика, а также для задания коэффициента деления предварительного делителя, активного фронта сигнала для RTCC и входа прерывания. Кроме того при помощи регистра OPTION могут быть включены нагрузочные резисторы для разрядов порта B, запрограммированных как входы.(1)
СТОРОЖЕВОЙ ТАЙМЕР WDT
Сторожевой таймер WDT предназначен для предотвращения катастрофических последствий от случайных сбоев программы. Watchdog таймер представляет собой полностью независимый встроенный RC генератор, который не требует никаких внешних цепей. Он будет работать, даже если основной генератор остановлен, как это бывает при исполнении команды SLEEP. Таймер вырабатывает сигнал сброса. Выработка таких сбросов может быть запрещена путем записи нуля в специальный бит конфигурации WDTE. Эту операцию производят на этапе прожига микросхем.
Выдержка времени WDT:
Номинальная выдержка WDT составляет 18 мс (без использования делителя). Она зависит от температуры, напряжения питания, от особенностей типов микросхем. Если требуются большие задержки, то к WDT может быть подключен встроенный делитель с коэффициентом деления до 1:128; который программируется путем записи в регистр OPTION. Здесь могут быть реализованы выдержки до 2.5 секунд.
Команды "CLRWDT" и "SLEEP" обнуляют WDT и делитель, если он подключен к WDT. Это запускает выдержку времени сначала и предотвращает на некоторое время выработку сигнала сброс. Если сигнал сброса от WDT все же произошел, то одновременно обнуляется бит "TO" в регистре статуса (f3). В приложениях с высоким уровнем помех, содержимое регистра OPTION подвержено сбою. Поэтому регистр OPTION должен обновляться через равные промежутки времени.
Следует учесть, что наихудшей комбинацией является: Vdd=min, температура=max и max коэффициент деления делителя,- это приводит к самой большой выдержке времени, она может достигать нескольких секунд.(1)
СХЕМА СБРОСА:
Микроконтроллеры семейства PIC используют внутреннюю схему сброса по включению питания в сочетании с таймером запуска генератора, что позволяет в большинстве ситуаций обойтись без традиционного резистора и конденсатора.
В PIC16C84 существуют различия между вариантами сбросов:
1) Сброс по включению питания.
2) Сброс по внешнему сигналу /MCLR при нормальной работе.
3) Сброс по внешнему сигналу /MCLR в режиме SLEEP.
4) Сброс по окончанию задержки таймера WDT при нормальной работе.
5) Сброс по окончанию задержки таймера WDT в режиме SLEEP.
Некоторые из спец.регистров при сбросе не инициализируются. Они имеют случайное состояние при включении питания и не изменяются при других видах сбросов. Другая часть спец.регистров инициализируются в "состояние сброса" при всех видах сброса, кроме сброса по окончанию задержки таймера WDT в режиме SLEEP. Просто этот сброс рассматривается как временная задержка в нормальной работе. Есть еще несколько исключений. Программный счетчик всегда сбрасывается в ноль (0000h). Биты статуса TO и PD устанавливаются или сбрасываются в зависимости от варианта сброса. Эти биты используются программой для определения природы сброса.
Алгоритм сброса при вкл. питания.
Кристалл PIC16C84 имеет встроенный детектор включения питания. Таймер запуска начинает счет выдержки времени после того, как напряжение питания пересекло уровень около 1,2...1,8 Вольт. По истечении выдержки около 72мс считается, что напряжение достигло номинала и запускается другой тайме выдержка на стабилизацию кварцевого генератора. Программируемый бит конфигурации позволяет разрешать или запрещать выдержку от встроенного таймера запуска. Выдержка запуска меняется от экземпляров кристалла, от питания и температуры. Таймер на стабилизацию генератора отсчитывает 1024 импульса от начавшего работу генератора. Считается, что кварцевый генератор за это время вышел на режим. При использовании RC генераторов- выдержка на стабилизацию не производится.
Затем включается таймер ожидания внешнего сброса /MCLR. Это необходимо для тех случаев, когда требуется синхронно запустить в работу несколько PIC контроллеров через общий для всех сигнал /MCLR. Если такого сигнала не поступает, то через время Tost вырабатывается внутренний сигнал сброса и контроллер начинает ход по программе. Время Tost программируется битами конфигурации в EEPROM. Здесь существует проблема, когда Vdd нарастает слишком медленно и все выдержки на запуск, а питание еще не достигло своего минимального значения Vdd(min) работоспособности. В таких случаях рекомендуется использова