Главная страница
Контакты

    Главная страница


Микропроцессорная система управления объектом

Скачать 142.43 Kb.



Скачать 142.43 Kb.
Дата04.09.2017
Размер142.43 Kb.

Микропроцессорная система управления объектом


Введение

Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами являются в настоящее время одним из основных направлений научно-технического прогресса.

Нау́чно-техни́ческая революция (НТР) - коренное качественное преобразование производительных сил, качественный скачок в структуре и динамике развития производительных сил.
Настоя́щее - часть линии времени, состоящая из событий, которые происходят в данный момент, то есть определенная область пространства-времени. При определённых допущениях под настоящим временем понимаются текущие дни, месяцы и даже годы.
Систе́ма управле́ния - систематизированный (строго определённый) набор средств сбора сведений о подконтрольном объекте и средств воздействия на его поведение, предназначенный для достижения определённых целей.
Промышленность Промы́шленность (от рус. промышлять, промысел) - совокупность предприятий (заводов, комбинатов, фабрик, рудников, шахт, электростанций), занятых производством орудий труда (как для других отраслей народного хозяйства, так и для самой промышленности), добычей сырья, материалов, топлива, производством энергии и дальнейшей обработкой продуктов, полученных в промышленности или произведённых в сельском хозяйстве - производством потребительских товаров.

За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные микроконтроллеры представляют собой приборы, конструктивно выбранные в виде БИС и включающие в себя все составные части «голой» микроЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой.

Однокристальные микроконтроллеры - функционально законченный МПК (микропроцессорный комплект), реализованный в виде одной СБИС (сверх-БИС). ОМК включает процессор, ОЗУ, ПЗУ, порты ввода-вывода для подключения внешних устройств, модули ввода аналогового сигнала АЦП, таймеры, контроллеры прерывания, контроллеры различных интерфейсов и т. д.
Окружа́ющая среда́ - обобщённое понятие, характеризующее природные условия некоторой местности и её экологическое состояние. Окружающая среда обычно рассматривается как часть среды, которая взаимодействует с данным живым организмом (человеком, животным и так далее), включая объекты живой и неживой природы.

Среди предложенных новых архитектур однокристальных микроЭВМ следует выделить 8-и разрядную архитектуру семейства микроконтроллеров MCS-51, предложенного фирмой INTEL в 1981г. Она удовлетворяет всем требованиям, представляемым к однокристальным микроконтроллерам.

Однако к настоящему времени значительную часть мирового рынка микропроцессорных средств составляет другой вид однокристальных контроллеров - это так называемые периферийные интерфейсные контроллеры или PIC. Они представляют собой высокопроизводительные БИС, в которые интегрированы помимо цифровых устройств (собственно микроконтроллера) также и аналоговые - это различные АЦП, компараторы, модули сравнения ШИМ и т.д. Это делает данные устройства чрезвычайно популярными у производителей «интеллектуальных» устройств. Наиболее известным в нашей стране производителем однокристальных PIC является американская компания MicrochipTechnologyInc. Она производит три линейки 8-разрядных PIC.

Главная особенность микропроцессора -- возможность программирования логики работы. Поэтому МПС используются для управления процессом измерения (реализацией алгоритма измерения), обработки опытных данных, хранения и вывода результатов измерения и пр.

1. Техническое задание на разработку микропроцессорной системы управления

В курсовой работе разрабатывается микропроцессорная система управления некоторым объектом (рисунок 1).

Рисунок 1 - Структурная схема управления объектом

Микропроцессорная система принимает информацию об объекте управления от аналоговых и цифровых датчиков, вырабатывает управляющие воздействия (Y) в соответствии с законами управления и подает их на исполнительные механизмы.

Техни́ческое зада́ние (ТЗ, техзада́ние) - документ, содержащий требования заказчика к объекту закупки, определяющие условия и порядок ее проведения для обеспечения государственных или муниципальных нужд, в соответствии с которым осуществляются поставка товара, выполнение работ, оказание услуг и их приемка.
Исполни́тельное устро́йство - устройство системы автоматического управления или регулирования, воздействующее на процесс в соответствии с получаемой командной информацией. Состоит из двух функциональных блоков: собственно исполнительного устройства (если исполнительное устройство механическое, то его часто называют исполнительный механизм) и регулирующего органа, например регулирующего клапана, и может оснащаться дополнительными блоками.
Структурная схема Структурная схема - это совокупность элементарных звеньев объекта и связей между ними, один из видов графической модели. Под элементарным звеном понимают часть объекта, системы управления и т. д., которая реализует элементарную функцию.
Микропроцессорная система состоит из микроконтроллера - управляющего микро-ЭВМ, пульта управления и последовательного канала связи.
Пульт управления Пульт управления - устройство для контроля и управления работой устройств и процессов. В частности для управления ЭВМ. Пульт управления содержит ряд блоков управления: блок набора информации, блок управления, сигнальный блок и т. д.
Канал связи (англ. channel, data line) - система технических средств и среда распространения сигналов для односторонней передачи данных (информации) от отправителя (источника) к получателю (приёмнику).
С помощью пульта управления оператор получает возможность управлять работой микро-ЭВМ: запускать ее и останавливать, выдавать значение некоторых установок (констант), снимать с индикаторов информацию о состоянии объекта и т. п. С помощью последовательного канала связи микропроцессорная система может передавать обработанную информацию системе более высокого уровня по ее запросу.

В курсовой работе разрабатывается структурная схема микропроцессорной системы, включая устройства связи с датчиками и исполнительными механизмами, и программы, обеспечивающие выполнение алгоритма управления и алгоритма обмена, осуществляется оценка характеристик микропроцессорной системы и разработка блока питания. В разделе, посвященном расчету электрических параметров системы, необходимо рассчитать потребляемый ток и мощность по каждой из цепей питания. На основании этих расчетов разрабатывается или выбирается готовый блок питания.

Обработка цифровой информации

Микропроцессорная система опрашивает двоичные датчики X1,..., Х4 и вычисляет нулевые функции , в соответствии заданием на курсовую работу.

Вторичный источник электропитания - устройство, предназначенное для обеспечения питания электроприбора электрической энергией, при соответствии требованиям её параметров: напряжения, тока, и так далее путём преобразования энергии других источников питания.
Курсовая работа - задание, которое выполняется студентами высших и средне-специальных учебных заведений в определённый срок и по определённым требованиям. Часто курсовые работы выполняют по предметам, которые являются основными по специальности.

При единичном значении функции , или система вырабатывает выходной сигнал =1 длительностью =231 мкс, , соответственно. Это означает, что через , или после выдачи единичного сигнала Y1 необходимо выработать нулевой сигнал Y0. В системе имеется также двоичный датчик аварийной ситуации Х0, единичный сигнал с которого должен вызвать аварийный останов системы в любой момент выполнения рабочего цикла программы.

Обработка аналоговой информации

Сигналы с аналоговых датчиков V1, V2 преобразуются в цифровую форму в АЦП. Далее сформированные коды N1 и N2, представляющее собой целые числа без знака, поступают на обработку.

Аварийный останов (также аварийное завершение, авост, abnormal end, abend) - нештатное завершение выполнения программного обеспечения в результате ошибки, обнаруженной операционной системой, либо сбой программы.
Авари́йная ситуа́ция - состояние потенциально опасного объекта, характеризующееся нарушением пределов и (или) условий безопасной эксплуатации, не перешедшее в аварию, при котором все неблагоприятные влияния источников опасности на персонал, население и окружающую среду удерживаются в приемлемых пределах посредством соответствующих технических средств, предусмотренных проектом.
Цифровой формат - тип сигналов и форматов данных в электронике, использующих дискретные состояния (в отличие от аналогового сигнала, использующего непрерывные изменения сигнала).
Целые числа - расширение множества натуральных чисел N } , получаемое добавлением к N } нуля и отрицательных чисел вида − n . Множество целых чисел обозначается Z . .} Необходимость рассмотрения целых чисел продиктована невозможностью, в общем случае, вычесть из одного натурального числа другое - можно вычитать только меньшее число из большего.
Величина К - 8-разрядный код установки, поступающий с тумблерного регистра пульта управления. Далее система вычисляет функцию:

N= max(N1 N2; 2K)

Полученное значение функции N сравнивается с константой Q, хранящейся во внутренней памяти. В зависимости от результатов сравнения система вырабатывает двоичные управляющие воздействия Y2 (если NQ) длительностью Т3 или Т4 соответственно.

Обработка запросов на прерывания

Система обрабатывает запросы на прерывание пяти уровней:

запрос на прерывание по сигналу отказа источника питания IRQ0;

Источник питания - электрическое оборудование, предназначенное для производства, аккумулирования электрической энергии или изменения ее характеристик.

запрос на прерывание по сигналу аварийного датчика IRQ1;

запрос на прерывание от терминала внешней ЭВМ IRQ2;

запрос на прерывание от таймера IRQ3;

запрос на прерывание от пульта управления (прерывание оператора) IRQ4.

Прерывание работы системы при отказе источника питания имеет высший приоритет. Система при этом переходит на резервный источник питания (батарейка) вырабатывает сигнал Y5 установки внешних устройств в исходное состояние (например, отвод головок от диска, останов дисковода и т.д.) и передает в последовательный канал связи (если он был активен) код символа «!».

После́довательный порт (англ. serial port, COM-порт, англ. communications port) - сленговое название интерфейса стандарта RS-232, которым массово оснащались персональные компьютеры. Порт называется «последовательным», так как информация через него передаётся по одному биту, последовательно бит за битом (в отличие от параллельного порта).
Сигнал Y5 представит собой два прямоугольных импульса длительностью 30 мкс, следующие с интервалом в 30 мкс. После выполнения указанных действий микроконтроллер необходимо перевести в режим пониженного энергопотребления.

Прерывание от сигнала аварийного датчика включает на пульте управления аварийную световую и обеспечивает выдачу на индикацию сигналов двоичных датчиков X1,..., Х4 и цифровые коды N1 и N2, поступающий с АЦП. После этого микроконтроллер переводится в режим пониженного энергопотребления.

Прерывания от терминала внешней ЭВМ осуществляются при приеме последовательным каналом связи символа управления обменом. Приемник последовательного адаптера выставляет при этом запрос на прерывание работы основной программы с целью передачи в последовательный канал связи запрашиваемой информации. Запрашиваемая информация формируется в зависимости от принятого из канала символа. При приеме символа "D" в канал передается значение Y1, при приеме символа "А" - значение Y4. После загрузки в буфер передатчика БИС последовательного адаптера запрашиваемой информации управление передается в прерванную программу.

Прерывания от пульта управления влекут за собой выполнение следующих действий:

1) Считать информацию с тумблерного регистра.

2) Запись информации по заранее заданному адресу.

3) Организовать выход из прерывания на начало программы обработки.

4) Пульт управления

5) Пульт управления должен содержать следующие элементы:

6) регистр со светодиодами индикации значения N1 - РИ1;

7) регистр со светодиодами индикации значений X1,..., Х4 - РИ2;

8) регистр со светодиодами индикации значений Y1, Y2 - РИЗ;

9) регистр со светодиодами индикации кода Y4 - РИ4;

10) входной восьмиразрядный регистр Р5 для приема с тумблеров пульта кода К (для вариантов, в которых он используется);

11) светодиод индикации, на который подается меандр частотой 2 Гц;

12) кнопку «Сброс», при нажатии на которую производится начальная установка элементов системы;

13) тумблер «Останов», опрашиваемый в конце каждого цикла выполнения программы.

Несколько регистров могут быть объединены в один с возможностью выбора текущего значения оператором.

2. Структурная схема микропроцессорной системы управления

Структурная схема системы управления представлена на рисунке 2.

Рисунок 2 - Функциональная схема системы управления

На рисунке представлена структурная схема системы управления, на которой указаны подключения к микроконтроллеру всех датчиков.

Функциональная схема - документ, разъясняющий процессы, протекающие в отдельных функциональных цепях изделия (установки) или изделия (установки) в целом. Функциональная схема является экспликацией (поясняющим материалом) отдельных видов процессов, протекающих в целостных функциональных блоках и цепях устройства.
При подключении датчиков, для согласования сигналов, использованы схемы согласования. Аналоговые сигналы подаются на АЦП через аналоговые схемы согласования. Также на схеме показаны все выходные сигналы, используемые для управления различными устройствами. Подключение датчиков, пульта управления и схемы индикации осуществляется посредством общей 8-разрядной шины.

Таблица 1 - Данные для выбора микроконтроллера

Сигнал

Тип сигнала

Направление

Количество линий

N1-N3

аналоговый

вх.

3

X1-X4

цифровой

вх.

4

Аварийный датчик

цифровой

вх.

1

Последовательный интерфейс (LIN)

цифровой

вх./вых.

2

Тактовый генератор

цифровой

вх.

2

Сброс

цифровой

вх.

1

ЦАП

цифровой

вх.

4

Y1-Y3,Y5

цифровой

вых

4

Адресные линии

цифровой

вых

3

Итого

24

Для выбора микроконтроллера используют следующие критерии:

число линий ввода/вывода - 24;

микроконтроллер должен включать АЦП/ЦАП с числом каналов не менее 3;

должны присутствовать модуль USART.

На основе выше перечисленных требований выбираем микроконтроллер семейства PICMicroPIC16F877A

Рисунок 3 - Цоколевка PIC16F877A

3. Разработка принципиальных схем блоков чтения информации с датчиков

3.1 Сопряжение с цифровыми датчиками

Основой схемы является транзисторный оптрон PC817 для согласования уровня дискретного сигнала с входом микроконтроллера, который выполняет функции устройства гальванической развязки и ключевого элемента.

Дискретный сигнал - сигнал, имеющий конечное число значений (уровней).

Рисунок 4 - Принципиальная электрическая схема оптопары PC817

Рисунок 5 - Схема сопряжения для подключения цифровых датчиков

Рассчитаем сопротивление резистора R1:

(1)

где Uвх(max) - максимальный из модулей входных напряжений, В;

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

Uпр - прямое падение напряжения на светодиоде оптрона, В;

Падение напряжения - постепенное уменьшение напряжения вдоль проводника, по которому течёт электрический ток, обусловленное тем, что проводник обладает активным сопротивлением. Под падением напряжения также понимают величину на которую меняется потенциал при переходе из одной точки цепи в другую.

Iпр - прямой ток через светодиод оптрона, А.

-напряжение стабилизации стабилитрона VD1

В данной схеме будем использовать оптрон PC817: Uпр = 1,4 В при Iпр= 20 мА. Напряжение стабилизации выберем из условия

Рассчитаем сопротивление:

Ом. (2)

Будем использовать резистор номиналом R1 = 4.32 кОм выбранный из ряда Е96. Поскольку к выходу устройства сопряжения подключен вход микросхемы ТТЛ, то сопротивление резистора R2 выбирается равным 1 кОм. Стабилитрон VD1 - КС536А1;

3.2 Сопряжение с аналоговыми датчиками

Структурная схема устройства сопряжения с аналоговым датчиком представлена на рисунке 6. Устройство состоит из одного основного и двух дополнительных блоков. Основным является блок гальванической развязки (ГР). Дополнительными являются входной делитель напряжения (ДН) и выходной преобразователь уровней (ПУ).

Дели́тель напряже́ния - устройство, в котором входное и выходное напряжение связаны коэффициентом передачи 0 ⩽ a ⩽ 1 .
Наличие дополнительных блоков определяется уровнями входного сигнала.

Рисунок 6 - Структурная схема устройства сопряжения с аналоговым датчиком

Основным является блок гальванической развязки аналогового датчика и линии ввода контроллера. Функцию элемента гальванической развязки выполняет ОУ с гальванической развязкой входа и выхода типа AD202 фирмы Analog Devices. Потребляемый ей ток составляет 50 мА.

Рисунок 7 - Цоколевка AD202

Функционально устройство сопряжения с аналоговыми датчиками состоит из одного основного и двух дополнительных блоков. Основным является блок гальванической развязки. Дополнительными являются входной делитель напряжения и выходной сумматор. Схема сопряжения обеспечивает гальваническую развязку аналогового датчика и вывода микроконтроллера, а так же преобразует аналоговый сигнал с уровнем -5…-10 в сигнал с уровнями 0…5В.

Analog Devices, Inc. - крупная американская компания, производитель интегральных микросхем для решения задач преобразования сигналов (в том числе аналого-цифровых преобразователей и цифровых сигнальных процессоров).
Ана́логовый сигна́л - сигнал данных, у которого каждый из представляющих параметров описывается функцией времени и непрерывным множеством возможных значений.

Рисунок 8 - Схема сопряжения для подключения аналогового датчика

Делитель напряжения

,

где -максимальный из модулей входных напряжений

Выберем сопротивление резистора R2 равным 1кОм, тогда сопротивление R1

Будем использовать резистор номиналом R1 = 3.01кОм выбранный из ряда Е96.

Диапазон изменения напряжения на выходе ОУ

Рисунок 9 - Схема сопряжения для подключения аналогового датчика

;

где Uref - величина опорного напряжения, В;

Uomax - максимальное напряжение на выходе сумматора, В;

Umax - напряжение на входе сумматора, соответствующее верхнему уровню;

Umin - напряжение на входе сумматора, соответствующее нижнему уровню.

Выберем из ряда номинальных значений резисторов E96: R11=, R12=3,01кОм, R13=1кОм, R14=1,58кОм.

Рисунок 10 - Схема сопряжения с аналоговым датчиком

3.3 Сопряжения контроля наличия напряжения питания

Схема контроля напряжения питания представлена на рисунке 11.

Светодиод оптрона питается через однополупериодный выпрямитель с фильтрующим конденсатором. Оптрон выполняет функцию гальванической развязки и ключевого элемента.

Рисунок 11 - Схема контроля наличия напряжения питания

Uвх(0) = 0; Uвх(1) = 220 В.

Емкость конденсатора C1 лежит в пределах 47-100 мкФ, а рабочее напряжение не менее 6 В. Максимальное обратное напряжение диода VD1 должно быть не менее 400 В. Сопротивление резистора R1-2 рассчитывается по формуле:

(7)

где - действующее значение входного напряжения.

R1=27 кОм, R2=1.1 кОм; С1=47 мкФ; R3=1кОм

Используем оптрон DA1.1 марки AOT101AС и диод KД521А.

4. Разработка принципиальной схемы блока вывода управляющих сигналов

4.1 Блок вывода аналогового управляющего сигнала

Для получения аналогового управляющего сигнала необходимо использовать ЦАП. В качестве ЦАП используем микросхему AD557.

Рисунок 12 - Цоколевка AD557

Таблица 3 - Описание выводов AD557

Вывод

Описание

GND

Общий

CS

Выбор микросхемы

CE

Запись

DB0-DB7

Шина данных

VCC

Вход питания 5В

VOUT

Выходное напряжение

VOUTSENS A

Вход A обратной связи по выходному напряжению

VOUTSENS B

Вход B обратной связи по выходному напряжению

Схема блока вывода управляющего сигнала представлена на рисунке 12.

Рисунок 13 - Схема блока вывода аналогового управляющего сигнала

4.2 Схема подключения МК с исполнительными механизмами

Для согласования диапазонов напряжений микроконтроллера и исполнительных механизмов используем следующие схемы сопряжения.

Диапазон напряжения сигналов с микроконтроллера на исполнительные механизмы (ИМ): 0.. 5В. В схеме сопряжения производится оптронная развязка (рисунок 14).

Рисунок 14 - Схема сопряжения с выходами Y1- Y3, Y5

Рассчитаем номиналы резистора:

(8)

где Uвхmax - максимальный из модулей входных напряжений, В;

Uпр - прямое падение напряжения на светодиоде оптрона, В;

Iпр - прямой ток через светодиод оптрона, А.

Рассчитаем значения резистора:

Получим R15=3,74кОм.

(9)

где Uвх - максимальное входное напряжение, В;

Iвых - максимальный коммутируемый ток, А.

Для АОТ101АС Iвых = 0.005A. Uвх примем равным 5В.

Рассчитаем значения резисторов:

Получим R16= 1 кОм.

5. Разработка принципиальной схемы блока последовательного канала связи

В проектируемой системе управления для связи с внешним устройством используется последовательный интерфейс. Роль приёмопередатчика используется встроенный в микроконтроллер модуль USART. Для формирования уровней сигналов соответствующих интерфейсу LIN используется преобразователь уровней 33399 8-SOICN.

Напряжение питания микросхемы 8-SOICN - 12 В;

Ток потребления Idd - 20 мА;

Рабочий диапазон температур от -40 до 125?С;

Максимальная длина линии передачи - 40м.

Рисунок 15 - Цоколевка 33399 8-SOICN

Рисунок 16 - Схема принципиальная интерфейсаLIN

Также в этом пункте мы найдем скорость передачи модуля USART, которая рассчитывается по формуле:

Высокоскоростной режим:

Как видно из расчетов выбираем высокоскоростной режим передачи данных.

Ли́ния переда́чи - устройство, ограничивающее область распространения электромагнитных колебаний и направляющее поток радиочастотной электромагнитной энергии в заданном направлении.
Передача данных (обмен данными, цифровая передача, цифровая связь) - физический перенос данных (цифрового битового потока) в виде сигналов от точки к точке или от точки к нескольким точкам средствами электросвязи по каналу передачи данных, как правило, для последующей обработки средствами вычислительной техники.

6. Разработка принципиальной схемы пульта управления

В схему пульта управления входят блок расширения ввода/вывода, кнопки «прерывания от оператора», «сброс», «останов», логика формирования запроса прерывания. С помощью пульта управления оператор получает возможность управлять работой микропроцессорной системой управления объектом: запускать ее и останавливать, выдавать значения некоторых установок (констант), снимать с индикаторов информацию о состоянии объекта и т.д.

Блок расширения ввода/вывода включает в себя схему индикации, регистр установки К, которые реализованы на микросхемах DD3 типа PCA9535 и DD4 типа PCF8574.

PCA9535 - 16-разрядный маломощный порт ввода/вывода с управлением по шине I2C. Цоколевка микросхемы PCA9535 представлена на рисунке 17.

Рисунок 17 - Цоколевка PCA9535

PCF8574 - 8-разрядный маломощный порт ввода/вывода с управлением по шине I2C. Цоколевка микросхемы PCA9535 представлена на рисунке 18.

Рисунок 18 - Цоколевка PCF8574

Схема индикации предназначена для вывода информации о состоянии системы на пульт управления. В состав схемы индикации входят 15 выводов микросхемы DD3 (IO0.0-0.7 и IO1.0-1.6) и 15 светодиодов HL1-HL15 типа КИПД05А. Выходы регистров имеют повышенную нагрузочную способность, что позволяет подключать светодиоды непосредственно к ним.

Нагрузочная способность - параметр выхода микросхемы, характеризуемый быстродействием и выходным током драйвера, определяющим количество подключаемых входов микросхем или прямой токовой нагрузки для подключения реле, светодиода или какого-либо другого элемента.
Резисторы R40-R54 ограничивают ток через светодиоды на уровне 5 мА.

Порт IO0 микросхемы DD3 и светодиоды HL1-HL8 образуют регистр индикации РИ1. Регистры РИ2 и РИ3 построены на базе порта IO1 DD3. При этом светодиоды HL9-HL16 образуют регистры РИ2 и РИ3. Схема установки реализована на микросхеме DD4 (порт P) подключением тумблеров установки SA2-SA9 типа DS-431. С помощью данной схемы оператор может выдавать значение некоторых установок (констант).

Синхронный последовательный порт MSSP микроконтроллера работает в режиме совместимости с шиной I2C. Передача данных происходит по двум линиям: SCL (тактовые синхроимпульсы) и SDA (данные).

Схема блока расширения ввода/вывода представлена на рисунке 18.

В качестве светодиодов HL1 - HL16 светодиоды типа КИПД05А с характеристиками Iпр=5 мА, Uпр=1,8 В. В соответствии с этим определим значение сопротивления резисторов R40 - R54, R67:

.

Согласно ряду Е192 в качестве резисторов R40 - R54, R67 выберем С2-14-0,25-642 Ом ±0,1%.

Резисторы R38 и R39 выберем сопротивлением 6,9 кОм, а резисторы R55 - R62 - номиналом 1 кОм. Конденсаторы С14 и С15 имеют емкость 100 мкФ.

В состав пульта управления входит также кнопка SB1 «Сброс», при нажатии на которую формируется низкий уровень напряжения на входе MCLR контроллера, что приводит к сбросу последнего.

При нажатии на кнопку SB2 «Прерывание от оператора» на светодиоды HL1-HL4 регистра индикации РИ1 выводятся следующие значения:

· последнее значение Y1;

· результат сравнения N > Q;

· значение выражения ;

· значение выражения ;

На светодиоды регистра РИ2 в этом случае выводится значение константы Q.

В качестве кнопок SB1 - SB3 будем использовать кнопки типа ПКн-21. Схемы включения кнопок приведем на рисунке 19.

Рисунок 19 - Схема блока расширения ввода/вывода

Рисунок 20 - Схема включения кнопок

Логика формирования запросов на прерывания реализована на микросхеме типа КР1533ЛА4. Цоколевка микросхемы КР1533ЛА4 приведена на рисунке 21. Потребляемый ей ток составляет 2,2 мА.

Рисунок 21 - Цоколевка микросхемы КР1533ЛА4

Схема формирует сигнал прерывания в следующих случаях:

- появление высокого уровня напряжения на выходе схемы контроля напряжения питания (напряжение питания отсутствует);

- появление высокого уровня на выходе устройства сопряжения с датчиком аварийной ситуации;

- нажатие кнопки SB2 «Прерывание оператора».

Если хотя бы один из уровней в активном состоянии, то сигнал запроса прерывания поступает на вход INT контроллера.

Рисунок 22- Логика формирования запросов на прерывание

При возникновении аварийной ситуации, на линии RE1 микроконтроллера устанавливается высокий уровень, начинает протекать ток через светодиод HL17, и индикатор загорается. При низком уровне светодиод погашен. Резистор R64 ограничивает токи, протекающие через светодиод.

Рисунок 23 - Схема индикации аварийного состояния

7. Разработка общего алгоритма управления микропроцессорной системы

Блок-схема общего алгоритма работы системы приведена на рисунке 20. После сброса начинается процесс инициализации контроллера, в которой выполняется первоначальная установка системы: настройку периферийных модулей, посылку в выходные каналы начальных значений управляющих воздействий и т. д.

В следующем блоке осуществляется введение информации с пульта управления. В блоках «Ввод информации с цифровых датчиков» и «Ввод информации с аналоговых датчиков» обеспечивается прием информации от цифровых и аналоговых датчиков, затем цифровая информация обрабатывается в блоке «Обработка цифровой информации», где вычисляется значении булевой функции Y1, значение которой формируется в блоке «Формирование выходного сигнала Y1».

Бу́лева фу́нкция (или логи́ческая функция, или функция а́лгебры ло́гики) от n аргументов - в дискретной математике - отображение Bn → B, где B = - булево множество. Элементы булева множества обычно интерпретируют как логические значения «истинно» и «ложно», хотя в общем случае они рассматриваются как формальные символы, не несущие определённого смысла.
После обработки аналоговой информации в соответствующем блоке формируются управляющие сигналы Y2 или Y3 в блоке «Формирование выходных сигналов Y2 или Y3».

Все обработанные и вычисленные значения поступают в блок «Вывод информации на индикацию». При этом проверяется запросы на прерывание. В конце цикла программа опрашивает тумблер «Останов» и, если он включен, формирует сигнал остановки системы.

В алгоритме обработки прерывание в первую очередь осуществляется сохранение контекста, т.е. содержимого аккумулятора и регистра STATUS.

Далее производится опрос источников прерывания: прерывание от источника питания, прерывание от аварийного датчика, прерывание от последовательного порта, прерывание от таймера, прерывание оператором. прерывание от других источников.

В случае прерывания от одного из источников осуществляется переход на подпрограмму, где производится обработка прерывания. После обработки прерывания восстанавливается контекст и осуществляется выход из подпрограммы обработки прерывания.

Рисунок 24 - Блок-схема общего алгоритма работы микропроцессорной системы управления


8. Алгоритм работы блока чтения информации с цифровых датчиков



Работа блока чтения информации с цифровых датчиков осуществляется по следующему алгоритму, приведенному на рисунке 25.

Рисунок 25 - Алгоритм работы блока чтения информации с аналоговых датчиков

После считывания информации с цифровых датчиков, происходит вычисления булевой функции f(X1…X4). Далее система оценивает полученную в предыдущем блоке информацию f(x). Если функция не равна 1, то происходит переход к считыванию и обработке аналоговой информации. В случае равенства 1 происходит выработка сигнала Y = 1, длительностью T1=231 мкс. Затем следует конец обработки цифровой информации.

Для формирования сигналов Y1 используем таймер TMR1. Предделитель выбираем 1:1. На таймер приходит частота 20МГц.

Произведем расчет числа машинных циклов, которые потребуются для формирования импульса длительностью T1=231 мкс.

Tмц = 4·T,

где Т = 1/Fosc, тогда Тмц = 4/Fosc= 4/(20·106)=0,2 мкc.

Необходимое число машинных циклов:

N = tимп/Tмц

N=1155.

Данное число в шестнадцатеричной системе счисления N = 483h.

Машинный цикл - составляющая часть машинной команды. Машинный цикл состоит из машинных тактов.
Шестнадцатеричная система счисления - позиционная система счисления по целочисленному основанию 16. В качестве цифр этой системы счисления обычно используются цифры от 0 до 9 и латинские буквы от A до F.
Так как таймер 16-ти разрядный, то FFFF- 483=FB7C, полученное значение записываем в регистр TMR1.


9. Алгоритм работы блока чтения информации с аналоговых датчиков



Работа блока чтения информации с аналоговых датчиков осуществляется по следующему алгоритму, приведенному на рисунке 26.

Рисунок 26 - Алгоритм работы блока чтения информации с аналоговых датчиков

Вначале осуществляется первичная инициализация АЦП. После чего происходит считывание информации с АЦП, которая была получена от аналоговых датчиков, и дальнейшая ее запись по портам ввода-вывода в регистры микроконтроллера. Происходит считывание 8-и разрядного кода установки (величина К), который приходит с пульта управления. Затем происходит вычисление значения функции N = max(N1 N2;2K), по заданию. Далее происходит сравнение функции N с константой Q, которая храниться в регистре микроконтроллера. Если N1K, то осуществляется переход к выработке двоичного управляющего воздействие V1. После чего идет завершение данного алгоритма.

Для формирования сигналов Y2 и Y3 будем использовать таймер TMR1. Предделитель выбираем 1:1. На таймер приходит частота 20МГц.

Произведем расчет числа машинных циклов, которые потребуются для формирования импульса длительностью T2=384 мкс.

Tмц = 4·T,

где Т = 1/Fosc, тогда Тмц = 4/Fosc= 4/(20·106)=0,2 мкc.

Необходимое число машинных циклов:

N = tимп/Tмц ;

N=1920.

Данное число в шестнадцатеричной системе счисления N = 780h.

Систе́ма счисле́ния (англ. numeral system или system of numeration) - символический метод записи чисел, представление чисел с помощью письменных знаков.
Так как таймер 16-ти разрядный, то FFFF-780=F87F, полученное значение записываем в регистр TMR1.

Аналогично рассчитаем константу для Т3:

T3=401мкс;

N=2005=7D5 h;

FFFF-7D5=F82A.

10. Алгоритм работы блока обмена данными по последовательному каналу связи

Работа блока обмена данными по последовательному каналу связи осуществляется по следующему алгоритму, приведенному на рисунке 27.

Рисунок 27 - Алгоритм обмена данными по последовательному каналу связи

Вначале происходит начальная инициализация последовательного порта USART: устанавливается скорость передачи порта(115200 бит/с), разрешение прерывания от USART и т.д. Осуществляется обработка принятой информации. Затем происходит анализ полученной информации и если был принят символ «D», то передается в канал значение Y1. Если символ не был принят, то осуществляется выход из подпрограммы прерывания.

11. Алгоритм работы блока взаимодействия с оператором

Рисунок 28 - Алгоритм обмена информацией по последовательному каналу связи

В блоке 1 опрашивается тумблерный регистр пульта управления и формируется код установки К. В блоке 2 сформированный код записывается по заранее заданному в программе адресу. В блоке 3 проверяется наличие прерывания от аварийного датчика. В блоке 4 на пульте управления включается аварийная сигнализация. В блоке 5 обеспечивается выдача на индикацию сигналов двоичных датчиков X1-X4. В блоке 6 обеспечивается выдача на индикацию цифрового кода N1, поступающего с АЦП. В блоке 7 микроконтроллер переводится в режим пониженного энергопотребления. В блоке 8 проверяется наличие прерывания от ПУ. В блоке 9 обеспечивается выдача на индикацию значения Y1.В блоке 10 обеспечивается выдача на индикацию результат сравнения N>K.В блоке 11 обеспечивается выдача на индикацию сигналов двоичных датчиков X1-X4. В блоке 12 обеспечивается выдача на индикацию константы K. В блоке 13 выход из прерывания на начало программы обработки.

12. Алгоритм обработки аварийных ситуаций

В блоке 1 вырабатывается сигнал Y1 установки внешних устройств в исходное состояние.

Ава́рия - разрушение сооружений и (или) технических устройств, применяемых на опасном производственном объекте, неконтролируемые взрыв и (или) выброс опасных веществ.

В блоке 2 вырабатывается сигнал для отображения аварийной световой индикации на ПУ.

В блоке 3 в последовательный канал связи передается код символа «!»

В блоке 4 микроконтроллер переводится в режим пониженного энергопотребления.

Рисунок 29 - Алгоритм обработки прерывания от блока питания

Вначале вырабатывается сигнал Y5 установки внешних устройств в исходное состояние. Сигнал Y5 представляет собой два прямоугольных импульса длительностью 30 мкс, следующие с интервалом в 30 мкс. Затем в последовательный канал связи передается код символа «!». После выполнения указанных действий микроконтроллер переводится в режим пониженного энергопотребления.

T5=30 мкс; (Прерывание при отказе источника питания)

N=150=96h;

FFFF-96=FF69.

13. Расчет электрических параметров микропроцессорной системы управления

Для расчета электрических параметров микропроцессорной системы управления составим сводную таблицу основных электрических параметров таких как мощность напряжения и ток.

Таблица 3 - Токи, потребляемые микросхемами

Напряжение питания

Потребитель

Количество

Iпотр, мА

?Iпотр, мА

15 В

AD202

2

50

100

Итого

100

5 В

КР1533ЛН1

1

3,8

3,8

PIC16F877A

1

43,0

43,0

MCP2551

1

75

75

PCA9535

1

160

160

PCF8574

1

100

100

КИПД05А

16

5,0

80,0

КР1533ЛА4

3

2,2

6,6

Итого

189,6

7.5 В

AD202

2

50

100

Итого

100

Таким образом необходимо построить схему блока питания, который выдает напряжение 15 В, 5В и напряжение 7.5 В. Потребляемая от источника 15 В мощность составляет 1.5 Вт, от источника 5 В - 2.34 Вт, а от источника 7.5В - 0.75 Вт. Таким образом, мощность, потребляемая всем устройством составляет 4.59 Вт.

14. Разработка блока питания

Блок питания должен обеспечивать электроэнергией микропроцессорную систему управления по двум каналам - каналу 5В, каналу 15В и каналу 7.5В.

Для питания проектируемой микропроцессорной системы управления используем схему блока питания представленной на рисунке 30. Блок питания обеспечивает электроэнергией микропроцессорную систему управления по трем каналам - каналу 5 В, каналу 15 В и каналу 7.5В. В цепи питания 5 В предусмотрен резервный источник питания в виде батарейки GB1 типа 6F22.

Рисунок 30 - Схема блока питания

датчик алгоритм микропроцессорный управление

В качестве трансформатора Т1 в данной схеме использован трансформатор ТПП-224-127/220-50. Этот трансформатор имеет номинальную мощность 5,5 Вт. Напряжения между обмотками 11-12, 13-14 составляет 5В, а между обмотками 15-16 - 10 В. Для получения напряжения 15В соединим обмотки 13-14 и 15-16 последовательно. Для выпрямления напряжения в схеме применены диодные мосты VD1 и VD2 типа КЦ407А.

Дио́дный мо́ст - электрическое устройство, предназначенное для преобразования («выпрямления») переменного тока в пульсирующий. Такое выпрямление называется двухполупериодным.

Для стабилизации напряжений используются интегральные стабилизаторы. В качестве стабилизатора напряжения 15В и 7.

Стабилиза́тор напряже́ния - электромеханическое или электрическое (электронное) устройство, имеющее вход и выход по напряжению, предназначенное для поддержания выходного напряжения в узких пределах, при существенном изменении входного напряжения и выходного тока нагрузки.
5В используется микросхема DA2 типа КР142ЕН6А, а для получения напряжения 5 В в данной схеме используется интегральный стабилизатор DA1 типа КР142ЕН5А.

Заключение

В данной курсовой работе разработана микропроцессорная система управления объектом, включающая микроконтроллер (PIC16F877), аналого-цифровой преобразователь, схемы сопряжения и логические микросхемы.

Интегра́льная (микро)схе́ма (ИС, ИМС, м/сх), микросхе́ма, чип (англ. chip - тонкая пластинка - первоначально термин относился к пластинке кристалла микросхемы) - микроэлектронное устройство - электронная схема произвольной сложности (кристалл), изготовленная на полупроводниковой подложке (пластине или плёнке) и помещённая в неразборный корпус или без такового, в случае вхождения в состав микросборки.
В систему входит пульт управления, с помощью которого оператор может управлять работой системы. Также была составлена программа, обеспечивающая выполнение алгоритма управления. Были получены навыки в проектировании микропроцессорных управляющих систем.

Список использованных источников

1. Сташин, В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин, А.В. Уросов, О.Ф. Мологонцева - М.: Энергоатомиздат, 1990. - 224 с.

2. Бродин, В.Б. Системы на микроконтроллерах и БИС программируемой логики / В.Б. Бродин, А.В.Калинин - М.: Издательство ЭКОМ, 2002. - 400 c.

3. Яценков, В.С. Микроконтроллеры Microchip. Практическое руководство / В.С. Яценков - М.: Горячая линии - Телеком, 2002. - 296 с.

4. Тавернье, К. PIC-микроконтроллеры. Практика применения: Пер. с фр. /К. Тавернье - М.: ДМК Пресс., 2004. - 272 с.

Приложение А

Листинг управляющей программы

MPASM 5.00 KURS.ASM 10-12-2012 22:17:15

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

00001 list p=16f877A

00002 #include

00001 LIST

00002 P16F877A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.

Microchip Technology Inc. (NASDAQ: MCHP) - американский производитель микроэлектроники, 8-, 16- и 32-битных микроконтроллеров, цифровых сигнальных контроллеров, а также аналоговой и интерфейсной продукции.

00398 LIST

00003 ERRORLEVEL -302

00004

Определение переменных

00005

00000020 00006 W_TEMP EQU 0x20 ;КОПИЯАККУМУЛЯТОРА

00000021 00007 STATUS_TEMP EQU 0x21 ;КОПИЯ РЕГИСТРА СОСТОЯНИЯ

00000022 00008 A0 EQU 0x22 ;КОНСТАНТА ХРАНЯЩЕЕСЯ ВО ВНУТРЕННЕЙ ПАМЯТИ(ПО ЗАДАНИЮ)

00000023 00009 A1 EQU 0x23 ;КОНСТАНТА ХРАНЯЩЕЕСЯ ВО ВНУТРЕННЕЙ ПАМЯТИ(ПО ЗАДАНИЮ)

00000024 00010 N EQU 0x24 ;КОНСТАНТА ДЛЯ ВЫРАБОТКИ ЗАДЕРЖКИ ДЛЯ СЧИТЫВАНИЕ С АНАЛОГОВЫХ ДАТЧИКОВ(ДА)

00000025 00011 N1 EQU 0x25 ;ЗНАЧЕНИЕ ДА1

00000026 00012 N2 EQU 0x26 ;ЗНАЧЕНИЕ ДА2

00000027 00013 BINARDATCH EQU 0x27 ;РЕГИСТР ДЛЯ ХРАНЕНИЯ ЗНАЧЕНИЯ ЦИФРОВЫХ ДАТЧИКОВ И Y1-Y3

00000028 00014 FAVDATCHIKA EQU 0x28 ;ФЛАГ АВАРИЙНОГО ДАТЧИКА

00000029 00015 CONST EQU 0x29 РЕГИСТР ДЛЯ ХРАНЕНИЯ ПРОМЕЖУТОЧНОЙ ИНФОРМАЦИИ

0000002A 00016 M EQU 0x2A РЕГИСТР ДЛЯ ХРАНЕНИЯ ПРИНЯТОГО ИЗ USART ЗНАЧЕНИЯ

0000002B 00017 Y4 EQU 0x2B РЕГИСТР ДЛЯ ХРАНЕНИЯ ЗНАЧ Y4

0000002C 00018 X1 EQU 0x2C

0000002D 00019 X2 EQU 0x2D

0000002E 00020 X3 EQU 0x2E

0000002F 00021 X4 EQU 0x2F Х1-Х4-ХРАНЯТ ЗНАЧЕНИЯ ЦИФРОВЫХ ДАТЧИКОВ (ИСПОЛЬЗУЕТСЯ ПРИ ПОДСЧЕТЕ ЗНАЧЕНИЯ ФУНКЦИИ)

00000030 00022 N3 EQU 0x30 ЗНАЧЕНИЕ ДА3

00000033 00023 Q EQU 0x33 КОНСТАНТА ХРАНЯЩЕЕСЯ ВО ВНУТРЕННЕЙ ПАМЯТИ(ПО ЗАДАНИЮ)

00000034 00024 A EQU 0x34 ХРАНИТ ЗНАЧЕНИЕ ФУНКЦИИ N

00000035 00025 ADDR EQU 0x35 РЕГИСТР ДЛЯ ХРАНЕНИЯ АДРЕСА ПРИ ЗАПИСИ В EEPROM

00000036 00026 X EQU 0x36

00000037 00027 XE EQU 0x37

00000038 00028 XD EQU 0x38

00000039 00029 XS EQU 0x39 СЛУЖАТ ДЛЯ ПРЕОБРАЗОВАНИЯ ЧИСЕЛ ПРИ ВЫВОДЕ НА ИНДИКАЦИЮ

0000003A 00030 FTT EQU 0x3A ФЛАГДЛЯ T1

00031 СЕКЦИЯКОДА

0300 00032 ORG 0x300 ;processor reset vector

0300 018A 00033 CLRF PCLATH ;ensure page bits are cleared

0301 2B02 00034 GOTO MAIN ;go to beginning of program

0302 00035 MAIN:

00036

00037 ;

0302 3010 00038 MOVLW 10 ;ЗАПИСЬ ЗНАЧЕНИЙ КОНСТАНТ

0303 00A2 00039 MOVWFA0

0304 3004 00040 MOVLW 04

0305 00A3 00041 MOVWF A1

0306 301A 00042 MOVLW 1A

0307 00A4 00043 MOVWF N

0308 3050 00044 MOVLW 50

0309 00B3 00045 MOVWF Q

00046

030A 1283 1303 00047 BANKSEL INTCON ;ВЫБОРБАНКАСРЕГИСТРОМINTCON

030C 018B 00048 CLRF INTCON ;ОЧИСТКА РЕГИСТРА INTCON

030D 0185 00049 CLRF PORTA ;ОЧИСТКА ПОРТОВ

030E 0186 00050 CLRFPORTB

030F 0187 00051 CLRF PORTC

0310 0188 00052 CLRF PORTD

0311 0189 00053 CLRF PORTE

00054

00055 НАСТРОЙКА ПОРТОВ

0312 1683 1303 00056 BANKSEL TRISA ВЫБОР БАНКА С РЕГИСТРОМ TRISA

0314 30FF 00057 MOVLW B'11111111' ПОРТ А,D,E НА ВВОД

0315 0085 00058 MOVWF TRISA

0316 0088 00059 MOVWF TRISD

0317 0089 00060 MOVWF TRISE

0318 30F0 00061 MOVLW B'11110000' ПОРТ В 4-7 НА ВВОД, ОСТАЛЬНЫЕ НА ВЫВОД

0319 0086 00062 MOVWF TRISB

031A 30C8 00063 MOVLW B'11001000' ПОРТ C 3,5-7 НА ВВОД ОСТАЛЬНЫЕ НА ВЫВОД

031B 0087 00064 MOVWF TRISC

031C 1683 1303 00065 BANKSEL OPTION_REG

031E 1381 00066 BCF OPTION_REG,7 ВКЛЮЧЕНИЕ ПОДТЯГИВАЮЩЕГО РЕЗИСТОРА

00067

00068

031F 1683 1303 00069 BANKSEL TXSTA

0321 3020 00070 MOVLW B'00100000' УСТАНОВКА 8-РАЗРЯДНОЙ ПЕРЕДАЧИ, АСИНХРОННОГО РЕЖИМА

0322 0098 00071 MOVWF TXSTA РАЗРЕШЕНИЕ ПЕРЕДАЧИ

0323 3006 00072 MOVLW 0x06 УСТАНОВКА СКОРОСТИ 9600

0324 0099 00073 MOVWF SPBRG

0325 1283 1303 00074 BANKSEL RCSTA ВЫБОР БАНКА С РЕГИСТРОМ RCSTA

0327 3080 00075 MOVLW B'10000000' РАЗРЕШИТЬ РАБОТУ USART, ЗАПРЕТИТЬ ПРИЕМ

0328 0098 00076 MOVWF RCSTA

00077

0329 1283 1303 00078 BANKSEL SSPCON

032B 302B 00079 MOVLW 0x2B

032C 0094 00080 MOVWF SSPCON

00081

032D 1283 1303 00082 BANKSEL ADCON0

032F 3044 00083 MOVLW B'01000100' ; ТАКТОВАЯЧАСТОТАFOSC/2,АЦПВКЛЮЧЕН

0330 009F 00084 MOVWF ADCON0 ;0-КАНАЛ

0331 1683 1303 00085 BANKSEL ADCON1

0333 300C 00086 MOVLW B'00001100' ;ЛЕВОЕ ВЫРАВНИВАНИЕ РЕЗУЛЬТАТА

0334 009F 00087 MOVWF ADCON1 ;КАНАЛ AN0,AN1,АN4 - АНАЛОГОВЫЙ, ОСТАЛЬНЫЕ ЦИФРОВЫЕ

00088

00089 (СЛУЖИТ ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ В EEPROM)

0335 1683 1303 00090 BANKSEL OPTION_REG

0337 1281 00091 BCF OPTION_REG,T0CS ВНУТРЕННИЙ ИСТОЧНИК ТАКТОВОГО СИГНАЛА

0338 1201 00092 BCF OPTION_REG,T0SE ИНКРЕМЕНТИРОВАНИЕ ПО ФРОНТУ ТАКТОВОГО СИГНАЛА

0339 1581 00093 BSF OPTION_REG,PSA ВКЛЮЧ ПРЕДДЕЛИТЕЛЯ ПЕРЕД ТАЙМЕРОМ

033A 1101 00094 BCF OPTION_REG,PS2

033B 1081 00095 BCF OPTION_REG,PS1

033C 1401 00096 BSF OPTION_REG,PS0 ПРЕДДЕЛИТЕЛЬ 1:4

033D 1283 1303 00097 BANKSEL TMR0

033F 3078 00098 MOVLW 0x78 ПОДСЧЕТ 135 ИМПУЛЬСОВ=>87h, FF-87=78

0340 0081 00099 MOVWF TMR0 (135*4МКС=540МКС)

00100

00101

00102 (СЛУЖИТ ДЛЯ ФОРМИРОВАНИЯ ВЫХОДНЫХ СИГНАЛОВ Т1,Т2,Т3,Т5)

0341 1283 1303 00103 BANKSEL T1CON

0343 3008 00104 MOVLW B'00001000' ПРЕДДЕЛИТЕЛЬ 1:1, ВНУТРЕННИЙ ТАКТОВЫЙ ГЕНЕРАТОР

0344 0090 00105 MOVWF T1CON ТАЙМЕР ВЫКЛЮЧЕН

00106

00107

00108 (СЛУЖИТ ДЛЯ ФОРМИРОВАНИЯ АВАРИЙНОЙ ИНДИКАЦИИ ЧАСТОТОЙ 2ГЦ)

0345 1283 1303 00109 BANKSEL T2CON

0347 3000 00110 MOVLW 0x00

0348 1492 00111 BSF T2CON,T2CKPS1

0349 1412 00112 BSF T2CON,T2CKPS0 ;

Генератор тактовых импульсов (генератор тактовой частоты) предназначен для синхронизации различных процессов в цифровых устройствах - ЭВМ, электронных часах, таймерах и других. Он вырабатывает электрические импульсы (обычно прямоугольной формы) заданной частоты, которая часто используется как эталонная - считая количество импульсов, можно, например, измерять временные интервалы.
ВЫХОДНОЙ ДЕЛИТЕЛЬ 1:1,ПРЕДДЕЛИТЕЛЬ 1:16

034A 0092 00113 MOVWF T2CON ;ТАЙМЕР ВЫКЛ

034B 3005 00114 MOVLW 0x05 ;ПОСЧИТАТЬ 250 РАЗ ПО 16МКС=4МС ПОВТОРИТЬ ЦИКЛ 125 РАЗ=> 0,5С =>2ГЦ

034C 0091 00115 MOVWF TMR2

034D 3088 00117 MOVLW B'10001000'

034E 008B 00118 MOVWF INTCON РАЗРЕШИТЬ ПРЕРЫВАНИЕ ПО ВХОДАМ RB4-RB7

00119 ОТ TMR0,ГЛОБАЛЬНОЕ РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ, ЗАПРЕТИТЬ ПО ВХОДУ INT

034F 3063 00120 MOVLW B'01100011' РАЗРШ. ОТ TMR1,TMR2,USART,ЗАПРЕТИТЬ ОТ CCP1,АЦП

0350 1683 1303 00121 BANKSEL PIE1

0352 008C 00122 MOVWF PIE1

0353 3000 00123 MOVLW B'00000000' ;ЗАПРЕТИТЬОТ,EEPROM,I2C,CCP2

0354 008D 00124 MOVWF PIE2

00125

0355 2956 00126 GOTO OSNPROG ПЕРЕХОД В ОСНОВНУЮ ПРОГРАММУ

0004 00128 ORG 0x0004

0004 00A0 00129 MOVWF W_TEMP СОХРАНЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА СОСТОЯНИЯ

0005 0803 00130 MOVFW STATUS

0006 00A1 00131 MOVWF STATUS_TEMP

0007 1283 1303 00132 BANKSEL INTCON

0009 138B 00133 BCFINTCON,GIE ;ГЛОБАЛЬНОЕЗАПРЕЩЕНИЕПРЕРЫВАНИЯ

000A 1283 1303 00135 BANKSEL INTCON

000C 180B 00136 BTFSC INTCON,RBIF ПРЕРЫВАНИЕ ПО ВХОДУ RB4-RB7

000D 2817 00137 GOTO PRER_RB4RB7

000E 190B 00138 BTFSC INTCON,TMR0IF ПРЕРЫВАНИЕ ОТ TMR0

000F 28C3 00139 GOTO PRER_T0

0010 180C 00140 BTFSC PIR1,TMR1IF ПРЕРЫВАНИЕОТ TMR1

0011 2911 00141 GOTO PRER_T1

0012 188C 00142 BTFSC PIR1,TMR2IF ПРЕРЫВАНИЕОТ TMR2

0013 291B 00143 GOTO PRER_T2

0014 1A8C 00144 BTFSC PIR1,RCIF ПРЕРЫВАНИЕ USART

0015 2925 00145 GOTO PRER_USART

0016 0009 00146 RETFIE ВОЗВРАТ В ОСНОВНУЮ ПРОГРАММУ

00147

00148

0017 00149 PRER_RB4RB7:

0017 1283 1303 00150 BANKSEL PORTB

0019 1E06 00151 BTFSS PORTB,4 ;ПРЕРЫВАНИЕ ОТ ИСТОЧНИКА ПИТАНИЯ

001A 2820 00152 GOTO PRER_PITANIE

001B 1A86 00153 BTFSC PORTB,5 ПРЕРЫВАНИЕ ОТ АВАРИЙНОГО ДАТЧИКА

001C 2847 00154 GOTOPRER_AVDATCHIK

001D 1B06 00155 BTFSCPORTB,6 ПРЕРЫВАНИЕ ОТ ПУ

001E 2888 00156 GOTO PRER_PU

001F 0009 00157 RETFIE

00158 0020 00159 PRER_PITANIE:

0020 21DD 00160 CALL NASTT1 ВЫЗОВ ПОДПРОГРАММЫ НАСТРОЙКИ ТАЙМЕРА 1

0021 100B 00161 BCF INTCON,TMR1IF СБРОСФЛАГА

0022 1410 00162 BSF T1CON,TMR1ON ВКЛЮЧЕНИЕ ТАЙМЕРА ДЛЯ ФОРМИРОВАНИЯ СИГНАЛА ДЛИТЕЛЬНОСТЬЮ 30 МКС(Y5)

0023 100B 00163 BCF INTCON,TMR1IE ЗАПРЕТ ПРЕРЫВАНИЯ ОТ Т1

0024 1283 1303 00164 BANKSEL PORTB

0026 1586 00165 BSF PORTB,3 НАЧАЛА ПОДАЧИ ИМПУЛЬСА

00166

0027 1C0C 00167 BTFSS PIR1,TMR1IF ОЖИДАНИЕ ПЕРЕПОЛНЕНИЯ ТАЙМЕРА

0028 2827 00168 GOTO $-1

0029 1186 00169 BCFPORTB,3 СБРОССИГНАЛАY5

002A 21DD 00170 CALL NASTT1

002B 1283 1303 00171 BANKSEL T1CON

002D 1410 00172 BSF T1CON, TMR1ON ;ВКЛЮЧЕНИЕТ1

002E 1C0C 00173 BTFSS PIR1, TMR1IF ОЖИДАНИЕПЕРЕПОЛНЕНИЯТАЙМЕРА

002F 282E 00174 GOTO $-1

0030 1586 00175 BSF PORTB,3

0031 1410 00176 BSF T1CON, TMR1ON

0032 1C0C 00177 BTFSS PIR1, TMR1IF

0033 2832 00178 GOTO $-1

0034 1186 00179 BCF PORTB,3

0035 1112 00180 BCF T2CON, TMR2ON

0036 1283 1303 00181 BANKSELPORTB

0038 1283 1303 00182 BANKSEL TXREG

003A 3021 00183 MOVLW "!"

003B 0099 00184 MOVWF TXREG

003C 1683 1303 00185 BANKSEL TXSTA

003E 1698 00186 BSF TXSTA,TXEN

003F 1E0C 00187 BTFSS PIR1,TXIF

0040 283F 00188 GOTO $-1

0041 1283 1303 00189 BANKSEL INTCON

0043 138B 00190 BCF INTCON,GIE

0044 0063 00191 SLEEP

0045 21F1 00192 CALL VOSTAN

0046 0009 00193 RETFIE

00194 0047 00195 PRER_AVDATCHIK:

0047 1283 1303 00196 BANKSEL INTCON

0049 100B 00197 BCF INTCON,RBIF

004A 21E4 00198 CALL NASTT2

004B 1428 00199 BSF FAVDATCHIKA,0

004C 14A8 00200 BSF FAVDATCHIKA,1

00201

004D 1283 1303 00202 BANKSEL PORTC

004F 1687 00203 BSFPORTC,5

0050 1683 1303 00204 BANKSEL TRISD УСТАНОВКА ПОРТА D НА ВЫВОД

0052 3000 00205 MOVLW0x00

0053 0088 00206 MOVWF TRISD

0054 0827 00207 MOVF BINARDATCH,0 ВЫВОД НА ИНДИКАТОРЫ ЗНВАЧЕНИЙ Х1-Х4

0055 1283 1303 00208 BANKSEL PORTD Y1-Y3

0057 0088 00209 MOVWF PORTD

0058 1507 00210 BSF PORTC,2 ПОСЫЛКА УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ В РЕГИСТР

0059 21F5 00211 CALL ZADERCHKA ОЖИДАНИЕ ЗАПИСИ В РЕГИСТР

005A 1107 00212 BCF PORTC,2

005B 0188 00213 CLRF PORTD СБРОС ДАННЫХ С ПОРТА

005C 1105 00214 BCF PORTA,2

005D 0825 00215 MOVF N1,0

005E 00B6 00216 MOVWF X КОПИРОВАНИЕ ЗНАЧЕНИЯ N1 ДЛЯ ПЕРЕКОДИРОВАНИЯ И ВЫДАЧИ НА ИНДИКАЦИЮ

005F 21FA 00217 CALL VYVOD_NAINDIC ВЫЗОВ ПОДПРОГРАММЫ ПЕРЕКОДИРОВАНИЯ

0060 1237 00218 BCF XE,4 ОЧИСТКА БИТОВ

0061 12B7 00219 BCF XE,5

0062 1337 00220 BCF XE,6

0063 13B7 00221 BCF XE,7

0064 1038 00222 BCF XD,0

0065 10B8 00223 BCF XD,1

0066 1138 00224 BCF XD,2

0067 11B8 00225 BCF XD,3

0068 0837 00226 MOVF XE,0

0069 0738 00227 ADDWF XD,0 СЛОЖЕНИЕ ЗНАЧЕНИЯ ЕДЕНИЦ И ДЕСЯТКОВ ДЛЯ ВЫВОДА

006A 0088 00228 MOVWF PORTD ВЫВОД В ПОРТ

006B 1407 00229 BSF PORTC,0 ПОСЫЛКА УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ В РЕГИСТР

006C 21F5 00230 CALL ZADERZHKA ОЖИДАНИЕ ЗАПИСИ В РЕГИСТР

006D 1007 00231 BCF PORTC,0

006E 0188 00232 CLRF PORTD ОЧИСТКА ПОРТА

006F 1239 00233 BCF XS,4

0070 12B9 00234 BCF XS,5

0071 1339 00235 BCF XS,6

0072 13B9 00236 BCFXS,7

0073 0839 00237 MOVFXS,0

0074 0088 00238 MOVWF PORTD ВЫВОД В ПОРТ ЗНАЧЕНИЯ СОТЕН

0075 1683 1303 00239 BANKSEL TRISA

0077 30FB 00240 MOVLW B'11111011'

0078 1585 00241 BSF PORTA,3 ПОСЫЛКА УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ В РЕГИСТР

0079 21F5 00242 CALL ZADERZHKA ОЖИДАНИЕ ЗАПИСИ В РЕГИСТР

007A 1185 00243 BCF PORTA,3

007B 0188 00244 CLRF PORTD ОЧИСТКАПОРТА

007C 1683 1303 00245 BANKSEL TRISA

007E 30FF 00246 MOVLW B'11111111'

007F 1283 1303 00247 BANKSEL INTCON

0081 138B 00248 BCFINTCON,GIE ЗАПРЕЩЕНИЕПРЕРЫВАНИЯ

0082 0063 00249 SLEEP ПЕРЕХОД В РЕЖИМ ПОНИЖЕНОГО ЭНЕРГОПОТРЕБЛЕНИЯ

0083 1283 1303 00250 BANKSEL INTCON

0085 178B 00251 BSFINTCON,GIE

0086 21F1 00252 CALL VOSTAN ВОСТАНОВЛЕНИЕ ДАННЫХ АККУМУЛЯТОРА И РЕГИСТРА СОСТОЯНИЯ

0087 0009 00253 RETFIE

00254

0088 00255 PRER_PU:

0088 1283 1303 00256 BANKSEL INTCON

008A 100B 00257 BCF INTCON,RBIF СБРОСФЛАГА

008B 1683 1303 00258 BANKSELTRISD

008D 30FF 00259 MOVLW 0xFF УСТАНОВКА ПОРТА ДЛЯ ПРИНЯТИЯ ЗНАЧЕНИЯ С ПУ

008E 0088 00260 MOVWF TRISD

008F 0808 00261 MOVFPORTD,0

0090 00A9 00262 MOVWF CONST СОХРАНЕНИЕ ЗНАЧЕНИЯ К В РЕГИСТР

0091 3000 00263 MOVLW 0x00 НАСТРОЙКА ПОРТА D НА ВЫВОД

0092 0088 00264 MOVWF TRISD

0093 0833 00265 MOVF Q,0

0094 00B6 00266 MOVWF X КОПИРОВАНИЕ ЗНАЧЕНИЯ Q ДЛЯ ПЕРЕКОДИРОВАНИЯ И ВЫДАЧИ НА ИНДИКАЦИЮ

0095 21FA 00267 CALL VYVOD_NAINDIC ВЫЗОВ ПОДПРОГРАММЫ ПЕРЕКОДИРОВАНИЯ

0096 1237 00268 BCF XE,4 ОЧИСТКА БИТОВ

0097 12B7 00269 BCF XE,5

0098 1337 00270 BCF XE,6

0099 13B7 00271 BCF XE,7

009A 1038 00272 BCF XD,0

009B 10B8 00273 BCF XD,1

009C 1138 00274 BCF XD,2

009D 11B8 00275 BCF XD,3

009E 0837 00276 MOVF XE,0

009F 0738 00277 ADDWF XD,0

00A0 0088 00278 MOVWF PORTD ВЫВОД В ПОРТ

00A1 1407 00279 BSF PORTC,0 ПОСЫЛКА УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ В РЕГИСТР

00A2 21F5 00280 CALL ZADERZHKA ОЖИДАНИЕ ЗАПИСИ В РЕГИСТР

00A3 1007 00281 BCF PORTC,0

00A4 0188 00282 CLRF PORTD ОЧИСТКАПОРТА

00A5 1239 00283 BCF XS,4

00A6 12B9 00284 BCF XS,5

00A7 1339 00285 BCF XS,6

00A8 13B9 00286 BCF XS,7

00A9 0839 00287 MOVF XS,0

00AA 0088 00288 MOVWF PORTD ВЫВОД В ПОРТ ЗНАЧЕНИЯ СОТЕН

00AB 1683 1303 00289 BANKSEL TRISA

00AD 30FB 00290 MOVLW B'11111011'

00AE 1585 00291 BSF PORTA,3 ПОСЫЛКА УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ ЗНАЧЕНИЙ В РЕГИСТР

00AF 21F5 00292 CALL ZADERZHKA ОЖИДАНИЕ ЗАПИСИ В РЕГИСТР

00B0 1185 00293 BCFPORTA,3

00B1 0188 00294 CLRFPORTD ОЧИСТКАПОРТА

00B2 1683 1303 00295 BANKSEL TRISA

00B4 30FF 00296 MOVLW B'11111111'

00B5 0827 00297 MOVF BINARDATCH,0 ;ВЫВОД В ПОРТ D ЗНАЧЕНИЙ Х1-Х4 И Y1-Y3

00B6 0088 00298 MOVWF PORTD

00B7 1507 00299 BSF PORTC,2 ПОДАЧА УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ

00B8 21F5 00300 CALL ZADERCHKA

00B9 1107 00301 BCF PORTC,2

00BA 0188 00302 CLRF PORTD ОЧИСТКАПОРТА

00BB 1683 1303 00303 BANKSEL TRISA

00BD 30FF 00304 MOVLW 0xFF

00BE 0085 00305 MOVWF TRISA

00BF 1283 1303 00306 BANKSEL INTCON

00C1 21F1 00307 CALL VOSTAN

00C2 0009 00308 RETFIE

00309

00C3 00310 PRER_T0:

00C3 1283 1303 00311 BANKSEL INTCON

00C5 110B 00312 BCF INTCON,T0IF

00313

00314

00C6 01B5 00315 CLRF ADDR ОЧИСТКА РЕГИСТРА АДРЕСА

00C7 1011 00316 BCF SSPCON2,SEN

00C8 1D8C 00317 BTFSS PIR1,SSPIF

00C9 28C8 00318 GOTO $-1 ОЖИДАНИЕ УСТАНОВКИ ФЛАГА

00CA 118C 00319 BCF PIR1,SSPIF

00CB 30A0 00320 MOVLW 0xA0

00CC 0093 00321 MOVWF SSPBUF

00CD 1F11 00322 BTFSSSSPCON2, ACKSTAT ;ОЖИДАНИЕУСТАНОВКИФЛАГА

00CE 28CD 00323 GOTO $-1

00CF 0835 00324 MOVF ADDR,0

00D0 0093 00325 MOVWF SSPBUF

00D1 1F11 00326 BTFSS SSPCON2, ACKSTAT

00D2 28D1 00327 GOTO $-1

00D3 0AB5 00328 INCF ADDR,1 УВЕЛИЧЕНИЕ АДРЕСА

00D4 1F11 00329 BTFSS SSPCON2, ACKSTAT

00D5 28D4 00330 GOTO $-1

00D6 0827 00331 MOVF BINARDATCH,0 ЗАПИСЬ ЗНАЧЕНИЙ Х1-Х4 И Y1-Y3

00D7 0093 00332 MOVWF SSPBUF ЗАПИСЬ ЗНАЧЕНИЯ В РЕГИСТР ПЕРЕДАЧИ

00D8 1F11 00333 BTFSS SSPCON2,ACKSTAT ОЖИДАНИЕ ПЕРЕДАЧИ

00D9 28D8 00334 GOTO $-1

00DA 1511 00335 BSF SSPCON2,PEN

00DB 1D8C 00336 BTFSS PIR1,SSPIF

00DC 28DB 00337 GOTO $-1

00DD 118C 00338 BCF PIR1,SSPIF СБРОСФЛАГА

00339

00DE 1011 00340 BCF SSPCON2, SEN

00DF 1D8C 00341 BTFSS PIR1, SSPIF ;ОЖИДАНИЕУСТАНОВКИФЛАГА

00E0 28DF 00342 GOTO $-1

00E1 118C 00343 BCF PIR1,SSPIF

00E2 30A0 00344 MOVLW 0xA0

00E3 0093 00345 MOVWF SSPBUF

00E4 1F11 00346 BTFSS SSPCON2, ACKSTAT

00E5 28E4 00347 GOTO $-1

00E6 0835 00348 MOVF ADDR,0

00E7 0093 00349 MOVWF SSPBUF

00E8 1F11 00350 BTFSS SSPCON2,ACKSTAT

00E9 28E8 00351 GOTO $-1

00EA 0AB5 00352 INCFADDR,1 ;УВЕЛИЧЕНИЕАДРЕСА

00EB 1F11 00353 BTFSS SSPCON2,ACKSTAT

00EC 28EB 00354 GOTO $-1

00ED 0825 00355 MOVF N1,0 ЗАПИСЬ ЗНАЧЕНИЯ АНАЛОГОВОГО ДАТЧИКА 1

00EE 0093 00356 MOVWF SSPBUF ЗАПИСЬ ЗНАЧЕНИЯ В РЕГИСТР ПЕРЕДАЧИ

00EF 1F11 00357 BTFSS SSPCON2,ACKSTAT ОЖИДАНИЕ ПЕРЕДАЧИ

00F0 28EF 00358 GOTO $-1

00F1 1511 00359 BSF SSPCON2,PEN

00F2 1D8C 00360 BTFSS PIR1,SSPIF

00F3 28F2 00361 GOTO $-1

00F4 118C 00362 BCF PIR1,SSPIF

00F5 1011 00363 BCF SSPCON2,SEN

00F6 1D8C 00364 BTFSS PIR1,SSPIF ОЖИДАНИЕ УСТАНОВКИ ФЛАГА

00F7 28F6 00365 GOTO $-1

00F8 118C 00366 BCF PIR1,SSPIF

00F9 30A0 00367 MOVLW 0xA0

00FA 0093 00368 MOVWF SSPBUF

00FB 1F11 00369 BTFSS SSPCON2,ACKSTAT

00FC 28FB 00370 GOTO $-1

00FD 0835 00371 MOVF ADDR,0

00FE 0093 00372 MOVWF SSPBUF

00FF 1F11 00373 BTFSS SSPCON2,ACKSTAT

0100 28FF 00374 GOTO $-1

0101 0AB5 00375 INCF ADDR,1 ;УВЕЛИЧЕНИЕАДРЕСА

0102 1F11 00376 BTFSS SSPCON2,ACKSTAT

0103 2902 00377 GOTO $-1

0104 0826 00378 MOVF N2,0 ЗАПИСЬ ЗНАЧЕНИЯ АНАЛОГОВОГО ДАТЧИКА 1

0105 0093 00379 MOVWF SSPBUF ЗАПИСЬ ЗНАЧЕНИЯ В РЕГИСТР ПЕРЕДАЧИ

0106 1F11 00380 BTFSS SSPCON2,ACKSTAT ОЖИДАНИЕ ПЕРЕДАЧИ

0107 2906 00381 GOTO $-1

0108 1511 00382 BSF SSPCON2,PEN

0109 1D8C 00383 BTFSS PIR1,SSPIF

010A 2909 00384 GOTO $-1

010B 118C 00385 BCF PIR1,SSPIF

00386

010C 21F1 00387 CALL VOSTAN

010D 1283 1303 00388 BANKSEL INTCON

010F 178B 00389 BSF INTCON,GIE

0110 0009 00390 RETFIE

00391

00392

0111 00393 PRER_T1:

0111 1283 1303 00394 BANKSEL PIR1

0113 100C 00395 BCF PIR1,TMR1IF ФЛАГА ПРЕРЫВАНИЯ

0114 1010 00396 BCF T1CON,TMR1ON ВЫКЛЮЧЕНИЕТАЙМЕРА

0115 1283 1303 00397 BANKSEL PORTB

0117 0186 00398 CLRF PORTB

0118 178B 00399 BSF INTCON,GIE

0119 21F1 00400 CALL VOSTAN

011A 0009 00401 RETFIE

00402

011B 00403 PRER_T2:

011B 1283 1303 00404 BANKSEL PIR1

011D 108C 00405 BCF PIR1,TMR2IF ;СБРОСФЛАГАПРЕРЫВАНИЯ

011E 1283 1303 00406 BANKSEL PORTB

0120 1A86 00407 BTFSC PORTB,5

0121 0009 00408 RETFIE

0122 21E4 00409 CALL NASTT2

0123 21F1 00410 CALL VOSTAN

0124 0009 00411 RETFIE

00412

0125 00413 PRER_USART:

0125 1283 1303 00414 BANKSEL PIR1

0127 120C 00415 BCFPIR1,TXIF ;СБРОСФЛАГАПРЕРЫВАНИЯ

0128 3044 00416 MOVLW "D"

0129 00A4 00417 MOVWF N

012A 081A 00418 MOVF RCREG,0

012B 1E0C 00419 BTFSS PIR1, TXIF СЧИТЫВАНИЕ СОДЕРЖИМОГО РЕГИСТРА ПРИЕМНИКА

012C 292B 00420 GOTO $-1

012D 00AA 00421 MOVWF M

012E 1103 00422 BCF STATUS,Z

012F 0224 00423 SUBWF N,0 ;ПРОВЕРКА ПРИНЯТО ЛИ D

0130 1D03 00424 BTFSS STATUS,Z

0131 293A 00425 GOTO PRINYATO_D

0132 3041 00426 MOVLW "A"

0133 1103 00427 BCFSTATUS,Z

0134 022A 00428 SUBWFM,0 ПРОВЕРКАПРИНЯТОЛИA

0135 1D03 00429 BTFSS STATUS,Z

0136 2948 00430 GOTO PRINYATO_A

0137 138B 00431 BCF INTCON,7

0138 21F1 00432 CALL VOSTAN

0139 0009 00433 RETFIE

013A 00434 PRINYATO_D:

013A 3020 00435 MOVLW B'00100000' ЕСЛИ ПРИНЯТО D ТО ПЕРЕДАЧА ЗНАЧЕНИЯ X1-X4

013B 0527 00436 ANDWF BINARDATCH,0

013C 00A4 00437 MOVWF N

013D 0DA4 00438 RLF N,1

013E 0DA4 00439 RLF N,1

013F 0DA4 00440 RLF N,1

0140 0824 00441 MOVF N,0

0141 0099 00442 MOVWF TXREG

0142 1683 1303 00443 BANKSEL TXSTA

0144 1698 00444 BSF TXSTA,TXEN

0145 1E0C 00445 BTFSSPIR1,TXIF ОЖИДАНИЕПЕРЕДАЧИ

0146 2945 00446 GOTO $-1

0147 294F 00447 GOTO KONEC

0148 00448 PRINYATO_A:

0148 082B 00449 MOVF Y4,0 ЕСЛИ ПРИНЯТО A ТО ПЕРЕДАЧА ЗНАЧЕНИЯ Y4

0149 0099 00450 MOVWF TXREG

014A 1683 1303 00451 BANKSEL TXSTA

014C 1698 00452 BSF TXSTA,TXEN

014D 1E0C 00453 BTFSSPIR1,TXIF ОЖИДАНИЕПЕРЕДАЧИ

014E 294D 00454 GOTO $-1

014F 00455 KONEC:

014F 120C 00456 BCF PIR1,TXIF

0150 1298 00457 BCF TXSTA,TXEN

0151 1283 1303 00458 BANKSEL INTCON

0153 178B 00459 BSF INTCON,7

0154 21F1 00460 CALLVOSTAN

0155 0009 00461 RETFIE

00462

0156 00463 OSNPROG:

00464

0156 1283 1303 00465 BANKSEL PORTA

0158 01A7 00466 CLRFBINARDATCH ОЧИСТКАРЕГИСТРА

0159 1905 00467 BTFSC PORTA,2 СЧИТЫВАНИЯ ЗНАЧЕНИЯ Х1

015A 1427 00468 BSF BINARDATCH,0

015B 1985 00469 BTFSC PORTA,3 СЧИТЫВАНИЯ ЗНАЧЕНИЯ Х2

015C 14A7 00470 BSF BINARDATCH,1

015D 1A05 00471 BTFSC PORTA,4 СЧИТЫВАНИЯЗНАЧЕНИЯХ3

015E 1527 00472 BSF BINARDATCH,2

015F 1A85 00473 BTFSC PORTA,5 СЧИТЫВАНИЯ ЗНАЧЕНИЯ Х4

0160 15A7 00474 BSFBINARDATCH,3

00475

0161 1827 00476 BTFSC BINARDATCH,0

0162 142C 00477 BSF X1,0

0163 102C 00478 BCF X1,0

0164 18A7 00479 BTFSC BINARDATCH,1

0165 142D 00480 BSF X2,0

0166 102D 00481 BCF X2,0

0167 1927 00482 BTFSC BINARDATCH,2

0168 142E 00483 BSF X3,0

0169 102E 00484 BCF X3,0

016A 19A7 00485 BTFSC BINARDATCH,3

016B 142F 00486 BSF X4,0

016C 102F 00487 BCF X4,0

016D 082F 00488 MOVF X4,0 ;X4->W

016E 092F 00489 COMF X4,0 ;#X4

016F 062E 00490 XORWF X3,0 ;X3^ #X4->W

0170 04AC 00491 IORWF X1,1 ;(X3^ #X4) X1->X1;

0171 082D 00492 MOVF X2,0 ;X2->W

0172 09AD 00493 COMF X2,1 ;#X2->X2

0173 04AD 00494 IORWF X2,1 ;X2 W->X2 = X2 (X3^ #X4) X1)->X2

00495

00496

0174 1C2D 00497 BTFSS X2,0

0175 2980 00498 GOTO GG ;ЗАПИСЬ ПОЛУЧЕНОГО ЗНАЧЕНИЯ В РЕГИСТР

0176 1283 1303 00499 BANKSEL TMR1L ;НАСТРОЙКА ТАЙМЕРА ДЛЯ ФОРМИРОВАНИЯ СИГНАЛА Y1

0178 30CD 00500 MOVLW 0xCD ;T1=50МКС=>32h,FFFF-32=FFCD

0179 008E 00501 MOVWF TMR1L

017A 30FF 00502 MOVLW 0xFF

017B 008F 00503 MOVWF TMR1H

017C 1410 00504 BSF T1CON,TMR1ON ;ВКЛТАЙМЕРА

017D 1283 1303 00505 BANKSEL PORTB

017F 1406 00506 BSF PORTB,0

0180 00507 GG:

00508

0180 1283 1303 00509 BANKSEL ADCON0

0182 3045 00510 MOVLW B'01000101'

0183 151F 00511 BSF ADCON0,GO ВКЛАЦП

0184 3030 00512 MOVLW 0x30 ЗАДЕРЖКА ДЛЯ ЗАРЯДА КОНДЕНСАТОРА АЦП

0185 00A4 00513 MOVWF N

0186 1103 00514 BCF STATUS,Z

0187 0BA4 00515 DECFSZN,1

0188 2987 00516 GOTO $-1

0189 081E 00517 MOVF ADRESH,0 СЧИТЫВАНИЕ ПОЛУЧЕНОГО ПРЕОБРАЗОВАНИЯ С 1 АНАЛОГОВОГО ДАТЧИКА

018A 00A5 00518 MOVWF N1

018B 304D 00519 MOVLW B'01001101'

018C 151F 00520 BSF ADCON0,GO

018D 009F 00521 MOVWF ADCON0

018E 3030 00522 MOVLW 0x30

018F 00A4 00523 MOVWF N

0190 1103 00524 BCF STATUS,Z

0191 0BA4 00525 DECFSZ N,1

0192 2991 00526 GOTO $-1

0193 081E 00527 MOVF ADRESH,0 СЧИТЫВАНИЕ ПОЛУЧЕНОГО ПРЕОБРАЗОВАНИЯ С 2 АНАЛОГОВОГО ДАТЧИКА

0194 00A6 00528 MOVWF N2

0195 3025 00529 MOVLW B'0100101'

0196 151F 00530 BSF ADCON0,GO

0197 009F 00531 MOVWF ADCON0

0198 3030 00532 MOVLW 0x30

0199 00A4 00533 MOVWF N

019A 1103 00534 BCF STATUS,Z

019B 0BA4 00535 DECFSZ N,1

019C 299B 00536 GOTO $-1

019D 081E 00537 MOVF ADRESH,0 СЧИТЫВАНИЕ ПОЛУЧЕНОГО ПРЕОБРАЗОВАНИЯ С 3 АНАЛОГОВОГО

ДАТЧИКА

019E 00B0 00538 MOVWF N3

00539

019F 0829 00540 MOVFCONST,0

01A0 0230 00541 SUBWF N3,0 ;N3-K->W

01A1 00B0 00542 MOVWF N3 ;N3-K->N3

00543

01A2 0830 00544 MOVF N3,0

01A3 0726 00545 ADDWF N2,0 ;N3 N2->W

01A4 00A6 00546 MOVWF N2 ;N3 N2->N2

00547

01A5 1003 00548 BCF STATUS,C

01A6 0226 00549 SUBWF N2,0 ;((N3 N2)-(N3-K))

01A7 1C03 00550 BTFSS STATUS,C

00551

01A8 29AC 00552 GOTO MAX_N1_N2

01A9 0830 00553 MOVF N3,0

01AA 00B4 00554 MOVWF A СОХРАНЕНИЕ MIN

01AB 29AE 00555 GOTO NN

01AC 00556 MAX_N1_N2: ;MAX - N3-K (т.е. MIN - N3 N2)

01AC 0826 00557 MOVF N2,0 СОХРАНЕНИЕ MIN

01AD 00A6 00558 MOVWF N2

01AE 00559 NN:

00560

00561

01AE 1003 00562 BCF STATUS,C

01AF 0833 00563 MOVF Q,0

01B0 0234 00564 SUBWF A,0

01B1 1C03 00565 BTFSS STATUS,C

01B2 29BD 00566 GOTO N_BOLSCHE

01B3 1283 1303 00567 BANKSEL TMR1L ;Q>N

01B5 307D 00568 MOVLW 0x7D ;ФОРМИРОВАНИЕСИГНАЛАY2

00569 ;НАСТРОЙКА ТАЙМЕРА ДЛЯ ФОРМИРОВАНИЯ СИГНАЛА Y2

01B6 008E 00570 MOVWF TMR1L ;T2=130КС=>78h,FFFF-82=FF7D

01B7 30FF 00571 MOVLW 0xFF

01B8 008F 00572 MOVWF TMR1H

01B9 1283 1303 00573 BANKSEL PORTB

01BB 1486 00574 BSF PORTB,1

01BC 29C6 00575 GOTO KK

01BD 00576 N_BOLSCHE: ;n>Q

01BD 1283 1303 00577 BANKSELTMR1L ;ФОРМИРОВАНИЕСИГНАЛАY3

01BF 3037 00578 MOVLW 0x37 ;T3=200МКС=>C8h,FFFF-C8=FE37

01C0 008E 00579 MOVWF TMR1L

01C1 30FE 00580 MOVLW 0xFE

01C2 008F 00581 MOVWF TMR1H

01C3 1283 1303 00582 BANKSEL PORTB

01C5 1506 00583 BSF PORTB,2

01C6 00584 KK:

01C6 1410 00585 BSF T1CON,TMR1ON

01C7 1283 1303 00586 BANKSEL INTCON ЗАПРЕТПРЕРЫВАНИЯ

01C9 138B 00587 BCF INTCON,7

01CA 14BA 00588 BSF FTT,1

01CB 180C 00589 BTFSCPIR1,TMR1IF ОЖИДАНИЕ ПЕРЕПОЛНЕНИЯ Т1

01CC 29CB 00590 GOTO $-1

01CD 0186 00591 CLRF PORTB

01CE 178B 00592 BSF INTCON,7

00593

01CF 0823 00594 MOVFA1,0

01D0 0530 00595 ANDWF N3,0 A1*N3->W

01D1 0722 00596 ADDWF A0,0 A1*N3 A0

01D2 00AB 00597 MOVWF Y4 СОХРАНЕНИЕ ЗНАЧЕНИЯ Y4

01D3 1283 1303 00598 BANKSEL PORTD ВЫВОД ЗНАЧЕНИЯ Y4 НА ЦАП

01D5 0088 00599 MOVWF PORTD

01D6 1487 00600 BSF PORTC,1 ФОРМИРОВАНИЕ УПРАВЛЯЮЩЕГО СИГНАЛА ДЛЯ ЗАПИСИ В РЕГИСТР ЦАП

01D7 21F5 00601 CALL ZADERZHKA

01D8 1087 00602 BCF PORTC,1

01D9 0188 00603 CLRFPORTD

00604

01DA 1909 00605 BTFSC PORTE,2 ЕСЛИ КHОПКА ОСТАНОВ НАЖАТА ТО НА НАЧАЛО ОСНОВНОЙ

01DB 2956 00606 GOTO OSNPROG ПРОГРАММЫ ИЛИ ОЖИДАНИЕ

01DC 29DA 00607 GOTO $-2

00608

00609

01DD 00610 NASTT1

01DD 1283 1303 00611 BANKSELTMR1L 30*1МКС=30МКС=>1Eh, FFFF-1E=FFE1

01DF 30E1 00612 MOVLW 0xE1

01E0 008E 00613 MOVWF TMR1L

01E1 30FF 00614 MOVLW 0xFF

01E2 008F 00615 MOVWF TMR1H

01E3 0008 00616 RETURN

00617

01E4 00618 NASTT2

01E4 1283 1303 00619 BANKSEL TMR2

01E6 3082 00620 MOVLW 0x82

01E7 0091 00621 MOVWF TMR2

01E8 1512 00622 BSF T2CON,TMR2ON

01EA 29EE 00624 GOTO NOLL

01EB 1687 00625 BSF PORTC,5

01EC 1428 00626 BSF FAVDATCHIKA,0

01ED 29F0 00627 GOTO DAT

01EE 00628 NOLL:

01EE 1287 00629 BCF PORTC,5

01EF 1028 00630 BCF FAVDATCHIKA,0

01F0 00631 DAT:

01F0 0008 00632 RETURN

00633

01F1 00634 VOSTAN

01F1 00A1 00635 MOVWF STATUS_TEMP

01F2 0083 00636 MOVWF STATUS

01F3 0820 00637 MOVFW W_TEMP

01F4 0008 00638 RETURN

00639

00640 ;--ПОДПРОГРАММА ВЫРАБОТКИ ЗАДЕРЖКИ-------

01F5 00641 ZADERZHKA

01F5 3010 00642 MOVLW 0x10

01F6 00A4 00643 MOVWF N

01F7 0BA4 00644 DECFSZ N,1

01F8 29F7 00645 GOTO $-1

01F9 0008 00646 RETURN

00647

00648

01FA 00649 VYVOD_NAINDIC

01FA 00650 NACH:

01FA 0BB6 00651 DECFSZX,1 ;Х-1=Х

01FB 29FE 00652 GOTOEE ; XE-РЕГИСТРЕДЕНИЦ

01FC 0AB7 00653 INCF XE,1 ;ЕСЛИ Х=0 ТО ВЫХОД

01FD 0008 00654 RETURN

01FE 00655 EE:

01FE 0AB7 00656 INCF XE,1 ;XE 1=XE

01FF 3009 00657 MOVLW.09

0200 1003 00658 BCF STATUS,C ;ЕСЛИ ПРЕВЫШАЕТ ЗНАЧЕНИЯ 9 ТО ЗАПИСЬ 1 В ДЕСЯТКИ И СБРОС

0201 0237 00659 SUBWF XE,0

0202 1803 00660 BTFSC STATUS,C

0203 29FA 00661 GOTO NACH

0204 01B7 00662 CLRF XE

0205 3010 00663 MOVLW 0x10

0206 07B8 00664 ADDWFXD,1 ;XD-РЕГИСТРДЕСЯТОК

0207 305A 00665 MOVLW.90

0208 1003 00666 BCF STATUS,C ;ЕСЛИ ПРЕВЫШАЕТ ЗНАЧЕНИЯ 90 ТО ЗАПИСЬ 1 В СОТНИ И СБРОС

0209 0238 00667 SUBWF XD,0

020A 1803 00668 BTFSC STATUS,C

020B 29FA 00669 GOTO NACH

020C 01B8 00670 CLRF XD

020D 3064 00671 MOVLW.100

020E 07B9 00672 ADDWF XS,1 ; XS-РЕГИСТР CОТЕН

020F 29FA 00673 GOTO NACH

00674

00675 END

SYMBOL TABLE

LABEL VALUE

A 00000034

A0 00000022

A1 00000023

ACKDT 00000005

ACKEN 00000004

ACKSTAT 00000006

ADCON0 0000001F

ADCON1 0000009F

ADCS0 00000006

ADCS1 00000007

ADDEN 00000003

ADDR 00000035

ADFM 00000007

ADIE 00000006

ADIF 00000006

ADON 00000000

ADRESH 0000001E

ADRESL 0000009E

BCLIE 00000003

BCLIF 00000003

BF 00000000

BINARDATCH 00000027

BRGH 00000002

C 00000000

C1INV 00000004

C1OUT 00000006

C2INV 00000005

C2OUT 00000007

CCP1CON 00000017

CCP1IE 00000002

CCP1IF 00000002

CCP1M0 00000000

CCP1M1 00000001

CCP1M2 00000002

CCP1M3 00000003

CCP1X 00000005

CCP1Y 00000004

CCP2CON 0000001D

CCP2IE 00000000

CCP2IF 00000000

CCP2M0 00000000

CCP2M1 00000001

CCP2M2 00000002

CCP2M3 00000003

CCP2X 00000005

CCP2Y 00000004

CCPR1H 00000016

CCPR1L 00000015

CCPR2H 0000001C

CCPR2L 0000001B

CHS0 00000003

CHS1 00000004

CHS2 00000005

CIS 00000003

CKE 00000006

CKP 00000004

CM0 00000000

CM1 00000001

CM2 00000002

CMCON 0000009C

CMIE 00000006

CMIF 00000006

CONST 00000029

CREN 00000004

CSRC 00000007

CVR0 00000000

CVR1 00000001

CVR2 00000002

CVR3 00000003

CVRCON 0000009D

CVREN 00000007

CVROE 00000006

CVRR 00000005

D 00000005

DAT 000001F0

DATA_ADDRESS 00000005

DC 00000001

D_A 00000005

EE 000001FE

EEADR 0000010D

EEADRH 0000010F

EECON1 0000018C

EECON2 0000018D

EEDATA 0000010C

EEDATH 0000010E

EEIE 00000004

EEIF 00000004

EEPGD 00000007

F 00000001

FAVDATCHIKA 00000028

FERR 00000002

FSR 00000004

FTT 0000003A

GCEN 00000007

GG 00000180

GIE 00000007

GO 00000002

GO_DONE 00000002

I2C_DATA 00000005

I2C_READ 00000002

I2C_START 00000003

I2C_STOP 00000004

IBF 00000007

IBOV 00000005

INDF 00000000

INTCON 0000000B

INTE 00000004

INTEDG 00000006

INTF 00000001

IRP 00000007

KK 000001C6

KONEC 0000014F

M 0000002A

MAIN 00000302

MAX_N1_N2 000001AC

N 00000024

N1 00000025

N2 00000026

N3 00000030

NACH 000001FA

NASTT1 000001DD

NASTT2 000001E4

NN 000001AE

NOLL 000001EE

NOT_A 00000005

NOT_ADDRESS 00000005

NOT_BO 00000000

NOT_BOR 00000000

NOT_DONE 00000002

NOT_PD 00000003

NOT_POR 00000001

NOT_RBPU 00000007

NOT_RC8 00000006

NOT_T1SYNC 00000002

NOT_TO 00000004

NOT_TX8 00000006

NOT_W 00000002

NOT_WRITE 00000002

N_BOLSCHE 000001BD

OBF 00000006

OERR 00000001

OPTION_REG 00000081

OSNPROG 00000156

P 00000004

PCFG0 00000000

PCFG1 00000001

PCFG2 00000002

PCFG3 00000003

PCL 00000002

PCLATH 0000000A

PCON 0000008E

PEIE 00000006

PEN 00000002

PIE1 0000008C

PIE2 0000008D

PIR1 0000000C

PIR2 0000000D

PORTA 00000005

PORTB 00000006

PORTC 00000007

PORTD 00000008

PORTE 00000009

PR2 00000092

PRER_AVDATCHIK 00000047

PRER_PITANIE 00000020

PRER_PU 00000088

PRER_RB4RB7 00000017

PRER_T0 000000C3

PRER_T1 00000111

PRER_T2 0000011B

PRER_USART 00000125

PRINYATO_A 00000148

PRINYATO_D 0000013A

PS0 00000000

PS1 00000001

PS2 00000002

PSA 00000003

PSPIE 00000007

PSPIF 00000007

PSPMODE 00000004

Q 00000033

R 00000002

RBIE 00000003

RBIF 00000000

RC8_9 00000006

RC9 00000006

RCD8 00000000

RCEN 00000003

RCIE 00000005

RCIF 00000005

RCREG 0000001A

RCSTA 00000018

RD 00000000

READ_WRITE 00000002

RP0 00000005

RP1 00000006

RSEN 00000001

RX9 00000006

RX9D 00000000

R_W 00000002

S 00000003

SEN 00000000

SMP 00000007

SPBRG 00000099

SPEN 00000007

SREN 00000005

SSPADD 00000093

SSPBUF 00000013

SSPCON 00000014

SSPCON2 00000091

SSPEN 00000005

SSPIE 00000003

SSPIF 00000003

SSPM0 00000000

SSPM1 00000001

SSPM2 00000002

SSPM3 00000003

SSPOV 00000006

SSPSTAT 00000094

STATUS 00000003

STATUS_TEMP 00000021

SYNC 00000004

T0CS 00000005

T0IE 00000005

T0IF 00000002

T0SE 00000004

T1CKPS0 00000004

T1CKPS1 00000005

T1CON 00000010

T1INSYNC 00000002

T1OSCEN 00000003

T1SYNC 00000002

T2CKPS0 00000000

T2CKPS1 00000001

T2CON 00000012

TMR0 00000001

TMR0IE 00000005

TMR0IF 00000002

TMR1CS 00000001

TMR1H 0000000F

TMR1IE 00000000

TMR1IF 00000000

TMR1L 0000000E

TMR1ON 00000000

TMR2 00000011

TMR2IE 00000001

TMR2IF 00000001

TMR2ON 00000002

TOUTPS0 00000003

TOUTPS1 00000004

TOUTPS2 00000005

TOUTPS3 00000006

TRISA 00000085

TRISB 00000086

TRISC 00000087

TRISD 00000088

TRISE 00000089

TRISE0 00000000

TRISE1 00000001

TRISE2 00000002

TRMT 00000001

TX8_9 00000006

TX9 00000006

TX9D 00000000

TXD8 00000000

TXEN 00000005

TXIE 00000004

TXIF 00000004

TXREG 00000019

TXSTA 00000098

UA 00000001

VOSTAN 000001F1

VYVOD_NAINDIC 000001FA

W 00000000

WCOL 00000007

WR 00000001

WREN 00000002

WRERR 00000003

W_TEMP 00000020

X 00000036

X1 0000002C

X2 0000002D

X3 0000002E

X4 0000002F

XD 00000038

XE 00000037

XS 00000039

Y4 0000002B

Z 00000002

ZADERZHKA 000001F5

_BODEN_OFF 00003FBF

_BODEN_ON 00003FFF

_CPD_OFF 00003FFF

_CPD_ON 00003EFF

_CP_ALL 00001FFF

_CP_OFF 00003FFF

_DEBUG_OFF 00003FFF

_DEBUG_ON 000037FF

_HS_OSC 00003FFE

_LP_OSC 00003FFC

_LVP_OFF 00003F7F

_LVP_ON 00003FFF

_PWRTE_OFF 00003FFF

_PWRTE_ON 00003FF7

_RC_OSC 00003FFF

_WDT_OFF 00003FFB

_WDT_ON 00003FFF

_WRT_1FOURTH 00003BFF

_WRT_256 00003DFF

_WRT_HALF 000039FF

_WRT_OFF 00003FFF

_XT_OSC 00003FFD

__16F877A 00000001


  • Принципиальная электрическая схема
  • . А лгоритм работы блока чтения информации с аналоговых датчиков
  • ПОДТЯГИВАЮЩЕГО РЕЗИСТОРА