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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    243,15 Кб
  • Опубликовано:
    2013-11-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 (1)

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

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

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

Сигналы с аналоговых датчиков 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 равное младшему байту.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

входной 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

8192x14

386

20

33

8

USART, MSSP

3

4+WDT



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. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ ПУЛЬТА УПРАВЛЕНИЯ

.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 «Прерывание оператора», на светодиоды выводится следующая информация:- последнее значение Y1;- результат сравнения N > Q;

HL3 - значение выражения;- значение выражения;-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 с.

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

. Официальный сайт компании 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

ПРИЛОЖЕНИЕ

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

5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 1

LOC OBJECT CODE LINE SOURCE TEXT[215]: Processor superseded by command line. Verify processor symbol.

LIST P=16F874

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

00001 LIST

; P16F874.INC Standard Header File, Version 1.00 Microchip Technology, Inc.[301]: MESSAGE: (Processor-header file mismatch. Verify selected processor.)

LIST

ERRORLEVEL -302

00004 ERRORLEVEL -305

ERRORLEVEL -207

;----------------------------------------------------

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

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

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

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

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

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

00013 Y4 EQU 0x25;РЕГИСТР РЕЗУЛЬТАТА Y4

00014 N EQU 0x26

00015 K EQU 0x27;РЕГИСТР УСТАВКИ

00000028 00016 FLAG EQU 0x28

00017 Y1 EQU 0x29

A 00018 X1 EQU 0x2A

B 00019 X2 EQU 0x2B

C 00020 X3 EQU 0x2C

D 00021 X4 EQU 0x2D

0000002E 00022 X5 EQU 0x2E

F 00023 TEMP EQU 0x2F;РЕГИСТР ВРЕМЕННОГО ХРАНЕНИЯ РЕЗУЛЬТАТА

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

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

00000032 00026 W_TEMP EQU 0x32

00027 STATUS_TEMP EQU 0x33

00029 K_SHIFT EQU 0x35;СДВИГОВЫЙ РЕГИСТР УСТАВКИ

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

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

00000038 00032 LED1 EQU 0x38

00033 LED2 EQU 0x39

A 00034 LED3 EQU 0x3A

B 00035 LED4 EQU 0x3B

C 00036 OUT_ADR EQU 0x3C

D 00037 DIV_AVAR EQU 0x3D

E 00038 COUNTER EQU 0x3E

F 00039 IN_BD EQU 0x3F

00000040 00040 BUF_BD EQU 0x40

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

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

00043 COUNTER1 EQU 0x43

;----------------------------------------------------

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

#DEFINE Y2 FLAG,0

00047 #DEFINE Y3 FLAG,1

#DEFINE AVAR FLAG,25.31 KURS.ASM 8-11-2009 2:45:19 PAGE 2OBJECT CODE LINE SOURCE TEXT

;----------------------------------------------------

;КОНСТАНТЫ

00051 F EQU 1

00052 W EQU 0

A 00053 Q EQU 0x0A

00054 WR_DAC EQU B'00011000'

00055 CTMR0 EQU D'96'

;----------------------------------------------------

;МАКРОСЫ

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

BCF STATUS,RP0

BCF STATUS,RP1

ENDM

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

BSF STATUS,RP0

BCF STATUS,RP1

ENDM

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

BCF STATUS,RP0

BSF STATUS,RP1

ENDM

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

BSF STATUS,RP0

BSF STATUS,RP1

ENDM

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

BTFSC A1,BIT

ADDWF Y4,F

RRF Y4,F

BCF STATUS,C

00083 ENDM

;------------------------------------------------------

00085 ORG 0x00;ВЕКТОР СРОСА

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

00088 ORG 0x200;ВЕКТОР НАЧАЛА ПРОГРАММЫ

00089 START

;-----------------------------------------------------

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

;-----------------------------------------------------

;РОН

01B4 00094 CLRF IN_ADR

0201 01BC 00095 CLRF OUT_ADR

;-----------------------------------------------------

;РЕГИСТР OPTION

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

MPASM 5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 3OBJECT CODE LINE SOURCE TEXT

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

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

00102;-----------------------------------------------------

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

BANK1

1683 M BSF STATUS,RP0

0209 1303 M BCF STATUS,RP1

A 303F 00105 MOVLW B'00111111'

B 0085 00106 MOVWF TRISA

C 3001 00107 MOVLW B'00000001'

D 0086 00108 MOVWF TRISB

E 3098 00109 MOVLW B'10011000'

F 0087 00110 MOVWF TRISC

0188 00111 CLRF TRISD

3003 00112 MOVLW B'00000011'

0089 00113 MOVWF TRISE

;-----------------------------------------------------

;МОДУЛЬ АЦП

3004 00116 MOVLW B'00000100';ЛЕВОЕ ВЫРАВНИВАНИЕ, RA0 - RA2 - АНАЛОГОВЫЕ ВХОДЫ

009F 00117 MOVWF ADCON1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

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

009F 00120 MOVWF ADCON1

;-----------------------------------------------------

;ТАЙМЕР TMR1

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

A 008F 00124 MOVWF TMR1H

B 30DC 00125 MOVLW 0xDC

021C 008E 00126 MOVWF TMR1L

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

E 0090 00128 MOVWF T1CON

;-----------------------------------------------------

;МОДУЛЬ USART

F 3090 00131 MOVLW B'10010000';МОДУЛЬ ВКЛЮЧЕН, 8-РАЗРЯДНЫЙ ПРИЕМ, ПРИЕМ РАЗРЕШЕН

0220 0098 00132 MOVWF RCSTA

BANK1

1683 M BSF STATUS,RP0

0222 1303 M BCF STATUS,RP1

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

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

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

0099 00137 MOVWF SPBRG

;-----------------------------------------------------

;МОДУЛЬ MSSP

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

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

3008 00142 MOVLW B'00001000';ПРИЕМ РАЗРЕШЕН

A 0091 00143 MOVWF SSPCON2

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

MPASM 5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 4OBJECT CODE LINE SOURCE TEXT

C 0093 00145 MOVWF SSPADD

BANK0

D 1283 M BCF STATUS,RP0

E 1303 M BCF STATUS,RP1

F 3028 00147 MOVLW B'00101000';МОДУЛЬ ВКЛЮЧЕН, ВЕДУЩИЙ РЕЖИМ I2C

0230 0094 00148 MOVWF SSPCON

;-----------------------------------------------------

;ПРЕРЫВАНИЯ

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

008B 00152 MOVWF INTCON

3021 00153 MOVLW B'00100001';РАЗРЕШЕНЫ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART И TMR1

00154 BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

008C 00155 MOVWF PIE1

018D 00156 CLRF PIE2

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

A 018C 00158 CLRF PIR1

B 018D 00159 CLRF PIR2

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

;-----------------------------------------------------

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

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

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

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

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

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

2A40 00168 GOTO $-1

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

00A2 00170 MOVWF N1

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

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

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

2A46 00174 GOTO $-1

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

00A3 00176 MOVWF N2

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

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

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

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

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

024E 2A51 00182 GOTO $+3

F 0822 00183 MOVF N1,W;НЕТ - КОПИРОВАНИЕ N1 В IN_BD

2A52 00184 GOTO $+2

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

00BF 00186 MOVWF IN_BD

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

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

0255 00BB 00189 MOVWF LED4

0DBB 00190 RLF LED4,F

082B 00191 MOVF X2,W5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 5OBJECT CODE LINE SOURCE TEXT

04BB 00192 IORWF LED4,F

0DBB 00193 RLF LED4,F

A 082C 00194 MOVF X3,W

B 04BB 00195 IORWF LED4,F

C 0DBB 00196 RLF LED4,F

D 082D 00197 MOVF X4,W

E 04BB 00198 IORWF LED4,F

F 0DBB 00199 RLF LED4,F

082E 00200 MOVF X5,W

04BB 00201 IORWF LED4,F

0DBB 00202 RLF LED4,F

0829 00203 MOVF Y1,W

04BB 00204 IORWF LED4,F

1C28 00206 BTFSS Y2

2A6A 00207 GOTO $+4

173B 00208 BSF LED4,6

13BB 00209 BCF LED4,7

2A6C 00210 GOTO $+3

A 133B 00211 BCF LED4,6

B 17BB 00212 BSF LED4,7

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

;---------------------

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

00216 BANK1

C 1683 M BSF STATUS,RP0

D 1303 M BCF STATUS,RP1

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

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

0270 2A6F 00219 GOTO $-1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

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

0093 00222 MOVWF SSPBUF

0830 00223 MOVF DACL,W

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

0279 2A78 00226 GOTO $-1

BANK0

A 1283 M BCF STATUS,RP0

B 1303 M BCF STATUS,RP1

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

D 0830 00229 MOVF DACL,W

BANK1

E 1683 M BSF STATUS,RP0

F 1303 M BCF STATUS,RP1

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

2A80 00232 GOTO $-1

BANK0

1283 M BCF STATUS,RP05.31 KURS.ASM 8-11-2009 2:45:19 PAGE 6OBJECT CODE LINE SOURCE TEXT

1303 M BCF STATUS,RP1

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

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

0288 2A87 00237 GOTO $-1

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

BANK0

A 1283 M BCF STATUS,RP0

028B 1303 M BCF STATUS,RP1

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

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

028D 1C29 00242 BTFSS Y1,0

E 2A9E 00243 GOTO $+10

00244

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

0290 3027 00246 MOVLW D'39'

00C3 00247 MOVWF COUNTER1

0BBE 00248 DECFSZ COUNTER,F

2A92 00249 GOTO $-1

3010 00250 MOVLW D'16'

00BE 00251 MOVWF COUNTER

0BC3 00252 DECFSZ COUNTER1,F

2A92 00253 GOTO $-5

1086 00254 BCF PORTB,1

1C28 00256 BTFSS Y2

A 2AA6 00257 GOTO $+0C

00258

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

029C 3005 00260 MOVLW D'5'

D 00C3 00261 MOVWF COUNTER1

E 0BBE 00262 DECFSZ COUNTER,F

F 2A9E 00263 GOTO $-1

A0 30F4 00264 MOVLW D'244'

A1 00BE 00265 MOVWF COUNTER

A2 0BC3 00266 DECFSZ COUNTER1,F

A3 2A9E 00267 GOTO $-5

A4 1106 00268 BCF PORTB,2

A5 2AB0 00269 GOTO $+0B

00270

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

02A7 3028 00272 MOVLW D'40'

A8 00C3 00273 MOVWF COUNTER1

A9 0BBE 00274 DECFSZ COUNTER,F

AA 2AA9 00275 GOTO $-1

AB 3005 00276 MOVLW D'5'

AC 00BE 00277 MOVWF COUNTER

AD 0BC3 00278 DECFSZ COUNTER1,F

AE 2AA9 00279 GOTO $-5

AF 1106 00280 BCF PORTB,2

5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 7OBJECT CODE LINE SOURCE TEXT

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

00283

;ОПРОС ТУМБЛЕРА "ОСТАНОВ"

B1 1C36 00285 BTFSS CONTROL,0

B2 2A3D 00286 GOTO MAIN

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

B3 3031 00288 MOVLW D'49'

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

02B5 00BE 00290 MOVWF COUNTER

B6 0BBE 00291 DECFSZ COUNTER,F

02B7 2AB6 00292 GOTO $-1

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

02B9 00BE 00294 MOVWF COUNTER

BA 0BBE 00295 DECFSZ COUNTER,F

BB 2ABA 00296 GOTO $-1

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

BD 00BE 00298 MOVWF COUNTER

BE 0BBE 00299 DECFSZ COUNTER,F

BF 2ABE 00300 GOTO $-1

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

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

C2 2A3D 00303 GOTO MAIN

;-----------------------------------------------------

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

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

02C3 01A5 00307 CLRF Y4

C4 0821 00308 MOVF A1,W

C5 1003 00309 BCF STATUS,C

MULT 0

C6 1821 M BTFSC A1,0

C7 07A5 M ADDWF Y4,F

C8 0CA5 M RRF Y4,F

C9 1003 M BCF STATUS,C

MULT 1

CA 18A1 M BTFSC A1,1

CB 07A5 M ADDWF Y4,F

CC 0CA5 M RRF Y4,F

CD 1003 M BCF STATUS,C

MULT 2

CE 1921 M BTFSC A1,2

CF 07A5 M ADDWF Y4,F

D0 0CA5 M RRF Y4,F

D1 1003 M BCF STATUS,C

MULT 3

D2 19A1 M BTFSC A1,3

D3 07A5 M ADDWF Y4,F

D4 0CA5 M RRF Y4,F

D5 1003 M BCF STATUS,C

MULT 4

D6 1A21 M BTFSC A1,4

D7 07A5 M ADDWF Y4,F

D8 0CA5 M RRF Y4,F

D9 1003 M BCF STATUS,C5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 8OBJECT CODE LINE SOURCE TEXT

MULT 5

DA 1AA1 M BTFSC A1,5

DB 07A5 M ADDWF Y4,F

DC 0CA5 M RRF Y4,F

DD 1003 M BCF STATUS,C

MULT 6

DE 1B21 M BTFSC A1,6

DF 07A5 M ADDWF Y4,F

E0 0CA5 M RRF Y4,F

E1 1003 M BCF STATUS,C

MULT 7

E2 1BA1 M BTFSC A1,7

E3 07A5 M ADDWF Y4,F

E4 0CA5 M RRF Y4,F

02E5 1003 M BCF STATUS,C

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

02E6 0820 00319 MOVF A0,W

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

02E8 0E25 00322 SWAPF Y4,W

E9 39F0 00323 ANDLW B'11110000'

EA 00B0 00324 MOVWF DACL

EB 0E25 00325 SWAPF Y4,W

EC 390F 00326 ANDLW B'00001111'

ED 00B1 00327 MOVWF DACH

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

;-----------------------------------------------------

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

02EF 0823 00331 MOVF N2,W

F0 0222 00332 SUBWF N1,W

F1 1C03 00333 BTFSS STATUS,C

F2 2AFE 00334 GOTO M1

F3 00A6 00335 MOVWF N

F4 0827 00336 MOVF K,W

F5 0226 00337 SUBWF N,W

F6 1C03 00338 BTFSS STATUS,C

F7 2AFE 00339 GOTO M1

F8 3C0A 00340 SUBLW Q

F9 1C03 00341 BTFSS STATUS,C

FA 2AFE 00342 GOTO M1

FB 14A8 00343 BSF Y3

FC 1028 00344 BCF Y2

FD 0008 00345 RETURN

FE 00346 M1

FE 10A8 00347 BCF Y3

FF 1428 00348 BSF Y2

0008 00349 RETURN

;-----------------------------------------------------

00351 CALC_Y1

082E 00352 MOVF X5,W

05AC 00353 ANDWF X3,F

092D 00354 COMF X4,W

05AE 00355 ANDWF X5,F5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 9OBJECT CODE LINE SOURCE TEXT

082A 00356 MOVF X1,W

042B 00357 IORWF X2,W

062A 00358 XORWF X1,W

062C 00359 XORWF X3,W

042E 00360 IORWF X5,W

A 00A9 00361 MOVWF Y1

030B 0008 00362 RETURN

;-----------------------------------------------------

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

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

030D 01B9 00366 CLRF LED2

E 01BA 00367 CLRF LED3

00368

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

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

0310 00C0 00371 MOVWF BUF_BD

3064 00372 MOVLW 0x64

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

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

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

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

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

00C0 00378 MOVWF BUF_BD

2B0F 00379 GOTO $-9;ПОВТОРИТЬ ЦИКЛ ВЫЧИСЛЕНИЯ 3-ГО РАЗРЯДА

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

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

031A 00BF 00383 MOVWF IN_BD

B 300A 00384 MOVLW 0x0A

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

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

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

F 0840 00388 MOVF BUF_BD,W;ДА - ПЕРЕПИСАТЬ ЗНАЧЕНИЕ BUF_BD В LED1

00B8 00389 MOVWF LED1

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

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

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

00C0 00394 MOVWF BUF_BD

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

;--------------------------------------

00398 ORG 0x04;ВЕКТОР ПРЕРЫВАНИЯ

;-----------------------------------------------------

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

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

280C 00402 GOTO RP0_CLR

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

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

0008 0E03 00405 SWAPF STATUS,W

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

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

000B 280F 00408 GOTO $+45.31 KURS.ASM 8-11-2009 2:45:19 PAGE 10OBJECT CODE LINE SOURCE TEXT

C 00409 RP0_CLR

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

D 0E03 00411 SWAPF STATUS,W

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

00413;-----------------------------------------------------------------

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

F 00415 INT_SOURCE

000F 188B 00416 BTFSC INTCON,INTF

2887 00417 GOTO INT_INT

190B 00419 BTFSC INTCON,T0IF

2818 00420 GOTO INT_TMR0

180C 00422 BTFSC PIR1,TMR1IF

28E2 00423 GOTO INT_TMR1

1A8C 00425 BTFSC PIR1,RCIF

28CE 00426 GOTO INT_RC

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

;КОНТЕКСТА

;-----------------------------------------------------------------

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

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

0081 00432 MOVWF TMR0

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

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

001B 3004 00435 MOVLW 0x04

C 0234 00436 SUBWF IN_ADR,W

D 1C03 00437 BTFSS STATUS,C

E 2828 00438 GOTO M2

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

F 3029 00440 MOVLW 0x29

0020 0734 00441 ADDWF IN_ADR,W

0084 00442 MOVWF FSR

1D05 00443 BTFSS PORTA,2

2826 00444 GOTO $+3

1400 00445 BSF INDF,0

284F 00446 GOTO M3

1000 00447 BCF INDF,0

0027 284F 00448 GOTO M3

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

0028 00450 M2

300C 00451 MOVLW 0x0C

0234 00452 SUBWF IN_ADR,W

A 1C03 00453 BTFSS STATUS,C

B 2837 00454 GOTO M4

C 0DB5 00456 RLF K_SHIFT,F

D 1D05 00457 BTFSS PORTA,2

E 2831 00458 GOTO $+3

F 1435 00459 BSF K_SHIFT,0

2832 00460 GOTO $+2

1035 00461 BCF K_SHIFT,05.31 KURS.ASM 8-11-2009 2:45:19 PAGE 11OBJECT CODE LINE SOURCE TEXT

1D03 00462 BTFSS STATUS,Z

284F 00463 GOTO M3

0835 00464 MOVF K_SHIFT,W

00A7 00465 MOVWF K

0036 284F 00466 GOTO M3

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

;И "ОСТАНОВ"

00469 M4

300D 00470 MOVLW 0x0D

0038 0634 00471 XORWF IN_ADR,W

1D03 00472 BTFSS STATUS,Z

A 2841 00473 GOTO $+7

B 1D05 00474 BTFSS PORTA,2

C 283F 00475 GOTO $+3

D 1436 00476 BSF CONTROL,0

E 284F 00477 GOTO M3

F 1036 00478 BCF CONTROL,0

284F 00479 GOTO M3

300E 00481 MOVLW 0x0E

0634 00482 XORWF IN_ADR,W

1D03 00483 BTFSS STATUS,Z

284B 00484 GOTO M5

1D05 00485 BTFSS PORTA,2

2849 00486 GOTO $+3

14B6 00487 BSF CONTROL,1

284F 00488 GOTO M3

10B6 00489 BCF CONTROL,1

A 284F 00490 GOTO M3

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

B 00492 M5

B 01B4 00493 CLRF IN_ADR

C 300F 00494 MOVLW 0x0F

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

E 2854 00496 GOTO OUT_IND

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

F 00498 M3

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

300F 00500 MOVLW 0x0F

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

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

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

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

00506 OUT_IND

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

0055 2959 00508 GOTO END_INT

300A 00509 MOVLW D'10'

00B7 00510 MOVWF DIV_IND

3002 00512 MOVLW 0x02

023C 00513 SUBWF OUT_ADR,W

A 1C03 00514 BTFSS STATUS,C5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 12OBJECT CODE LINE SOURCE TEXT

VALUE

B 2864 00515 GOTO M7

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

005C 00517 M6

C 3038 00518 MOVLW 0x38

D 073C 00519 ADDWF OUT_ADR,W

E 0084 00520 MOVWF FSR

F 0E00 00521 SWAPF INDF,W

043C 00522 IORWF OUT_ADR,W

0088 00523 MOVWF PORTD

0ABC 00524 INCF OUT_ADR,F

2877 00525 GOTO AVAR_LED

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

00527 M7

300A 00528 MOVLW 0x0A

0065 023C 00529 SUBWF OUT_ADR,W

1C03 00530 BTFSS STATUS,C

2875 00531 GOTO M8

1109 00532 BCF PORTE,2

083C 00533 MOVF OUT_ADR,W

A 0088 00534 MOVWF PORTD

B 1C3B 00535 BTFSS LED4,0

C 286F 00536 GOTO $+3

D 0CBB 00537 RRF LED4,F

E 0ABC 00538 INCF OUT_ADR,F

F 1509 00539 BSF PORTE,2

2877 00540 GOTO AVAR_LED

0CBB 00541 RRF LED4,F

0ABC 00542 INCF OUT_ADR,F

0073 1109 00543 BCF PORTE,2

2877 00544 GOTO AVAR_LED

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

0075 00546 M8

01BC 00547 CLRF OUT_ADR

285C 00548 GOTO M6

00549;УПРАВЛЕНИЕ СВЕТОДИОДОМ "АВАРИЯ"

00550 AVAR_LED

1928 00551 BTFSC AVAR

0078 287D 00552 GOTO $+5

1107 00553 BCF PORTC,2

A 3032 00554 MOVLW D'50'

B 00BD 00555 MOVWF DIV_AVAR

C 2959 00556 GOTO END_INT

D 0BBD 00558 DECFSZ DIV_AVAR,F

E 2959 00559 GOTO END_INT

F 3032 00560 MOVLW D'50'

00BD 00561 MOVWF DIV_AVAR

1D07 00562 BTFSS PORTC,2

2885 00563 GOTO $+3

1107 00564 BCF PORTC,2

2959 00565 GOTO END_INT

1507 00566 BSF PORTC,2

2959 00567 GOTO END_INT5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 13OBJECT CODE LINE SOURCE TEXT

VALUE

;-----------------------------------------------------------------

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

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

108B 00571 BCF INTCON,INTF

0088 1C09 00572 BTFSS PORTE,0

288F 00573 GOTO PWR

A 1C89 00574 BTFSS PORTE,1

B 28A7 00575 GOTO INT_AVAR

C 1E85 00576 BTFSS PORTA,5

D 28AC 00577 GOTO INT_OPER

008E 2959 00578 GOTO END_INT

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

F 00580 PWR

;ПЕРЕДАЧА СИМВОЛА "!"

F 3021 00582 MOVLW '!'

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

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

3031 00585 MOVLW D'49'

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

0093 00BE 00587 MOVWF COUNTER

0BBE 00588 DECFSZ COUNTER,F

2894 00589 GOTO $-1

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

00BE 00591 MOVWF COUNTER

0BBE 00592 DECFSZ COUNTER,F

0099 2898 00593 GOTO $-1

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

009B 00BE 00595 MOVWF COUNTER

C 0BBE 00596 DECFSZ COUNTER,F

D 289C 00597 GOTO $-1

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

BANK1

F 1683 M BSF STATUS,RP0

A0 1303 M BCF STATUS,RP1

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

A2 28A1 00602 GOTO $-1

BANK0

A3 1283 M BCF STATUS,RP0

A4 1303 M BCF STATUS,RP1

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

A6 2959 00605 GOTO END_INT

00606

A7 00607 INT_AVAR;ПРЕРЫВАНИЕ ОТ ДАТЧИКА "АВАРИЙНЫЙ ОСТАНОВ"

00A7 1528 00608 BSF AVAR

A8 0822 00609 MOVF N1,W

A9 00BF 00610 MOVWF IN_BD

AA 230C 00611 CALL BIN_DEC

00AB 2959 00612 GOTO END_INT

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

AC 00615 INT_OPER

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

MPASM 5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 14OBJECT CODE LINE SOURCE TEXT

AD 00BB 00617 MOVWF LED4

AE 1C28 00618 BTFSS Y2

AF 28B2 00619 GOTO $+3

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

B1 28B3 00621 GOTO $+2

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

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

00B3 1C2A 00624 BTFSS X1,0

B4 28BD 00625 GOTO M9

B5 1C2B 00626 BTFSS X2,0

B6 28BD 00627 GOTO M9

B7 1C2C 00628 BTFSS X3,0

B8 28BD 00629 GOTO M9

B9 1C2D 00630 BTFSS X4,0

BA 28BD 00631 GOTO M9

BB 153B 00632 BSF LED4,2

BC 28BE 00633 GOTO $+2

BD 00634 M9

BD 113B 00635 BCF LED4,2

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

00BE 182A 00637 BTFSC X1,0

BF 28C8 00638 GOTO M10

C0 182B 00639 BTFSC X2,0

C1 28C8 00640 GOTO M10

C2 182C 00641 BTFSC X3,0

C3 28C8 00642 GOTO M10

C4 182D 00643 BTFSC X4,0

C5 28C8 00644 GOTO M10

C6 11BB 00645 BCF LED4,3

C7 28C9 00646 GOTO $+2

C8 00647 M10

C8 15BB 00648 BSF LED4,3

00649

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

C9 300A 00651 MOVLW Q

CA 00BF 00652 MOVWF IN_BD

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

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

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

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

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

CE 00659 INT_RC

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

CF 3044 00661 MOVLW 'D'

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

00D1 1D03 00663 BTFSS STATUS,Z

D2 28D5 00664 GOTO $+3

00D3 0829 00665 MOVF Y1,W;ЗАГРУЗИТЬ В АККУМУЛЯТОР ЗНАЧЕНИЕ Y1

00D4 28DA 00666 GOTO $+6

D5 3041 00667 MOVLW 'A'

00D6 061A 00668 XORWF RCREG,W;СРАВНИТЬ СОДЕРЖИМОЕ RCREG С КОДОМ СИМВОЛА "A"

00D7 1D03 00669 BTFSS STATUS,Z5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 15OBJECT CODE LINE SOURCE TEXT

D8 2959 00670 GOTO END_INT

D9 0825 00671 MOVF Y4,W;ЗАГРУЗИТЬ В АККУМУЛЯТОР ЗНАЧЕНИЕ Y4

BANK1

DA 1683 M BSF STATUS,RP0

DB 1303 M BCF STATUS,RP1

DC 1C98 00673 BTFSS TXSTA,TRMT;ОЖИДАНИЕ ОКОНЧАНИЯ ПЕРЕДАЧИ

DD 28DC 00674 GOTO $-1

BANK0

DF 1303 M BCF STATUS,RP1

E0 0099 00676 MOVWF TXREG;ПЕРЕДАТЬ ЗНАЧЕНИЕ

00E1 2959 00677 GOTO END_INT

;ПРЕРЫВАНИЕ ОТ ТАЙМЕРА TMR1

E2 00680 INT_TMR1

E2 1010 00681 BCF T1CON,TMR1ON;ОСТАНОВИТЬ ТАЙМЕР

E3 30DC 00682 MOVLW 0xDC

E4 008E 00683 MOVWF TMR1L;ЗАГРУЗИТЬ В TMR1 КОНСТАНТУ 3036d

00E5 300B 00684 MOVLW 0x0B

E6 008F 00685 MOVWF TMR1H

E7 1410 00686 BSF T1CON,TMR1ON;ЗАПУСТИТЬ ТАЙМЕР

00E8 0BC2 00687 DECFSZ COUNTL,F;ДЕКРЕМЕНТИРОВАТЬ СЧЕТЧИК-ФОРМИРОВАТЕЛЬ СЕКУНДНЫХ ИНТЕРВАЛОВ

00E9 2959 00688 GOTO END_INT

EA 300A 00689 MOVLW D'10'

00EB 00C2 00690 MOVWF COUNTL

EC 0BC1 00691 DECFSZ COUNTH,F;ДЕКРЕМЕНТИРОВАТЬ СЧЕТЧИК-ФОРМИРОВАТЕЛЬ МИНУТНЫХ ИНТЕРВАЛОВ

00ED 2959 00692 GOTO END_INT

EE 303C 00693 MOVLW D'60'

00EF 00C1 00694 MOVWF COUNTH

;ЗАПИСЬ ВО ВНЕШНЮЮ ПАМЯТЬ

00696 BANK1

F0 1683 M BSF STATUS,RP0

F1 1303 M BCF STATUS,RP1

F2 1411 00697 BSF SSPCON2,SEN;ФОРМИРОВАНИЕ БИТА START

F3 1C11 00698 BTFSS SSPCON2,SEN

F4 28F3 00699 GOTO $-1

BANK0

F5 1283 M BCF STATUS,RP0

F6 1303 M BCF STATUS,RP1

F7 30A0 00701 MOVLW B'10100000';ПЕРЕДАЧА АДРЕСА EEPROM НА ШИНЕ I2C

00F8 0093 00702 MOVWF SSPBUF

F9 0103 00703 CLRW;ЗАГРУЗКА НАЧАЛЬНОГО АДРЕСА 0x00

00704 BANK1

FA 1683 M BSF STATUS,RP0

FB 1303 M BCF STATUS,RP1

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

FD 28FC 00706 GOTO $-1

BANK0

FE 1283 M BCF STATUS,RP0

FF 1303 M BCF STATUS,RP1

0093 00708 MOVWF SSPBUF;ПЕРЕДАЧА НАЧАЛЬНОГО АДРЕСА

082A 00709 MOVF X1,W

BANK15.31 KURS.ASM 8-11-2009 2:45:19 PAGE 16OBJECT CODE LINE SOURCE TEXT

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

0105 2904 00712 GOTO $-1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

0093 00714 MOVWF SSPBUF;ЗАПИСЬ X1

082B 00715 MOVF X2,W

BANK1

A 1683 M BSF STATUS,RP0

B 1303 M BCF STATUS,RP1

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

D 290C 00718 GOTO $-1

BANK0

E 1283 M BCF STATUS,RP0

F 1303 M BCF STATUS,RP1

0093 00720 MOVWF SSPBUF;ЗАПИСЬ X2

082C 00721 MOVF X3,W

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

2914 00724 GOTO $-1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

0093 00726 MOVWF SSPBUF;ЗАПИСЬ X3

082D 00727 MOVF X4,W

BANK1

A 1683 M BSF STATUS,RP0

B 1303 M BCF STATUS,RP1

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

D 291C 00730 GOTO $-1

BANK0

E 1283 M BCF STATUS,RP0

F 1303 M BCF STATUS,RP1

0093 00732 MOVWF SSPBUF;ЗАПИСЬ X4

082E 00733 MOVF X5,W

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

2924 00736 GOTO $-1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

0093 00738 MOVWF SSPBUF;ЗАПИСЬ X5

0822 00739 MOVF N1,W

BANK1

A 1683 M BSF STATUS,RP0

B 1303 M BCF STATUS,RP1

C 1F11 00741 BTFSS SSPCON2,ACKSTAT;ОЖИДАНИЕ ПОДТВЕРЖДЕНИЯ5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 17OBJECT CODE LINE SOURCE TEXT

D 292C 00742 GOTO $-1

BANK0

E 1283 M BCF STATUS,RP0

F 1303 M BCF STATUS,RP1

0093 00744 MOVWF SSPBUF;ЗАПИСЬ N1

0823 00745 MOVF N2,W

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

2934 00748 GOTO $-1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

0093 00750 MOVWF SSPBUF;ЗАПИСЬ N2

0824 00751 MOVF N3,W

BANK1

A 1683 M BSF STATUS,RP0

B 1303 M BCF STATUS,RP1

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

D 293C 00754 GOTO $-1

BANK0

E 1283 M BCF STATUS,RP0

F 1303 M BCF STATUS,RP1

0093 00756 MOVWF SSPBUF;ЗАПИСЬ N3

0829 00757 MOVF Y1,W

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

2944 00760 GOTO $-1

BANK0

1283 M BCF STATUS,RP0

1303 M BCF STATUS,RP1

0093 00762 MOVWF SSPBUF;ЗАПИСЬ Y1

0825 00763 MOVF Y4,W

BANK1

A 1683 M BSF STATUS,RP0

B 1303 M BCF STATUS,RP1

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

D 294C 00766 GOTO $-1

BANK0

E 1283 M BCF STATUS,RP0

F 1303 M BCF STATUS,RP1

0093 00768 MOVWF SSPBUF;ЗАПИСЬ Y4

BANK1

1683 M BSF STATUS,RP0

1303 M BCF STATUS,RP1

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

2953 00771 GOTO $-1

1511 00772 BSF SSPCON2,PEN;ФОРМИРОВАНИЕ БИТА STOP

00773 BANK0

1283 M BCF STATUS,RP05.31 KURS.ASM 8-11-2009 2:45:19 PAGE 18OBJECT CODE LINE SOURCE TEXT

1303 M BCF STATUS,RP1

2959 00774 GOTO END_INT

00775;-----------------------------------------------------------------

00776 END_INT;ВОССТАНОВЛЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА STATUS

0159 0E33 00777 SWAPF STATUS_TEMP,W;ВОССТАНОВИТЬ РЕГИСТР STATUS

A 0083 00778 MOVWF STATUS

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

015C 2962 00780 GOTO REST_WREG

D 1283 00781 BCF STATUS,RP0;ВЫБОР БАНКА 0

E 0EB2 00782 SWAPF W_TEMP,F;ВОССТАНОВИТЬ АККУМУЛЯТОР

F 0E32 00783 SWAPF W_TEMP,W

1683 00784 BSF STATUS,RP0;ВЫБОР БАНКА 1

0009 00785 RETFIE

00786 REST_WREG

0EB2 00787 SWAPF W_TEMP,F;ВОССТАНОВИТЬ АККУМУЛЯТОР

0163 0E32 00788 SWAPF W_TEMP,W

0009 00789 RETFIE;ВЕРНУТЬСЯ ИЗ ПРЕРЫВАНИЯ

00790;-----------------------------------------------------

END5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 19TABLEVALUE00000020000000210000000500000004000000060000001F0000009F000000060000000700000003000000070000000600000006000000000000001E0000009EFLAG,2_LED 00000077000000030000000300000000_DEC 0000030C00000002_BD 0000004000000000_Y1 00000301_Y4 000002C3CON 00000017IE 00000002IF 00000002M0 00000000M1 00000001M2 00000002M3 00000003X 00000005Y 00000004CON 0000001DIE 00000000IF 00000000M0 00000000M1 00000001M2 00000002M3 00000003X 00000005Y 00000004H 00000016L 00000015H 0000001CL 0000001B5.31 KURS.ASM 8-11-2009 2:45:19 PAGE 20TABLEVALUE0000000300000004000000050000000600000004_N_Q 000002EF000000360000003E000000430000004100000042000000040000000700000060000000050000003100000030_ADDRESS 0000000500000001_AVAR 0000003D_IND 00000037_A 000000050000010D0000010F0000018C0000018D0000010C0000010E000000040000000400000007_INT 0000015900000001000000020000002800000004000000070000000700000002_DONE 00000002C_DATA 00000005C_READ 00000002C_START 00000003C_STOP 000000040000000700000005000000000000000B000000040000000600000001_AVAR 000000A7_INT 000000875.31 KURS.ASM 8-11-2009 2:45:19 PAGE 21TABLEVALUE_OPER 000000AC_RC 000000CE_SOURCE 0000000F_TMR0 00000018_TMR1 000000E2_ADR 00000034_BD 0000003F0000000700000027_SHIFT 0000003500000038000000390000003A0000003B000002FE000000C8000000280000004F000000370000004B0000005C0000006400000075000000BD0000023D00000026000000220000002300000024_A 00000005_ADDRESS 00000005_BO 00000000_BOR 00000000_DONE 00000002_PD 00000003_POR 00000001_RBPU 00000007_RC8 00000006_T1SYNC 00000002_TO 00000004_TX8 00000006_W 00000002_WRITE 000000020000000600000001_REG 00000081_ADR 0000003C_IND 00000054000000040000000000000001000000025.31 KURS.ASM 8-11-2009 2:45:19 PAGE 22TABLEVALUE00000003000000020000000A0000008E00000006000000020000008C0000008D0000000C0000000D000000050000000600000007000000080000000900000092000000000000000100000002000000030000000700000007000000040000008F0000000A000000020000000300000000_9 0000000600000006000000000000000300000005000000050000001A0000001800000000_WRITE 00000002_WREG 0000016200000005_CLR 0000000C000000060000000100000006D 00000000_W 00000002000000030000000000000007000000990000000700000005000000935.31 KURS.ASM 8-11-2009 2:45:19 PAGE 23TABLEVALUE0000001300000014000000910000000500000003000000030000000000000001000000020000000300000006000000940000020000000003_TEMP 00000033

SYNC 00000004CS 00000005IE 00000005IF 00000002SE 00000004CKPS0 00000004CKPS1 00000005CON 00000010INSYNC 00000002OSCEN 00000003SYNC 00000002CKPS0 00000000CKPS1 00000001CON 000000120000002F00000001CS 00000001H 0000000FIE 00000000IF 00000000L 0000000EON 0000000000000011IE 00000001IF 00000001ON 000000020000000300000004000000050000000600000085000000860000008700000088000000890000000000000001000000025.31 KURS.ASM 8-11-2009 2:45:19 PAGE 24TABLEVALUE00000001_9 0000000600000006D 00000000000000000000000500000004000000040000001900000098000000010000000000000007000000010000000200000003_DAC 00000018_TEMP 000000320000002A0000002B0000002C0000002D0000002E00000029FLAG,0FLAG,10000002500000002

_BODEN_OFF 00003FBF

_BODEN_ON 00003FFF

_CPD_OFF 00003FFF

_CPD_ON 00003EFF

_CP_ALL 00000FCF

_CP_HALF 00001FDF

_CP_OFF 00003FFF

_CP_UPPER_256 00002FEF

_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_ENABLE_OFF 00003DFF

_WRT_ENABLE_ON 00003FFF

_XT_OSC 00003FFD

__16F876A 00000001

__DEBUG 15.31 KURS.ASM 8-11-2009 2:45:19 PAGE 25USAGE MAP ('X' = Used, '-' = Unused)

: X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

C0: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXX----------- ----------------

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

C0: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXX---------- ----------------other memory blocks unused.Memory Words Used: 648Memory Words Free: 7544: 0: 1 reported, 41 suppressed: 1 reported, 39 suppressed

Похожие работы на - Микропроцессорная система управления объектом

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!