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

Тип работы:
Курсовая
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

[Введите текст]

ВВЕДЕНИЕ

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

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

В течении четырех лет, начиная с 1976 г., фирмой INTEL разрабатывалось получившее широкое распространение семейство 8-и разрядных однокристальных микроконтроллеров с программным управлением MCS-48.

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

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

Исходя из вышеперечисленного, разрабатываемая нами система управления будет обладать следующими свойствами:

— простота в установке, наладке и эксплуатации;

— небольшие габариты;

— небольшая стоимость;

— обработка системой различных аварийных ситуаций;

— возможность получения информации о состоянии установки и технологического процесса с помощью ЭВМ.

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ

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

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

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

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

Микропроцессорная система опрашивает двоичные датчики Х1,…, Х5 и вычисляет булеву функцию

(1)

При единичном значении функции система вырабатывает выходной сигнал Y1 = 1 длительностью Т1. Это означает, что через T1 после выдачи единичного сигнала Y1 необходимо выработать нулевой сигнал Y1.

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

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

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

На основе полученных данных контроллер реализует следующую функцию:

(2)

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

Управляющее воздействие Y4 формируется в виде аналогового сигнала V4 с ЦАП и поступает на ИМ. Значение Y4 определяется как восьмиразрядное двоичное число по формуле:

(3)

где а0 и a1 — восьмиразрядные коэффициенты, хранящиеся во внутренней памяти микроконтроллера; N2 — восьмиразрядный код, поступающий с выхода АЦП.

Предполагается, что исходные величины, поступающие с АЦП меньше единицы и представляются двоичным числом с фиксированной запятой.

Если после умножения значение Y4 превышает восемь разрядов, то необходимо принимать значение Y4 равное младшему байту.

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

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

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

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

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

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

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

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

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

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

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

1. Выдать на регистр индикации РИ1 значения следующих четырех булевых переменных:

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

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

в) значение выражения X1? X2 ?X3 ?X4;

г) значение выражения X1? X2 ?X3 ?X4.

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

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

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

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

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

2) регистр со светодиодами индикации значений (X1,…, X5) — РИ2;

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

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

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

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

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

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

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

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

устройство индикации;

входной 8-разрядный регистр для приема с тумблеров пульта значение константы К;

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

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

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

программы.

2. СТРУКТУРНАЯ СХЕМА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ

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

Рисунок 1 — Структурная схема системы управления

На рисунке представлена структурная схема системы управления, на которой указаны подключения к микроконтроллеру всех датчиков. При подключении датчиков, для согласования сигналов, использованы устройства сопряжения (УС1-УС7). Аналоговые сигналы подаются на АЦП через аналоговые устройства сопряжения. Кроме того, на схеме указано подключение к микроконтроллеру пульта управления и ЦАП. Также на схеме показаны все выходные сигналы, используемые для управления различными устройствами. Контроллер обменивается информацией с системой более высокого уровня по интерфейсу CAN (скорость обмена 57 600 бит/с). Для согласования уровней ТТЛ с уровнями сигналов интерфейса CAN в схему включен преобразователь уровней ПУ. Подключение датчиков, пульта управления, схему индикации и ЦАП осуществляется посредством общей 8-разрядной шины, подключенной к порту D контроллера. Подключение пульта управления и устройств сопряжения к шине осуществляется с помощью блока расширения ввода (БРВ). Кроме того, этот блок формирует запросы прерываний.

Для исключения влияния исполняющих устройств на линии вывода контроллера сигналы Y1, Y2/Y3 и Y5 проходят через выходные устройства сопряжения (УСВ1-УСВ3).

Линия

Направление

Тип линии

Количество

Х1 — Х5

Вход

Цифровая

5

N1- N2

Вход

Аналоговая

2

P1(t)

Вход

Цифровая

1

От схемы контроля

Вход

Цифровая

1

От регистра остановки

Вход

Цифровая

1

От сброса

Вход

Цифровая

1

От прерывания оператора

Вход

Цифровая

1

БФЗП

Вход

Цифровая

1

Y1, Y2, Y3, Y4

Выход

Цифровая

4

Y5

Выход

Аналоговая

1

SCL/2

Выход

Цифровая

1

SDA/2

Вход/Выход

Цифровая

1

Tx

Выход

Цифровая

1

Rx

Вход

Цифровая

1

На ПУ

Выход

Цифровая

1

Итого:

23

Наименование

Память программ (слов)

ОЗУ данных (байт)

Макс. Ч-та, МГц

Разряды ввода-вывода

АЦП

Посл. порты

ШИМ

Таймеры

PIC16F877A

8192×14

386

20

33

8

USART, MSSP

3

4+WDT

3. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С ДАТЧИКОВ

3.1 Разработка устройства сопряжения с бинарным датчиком

Схема сопряжения обеспечивает гальваническую развязку бинарного датчика и линии ввода контроллера. Схема сопряжения для сигнала «Аварийный останов» (X0) представлена на рисунке 2.

Рисунок 2 — Схема сопряжения с бинарным датчиком

Сопротивление резистора R1 рассчитывается по формуле

,

где |Uвх|max — максимальный из модулей входных напряжений, В; Uпр — прямое падение напряжения на светодиоде оптрона, В; Uст — напряжение стабилизации стабилитрона VD1, В; Iпр — прямой ток через светодиод оптрона, А.

Стабилитрон VD1 выбирается из следующих условий:

,

,

где |Uвх|min и |Uвх|max — соответственно, минимальный и максимальный модули входных напряжений, В; Uст — напряжение стабилизации стабилитрона VD1, В; Iстmin, Iстmax — соответственно, минимальный и максимальный токи стабилизации стабилитрона VD1, А; Iпр — заданный прямой ток через светодиод оптрона, А.

Выходная цепь устройства согласования образованна транзистором оптрона VU1 и подтягивающим резистором R2. Транзистор выполняет функцию ключевого элемента, а резистор формирует на выходе схемы напряжение логической «1», когда транзистор закрыт. Если к выходу устройства сопряжения подключен вход микросхемы ТТЛ, то сопротивление резистора R2 выбирается равным 1 кОм, а если вход микросхемы КМОП логики — 10 кОм.

3.2 Разработка устройства сопряжения с аналоговым датчиком

Схема сопряжения обеспечивает гальваническую развязку аналогового датчика и линии ввода контроллера, а также преобразует входной аналоговый сигнал с уровнями −34…−15 В в выходной сигнал с уровнями 0…2,5 В. Схема сопряжения для сигнала N1 представлена на рисунке 3.

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

На ОУ DA1 типа AD202 собран аналоговый неинвертирующий сумматор, который преобразует входной сигнал с уровнями −34…−15 В в сигнал с уровнями 0…2,5 В.

Рассчитаем номиналы сопротивлений резисторов R1, R4, R6.

В случае, если минимальное выходное напряжение, для неинвертирующего сумматора справедливы следующие соотношения сопротивлений резисторов:

; (5)

. (6)

В данной схеме, .

Выберем сопротивление резистора R1 = 68 кОм, тогда R6 = 15 кОм, R4 = 36 кОм.

Кроме того, на ОУ DA1 AD202 выполнено устройство гальванической развязки, и гальванически развязанный источник питания 7,5 В для сумматора.

3.3 Разработка устройства контроля напряжения питания

Устройство формирует на выходе уровень логического «0» при наличии напряжения питания ~220 В и уровень логической «1» при его отсутствии. Схема устройства представлена на рисунке 4.

Рисунок 4 — Схема устройства контроля напряжения питания

Схема работает следующим образом. При наличии переменного напряжения на входе светодиод питается через однополупериодный выпрямитель на диоде VD1 и ограничительный резистор. Светодиод зажжен, следовательно, транзистор оптрона открыт и на выходе схемы логический «0». Конденсатор C1 сглаживает пульсации выпрямленного напряжения. Если переменное напряжение на входе отсутствует, ток через светодиод не протекает, он погашен, следовательно, транзистор закрыт и на выходе схемы логическая «1».

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

; (7)

где Ua — максимальное входное напряжение (амплитудное значение), Uпрн — прямое падение напряжения на светодиоде оптрона, Iн — номинальный ток через светодиод.

Таким образом:

.

4. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ВЫВОДА УПРАВЛЯЮЩИХ СИГНАЛОВ

Данный блок формирует управляющие воздействия Y1-Y5. Схема блока приведена на рисунке 5. Бинарные управляющие воздействия Y1, Y2/Y3, Y5 подаются на объект управления через эмиттерные повторители на транзисторах VT3-VT5 типа КТ503А, осуществляющие усиление выходных сигналов по току. Для формирования аналогового управляющего сигнала Y4 используется 8-разрядный ЦАП AD5330.

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

5. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ПОСЛЕДОВАТЕЛЬНОГО КАНАЛА СВЯЗИ

В проектируемой системе управления для связи с внешним устройством используется последовательный интерфейс RS-232. В качестве приемопередатчика используется встроенный в микроконтроллер модуль USART. Для формирования уровней сигналов соответствующих интерфейсу RS-232 используется преобразователь уровней MAX232A. Схема его включения приведена на рисунке 6.

Рисунок 6 — Схема включения преобразователя уровней MAX232A

Подключение к внешнему устройству осуществляется через стандартный 9-штырьковый разъем DB-9.

6. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ ПУЛЬТА УПРАВЛЕНИЯ

6.1 Разработка схемы считывания информации с элементов управления

Данная схема осуществляет подключение тумблеров уставки SA1-SA8, схем сопряжения с датчиками X0-X5, схемы контроля источника питания и тумблера SA9 «Останов» к 8-разрядной двунаправленной шине данных. Схема также формирует сигнал прерывания в следующих случаях:

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

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

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

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

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

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

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

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

— значение выражения.

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

Для подключения 16 входных линий (8 тумблеров уставки, 6 входных линий X0-X5, линия контроля источника питания и тумблер «Останов») к 8-разрядной шине данных используются два 8-разрядных шинных формирователя с 3-мя выходными состояниями DD2, DD3 типа IL74HC244AN. Выходы формирователей подключены к шине данных, а входы — к перечисленным выше входным линиям. Каждый формирователь имеет 2 входа разрешения выходов OEA и OEB. Если на этих входах присутствует низкий логический уровень, то сигналы на выходах формирователя повторяют сигналы на входах A0-A3, B0-B3. Иначе выходы находятся в 3-м состоянии (отключены от шины данных). Таким образом, контроллер подает логический «0» поочередно на входы OEA и OEB каждого формирователя и считывает сигналы с шины данных.

Рисунок 7 — Схема считывания информации с элементов управления

Сигнал запроса прерывания (активный низкий уровень) формируется элементами 2ИЛИ-НЕ DD1. 1-DD1. 4, реализующими логическую функцию 2ИЛИ-НЕ-И, в следующих случаях:

— нажатие кнопки SB1 «Прерывание оператора»;

— изменение сигнала X0 из «0» в «1» (появление аварийной ситуации);

— изменение сигнала «Контроль источника питания» из «1» в «0» (напряжение питания отсутствует).

Сигнал запроса прерывания поступает на вход INT контроллера.

6.2 Разработка схемы индикации

Схема индикации предназначена для вывода информации о состоянии системы на пульт управления. В состав схемы индикации входят три параллельных 8-разрядных буферных регистра DD5-DD7 типа IL74HC573N и 24 светодиода HL1-HL24 красного цвета свечения типа АЛ307АМ. Схема индикации приведена на рисунке 8. Выходы регистров имеют повышенную нагрузочную способность, что позволяет подключать светодиоды непосредственно к ним. Резисторы R33-R56 ограничивают ток через светодиоды на уровне 5 мА. Их сопротивление составляет 470 Ом.

Регистр DD5 и светодиоды HL1-HL8 образуют регистр индикации РИ1. Регистры РИ2 и РИ3 построены на базе регистра DD6. При этом светодиоды HL9-HL13 образуют регистр РИ2, а светодиоды HL14-HL16 — регистр РИ3. Регистр РИ4 образован регистром DD7 и светодиодами HL17-HL24.

При нажатии кнопки пульта управления SB1 «Прерывание оператора», на светодиоды выводится следующая информация:

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

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

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

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

HL9-HL16 — двоичное значение константы Q.

Рисунок 8 — Схема индикации

7. РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И ОБЩИЙ АЛГОРИТМ УПРАВЛЕНИЯ

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

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

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

8. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С АНАЛОГОВЫХ ДАТЧИКОВ

Блок-схема алгоритма чтения информации с аналоговых датчиков приведена на рисунке 10. В начале программно выбирается 1-й канал АЦП и осуществляется запуск преобразования. Пока идет процесс преобразования, выбирается второй канал АЦП и программа ожидает окончания процесса преобразования. По его окончании программа сохраняет результат преобразования в отдельные регистры и вновь запускает преобразование (для второго канала). По окончании преобразования программа сохраняет результат в отдельном регистре.

Рисунок 10 — Блок-схема алгоритма чтения информации с аналоговых датчиков

9. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С ЦИФРОВЫХ ДАТЧИКОВ

Блок-схема алгоритма чтения информации с цифровых датчиков и тумблеров пульта управления приведена на рисунке 11. В начале выполняется настройка порта D на ввод. Затем на управляющей линии RB2 устанавливается низкий уровень напряжения (выводы шинного формирователя DD2 переводятся в активное состояние). На всех остальных управляющих линиях формируется высокий уровень. После этого значение из порта D копируется в регистр уставки K. Затем в «0» переводится линия RB1 и данные из порта D сохраняются в регистре входных значений X. После чего на всех управляющих линиях формируется высокий уровень.

Рисунок 11 — Блок-схема алгоритма чтения информации с цифровых датчиков и тумблеров пульта управления

10. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ОБМЕНА ДАННЫМИ ПО ПОСЛЕДОВАТЕЛЬНОМУ КАНАЛУ СВЯЗИ

Блок-схема алгоритма работы блока обмена данными по последовательному каналу связи приведена на рисунке 12.

Рисунок 12 — Блок-схема алгоритма работы блока обмена данными по последовательному каналу связи

Данный блок фиксирует прием запроса от внешнего устройства путем проверки флага прерывания от приемника USART, производит идентификацию байта запроса путем его сравнения с константой и, если байт верный, осуществляет передачу данных. Если из последовательного канала принят символ «D» в последовательный канал передается значение сигнала Y1, если же принят символ «A», то в последовательный канал передается значение сигнала Y4.

11. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ВЗАИМОДЕЙСТВИЯ С ОПЕРАТОРОМ

Блок-схема алгоритма работы блока взаимодействия с оператором приведена на рисунке 13.

Рисунок 13 — Блок-схема алгоритма работы блока взаимодействия с оператором

12. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ОБРАБОТКИ АВАРИЙНЫХ СИТУАЦИЙ

В данном блоке осуществляется контроль наличия напряжения питания и контроль сигнала аварийной ситуации X0. При появлении аварийной ситуации происходит ее обработка, затем контроллер переходит в режим пониженного энергопотребления («спящий» режим). Блок-схема алгоритма приведена на рисунке 14.

Рисунок 14 — Блок-схема алгоритма работы блока обработки аварийных ситуаций

13. РАСЧЕТ ЭЛЕКТРИЧЕСКИХ ПАРАМЕТРОВ МПС

Рассчитаем мощность, потребляемую микроконтроллером:

; (8)

где — напряжение относительно , — максимальный ток вывода, - выходное напряжение высокого уровня, — ток I/O канала, — выходное напряжение низкого уровня, — ток I/O канала.

Рассчитаем мощность, рассеиваемую всеми резисторами схемы:

; (9)

где — напряжение на i-м резисторе, — сопротивление i-го резистора.

.

Рассчитаем мощность, рассеиваемую светодиодами:

; (10)

где — напряжение на i-м светодиоде, — ток в i-м светодиоде.

.

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

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

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

Микросхема

Потребляемый ток, мА

Обозначение

Наименование

+15

DA1, DA2

AD202

35

Итого

70

+5

DD1

К561ЛЕ5

20 мкА

DD2, DD3

IL74HC244AN

150 мкА

DD4

PIC16F871

45

DD5-DD7

IL74HC573N

140 мкА

DD8

MAX232A

100

DA3

AD5330

8

Итого

154

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

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

14. РАЗРАБОТКА БЛОКА ПИТАНИЯ

Для питания проектируемой микропроцессорной системы управления необходим блок питания, отдающий в нагрузку мощность не менее 2,3 Вт. Максимальный выходной ток по цепи +5 В должен быть не менее 154 мА, по цепи +15В — не менее 70 мА. Кроме того блок питания должен формировать опорное напряжение для АЦП и ЦАП величиной 2,5 В. Схема блока питания приведена на рисунке 15.

В качестве трансформатора T1 выбран унифицированный трансформатор ТПП232−127/220−50. Этот трансформатор имеет габаритную мощность 9 В·А. Напряжения на обмотках следующие: U11−12 = U13−14 = 5,04 В; U15−16 = U17−18 = 10 В; U19−20 = U21−22 = 2,63 В. Максимальный ток каждой обмотки 0,2 А.

Для стабилизации напряжения +5 В используется интегральный стабилизатор LM7805, рассчитанный на максимальный ток 1,5 А. Для стабилизации напряжения +15 В используется интегральный стабилизатор LM7815. Он рассчитан на максимальный ток 1,5 А. Источник опорного напряжения построен на регулируемом стабилитроне DA6 типа TL431A.

Рисунок 15 — Принципиальная электрическая схема блока питания

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

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

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

3. Официальный сайт компании Microchip [Электронный ресурс] PIC16F870/871DataSheet 28/40-Pin, 8-Bit CMOS FLASH Microcontrollers. Режим доступа: http: //www. microchip. com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010232

ПРИЛОЖЕНИЕ

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

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 1

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

Warning[215]: Processor superseded by command line. Verify processor symbol.

1 LIST P=16F874

2 #INCLUDE < P16F874. INC>;Подклюключаем заголовочный файл

1 LIST

2; P16F874. INC Standard Header File, Version 1. 00 Microchip Technology, Inc.

Message[301]: MESSAGE: (Processor-header file mismatch. Verify selected processor.)

374 LIST

3 ERRORLEVEL -302

4 ERRORLEVEL -305

5 ERRORLEVEL -207

6; ----------------------------------------------------

7; РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ

20 8 A0 EQU 0×20; РЕГИСТР ЗНАЧЕНИЯ КОЭФФИЦИЕНТА A1

21 9 A1 EQU 0×21; РЕГИСТР ЗНАЧЕНИЯ КОЭФФИЦИЕНТА A2

22 10 N1 EQU 0×22; РЕГИСТР ВЫХОДНОГО ЗНАЧЕНИЯ АЦП N1

23 11 N2 EQU 0×23; РЕГИСТР ВЫХОДНОГО ЗНАЧЕНИЯ АЦП N2

24 12 N3 EQU 0×24; РЕГИСТР ВЫХОДНОГО ЗНАЧЕНИЯ АЦП N3

25 13 Y4 EQU 0×25; РЕГИСТР РЕЗУЛЬТАТА Y4

26 14 N EQU 0×26

27 15 K EQU 0×27; РЕГИСТР УСТАВКИ

28 16 FLAG EQU 0×28

29 17 Y1 EQU 0×29

02A 18 X1 EQU 0x2A

02B 19 X2 EQU 0x2B

02C 20 X3 EQU 0x2C

02D 21 X4 EQU 0x2D

02E 22 X5 EQU 0x2E

2 °F 23 TEMP EQU 0x2 °F; РЕГИСТР ВРЕМЕННОГО ХРАНЕНИЯ РЕЗУЛЬТАТА

30 24 DACL EQU 0×30; МЛАДШИЙ РЕГИСТР ДАННЫХ ДЛЯ ЦАП

31 25 DACH EQU 0×31; СТАРШИЙ РЕГИСТР ДАННЫХ ДЛЯ ЦАП

32 26 W_TEMP EQU 0×32

33 27 STATUS_TEMP EQU 0×33

34 28 IN_ADR EQU 0×34

35 29 K_SHIFT EQU 0×35; СДВИГОВЫЙ РЕГИСТР УСТАВКИ

36 30 CONTROL EQU 0×36; РЕГИСТР СОСТОЯНИЯ ТУМБЛЕРОВ УПРАВЛЕНИЯ

37 31 DIV_IND EQU 0×37; ДЕЛИТЕЛЬ ДЛЯ УПРАВЛЕНИЯ ИНДИКАЦИЕЙ

38 32 LED1 EQU 0×38

39 33 LED2 EQU 0×39

03A 34 LED3 EQU 0x3A

03B 35 LED4 EQU 0x3B

03C 36 OUT_ADR EQU 0x3C

03D 37 DIV_AVAR EQU 0x3D

03E 38 COUNTER EQU 0x3E

3 °F 39 IN_BD EQU 0x3F

40 40 BUF_BD EQU 0×40

41 41 COUNTH EQU 0×41; СЧЕТЧИК-ФОРМИРОВАТЕЛЬ СЕКУНДНЫХ ИНТЕРВАЛОВ

42 42 COUNTL EQU 0×42; СЧЕТЧИК-ФОРМИРОВАТЕЛЬ МИНУТНЫХ ИНТЕРВАЛОВ

43 43 COUNTER1 EQU 0×43

44; ----------------------------------------------------

45; ПЕРЕОПРЕДЕЛЕНИЕ ТЕКСТА

46 #DEFINE Y2 FLAG, 0

47 #DEFINE Y3 FLAG, 1

48 #DEFINE AVAR FLAG, 2

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 2

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

49; ----------------------------------------------------

50; КОНСТАНТЫ

1 51 F EQU 1

0 52 W EQU 0

00A 53 Q EQU 0x0A

18 54 WR_DAC EQU B'11 000'

60 55 CTMR0 EQU D'96'

56; ----------------------------------------------------

57; МАКРОСЫ

58 BANK0 MACRO; ВЫБОР БАНКА 0

59 BCF STATUS, RP0

60 BCF STATUS, RP1

61 ENDM

62

63 BANK1 MACRO; ВЫБОР БАНКА 1

64 BSF STATUS, RP0

65 BCF STATUS, RP1

66 ENDM

67

68 BANK2 MACRO; ВЫБОР БАНКА 2

69 BCF STATUS, RP0

70 BSF STATUS, RP1

71 ENDM

72

73 BANK3 MACRO; ВЫБОР БАНКА 3

74 BSF STATUS, RP0

75 BSF STATUS, RP1

76 ENDM

77

78 MULT MACRO BIT; УМНОЖЕНИЕ

79 BTFSC A1, BIT

80 ADDWF Y4, F

81 RRF Y4, F

82 BCF STATUS, C

83 ENDM

84; ------------------------------------------------------

0000 85 ORG 0×00; ВЕКТОР СРОСА

0000 2A00 86 GOTO START; ПЕРЕХОД НА НАЧАЛО ПРОГРАММЫ

87

0200 88 ORG 0×200; ВЕКТОР НАЧАЛА ПРОГРАММЫ

0200 89 START

90; -----------------------------------------------------

91; ИНИЦАЛИЗАЦИЯ

92; -----------------------------------------------------

93; РОН

0200 01B4 94 CLRF IN_ADR

0201 01BC 95 CLRF OUT_ADR

96; -----------------------------------------------------

97; РЕГИСТР OPTION

98 BANK1

0202 1683 M BSF STATUS, RP0

0203 1303 M BCF STATUS, RP1

0204 3084 99 MOVLW B'10 000 100'; ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ОТКЛЮЧЕНЫ, ВНЕШНЕЕ ПРЕРЫВАНИЕ ПО СПАДУ

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 3

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

0205 0081 100 MOVWF OPTION_REG; ВНУТРЕННИЙ ТГ, ПРЕДДЕЛИТЕЛЬ ПЕРЕД TMR0, КОЭФФИЦИЕНТ 1/32

101 BANK0

0206 1283 M BCF STATUS, RP0

0207 1303 M BCF STATUS, RP1

102; -----------------------------------------------------

103; ПОРТЫ ВВОДА/ВЫВОДА

104 BANK1

0208 1683 M BSF STATUS, RP0

0209 1303 M BCF STATUS, RP1

020A 303 °F 105 MOVLW B'111 111'

020B 0085 106 MOVWF TRISA

020C 3001 107 MOVLW B'1'

020D 0086 108 MOVWF TRISB

020E 3098 109 MOVLW B'10 011 000'

020 °F 0087 110 MOVWF TRISC

0210 0188 111 CLRF TRISD

0211 3003 112 MOVLW B'11'

0212 0089 113 MOVWF TRISE

114; -----------------------------------------------------

115; МОДУЛЬ АЦП

0213 3004 116 MOVLW B'100'; ЛЕВОЕ ВЫРАВНИВАНИЕ, RA0 — RA2 — АНАЛОГОВЫЕ ВХОДЫ

0214 009 °F 117 MOVWF ADCON1

118 BANK0

0215 1283 M BCF STATUS, RP0

0216 1303 M BCF STATUS, RP1

0217 3081 119 MOVLW B'10 000 001'; ТАКТОВЫЙ СИГНАЛ Fosc/32, МОДУЛЬ ВКЛЮЧЕН

0218 009 °F 120 MOVWF ADCON1

121; -----------------------------------------------------

122; ТАЙМЕР TMR1

0219 300B 123 MOVLW 0x0B; ЗАНЕСТИ В TMR1 D'3036'

021A 008 °F 124 MOVWF TMR1H

021B 30DC 125 MOVLW 0xDC

021C 008E 126 MOVWF TMR1L

021D 3031 127 MOVLW B'110 001'; ПРЕДДЕЛИТЕЛЬ 1/8, ВНУТРЕННИЙ ТАКТОВЫЙ СИГНАЛ, ТАЙМЕР ВКЛЮЧЕН

021E 0090 128 MOVWF T1CON

129; -----------------------------------------------------

130; МОДУЛЬ USART

021 °F 3090 131 MOVLW B'10 010 000'; МОДУЛЬ ВКЛЮЧЕН, 8-РАЗРЯДНЫЙ ПРИЕМ, ПРИЕМ РАЗРЕШЕН

0220 0098 132 MOVWF RCSTA

133 BANK1

0221 1683 M BSF STATUS, RP0

0222 1303 M BCF STATUS, RP1

0223 3020 134 MOVLW B'100 000'; 8-РАЗРЯДНАЯ ПЕРЕДАЧА, АСИНХРОННЫЙ РЕЖИМ, ПЕРЕДАЧА РАЗРЕШЕНА,

0224 0098 135 MOVWF TXSTA; НИЗКОСКОРОСТНОЙ РЕЖИМ

0225 3081 136 MOVLW D'129'; СКОРОСТЬ 9600 БИТ/С

0226 0099 137 MOVWF SPBRG

138; -----------------------------------------------------

139; МОДУЛЬ MSSP

0227 3080 140 MOVLW B'10 000 000'; УПРАВЛЕНИЕ ДЛИТЕЛНОСТЬЮ ФРОНТА ВЫКЛЮЧЕНО, ВХОДНЫЕ УРОВНИ

0228 0094 141 MOVWF SSPSTAT; СООТВЕТСТВУЮТ I2C

0229 3008 142 MOVLW B'1 000'; ПРИЕМ РАЗРЕШЕН

022A 0091 143 MOVWF SSPCON2

022B 3031 144 MOVLW D'49'; ТАКТОВАЯ ЧАСТОТА 100кГц

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 4

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

022C 0093 145 MOVWF SSPADD

146 BANK0

022D 1283 M BCF STATUS, RP0

022E 1303 M BCF STATUS, RP1

022 °F 3028 147 MOVLW B'101 000'; МОДУЛЬ ВКЛЮЧЕН, ВЕДУЩИЙ РЕЖИМ I2C

0230 0094 148 MOVWF SSPCON

149; -----------------------------------------------------

150; ПРЕРЫВАНИЯ

0231 3070 151 MOVLW B'1 110 000'; РАЗРЕШЕНЫ ПРЕРЫВАНИЯ ОТ TMR0, ПЕРЕФЕРИЙНЫХ МОДУЛЕЙ И ПО ВХОДУ INT

0232 008B 152 MOVWF INTCON

0233 3021 153 MOVLW B'100 001'; РАЗРЕШЕНЫ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART И TMR1

154 BANK1

0234 1683 M BSF STATUS, RP0

0235 1303 M BCF STATUS, RP1

0236 008C 155 MOVWF PIE1

0237 018D 156 CLRF PIE2

157 BANK0

0238 1283 M BCF STATUS, RP0

0239 1303 M BCF STATUS, RP1

023A 018C 158 CLRF PIR1

023B 018D 159 CLRF PIR2

023C 178B 160 BSF INTCON, GIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ

161; -----------------------------------------------------

023D 162 MAIN; ОСНОВНАЯ ПРОГРАММА

163; ПРЕОБРАЗОВАНИЕ АНАЛОГОВЫХ СИГНАЛОВ

023D 119 °F 164 BCF ADCON0, CHS0; ВЫБОР КАНАЛА AN0

023E 151 °F 165 BSF ADCON0, GO; НАЧАТЬ ПРЕОБРАЗОВАНИЕ

023 °F 159 °F 166 BSF ADCON0, CHS0; ВЫБОР КАНАЛА AN1

0240 191 °F 167 BTFSC ADCON0, GO; ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ

0241 2A40 168 GOTO $-1

0242 081E 169 MOVF ADRESH, W; СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ (СТАРШИЕ 8 БИТ)

0243 00A2 170 MOVWF N1

0244 151 °F 171 BSF ADCON0, GO; НАЧАТЬ ПРЕОБРАЗОВАНИЕ

0245 119 °F 172 BCF ADCON0, CHS0; ВЫБОР КАНАЛА AN0

0246 191 °F 173 BTFSC ADCON0, GO; ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ

0247 2A46 174 GOTO $-1

0248 081E 175 MOVF ADRESH, W; СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ (СТАРШИЕ 8 БИТ)

0249 00A3 176 MOVWF N2

024A 22C3 177 CALL CALC_Y4; ПЕРЕХОД НА ПОДПРОГРАММУ ВЫЧИСЛЕНИЯ Y4

024B 2301 178 CALL CALC_Y1; ПЕРЕХОД НА ПОДПРОГРАММУ ВЫЧИСЛЕНИЯ Y1

024C 22EF 179 CALL COMP_N_Q; ПЕРЕХОД НА ПОДПРОГРАММУ ВЫЧИСЛЕНИЯ N И СРАВНЕНИЯ С Q

180; ВЫВОД НА ИНДИКАЦИЮ

024D 1CB6 181 BTFSS CONTROL, 1; ТУМБЛЕР «УПРАВЛЕНИЕ ВЫВОДОМ НА ИНДИКАЦИЮ» ВКЛЮЧЕН?

024E 2A51 182 GOTO $+3

024 °F 0822 183 MOVF N1, W; НЕТ — КОПИРОВАНИЕ N1 В IN_BD

0250 2A52 184 GOTO $+2

0251 0825 185 MOVF Y4, W; ДА — КОПИРОВАНИЕ Y4 В IN_BD

0252 00BF 186 MOVWF IN_BD

0253 230C 187 CALL BIN_DEC; ДВОИЧНО-ДЕСЯТИЧНАЯ КОРРЕКЦИЯ

0254 082A 188 MOVF X1, W; КОПИРОВАНИЕ ЗНАЧЕНИЙ X1 — X5, Y1 — Y3 В, БИТЫ РЕГИСТР LED4

0255 00BB 189 MOVWF LED4

0256 0DBB 190 RLF LED4, F

0257 082B 191 MOVF X2, W

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 5

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

0258 04BB 192 IORWF LED4, F

0259 0DBB 193 RLF LED4, F

025A 082C 194 MOVF X3, W

025B 04BB 195 IORWF LED4, F

025C 0DBB 196 RLF LED4, F

025D 082D 197 MOVF X4, W

025E 04BB 198 IORWF LED4, F

025 °F 0DBB 199 RLF LED4, F

0260 082E 200 MOVF X5, W

0261 04BB 201 IORWF LED4, F

0262 0DBB 202 RLF LED4, F

0263 0829 203 MOVF Y1, W

0264 04BB 204 IORWF LED4, F

205

0265 1C28 206 BTFSS Y2

0266 2A6A 207 GOTO $+4

0267 173B 208 BSF LED4,6

0268 13BB 209 BCF LED4,7

0269 2A6C 210 GOTO $+3

026A 133B 211 BCF LED4,6

026B 17BB 212 BSF LED4,7

213; ФОРМИРВАНИЕ ВЫХОДНЫХ СИГНАЛОВ

214; ---------------------

215; ВЫВОД СИГНАЛА Y4 НА ЦАП

216 BANK1

026C 1683 M BSF STATUS, RP0

026D 1303 M BCF STATUS, RP1

026E 1411 217 BSF SSPCON2, SEN; СФОРМИРОВАТЬ БИТ START

026 °F 1811 218 BTFSC SSPCON2, SEN; ОЖИДАНИЕ ОКОНЧАНИЯ ФОРМИРОВАНИЯ БИТА START

0270 2A6 °F 219 GOTO $-1

220 BANK0

0271 1283 M BCF STATUS, RP0

0272 1303 M BCF STATUS, RP1

0273 3018 221 MOVLW WR_DAC; ПЕРЕДАТЬ АДРЕС ЦАП НА ШИНЕ I2C

0274 0093 222 MOVWF SSPBUF

0275 0830 223 MOVF DACL, W

224 BANK1

0276 1683 M BSF STATUS, RP0

0277 1303 M BCF STATUS, RP1

0278 1F11 225 BTFSS SSPCON2, ACKSTAT; ОЖИДАНИЕ ПОДТВЕРЖДЕНИЯ

0279 2A78 226 GOTO $-1

227 BANK0

027A 1283 M BCF STATUS, RP0

027B 1303 M BCF STATUS, RP1

027C 0093 228 MOVWF SSPBUF; ПЕРЕДАТЬ МЛАДШИЙ БАЙТ ДАННЫХ

027D 0830 229 MOVF DACL, W

230 BANK1

027E 1683 M BSF STATUS, RP0

027 °F 1303 M BCF STATUS, RP1

0280 1F11 231 BTFSS SSPCON2, ACKSTAT; ОЖИДАНИЕ ПОДТВЕРЖДЕНИЯ

0281 2A80 232 GOTO $-1

233 BANK0

0282 1283 M BCF STATUS, RP0

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 6

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

0283 1303 M BCF STATUS, RP1

0284 0093 234 MOVWF SSPBUF; ПЕРЕДАТЬ СТАРШИЙ БАЙТ ДАННЫХ

235 BANK1

0285 1683 M BSF STATUS, RP0

0286 1303 M BCF STATUS, RP1

0287 1F11 236 BTFSS SSPCON2, ACKSTAT; ОЖИДАНИЕ ПОДТВЕРЖДЕНИЯ

0288 2A87 237 GOTO $-1

0289 1511 238 BSF SSPCON2, PEN; СФОРМИРОВАТЬ БИТ STOP

239 BANK0

028A 1283 M BCF STATUS, RP0

028B 1303 M BCF STATUS, RP1

240; ФОРМИРОВАНИЕ СИГНАЛОВ Y1 — Y3

028C 138B 241 BCF INTCON, GIE; ЗАПРЕТ ПРЕРЫВАНИЙ

028D 1C29 242 BTFSS Y1,0

028E 2A9E 243 GOTO $+10

244

028 °F 1486 245 BSF PORTB, 1; ФОРМИРОВАНИЕ ИМПУЛЬСА ДЛИТЕЛЬНОСТЬЮ 430мкс

0290 3027 246 MOVLW D'39'

0291 00C3 247 MOVWF COUNTER1

0292 0BBE 248 DECFSZ COUNTER, F

0293 2A92 249 GOTO $-1

0294 3010 250 MOVLW D'16'

0295 00BE 251 MOVWF COUNTER

0296 0BC3 252 DECFSZ COUNTER1, F

0297 2A92 253 GOTO $-5

0298 1086 254 BCF PORTB, 1

255

0299 1C28 256 BTFSS Y2

029A 2AA6 257 GOTO $+0C

258

029B 1506 259 BSF PORTB, 2; ФОРМИРОВАНИЕ ИМПУЛЬСА ДЛИТЕЛЬНОСТЬЮ 740мкс

029C 3005 260 MOVLW D'5'

029D 00C3 261 MOVWF COUNTER1

029E 0BBE 262 DECFSZ COUNTER, F

029 °F 2A9E 263 GOTO $-1

02A0 30F4 264 MOVLW D'244'

02A1 00BE 265 MOVWF COUNTER

02A2 0BC3 266 DECFSZ COUNTER1, F

02A3 2A9E 267 GOTO $-5

02A4 1106 268 BCF PORTB, 2

02A5 2AB0 269 GOTO $+0B

270

02A6 1506 271 BSF PORTB, 2; ФОРМИРОВАНИЕ ИМПУЛЬСА ДЛИТЕЛЬНОСТЬЮ 180мкс

02A7 3028 272 MOVLW D'40'

02A8 00C3 273 MOVWF COUNTER1

02A9 0BBE 274 DECFSZ COUNTER, F

02AA 2AA9 275 GOTO $-1

02AB 3005 276 MOVLW D'5'

02AC 00BE 277 MOVWF COUNTER

02AD 0BC3 278 DECFSZ COUNTER1, F

02AE 2AA9 279 GOTO $-5

02AF 1106 280 BCF PORTB, 2

281

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 7

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

02B0 178B 282 BSF INTCON, GIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ

283

284; ОПРОС ТУМБЛЕРА «ОСТАНОВ»

02B1 1C36 285 BTFSS CONTROL, 0

02B2 2A3D 286 GOTO MAIN

287; ФОРМИРОВАНИЕ СИГНАЛА «ОСТАНОВ» (Y5)

02B3 3031 288 MOVLW D'49'

02B4 1586 289 BSF PORTB, 3; ФОРМИРОВАНИЕ 1-ГО ИМПУЛЬСА

02B5 00BE 290 MOVWF COUNTER

02B6 0BBE 291 DECFSZ COUNTER, F

02B7 2AB6 292 GOTO $-1

02B8 1186 293 BCF PORTB, 3; ФОРМИРОВАНИЕ ИНТЕРВАЛА

02B9 00BE 294 MOVWF COUNTER

02BA 0BBE 295 DECFSZ COUNTER, F

02BB 2ABA 296 GOTO $-1

02BC 1586 297 BSF PORTB, 3; ФОРМИРОВАНИЕ 2-ГО ИМПУЛЬСА

02BD 00BE 298 MOVWF COUNTER

02BE 0BBE 299 DECFSZ COUNTER, F

02BF 2ABE 300 GOTO $-1

02C0 1186 301 BCF PORTB, 3; СБРОС ВЫХОДА

02C1 0063 302 SLEEP; ПЕРЕХОД В СПЯЩИЙ РЕЖИМ

02C2 2A3D 303 GOTO MAIN

304; -----------------------------------------------------

02C3 305 CALC_Y4; ПОДПРОГРАММА ВЫЧИСЛЕНИЯ Y4

306; ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ A1 И N3

02C3 01A5 307 CLRF Y4

02C4 0821 308 MOVF A1, W

02C5 1003 309 BCF STATUS, C

310 MULT 0

02C6 1821 M BTFSC A1,0

02C7 07A5 M ADDWF Y4, F

02C8 0CA5 M RRF Y4, F

02C9 1003 M BCF STATUS, C

311 MULT 1

02CA 18A1 M BTFSC A1,1

02CB 07A5 M ADDWF Y4, F

02CC 0CA5 M RRF Y4, F

02CD 1003 M BCF STATUS, C

312 MULT 2

02CE 1921 M BTFSC A1,2

02CF 07A5 M ADDWF Y4, F

02D0 0CA5 M RRF Y4, F

02D1 1003 M BCF STATUS, C

313 MULT 3

02D2 19A1 M BTFSC A1,3

02D3 07A5 M ADDWF Y4, F

02D4 0CA5 M RRF Y4, F

02D5 1003 M BCF STATUS, C

314 MULT 4

02D6 1A21 M BTFSC A1,4

02D7 07A5 M ADDWF Y4, F

02D8 0CA5 M RRF Y4, F

02D9 1003 M BCF STATUS, C

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 8

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

315 MULT 5

02DA 1AA1 M BTFSC A1,5

02DB 07A5 M ADDWF Y4, F

02DC 0CA5 M RRF Y4, F

02DD 1003 M BCF STATUS, C

316 MULT 6

02DE 1B21 M BTFSC A1,6

02DF 07A5 M ADDWF Y4, F

02E0 0CA5 M RRF Y4, F

02E1 1003 M BCF STATUS, C

317 MULT 7

02E2 1BA1 M BTFSC A1,7

02E3 07A5 M ADDWF Y4, F

02E4 0CA5 M RRF Y4, F

02E5 1003 M BCF STATUS, C

318; ВЫЧИСЛЕНИЕ СУММЫ РЕЗУЛЬТАТА ПРОИЗВЕДЕНИЯ И A0

02E6 0820 319 MOVF A0, W

02E7 07A5 320 ADDWF Y4, F

321; ФОРМИРОВАНИЕ ДАННЫХ ДЛЯ ЦАП (DACH = 0 0 0 0 D7 D6 D5 D4, DACL = D3 D2 D1 D0 0 0 0 0)

02E8 0E25 322 SWAPF Y4, W

02E9 39F0 323 ANDLW B'11 110 000'

02EA 00B0 324 MOVWF DACL

02EB 0E25 325 SWAPF Y4, W

02EC 390 °F 326 ANDLW B'1 111'

02ED 00B1 327 MOVWF DACH

02EE 0008 328 RETURN; ВОЗВРАТ ИЗ ПОДПРОГРАММЫ

329; -----------------------------------------------------

02EF 330 COMP_N_Q; ПОДПРОГРАММА ВЫЧИСЛЕНИЯ N И СРАВНЕНИЯ С Q

02EF 0823 331 MOVF N2, W

02F0 0222 332 SUBWF N1, W

02F1 1C03 333 BTFSS STATUS, C

02F2 2AFE 334 GOTO M1

02F3 00A6 335 MOVWF N

02F4 0827 336 MOVF K, W

02F5 0226 337 SUBWF N, W

02F6 1C03 338 BTFSS STATUS, C

02F7 2AFE 339 GOTO M1

02F8 3C0A 340 SUBLW Q

02F9 1C03 341 BTFSS STATUS, C

02FA 2AFE 342 GOTO M1

02FB 14A8 343 BSF Y3

02FC 1028 344 BCF Y2

02FD 0008 345 RETURN

02FE 346 M1

02FE 10A8 347 BCF Y3

02FF 1428 348 BSF Y2

0300 0008 349 RETURN

350; -----------------------------------------------------

0301 351 CALC_Y1

0301 082E 352 MOVF X5, W

0302 05AC 353 ANDWF X3, F

0303 092D 354 COMF X4, W

0304 05AE 355 ANDWF X5, F

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 9

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

0305 082A 356 MOVF X1, W

0306 042B 357 IORWF X2, W

0307 062A 358 XORWF X1, W

0308 062C 359 XORWF X3, W

0309 042E 360 IORWF X5, W

030A 00A9 361 MOVWF Y1

030B 0008 362 RETURN

363; -----------------------------------------------------

030C 364 BIN_DEC; ПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ ДВОИЧНОГО ЧИСЛА В ДЕСЯТИЧНОЕ

030C 01B8 365 CLRF LED1; ОЧИСТКА РЕГИСТРОВ ИНДИКАЦИИ

030D 01B9 366 CLRF LED2

030E 01BA 367 CLRF LED3

368

369; ЦИКЛ ВЫЧИСЛЕНИЯ 3-ГО РАЗРЯДА

030 °F 083 °F 370 MOVF IN_BD, W; СОХРАНИТЬ ЗНАЧЕНИЕ ВХОДНОГО РЕГИСТРА

0310 00C0 371 MOVWF BUF_BD

0311 3064 372 MOVLW 0×64

0312 02BF 373 SUBWF IN_BD, F; ВЫЧЕСТЬ 100d ИЗ IN_BD

0313 1803 374 BTFSC STATUS, C; БЫЛ ЗАЕМ

0314 2B19 375 GOTO $+5; ДА — ИДТИ НА ВЫЧИСЛЕНИЕ 2-ГО РАЗРЯДА

0315 0ABA 376 INCF LED3, F; НЕТ — ИНКРЕМЕНТИРОВАТЬ 3-Й РАЗРЯД

0316 083 °F 377 MOVF IN_BD, W; СОХРАНИТЬ ЗНАЧЕНИЕ ВХОДНОГО РЕГИСТРА

0317 00C0 378 MOVWF BUF_BD

0318 2B0 °F 379 GOTO $-9; ПОВТОРИТЬ ЦИКЛ ВЫЧИСЛЕНИЯ 3-ГО РАЗРЯДА

380

381; ЦИКЛ ВЫЧИСЛЕНИЯ 2-ГО РАЗРЯДА

0319 0840 382 MOVF BUF_BD, W; ВОССТАНОВИТЬ ЗНАЧЕНИЕ IN_BD

031A 00BF 383 MOVWF IN_BD

031B 300A 384 MOVLW 0x0A

031C 02BF 385 SUBWF IN_BD, F; ВЫЧЕСТЬ 10d ИЗ IN_BD

031D 1803 386 BTFSC STATUS, C; БЫЛ ЗАЕМ

031E 2B22 387 GOTO $+4; НЕТ — ИДТИ ВЫЧИСЛЕНИЕ 2-ГО РАЗРЯДА

031 °F 0840 388 MOVF BUF_BD, W; ДА — ПЕРЕПИСАТЬ ЗНАЧЕНИЕ BUF_BD В LED1

0320 00B8 389 MOVWF LED1

0321 0008 390 RETURN; ВЕРНУТЬСЯ ИЗ ПОДПРОГРАММЫ

391

0322 0AB9 392 INCF LED2, F; ИНКРЕМЕНТИРОВАТЬ 2-Й РАЗРЯД

0323 083 °F 393 MOVF IN_BD, W; СОХРАНИТЬ ЗНАЧЕНИЕ IN_BD

0324 00C0 394 MOVWF BUF_BD

0325 2B1B 395 GOTO $-0A; ПОВТОРИТЬ ЦИКЛ ВЫЧИСЛЕНИЯ 2-ГО РАЗРЯДА

396; --------------------------------------

397

0004 398 ORG 0×04; ВЕКТОР ПРЕРЫВАНИЯ

399; -----------------------------------------------------

400; СОХРАНЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА STATUS

0004 1E83 401 BTFSS STATUS, RP0; ОПРЕДЕЛЕНИЕ ТЕКУЩЕГО БАНКА

0005 280C 402 GOTO RP0_CLR

0006 1283 403 BCF STATUS, RP0; УСТАНОВИТЬ БАНК 0

0007 00B2 404 MOVWF W_TEMP; СОХРАНИТЬ АККУМУЛЯТОР

0008 0E03 405 SWAPF STATUS, W

0009 00B3 406 MOVWF STATUS_TEMP; СОХРАНИТЬ РЕГИСТР STATUS

000A 16B3 407 BSF STATUS_TEMP, 5; ВОССТАНОВИТЬ ЗНАЧЕНИЕ БИТА RP0

000B 280 °F 408 GOTO $+4

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 10

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

000C 409 RP0_CLR

000C 00B2 410 MOVWF W_TEMP; СОХРАНИТЬ АККУМУЛЯТОР

000D 0E03 411 SWAPF STATUS, W

000E 00B3 412 MOVWF STATUS_TEMP; СОХРАНИТЬ РЕГИСТР STATUS

413; -----------------------------------------------------------------

414; ОПРЕДЕЛЕНИЕ ИСТОЧНИКА ПРЕРЫВАНИЯ

000 °F 415 INT_SOURCE

000 °F 188B 416 BTFSC INTCON, INTF

0010 2887 417 GOTO INT_INT

418

0011 190B 419 BTFSC INTCON, T0IF

0012 2818 420 GOTO INT_TMR0

421

0013 180C 422 BTFSC PIR1, TMR1IF

0014 28E2 423 GOTO INT_TMR1

424

0015 1A8C 425 BTFSC PIR1, RCIF

0016 28CE 426 GOTO INT_RC

0017 2959 427 GOTO END_INT; ИНАЧЕ ПЕРЕХОД НА ПОДПРОГРАММУ ВОССТАНОВЛЕНИЯ

428; КОНТЕКСТА

429; -----------------------------------------------------------------

0018 430 INT_TMR0; ОБРАБОТЧИК ПРЕРЫВАНИЙ ОТ TMR0

0018 3060 431 MOVLW CTMR0; ПЕРЕЗАГРУЗКА TMR0

0019 0081 432 MOVWF TMR0

001A 110B 433 BCF INTCON, T0IF; СБРОС ФЛАГА ПРЕРЫВАНИЯ

434; СЧИТЫВАНИЕ ИНФОРМАЦИИ С ЦИФРОВЫХ ДАТЧИКОВ И ЭЛЕМЕНТОВ ПУЛЬТА УПРАВЛЕНИЯ

001B 3004 435 MOVLW 0×04

001C 0234 436 SUBWF IN_ADR, W

001D 1C03 437 BTFSS STATUS, C

001E 2828 438 GOTO M2

439; СЧИТЫВАНИЕ ИНФОРМАЦИИ С ДАТЧИКОВ

001 °F 3029 440 MOVLW 0×29

0020 0734 441 ADDWF IN_ADR, W

0021 0084 442 MOVWF FSR

0022 1D05 443 BTFSS PORTA, 2

0023 2826 444 GOTO $+3

0024 1400 445 BSF INDF, 0

0025 284 °F 446 GOTO M3

0026 1000 447 BCF INDF, 0

0027 284 °F 448 GOTO M3

449; СЧИТЫВАНИЕ ИНФОРМАЦИИ С ТУМБЛЕРОВ УСТАВКИ

0028 450 M2

0028 300C 451 MOVLW 0x0C

0029 0234 452 SUBWF IN_ADR, W

002A 1C03 453 BTFSS STATUS, C

002B 2837 454 GOTO M4

455

002C 0DB5 456 RLF K_SHIFT, F

002D 1D05 457 BTFSS PORTA, 2

002E 2831 458 GOTO $+3

002 °F 1435 459 BSF K_SHIFT, 0

0030 2832 460 GOTO $+2

0031 1035 461 BCF K_SHIFT, 0

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 11

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

0032 1D03 462 BTFSS STATUS, Z

0033 284 °F 463 GOTO M3

0034 0835 464 MOVF K_SHIFT, W

0035 00A7 465 MOVWF K

0036 284 °F 466 GOTO M3

467; СЧИТЫВАНИЕ ИНФОРММАЦИИ С ТУМБЛЕРОВ «ВЫБОР РЕГИСТРА ИНДИКАЦИИ»

468;И «ОСТАНОВ»

0037 469 M4

0037 300D 470 MOVLW 0x0D

0038 0634 471 XORWF IN_ADR, W

0039 1D03 472 BTFSS STATUS, Z

003A 2841 473 GOTO $+7

003B 1D05 474 BTFSS PORTA, 2

003C 283 °F 475 GOTO $+3

003D 1436 476 BSF CONTROL, 0

003E 284 °F 477 GOTO M3

003 °F 1036 478 BCF CONTROL, 0

0040 284 °F 479 GOTO M3

480

0041 300E 481 MOVLW 0x0E

0042 0634 482 XORWF IN_ADR, W

0043 1D03 483 BTFSS STATUS, Z

0044 284B 484 GOTO M5

0045 1D05 485 BTFSS PORTA, 2

0046 2849 486 GOTO $+3

0047 14B6 487 BSF CONTROL, 1

0048 284 °F 488 GOTO M3

0049 10B6 489 BCF CONTROL, 1

004A 284 °F 490 GOTO M3

491; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА

004B 492 M5

004B 01B4 493 CLRF IN_ADR

004C 300 °F 494 MOVLW 0x0F

004D 0586 495 ANDWF PORTB, F; ОБНУЛИТЬ ЛИНИИ АДРЕСА RB4 — RB7

004E 2854 496 GOTO OUT_IND

497; УСТАНОВКА АДРЕСА ВХОДА

004 °F 498 M3

004 °F 0AB4 499 INCF IN_ADR, F; ИНКРЕМЕНТИРОВАТЬ РЕГИСТР АДРЕСА

0050 300 °F 500 MOVLW 0x0F

0051 0586 501 ANDWF PORTB, F; ОБНУЛИТЬ ЛИНИИ АДРЕСА RB4 — RB7

0052 0E34 502 SWAPF IN_ADR, W; ПОМЕСТИТЬ МЛАДШУЮ ТЕТРАДУ IN_ADR В СТАРШУЮ ТЕТРАДУ W

0053 0486 503 IORWF PORTB, F; ВЫВЕСТИ СТАРШУЮ ТЕТРАДУ W В PORTB

504

505; ВЫВОД НА ИНДИКАЦИЮ

0054 506 OUT_IND

0054 0BB7 507 DECFSZ DIV_IND; ДЕКРЕМЕНТИРОВАТЬ ДЕЛИТЕЛЬ

0055 2959 508 GOTO END_INT

0056 300A 509 MOVLW D'10'

0057 00B7 510 MOVWF DIV_IND

511

0058 3002 512 MOVLW 0×02

0059 023C 513 SUBWF OUT_ADR, W

005A 1C03 514 BTFSS STATUS, C

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 12

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

005B 2864 515 GOTO M7

516; ВЫВОД НА СЕМИСЕГМЕНТНЫЕ ИНДИКАТОРЫ

005C 517 M6

005C 3038 518 MOVLW 0×38

005D 073C 519 ADDWF OUT_ADR, W

005E 0084 520 MOVWF FSR

005 °F 0E00 521 SWAPF INDF, W

0060 043C 522 IORWF OUT_ADR, W

0061 0088 523 MOVWF PORTD

0062 0ABC 524 INCF OUT_ADR, F

0063 2877 525 GOTO AVAR_LED

526; ВЫВОД НА СВЕТОДИОДЫ

0064 527 M7

0064 300A 528 MOVLW 0x0A

0065 023C 529 SUBWF OUT_ADR, W

0066 1C03 530 BTFSS STATUS, C

0067 2875 531 GOTO M8

0068 1109 532 BCF PORTE, 2

0069 083C 533 MOVF OUT_ADR, W

006A 0088 534 MOVWF PORTD

006B 1C3B 535 BTFSS LED4,0

006C 286 °F 536 GOTO $+3

006D 0CBB 537 RRF LED4, F

006E 0ABC 538 INCF OUT_ADR, F

006 °F 1509 539 BSF PORTE, 2

0070 2877 540 GOTO AVAR_LED

0071 0CBB 541 RRF LED4, F

0072 0ABC 542 INCF OUT_ADR, F

0073 1109 543 BCF PORTE, 2

0074 2877 544 GOTO AVAR_LED

545; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА

0075 546 M8

0075 01BC 547 CLRF OUT_ADR

0076 285C 548 GOTO M6

549; УПРАВЛЕНИЕ СВЕТОДИОДОМ «АВАРИЯ»

0077 550 AVAR_LED

0077 1928 551 BTFSC AVAR

0078 287D 552 GOTO $+5

0079 1107 553 BCF PORTC, 2

007A 3032 554 MOVLW D'50'

007B 00BD 555 MOVWF DIV_AVAR

007C 2959 556 GOTO END_INT

557

007D 0BBD 558 DECFSZ DIV_AVAR, F

007E 2959 559 GOTO END_INT

007 °F 3032 560 MOVLW D'50'

0080 00BD 561 MOVWF DIV_AVAR

0081 1D07 562 BTFSS PORTC, 2

0082 2885 563 GOTO $+3

0083 1107 564 BCF PORTC, 2

0084 2959 565 GOTO END_INT

0085 1507 566 BSF PORTC, 2

0086 2959 567 GOTO END_INT

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 13

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

568; -----------------------------------------------------------------

0087 569 INT_INT; ОБРАБОТЧИК ПРЕРЫВАНИЙ ПО ВХОДУ INT

570; ОПРЕДЕЛЕНИЕ ИСТОЧНИКА ПРЕРВАНИЯ

0087 108B 571 BCF INTCON, INTF

0088 1C09 572 BTFSS PORTE, 0

0089 288 °F 573 GOTO PWR

008A 1C89 574 BTFSS PORTE, 1

008B 28A7 575 GOTO INT_AVAR

008C 1E85 576 BTFSS PORTA, 5

008D 28AC 577 GOTO INT_OPER

008E 2959 578 GOTO END_INT

579; ПРЕРЫВАНИЕ ПРИ ОТКЛЮЧЕНИИ ПИТАНИЯ

008 °F 580 PWR

581; ПЕРЕДАЧА СИМВОЛА «!»

008 °F 3021 582 MOVLW '!'

0090 0099 583 MOVWF TXREG; НАЧАТЬ ПЕРЕДАЧУ СИМВОЛА

584; ФОРМИРОВАНИЕ СИГНАЛА Y5

0091 3031 585 MOVLW D'49'

0092 1586 586 BSF PORTB, 3; ФОРМИРОВАНИЕ 1-ГО ИМПУЛЬСА

0093 00BE 587 MOVWF COUNTER

0094 0BBE 588 DECFSZ COUNTER, F

0095 2894 589 GOTO $-1

0096 1186 590 BCF PORTB, 3; ФОРМИРОВАНИЕ ИНТЕРВАЛА

0097 00BE 591 MOVWF COUNTER

0098 0BBE 592 DECFSZ COUNTER, F

0099 2898 593 GOTO $-1

009A 1586 594 BSF PORTB, 3; ФОРМИРОВАНИЕ 2-ГО ИМПУЛЬСА

009B 00BE 595 MOVWF COUNTER

009C 0BBE 596 DECFSZ COUNTER, F

009D 289C 597 GOTO $-1

009E 1186 598 BCF PORTB, 3; СБРОС ВЫХОДА

599

600 BANK1

009 °F 1683 M BSF STATUS, RP0

00A0 1303 M BCF STATUS, RP1

00A1 1C98 601 BTFSS TXSTA, TRMT; ОЖИДАНИЕ ОКОНЧАНИЯ ПЕРЕДАЧИ

00A2 28A1 602 GOTO $-1

603 BANK0

00A3 1283 M BCF STATUS, RP0

00A4 1303 M BCF STATUS, RP1

00A5 0063 604 SLEEP; ПЕРЕХОД В СПЯЩИЙ РЕЖИМ

00A6 2959 605 GOTO END_INT

606

00A7 607 INT_AVAR; ПРЕРЫВАНИЕ ОТ ДАТЧИКА «АВАРИЙНЫЙ ОСТАНОВ»

00A7 1528 608 BSF AVAR

00A8 0822 609 MOVF N1, W

00A9 00BF 610 MOVWF IN_BD

00AA 230C 611 CALL BIN_DEC

00AB 2959 612 GOTO END_INT

613

614; ПРЕРЫВАНИЕ ОТ ПУЛЬТА ДУ

00AC 615 INT_OPER

00AC 0829 616 MOVF Y1, W; СКОПИРОВАТЬ ЗНАЧЕНИЕ Y1 В РЕГИСТР ИНДИКАЦИИ LED4

MPASM 5. 31 KURS. ASM 8−11−2009 2: 45:19 PAGE 14

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

00AD 00BB 617 MOVWF LED4

00AE 1C28 618 BTFSS Y2

00AF 28B2 619 GOTO $+3

00B0 10BB 620 BCF LED4,1; ЕСЛИ N < Q, LED4,1 = 0

00B1 28B3 621 GOTO $+2

00B2 14BB 622 BSF LED4,1; ИНАЧЕ LED4,1 = 1

623; ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ X1 AND X2 AND X3 AND X4

00B3 1C2A 624 BTFSS X1,0

00B4 28BD 625 GOTO M9

00B5 1C2B 626 BTFSS X2,0

00B6 28BD 627 GOTO M9

00B7 1C2C 628 BTFSS X3,0

00B8 28BD 629 GOTO M9

00B9 1C2D 630 BTFSS X4,0

00BA 28BD 631 GOTO M9

00BB 153B 632 BSF LED4,2

00BC 28BE 633 GOTO $+2

00BD 634 M9

00BD 113B 635 BCF LED4,2

636; ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ X1 OR X2 OR X3 OR X4

00BE 182A 637 BTFSC X1,0

00BF 28C8 638 GOTO M10

00C0 182B 639 BTFSC X2,0

00C1 28C8 640 GOTO M10

00C2 182C 641 BTFSC X3,0

00C3 28C8 642 GOTO M10

00C4 182D 643 BTFSC X4,0

00C5 28C8 644 GOTO M10

00C6 11BB 645 BCF LED4,3

00C7 28C9 646 GOTO $+2

00C8 647 M10

00C8 15BB 648 BSF LED4,3

649

650; ВЫДАЧА КОНСТАНТЫ Q НА ИНДИКАЦИЮ

00C9 300A 651 MOVLW Q

00CA 00BF 652 MOVWF IN_BD

00CB 230C 653 CALL BIN_DEC; ДВОИЧНО-ДЕСЯТИЧНАЯ КОРРЕКЦИЯ РЕЗУЛЬТАТА

00CC 178B 654 BSF INTCON, GIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ

00CD 2A3D 655 GOTO MAIN; ПЕРЕХОД НА НАЧАЛО ПРОГРАММЫ ОБРАБОТКИ

656; ПРЕРЫВАНИЕ ОТ

657

658; ПРЕРЫВАНИЕ ОТ ПРИЕМНИКА USART

00CE 659 INT_RC

00CE 081A 660 MOVF RCREG, W; ЧИТАТЬ БУФЕР ПРИЕМНИКА ДЛЯ СБРОСА ФЛАГА ПРЕРЫВАНИЯ

00CF 3044 661 MOVLW 'D'

00D0 061A 662 XORWF RCREG, W; СРАВНИТЬ СОДЕРЖИМОЕ RCREG С КОДОМ СИМВОЛА «D»

00D1 1D03 663 BTFSS STATUS, Z

00D2 28D5 664 GOTO $+3

ПоказатьСвернуть
Заполнить форму текущей работой