• RU
  • icon На проверке: 45
Меню

Схема электрическая принципиальная МПС для управления объектом

  • Добавлен: 26.02.2020
  • Размер: 2 MB
  • Закачек: 0
Узнать, как скачать этот материал

Описание

Схема электрическая принципиальная МПС для управления объектом на PIC16f368 c гальванической развязкой и регистрами для световой индикации

Состав проекта

icon
icon Zarubin_D_N.docx
icon ПРИЛОЖЕНИЕ Б.docx
icon приложение В.docx
icon приложение В1.docx
icon приложение А.vsd

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

Контент чертежей

icon Zarubin_D_N.docx

ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ4
СТРУКТУРНАЯ СХЕМА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ9
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКОВ ЧТЕНИЯ ИНФОРМАЦИИ С ДАТЧИКОВ12
1 Разработка схемы сопряжения для подключения цифровых датчиков12
2 Разработка схемы сопряжения для подключения аналоговых датчиков13
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ВЫВОДА УПРАВЛЯЮЩИХ СИГНАЛОВ14
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ПОСЛЕДОВАТЕЛЬНОГО КАНАЛА СВЯЗИ15
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ ПУЛЬТА УПРАВЛЕНИЯ17
РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И ОБЩИЙ АЛГОРИТМ УПРАВЛЕНИЯ21
РАЗРАБОТКА АЛГОРИТМ РАБОТЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С ЦИФРОВЫХ ДАТЧИКОВ23
РАЗРАБОТКА АЛГОРИТМ РАБОТЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С АНАЛОГОВЫХ ДАТЧИКОВ25
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ОБМЕНА ДАННЫМИ ПО ПОСЛЕДОВАТЕЛЬНОМУ КАНАЛУ СВЯЗИ27
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ВЗАИМОДЕЙСТВИЯ С ОПЕРАТОРОМ29
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ОБРАБОТКИ АВАРИЙНЫХ СИТУАЦИЙ31
РАСЧЕТ ЭЛЕКТРИЧЕСКИХ ПАРАМЕТРОВ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ33
РАЗРАБОТКА БЛОКА ПИТАНИЯ ДЛЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ34
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ38
ПРИЛОЖЕНИЕ А Схема электрическая принципиальная микропроцессорной системы управления 39
ПРИЛОЖЕНИЕ Б Листинг управляющей программы 40
Микропроцессорные и информационно-управляющие системы в настоящее время стали одним из наиболее дешевых и быстрых способов обработки информации. Практически ни одна область современной науки и техники не обходиться без использования их.
В настоящее время всё острее встают проблемы безопасности. Практика показывает что наибольшее число аварийных ситуаций возникает из-за ошибочных действий человека. В связи с этим большое значение имеет применение в системах управления технических средств позволяющих полностью автоматизировать этот процесс.
Микропроцессор представляет собой функционально завершенное универсальное программно-управляемое устройство цифровой обработки данных выполненное в виде одной или нескольких микропроцессорных БИС.
Микропроцессорные БИС относятся к классу микросхем одной из особенностей которого является возможность программного управления работой БИС с помощью определенного набора команд. Эта особенность нашла отражение в программно-аппаратном принципе построения микропроцессорных систем — цифровых устройств или систем обработки данных контроля и управления построенных на базе одного или нескольких микропроцессоров. Программно-аппаратный принцип построения микросистем является одним из основных принципов их организации и заключается в том что реализация целевого назначения микросистемы достигается не только аппаратными средствами но и с помощью программного обеспечения — организованного набора программ и данных.
Одно из главных направлений работы по ускорению научно-технического прогресса – широкая автоматизация технологических процессов на основе автоматизированных станков машин и механизмов унифицированных модулей оборудования робототехнических комплексов и вычислительной техники. В этих целях ускоряется создание гибких автоматизированных производств систем автоматизированного проектирования обеспечивающих существенный рост производительности труда и резкое снижение доли ручного труда повышение технического уровня выпускаемой продукции сокращение сроков и улучшению качества проектных и конструкторских работ.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ
В курсовой работе разрабатывается микропроцессорная система управления некоторым объектом (Рисунок 1.1).
Рисунок 1.1- Структурная схема управления объектом
Микропроцессорная система принимает информацию об объекте управления от аналоговых и цифровых датчиков вырабатывает управляющие воздействия (Y) в соответствии с законами управления и подает их на исполнительные механизмы. Микропроцессорная система состоит из микроконтроллера – управляющей микроЭВМ пульта управления и последовательного канала связи. С помощью пульта управления оператор получает возможность управлять работой микроЭВМ: запускать ее и останавливать выдавать значение некоторых уставок (констант) снимать с индикаторов информацию о состоянии объекта и т. п. С помощью последовательного канала связи микропроцессорная система может передавать обработанную информацию системе более высокого уровня по ее запросу.
В курсовой работе разрабатывается структурная схема микропроцессорной системы включая устройства связи с датчиками и исполнительными механизмами и программы обеспечивающие выполнение алгоритма управления и алгоритма обмена осуществляется оценка характеристик микропроцессорной системы и разработка блока питания. В разделе посвященном расчету электрических параметров системы необходимо рассчитать потребляемый ток и мощность по каждой из цепей питания. На основании этих расчетов разрабатывается или выбирается готовый блок питания.
Алгоритм работы микропроцессорной системы
Рисунок 1.2 – Алгоритм работы МПС
Алгоритм работы микропроцессорной системы представлен на рисунке 1.2.
Блок «i1» выполняет начальную установку системы: настройку периферийных модулей посылку в выходные каналы начальных значений управляющих воздействий и т.д.
Блок «d1» реализует задачу логического управления: принимает информацию от двоичных датчиков X1 X4 вычисляет значение булевой функции и выдает это значение в качестве управляющего сигнала Y1 по соответствующему выходному каналу на исполнительный механизм.
Блок «a1» обеспечивает прием информации с аналоговых датчиков V1 V2 V3 ее преобразование в цифровую форму вычисление значений управляющих воздействий Y2 Y3 Y4 и выдачу их на исполнительные механизмы. При этом Y2 и Y3 являются двоичными сигналами а Y4 – восьмиразрядный код преобразуемый в аналоговый сигнал. При выполнении этой функции оператор с пульта управления может задавать значение установки.
Блок «I1» обеспечивает циклический режим управления или останов системы в соответствии с командой поступающей с пульта управления.
Обработка цифровой информации
Микропроцессорная система опрашивает двоичные датчики X1 X2 X3 X4 и вычисляет булеву функцию . При единичном значении функции система вырабатывает выходной сигнал Y1=1 длительностью 105 мкс. Это означает что через 105 мкс после выдачи единичного сигнала Y1 необходимо выработать нулевой сигнал Y1.
В системе имеется также двоичный датчик аварийной ситуации X0 единичный сигнал с которого должен вызвать аварийный останов системы в любой момент выполнения рабочего цикла программы.
Обработка аналоговой информации
Сигналы с аналоговых датчиков V1 V2 V3 преобразуются в цифровую форму в АЦП. С выхода АЦП 8-разрядные коды N1 N2 и N3 представляющие собой целые числа без знака поступают на обработку. Величина К 8-разрядный код уставки поступающий с тумблерного регистра пульта управления.
Полученное значение функции N=m N2+N1) сравнивается с константой Q хранящейся во внутренней памяти. В зависимости от результатов сравнения система вырабатывает двоичные управляющие воздействия Y2(если N Q) или Y3(если N > Q) длительностью 1805 мкс или 11250 мкс соответственно.
Управляющее воздействие Y4 формируется в виде аналогового сигнала V4 с ЦАП и поступает на ИМ. Значение Y4 определяется как восьмиразрядное двоичное число по формуле:
где а0 и а1- восьмиразрядные коэффициенты хранящиеся во внутренней памяти микроконтроллера;
N3-восьмиразрядный код поступающий с выхода АЦП.
Предлагается что исходные величины поступающие с АЦП меньше единицы и представляются двоичным числом с фиксированной запятой.
Если после умножения значение Y4 превышает восемь разрядов то необходимо принимать значение Y4 равное младшему байту.
Обработка запросов на прерывания
Система обрабатывает запросы на прерывание пяти уровней:
Запрос на прерывание по сигналу отказа источника питания
Запрос на прерывание по сигналу аварийного датчика
Запрос на прерывание от терминала внешней ЭВМ
Запрос на прерывание от таймера
Запрос на прерывание от пульта управления
Прерывание работы системы при отказе источника питания имеет высший приоритет. Система переходит на резервный источник питания (батарейка) вырабатывает сигнал Y5 установки внешних устройств в исходное состояние и передает в последовательный канал связи (если он был активен) код символа «!». Сигнал Y5 представляет собой 2 прямоугольных импульса длительностью 30мкс следующие с интервалом в 30мкс. После выполнения указанных действий микроконтроллер необходимо перевести в режиме пониженного энергосбережения.
Прерывание от сигнала аварийного датчика включает на пульте управления аварийную звуковую сигнализацию с частотой 500 Гц и обеспечивает выдачу на индикацию сигналов двоичных датчиков X1 X4 и цифровой код N1поступающий с АЦП. После этого микроконтроллер необходимо перевести в режим пониженного энергопотребления.
Прерывание от терминала внешней ЭВМ осуществляется при приеме последовательным каналом связи символа управления обменом.
Приемник последовательного адаптера выставляет при этом запрос на прерывание работы основной программы с целью передачи в последовательный канал связи запрашиваемой информации. Запрашиваемая информация формируется в зависимости от принятого из канала символа. При приеме символа «D» в канал передается значение Y1 при приеме символа «А»- значение Y4. После загрузки в буфер передатчика БИС последовательного адаптера запрашиваемой информации управление передаётся в прерванную программу.
Прерывание от пульта управления влекут за собой выполнение следующих действий:
Выдать на регистр индикации РИ1 значения следующих четырех булевых переменных:
Результат сравнения N > Q;
Выдать на регистр индикацию РИ2 значение сохраняемой во внутренней памяти константы Q.
Организовать выход из прерывания на начало программы обработки.
Пульт управления должен содержать следующие элементы:
Регистр со светодиодами индикации значения N1-РИ1;
Регистр со светодиодами индикации значений X1 X4-РИ2;
Регистр со светодиодами индикации значений Y1 Y2 Y3-РИ3;
Регистр со светодиодами индикации значений Y4-РИ4;
Входной восьмиразрядный регистр Р5 для приема с тумблеров пульта кода К.
Звуковая индикация на который подается меандр частотой 500 Гц.
Кнопку «Сброс» при нажатии на которую производится начальная установка элементов системы;
Тумблер «Останов» опрашиваемый в конце каждого цикла выполнения программы;
СТРУКТУРНАЯ СХЕМА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ
Структурная схема системы управления представлена на рисунке 2.1.
Рисунок 2.1 – Структурная схема системы управления
На схеме указаны подключения к микроконтроллеру всех датчиков. При подключении датчиков для согласования сигналов использованы схемы согласования. Аналоговые сигналы подаются на АЦП через аналоговые схемы согласования. Кроме того указано подключение к микроконтроллеру пульта управления. Также показаны все выходные сигналы используемые для управления различными устройствами. Контроллер обменивается данными с системой более высокого уровня по интерфейсу LIN (5000 битс). Подключение регистров индикации и регистра уставки осуществляется посредством модулей расширения MAX7317.
Таблица 2.1 – Данные для выбора микроконтроллера
Микроконтроллер должен обладать необходимым количеством линий ввода-вывода (не менее 26) а также содержать необходимую периферию: MSSP USART АЦП(число каналов не менее 3) таймер-счетчик таймер.
Выбираем микроконтроллер PIC16F874A имеющий 33 линий вводавывода с индивидуальным контролем направления два 8-ми и один 16-ти разрядных таймера-счетчика 8 каналов 10-ти битного АЦП Последовательные интерфейсы: 3-проводный I2C Master и S USART (с поддержкой адреса).
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКОВ ЧТЕНИЯ ИНФОРМАЦИИ С ДАТЧИКОВ
1 Разработка схемы сопряжения для подключения цифровых датчиков
Схема сопряжения обеспечивает гальваническую развязку цифровых датчиков и микроконтроллера. Для согласования уровня дискретного сигнала с входами микроконтроллера будем использовать оптроны.
Так как по заданию напряжение «0»: -15 В «1»: -35 В то будем использовать следующую схему.
Рисунок 3.1 - Схема сопряжения с цифровыми датчиками
В схеме используем транзисторный оптрон с подключенным последовательно его светодиоду гасящим резистором и стабилитроном.
В данной схеме будем использовать оптрон КОЛ201А со следующими параметрами: = 1.5В при = 10 мА.
Стабилитрон выбирается из соотношениq:
Будем использовать стабилитрон BZV55C20 с параметрами: В при
Рассчитаем сопротивление:
Будем использовать резистор по ряду E24: R1 = 1.3 кОм. Выходная цепь устройства согласования образованна транзистором оптрона и подтягивающим резистором. Транзистор выполняет функцию ключевого элемента а резистор формирует на выходе схемы напряжение логической «1» когда транзистор закрыт. Так как микроконтроллер реализован по КМОП технологии то сопротивление резистора R2 выбирается равным 10кОм. На выходе оптрона сигнал инверсный для обратной инверсии используем микросхему К561ЛН2 которая представляет собой 6 инверторов.
2 Разработка схемы сопряжения для подключения аналоговых датчиков
Функционально устройство сопряжения с аналоговыми датчиками состоит из двух блоков. Первый блок гальванической развязки. Вторым являются инвертирующий сумматор. Схема сопряжения обеспечивает гальваническую развязку аналогового датчика и вывода микроконтроллера а так же преобразует уровни сигнала.
Для гальванической развязки используем ОУ с гальванической развязкой входа и выхода типа AD202. Инвертирующий сумматор построим на базе ОУ LM358. Схема сопряжения представлена на рисунке 3.2
Рисунок 3.2 – Схема сопряжения с аналоговыми датчиками
Резисторы R1 и R2 представляют собой делитель напряжения и используются для согласования входного напряжения ОУ и напряжения с датчиков ( т.к. возможное входное напряжение ОУ -5 +5 В ). По заданию напряжение «0»: -15В «1»: -35В понизим его в 7 раз до напряжение «0»: -2.14В «1»: -5В.
По ряду E192 выберем резистор R1 = 6.12 кОм тогда R2 = 1.02 кОм.
Рассчитаем сопротивления инвертирующего сумматора:
Таким образом по ряду E192 выберем резистор R5 = 1 кОм. Следовательно при : R4 = 569 Ом R3 = 1.33 кОм выбираются по ряду E192.
Резистор R6 рассчитаем по следующей формуле:
По ряду E192 выбираем .
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ВЫВОДА УПРАВЛЯЮЩИХ СИГНАЛОВ
Для получения аналогового управляющего сигнала Y4 необходимо использовать ЦАП. В качестве ЦАП используем микросхему MAX550A. Обладающую интерфейсом усиленное выходное напряжение формируется 8-разрядным ЦАП напряжение питание от +2.5 до +5.5 В время установки 4 мкс.
Рисунок 4.1 – Схема формирования сигнала Y4
Опорное напряжение установим равное напряжению питания для этого подадим на вывод REF +5В. Вывод используется для обновления выходных значений так как выходное значение будет обновляться по завершению преобразования так же подадим на него +5В.
Для вывода сигналов Y1-Y3 и Y5 используются выводы RD0-RD3 микроконтроллера.
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ БЛОКА ПОСЛЕДОВАТЕЛЬНОГО КАНАЛА СВЯЗИ
LIN (англ. Local Interconnect Network — локальная сеть) — стандарт промышленной сети разработанный консорциумом европейских автопроизводителей и других известных компаний включая Audi AG BMW AG Daimler Chrysler AG Motorola Inc. Volcano Communications Technologies AB Volkswagen AG и VolvoCar Corporation.
Протокол LIN предназначен для создания дешёвых локальных сетей обмена данными на коротких расстояниях. Он служит для передачи входных воздействий а также ответных действий различных устройств соединённых в одну систему через LIN происходящих в так называемом «человеческом» временном диапазоне (порядка сотен миллисекунд).
LIN — широковещательная последовательная сеть в составе которой 16 узлов (один мастер и как правило до 15 подчиненных). Все сообщения инициируются мастером с не более чем одним ответом на данный идентификатор сообщения от подчиненного узла. Главный узел может также выступать в качестве подчинённого (англ. slave) отвечая на свои собственные сообщения. Поскольку все коммуникации инициируются мастером то не нужно осуществлять обнаружение противоречий.
Данные передаваемые по LIN-шине называются фреймом. Фрейм состоит из заголовка (Header) формируемого ведущим узлом и ответа от ведомого узла (Response). Заголовок фрейма содержит области Break (поле стартовых битов) и Synch (поле битов синхронизации) а также поле идентификации PID. Идентификатор однозначно определяет содержание сообщения но не адрес приемного устройства. Это является задачей «ведомого узла» — решать предназначено ли сообщение для данного узла. Поле PID содержит 6-битный идентификатор ID и два бита паритета. Для идентификатора ID значения могут быть выбраны в диапазоне от 0 до 63. Ответ ведомого узла содержит данные и поле Checksum (контрольная сумма). Фрейм может иметь от 2 до 8 байт данных.
Ведущий узел передает заголовок на основании списка сети. Список определяет — какой фрейм должен быть послан и интервал времени между текущей посылкой и предыдущей. Ведущий узел может переключаться между несколькими различными списками. Такая концепция построения списка гарантирует что сеть никогда не будет перегруженной. При этом достигается максимально гарантированное время передачи данных.
Таблица 5.1 - Основные характеристики LIN-интерфейса
Напряжение на шине в пассивном состоянии
Количество приемников
В качестве преобразователя уровней будем использовать микросхему TH8080 с напряжением питания +5 В.
Схема включения преобразователя уровней будет выглядеть следующим образом.
Рисунок 5.1 – Схема включения преобразователя уровней
Выводы 2 и 8 в данной микросхеме не используются.
РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ ПУЛЬТА УПРАВЛЕНИЯ
В схему пульта управления входят блок расширения вводавывода кнопки «прерывания от оператора» «сброс» «останов» логика формирования запросов на прерывания. С помощью пульта управления оператор получает возможность управлять работой микроЭВМ: запускать ее и останавливать выдавать значения некоторых уставок (констант) снимать с индикаторов информацию о состоянии объекта и т.д. Блок расширения вводавывода включает в себя схему индикации и регистр уставки К которые реализованы на микросхемах DD1-DD2 типа MCP23S17.
Схема индикации предназначена для вывода информации о состоянии системы на пульт управления. В состав схемы индикации входят 16 выводов микросхемы DD1 и 8 выводов микросхемы DD2 и 24 светодиода HL1–HL24 красного цвета свечения типа КИПД05А со следующими характеристиками: Iпр=5 мА Uпр=1.8 В. Выходы регистров имеют повышенную нагрузочную способность что позволяет подключать светодиоды непосредственно к ним. Резисторы R1–R24 ограничивают ток через светодиоды на уровне 5 мА.
Микросхема DD1 (порт A) и светодиоды HL1–HL8 образуют регистр индикации РИ1. Регистры РИ2 и РИ3 построены на базе микросхемы DD1 (порт B). При этом светодиоды HL9–HL13 образуют регистр РИ2 а светодиоды HL14–HL16 – регистр РИ3. Регистр РИ4 образован микросхемой DD2 (порт A) и светодиодами HL17–HL24.
Схема уставки реализована на микросхеме DD2 (порт B) подключением тумблеров уставки SA1–SA8 типа DS-431. С помощью данной схемы оператор может выдавать значение некоторых уставок (констант).
Резисторы R1-R24 рассчитываются по формуле . По ряду E96 выберем резисторы 649 Ом. R25-R32 по ряду E24 равны 10 кОм.
Рисунок 6.1 – Схема блока расширения вводавывода
В состав пульта управления входит также кнопка SB1 «Сброс» при нажатии на которую формируется низкий уровень напряжения на входе MCLR контроллера что приводит к сбросу последнего. И кнопка SB2 «Прерывание от оператора». Будем использовать кнопки типа ПКН61. Тумблер «Останов» используется типа ТВ 2-1. Кнопки и тумблер подключаются по следующей схеме.
Рисунок 6.2 – Схема подключения кнопки прерывания от оператора и тумблера «останов»
Резисторы R33-R34 выберем по ряду E24 равными 10 кОм.
Кнопка сброса подключается через специальную схему.
Рисунок 6.3 – Схема подключения кнопки сброса
Зуммер керамический APV020 подключается непосредственно к МК параллельно с логическим элементом «НЕ» в качестве которого выберем инвертор К156ЛН1.
Рисунок 6.4 – Схема подключения звуковой индикации
Логика формирования запросов на прерывания реализована на микросхеме типа 74AC10.
Схема формирует сигнал прерывания в следующих случаях:
–появление высокого уровня напряжения на выходе схемы контроля напряжения питания (напряжение питания отсутствует);
–появление высокого уровня на выходе устройства сопряжения с датчиком аварийной ситуации;
–нажатие кнопки SB2 «Прерывание оператора».
Если хотя бы один из уровней в активном состоянии то сигнал запроса прерывания поступает на вход INT контроллера.
Рисунок 6.5 – Логика формирования запросов на прерывания
РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И ОБЩИЙ АЛГОРИТМ УПРАВЛЕНИЯ
Блок-схема общего алгоритма работы системы приведена на рисунке 7.1. После сброса начинается процесс инициализации контроллера. Затем программа считывает информацию с аналоговых и цифровых датчиков обрабатывает полученную информацию формирует выходные сигналы и осуществляет вывод необходимой информации на индикаторы.
Программа начинается с инициализации контроллера в котором выполняется первоначальная установка системы: настройку периферийных модулей посылку в выходные каналы начальных значений управляющих воздействий и т. д.
В следующем блоке осуществляется введение информации с пульта управления. В блоках «Ввод информации с цифровых датчиков» и «Ввод информации с аналоговых датчиков» обеспечивается прием информации от цифровых и аналоговых датчиков затем цифровая информация обрабатывается в блоке «Обработка цифровой информации» где вычисляется значении булевой функции Y1 значение которой формируется в блоке «Формирование выходного сигнала Y1». После обработки аналоговой информации в соответствующем блоке формируются управляющие сигналы Y4 и Y2 (Y3) в блоке «Формирование выходных сигналов Y2 или Y3».
Все обработанные и вычисленные значения поступают в блок «Вывод информации на индикацию». При этом проверяется условие включение или выключение тумблера «Останов» если он включен производится остановка системы если же нет то переход на блок «Ввод информации с пульта управления» и алгоритм начинается сначала.
Рисунок 7.1 – Блок-схема общего алгоритма работы микропроцессорной системы управления
РАЗРАБОТКА АЛГОРИТМ РАБОТЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С ЦИФРОВЫХ ДАТЧИКОВ
Блок-схема работы блока чтения информации с цифровых датчиков приведена на рисунке 8.1. Микропроцессорная система опрашивает двоичные датчики X1..X4 и вычисляет булеву функцию . При единичном значении функции система вырабатывает выходной сигнал Y1=1 длительностью T1=105 мкс после этого вырабатывает нулевой сигнал Y1. Алгоритм работы блока чтения с цифровых датчиков приведен на рисунке 8.1.
В системе имеется также двоичный датчик аварийной ситуации X0 единичный сигнал с которого должен вызвать аварийный останов системы в любой момент выполнения рабочего цикла.
Длительность машинного цикла:
Количество циклов для Т1:
Для счета используем ТМR1 с установленным предделителем 14. Рассчитаем константу для загрузки в таймер:
K1=FFFF-1A44 = FF96h
Сигнал с импульсного датчика приходит на TMR0 который используется в качестве счетчика.
Рассчитаем константу необходимую для формирования времени измерения импульсного сигнала t=2500 мс.
T = = 10000000 = 989680h
Для счета используем TMR1 с установленными предделителем 14. Тогда в регистр таймера запишем 9E57h. Данную операцию повторим 100 раз в итоге получим 989680h.
Алгоритм работы блока чтения с импульсных датчиков приведен на рисунке 8.2.
Рисунок 8.1 - Алгоритм работы блока чтения информации с цифровых датчиков
Рисунок 8.2– Алгоритм работы блока чтения информации с импульсного датчика.
РАЗРАБОТКА АЛГОРИТМ РАБОТЫ БЛОКА ЧТЕНИЯ ИНФОРМАЦИИ С АНАЛОГОВЫХ ДАТЧИКОВ
Блок-схема алгоритма чтения информации с аналоговых приведена на рисунке 9.1. Вначале осуществляется первичная инициализация АЦП то есть выбор канала с которого будет сниматься информация и включение АЦП. После чего происходит считывание информации с АЦП которая была получена от аналоговых датчиков и дальнейшая ее запись по портам ввода-вывода в регистры микроконтроллера. Происходит считывание 8-и разрядного кода установки (величина К) который приходит с пульта управления. Затем происходит вычисление значения функции N=m N2+N1). Далее происходит сравнение функции N с константой Q которая храниться в регистре микроконтроллера. Если NQ то осуществляется выработка двоичного управляющего воздействие Y2 длительностью T2 = 1850 мкс. Если же функция N>Q то осуществляется переход к выработке двоичного управляющего воздействие Y3 длительностью T3=11250 мкс. После чего идет завершение данного алгоритма.
Управляющее воздействие Y4 формируется в виде аналогового сигнала с ЦАП и поступает на ИМ.
Для формирования Y2 Y3 будем использовать таймер TMR1 с предделителем 14. Рассчитаем константу для таймера TMR1 при длительности Т2=1850 мкс (выработка сигнала Y2) и Т3=11250 мкс (выработка сигнала Y3). Длительность машинного цикла:
Количество импульсов для Т2 и Т3:
N2= = = 7400 = 1CE8h
K2= FFFF-1CE84 = F8C5h
N3= = = 45000 = AFC8h
K3= FFFF-AFC84 = D40Dh
Полученные значения записываем в регистр TMR1.
Рисунок 9.1 - Блок-схема алгоритма чтения информации с аналоговых датчиков
Рисунок 9.2 – Алгоритм работы блока чтения информации с аналоговых датчиков
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ОБМЕНА ДАННЫМИ ПО ПОСЛЕДОВАТЕЛЬНОМУ КАНАЛУ СВЯЗИ
Блок-схема алгоритма работы блока обмена данными по последовательному каналу связи приведена на рисунке 10.1.
Рисунок 10.1 – Блок-схема алгоритма работы блока обмена данными
по последовательному каналу связи
Данный блок фиксирует прием запроса от внешнего устройства путем проверки флага прерывания от приемника USART производит идентификацию байта запроса путем его сравнения с константой и если байт верный осуществляет передачу данных. Если из последовательного канала принят символ «D» в последовательный канал передается значение сигнала Y1 если же принят символ «A» то в последовательный канал передается значение сигнала Y4.
Рассчитаем скорость обмена:
При V=5000 битс BRGH=0 Fosc=16 МГц получим что x = 49 погрешность при этом составила = 0%.
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ
БЛОКА ВЗАИМОДЕЙСТВИЯ С ОПЕРАТОРОМ
Блок-схема алгоритма работы блока взаимодействия с оператором приведена на рисунках 15.
Рисунок 11.1 – Блок-схема алгоритма работы блока взаимодействия с оператором
Рисунок 11.2 – Блок-схема алгоритма обработки прерываний от оператора
В зависимости от показаний на светодиодной индикации оператор производит управление микропроцессорной системой с пульта управления.
Прерывание от пульта управление влекут за собой следующие действия:
Выдается в регистр индикации РИ1 значения следующих четырех булевых переменных:
- Последнее значение
- Результат сравнения N>Q;
- Значение выражения
- Значение выражения Х1Х2Х3Х4;
Выдается на регистр индикации РИ2 значение сохраняемой во внутренней памяти константы Q.
Организуется выход из прерывания на начало программы обработки.
Взаимодействие с оператором происходит через модули расширения по интерфейсу SPI.
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ БЛОКА ОБРАБОТКИ АВАРИЙНЫХ СИТУАЦИЙ
В данном блоке осуществляется контроль наличия напряжения питания и контроль сигнала аварийной ситуации X0. При появлении аварийной ситуации происходит ее обработка затем контроллер переходит в режим пониженного энергопотребления («спящий» режим). Блок-схема алгоритма приведена на рисунке 12.1.
Для организации прерывания на микросхему заведены следующие сигналы:
IRQ0 – сигнал отказа источника питания;
IRQ1 – сигнал аварийного датчика;
Выход микросхемы заведен на вход микроконтроллера INT. Такое подключение позволяет организовать обработку прерываний по одному входу микроконтроллера.
Прерывание работы системы при отказе источника питания имеет высший приоритет. Система при этом переходит на резервный источник питания (батарейка) вырабатывает сигнал Y5 установки внешних устройств в исходное состояние и передает в последовательный канал связи (если он был активен) код символа «!».
Сигнал Y5 представит собой два прямоугольных импульса длительностью 30 мкс следующие с интервалом в 30 мкс.
Для формирования этого сигнала используем таймер TMR2.
Рассчитаем константу для загрузки в таймер:
Прерывание от сигнала аварийного датчика включает на пульте управления аварийную сигнализации и обеспечивают выдачу на индикацию сигналов двоичных датчиков X1 Х4 и цифровой код N1 поступающий с АЦП.
Аварийный сигнал формируется с помощью звукового индикатора на который приходит сигнал с частотой 500 Гц т.е. длительность равна:
Для формирования аварийного сигнала используем таймер TMR1. Рассчитаем константу для таймера при данной длительности.
C учетом включенного предделителя 14 в регистр таймер TMR1 запишем число FC17h.
Рисунок 12.1 – Блок-схема алгоритма работы блока обработки аварийных ситуаций
РАСЧЕТ ЭЛЕКТРИЧЕСКИХ ПАРАМЕТРОВ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ
Рассчитать мощность затрачиваемую на питание основных микросхем. Питание микросхем идет по каналам: +5В +15В +3.3В.
Таблица 13.1 – Потребляемый ток МПС по каналу +5В
Таблица 13.2 - Потребляемый ток МПС по каналу +15В
P = (681.0345+2115+1.543.3) 3.33 Вт.
В итоге общая потребляемая мощность составляет 3.33 Вт.
РАЗРАБОТКА БЛОКА ПИТАНИЯ ДЛЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ
Блок питания включает в себя силовой трансформатор обеспечивающий необходимые напряжения по каждому каналу выпрямитель и стабилизатор напряжения.
Для питания проектируемой микропроцессорной системы управления необходим блок питания отдающий в нагрузку мощность не менее 3.33 Вт.
Максимальный выходной ток по цепи +5В должен быть не менее 681.034 мА по цепи +15В – не менее 21 мА.
В качестве трансформатора T1 выбран унифицированный трансформатор ТПП 245-127220-50. Этот трансформатор имеет габаритную мощность 14.5 Вт. Напряжения на обмотках следующие: U11-12 = U13-14 = 5В; U15-16 = U17-18 = 10В; U19-20 = U21-22 = 2.5В. Для увеличения максимального тока в цепи 5В обмотки 11-12 19-20 и 13-14 21-22 соединены последовательно и между собой параллельно. Для получения +15В обмотки 17-18 15-16 соединены последовательно.
Для стабилизации напряжения +5В используется интегральный стабилизатор LM7805 рассчитанный на максимальный ток 1.5А. Для стабилизации напряжения +15В используется интегральный стабилизатор LM7815. Он рассчитан на максимальный ток 1.0А.
Канал для питания контроллера (+5В) имеет резервный источник питания - батарею аккумуляторов GB1 типа 6F22.
Схема БП содержит источник опорного напряжения который построен на регулируемом стабилитроне DA9 типа TL431A. Резистор R72 ограничивает ток через стабилитрон.
Резисторы R73 и R74 образуют делитель выходного напряжения которое вычисляется по следующей формуле:
Реализована схема контроля источника питания на основе оптрона AOT101AC для которого Uпр = 1.6 В и Iн= 5мА. Рассчитаем номинал резистора R70
Сопротивление резистора R71 выбирается равным 10 кОм.
В данной курсовой работе разработана микропроцессорная система управления объектом на микроконтроллере PIC16F874A. В ходе выполнения были разработаны схемы чтения информации с датчиков вывода управляющих сигналов последовательного канала связи взаимодействия с оператором аварийных ситуаций. Также была составлена программа обеспечивающая выполнение алгоритма управления. Были получены навыки в проектировании микропроцессорных управляющих систем.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Сташин В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах В.В. Сташин А.В. Уросов О.Ф.Мологонцева – М.: Энергоатомиздат 1990. – 224 с.
Бродин В.Б. Системы на микроконтроллерах и БИС программируемой логики В.Б. Бродин А.В.Калинин – М.: Издательство ЭКОМ 2002. – 400 c.
Яценков В.С. Микроконтроллеры Microchip. Практическое руководство В.С. Яценков – М.: Горячая линии – Телеком 2002. – 296 с.
Тавернье К. PIC-микроконтроллеры. Практика применения: Пер. с фр. К. Тавернье – М.: ДМК Пресс. 2004. – 272 с.

icon ПРИЛОЖЕНИЕ Б.docx

Листинг управляющей программы
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
002 #include P16F874A.INC>
003 ;==========================================================================
004 ; MPASM PIC16F874A processor include
006 ; (c) Copyright 1999-2014 Microchip Technology All rights reserved
007 ;==========================================================================
07 3F7A 00003 __CONFIG 0x3F7A
005 ;Объявление констант задержек
0000FF 00006 T1_1 equ 0xFF
000096 00007 T1_2 equ 0 для T1
0000F8 00008 T2_1 equ 0xF8
0000C5 00009 T2_2 equ 0 для T2
0000D4 00010 T3_1 equ 0xD4
00000D 00011 T3_2 equ 0 для T3
00009E 00012 Timp_1 equ 0x9E
000057 00013 Timp_2 equ 0 для измерения импульсного сигнала
015 ;Регистры хранения данных
000069 00016 TMP equ 0x69
000070 00017 W_TMP equ 0 для хранения WREG
000071 00018 S_TMP equ 0 для хранения STATUS
000072 00019 X1 equ 0 значение X1
000073 00020 X2 equ 0 значение X2
000074 00021 X3 equ 0 значение X3
000075 00022 X4 equ 0 значение X4
000076 00023 Y1 equ 0 значение Y1
000077 00024 Y4 equ 0 значение Y4
000078 00025 N equ 0 значение N
000079 00026 NQ equ 0 сравнение N с Q
00007A 00028 Pt equ 0 значение P(t)
00007B 00029 N1 equ 0 значение N1
00007C 00030 N2 equ 0 значение N2
00007D 00031 N3 equ 0 значение N3
00007E 00032 K equ 0 значение уставки K
034 ;Хранимые константы
000023 00035 Q equ 0x23
000008 00036 a0 equ 0x08
000002 00037 a1 equ 0x02
040 BANC0 MACRO ;ВЫБОР БАНКА 0
044 BANC1 MACRO ;ВЫБОР БАНКА 1
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 2
049 org 0ВЕКТОР СБРОСА
00 2??? 00050 goto START ;ПЕРЕХОД НА НАЧАЛО ПРОГРАММЫ
051 ;=========================================================
052 ;ОБРАБОТКА ПРЕРЫВАНИЙ
053 ;=========================================================
04 108B 00055 BCF INTCON INTF
056 ;Сохраняем значения WREG и STATUS
05 00F0 00057 MOVWF W_TMP
06 0E03 00058 SWAPF STATUS w
07 00F1 00059 MOVWF S_TMP
08 1283 M BCF STATUSRP0
09 1303 M BCF STATUSRP1
0A 1A87 00062 BTFSC PORTC RC5 ; проверяем какое прерывание пришло
0B 2??? 00063 GOTO INT_POW
0C 1A86 00064 BTFSC PORTB RB5
0D 2??? 00065 GOTO INT_X0
0E 1A8C 00066 BTFSC PIR1 RCIF
0F 2??? 00067 GOTO INT_US
10 1887 00068 BTFSC PORTC RC1
11 2??? 00069 GOTO INT_OP
12 3003 00071 MOVLW D'3' ;прерывание от источника питания
13 00A0 00072 MOVWF 0x20
14 1588 00073 BSF PORTD RD3
15 3087 00075 MOVLW 0 вырабатываем два импульса 30мкс Y5
16 0091 00076 MOVWF TMR2
17 1512 00077 BSF T2CON TMR2ON
18 1C0C 00078 BTFSS PIR1 TMR1IF
19 2??? 00079 GOTO -1
1A 1010 00080 BCF T1CON TMR1ON
1B 100C 00081 BCF PIR1 TMR1IF
1C 1D88 00082 BTFSS PORTD RD3
1D 2??? 00083 GOTO P1
1E 1188 00084 BCF PORTD RD3
1F 2??? 00085 GOTO P2
20 1588 00086 P1: BSF PORTD RD3
21 0BA0 00087 P2: DECFSZ 0x20 f
22 2??? 00088 GOTO PW1
23 1E0C 00089 BTFSS PIR1 TXIF ; передаем в последовательный канал "!
24 2??? 00090 GOTO -1
25 3021 00091 MOVLW '!'
26 0099 00092 MOVWF TXREG
27 1E8C 00093 BTFSS PIR1 RCIF
28 2??? 00094 GOTO -1
29 0063 00095 SLEEP ; переходим в спящий режим
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 3
2A 00097 INT_X0: ; прерывание от аварийного датчика
2A 1208 00098 BCF PORTD RD4
2B 0840 00099 MOVF 0x40 w
2C 0093 00100 MOVWF SSPBUF
2D 1D8C 00101 BTFSS PIR1 SSPIF
2E 2??? 00102 GOTO -1
2F 118C 00103 BCF PIR1SSPIF
30 0800 00104 MOVF 0x00 w
31 0093 00105 MOVWF SSPBUF
32 1D8C 00106 BTFSS PIR1 SSPIF
33 2??? 00107 GOTO -1
34 118C 00108 BCF PIR1SSPIF
35 087B 00109 MOVF N1 w
36 0093 00110 MOVWF SSPBUF
37 1D8C 00111 BTFSS PIR1 SSPIF
38 2??? 00112 GOTO -1
39 118C 00113 BCF PIR1SSPIF
3A 1608 00114 BSF PORTD RD4
3B 1208 00116 BCF PORTD RD4 ; отправляем на индикацию
3C 0840 00117 MOVF 0x40 w
3D 0093 00118 MOVWF SSPBUF
3E 1D8C 00119 BTFSS PIR1 SSPIF
3F 2??? 00120 GOTO -1
40 118C 00121 BCF PIR1SSPIF
41 0801 00122 MOVF 0x01 w
42 0093 00123 MOVWF SSPBUF
43 1D8C 00124 BTFSS PIR1 SSPIF
44 2??? 00125 GOTO -1
45 118C 00126 BCF PIR1SSPIF
46 0C06 00127 RRF PORTB w
47 0093 00128 MOVWF SSPBUF
48 1D8C 00129 BTFSS PIR1 SSPIF
49 2??? 00130 GOTO -1
4A 118C 00131 BCF PIR1SSPIF
4B 1608 00132 BSF PORTD RD4
4C 30FF 00134 MOVLW 0 количество имульсов выдаваемых зуммером
4D 00A0 00135 MOVWF 0x20
4E 1786 00136 BSF PORTB RB7
4F 00137 ISV: ; формируем сигнал 500Гц
4F 30FC 00138 MOVLW 0xFC
50 008F 00139 MOVWF TMR1H
51 3017 00140 MOVLW 0x17
52 008E 00141 MOVWF TMR1L
53 1410 00142 BSF T1CON TMR1ON
54 1C0C 00143 BTFSS PIR1 TMR1IF
55 2??? 00144 GOTO -1
56 1010 00145 BCF T1CON TMR1ON
57 100C 00146 BCF PIR1 TMR1IF
58 1F86 00147 BTFSS PORTB RB7
59 2??? 00148 GOTO IP1
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 4
5A 1386 00149 BCF PORTB RB7
5B 2??? 00150 GOTO IP2
5C 1786 00151 IP1:BSF PORTB RB7
5D 0BA0 00152 IP2:DECFSZ 0x20 f
5E 2??? 00153 GOTO ISV
60 00156 INT_US: ; прерывание от терминала
60 1E8C 00157 BTFSS PIR1 RCIF
61 2??? 00158 GOTO -1
62 081A 00159 MOVF RCREG w ; получаем прешедший символ
63 00A0 00160 MOVWF 0x20
64 1E0C 00161 BTFSS PIR1 TXIF
65 2??? 00162 GOTO -1
66 3044 00163 MOVLW 'D'
67 0220 00164 SUBWF 0 проверяем не является ли символом "D
68 1903 00165 BTFSC STATUS Z
69 2??? 00166 GOTO IY1
6A 1E0C 00167 BTFSS PIR1 TXIF
6B 2??? 00168 GOTO -1
6C 0877 00169 MOVF Y4 w ; передаем Y4 если нет
6D 0099 00170 MOVWF TXREG
6E 1E8C 00171 BTFSS PIR1 RCIF
6F 2??? 00172 GOTO -1
70 2??? 00173 GOTO OUT
71 0876 00175 MOVF Y1 w ; передаем Y1 если символ "D
72 0099 00176 MOVWF TXREG
73 1E8C 00177 BTFSS PIR1 RCIF
74 2??? 00178 GOTO -1
75 2??? 00179 GOTO OUT
76 00181 INT_OP: ; прерывание от оператора
76 0876 00182 MOVF Y1 w
77 00A0 00183 MOVWF 0 формируем требуемые значения
78 0D79 00184 RLF NQ w
79 04A0 00185 IORWF 0x20 f
7A 0872 00187 MOVF X1 w
7B 0473 00188 IORWF X2 w
7C 0474 00189 IORWF X3 w
7D 0475 00190 IORWF X4 w
7E 00A1 00191 MOVWF 0x21
7F 0DA1 00192 RLF 0x21 f
80 0DA1 00193 RLF 0x21 f
81 0821 00194 MOVF 0x21 w
82 04A0 00195 IORWF 0x20 f
83 0872 00197 MOVF X1 w
84 0573 00198 ANDWF X2 w
85 0574 00199 ANDWF X3 w
86 0575 00200 ANDWF X4 w
87 00A1 00201 MOVWF 0x21
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 5
88 0DA1 00202 RLF 0x21 f
89 0DA1 00203 RLF 0x21 f
8A 0DA1 00204 RLF 0x21 f
8B 0821 00205 MOVF 0x21 w
8C 04A0 00206 IORWF 0x20 f
8D 1208 00208 BCF PORTD RD4 ; отправляем на РИ1
8E 0840 00209 MOVF 0x40 w
8F 0093 00210 MOVWF SSPBUF
90 1D8C 00211 BTFSS PIR1 SSPIF
91 2??? 00212 GOTO -1
92 118C 00213 BCF PIR1SSPIF
93 0800 00214 MOVF 0x00 w
94 0093 00215 MOVWF SSPBUF
95 1D8C 00216 BTFSS PIR1 SSPIF
96 2??? 00217 GOTO -1
97 118C 00218 BCF PIR1SSPIF
98 0820 00219 MOVF 0x20 w
99 0093 00220 MOVWF SSPBUF
9A 1D8C 00221 BTFSS PIR1 SSPIF
9B 2??? 00222 GOTO -1
9C 118C 00223 BCF PIR1SSPIF
9D 1608 00224 BSF PORTD RD4
9E 1208 00226 BCF PORTD RD4 ; отправляем на РИ2 - Q
9F 0840 00227 MOVF 0x40 w
A0 0093 00228 MOVWF SSPBUF
A1 1D8C 00229 BTFSS PIR1 SSPIF
A2 2??? 00230 GOTO -1
A3 118C 00231 BCF PIR1SSPIF
A4 0801 00232 MOVF 0x01 w
A5 0093 00233 MOVWF SSPBUF
A6 1D8C 00234 BTFSS PIR1 SSPIF
A7 2??? 00235 GOTO -1
A8 118C 00236 BCF PIR1SSPIF
A9 0823 00237 MOVF Q w
AA 0093 00238 MOVWF SSPBUF
AB 1D8C 00239 BTFSS PIR1 SSPIF
AC 2??? 00240 GOTO -1
AD 118C 00241 BCF PIR1SSPIF
AE 1608 00242 BSF PORTD RD4
AF 2??? 00244 GOTO START
B0 00246 OUT: ;Восстанавливаем WREG и STATUS
B0 0E71 00247 SWAPF S_TMP w
B1 0083 00248 MOVWF STATUS
B2 0EF0 00249 SWAPF W_TMP f
B3 0E70 00250 SWAPF W_TMP w
B4 0009 00251 RETFIE
252 ;=============================================
254 ;=============================================
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 6
255 org 0НАЧАЛО ПРОГРАММЫ
257 ;=============================================
259 ;=============================================
00 1683 M BSF STATUSRP0
01 1303 M BCF STATUSRP1
02 3002 00262 MOVLW B'00000010' ;ЛЕВОЕ ВЫРАВНИВАНИЕ RA0 RA1 RA2 - АНАЛОГОВЫЕ ВХОДЫ
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
03 009F 00263 MOVWF ADCON1
04 1283 M BCF STATUSRP0
05 1303 M BCF STATUSRP1
06 3081 00265 MOVLW B'10000001' ;ТАКТОВЫЙ СИГНАЛМОДУЛЬ ВКЛЮЧЕН
07 009F 00266 MOVWF ADCON0
267 ;ПОРТЫ ВВОДАВЫВОДА
08 1683 M BSF STATUSRP0
0A 0185 00269 CLRF TRISA
0B 0186 00270 CLRF TRISB
0C 0187 00271 CLRF TRISC
0D 0188 00272 CLRF TRISD
0E 30FF 00273 MOVLW B'11111111'
0F 0085 00274 MOVWF TRISA ;IN
10 307F 00275 MOVLW B'01111111'
11 0086 00276 MOVWF TRISB ;IN RB7-OUT
12 30A6 00277 MOVLW B'10100110'
13 0087 00278 MOVWF TRISC
14 3000 00279 MOVLW B'00000000'
15 0088 00280 MOVWF TRISD ;OUT
16 1283 M BCF STATUSRP0
17 1303 M BCF STATUSRP1
18 30F0 00282 MOVLW B'11110000'
19 0088 00283 MOVWF PORTD
1A 1683 M BSF STATUSRP0
1B 1303 M BCF STATUSRP1
1C 3048 00286 MOVLW B'01001000'
1D 0081 00287 MOVWF OPTION_REG ;ВНУТРЕННИЙ ТГ КОЭФФИЦИЕНТ ПРЕДДЕЛИТЕЛЯ 1:1
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 7
1E 1283 M BCF STATUSRP0
1F 1303 M BCF STATUSRP1
20 3028 00291 MOVLW B'00101000'
21 0090 00292 MOVWF T1CON ;ВКЛЮЧЕНИЕ ГЕНЕРАТОРА TMR1 ПРЕДДЕЛИТЕЛЬ 1:4
22 3000 00295 MOVLW B'00000000' ;ПРЕДДЕЛИТЕЛЬ 1:1 ПОСТДЕЛИТЕЛЬ 1:1
23 0092 00296 MOVWF T2CON
24 3090 00298 MOVLW B'10010000'
25 0098 00299 MOVWF RCSTA ;МОДУЛЬ ВКЛЮЧЕН 8-РАЗРЯДНЫЙ ПРИЕМ ПРИЕМ РАЗРЕШЕН
26 1683 M BSF STATUSRP0
27 1303 M BCF STATUSRP1
28 30A0 00301 MOVLW B'10100000'
29 0098 00302 MOVWF TXSTA ;8-РАЗРЯДНАЯ ПЕРЕДАЧА АСИНХРОННЫЙ РЕЖИМ ПЕРЕДАЧА РАЗРЕШЕНА Низкоскоро
2A 3049 00303 MOVLW 0СКОРОСТЬ 5000 БИТС
2B 0099 00304 MOVWF SPBRG
2C 3080 00307 MOVLW B'10000000'
2D 0094 00308 MOVWF SSPSTAT
2E 1283 M BCF STATUSRP0
2F 1303 M BCF STATUSRP1
30 3030 00310 MOVLW B'00110000'
31 0094 00311 MOVWF SSPCON
32 30D0 00314 MOVLW B'11010000'
33 008B 00315 MOVWF INTCON
34 1683 M BSF STATUSRP0
35 1303 M BCF STATUSRP1
36 3038 00317 MOVLW B'00111000'
37 008C 00318 MOVWF PIE1
38 018D 00319 CLRF PIE2
320 ;=============================================
321 ;=============================================
323 ;========================================
324 ;ЧТЕНИЯ ЗНАЧЕНИЯ С ЦИФРОВЫХ ДАТЧИКОВ
325 ;========================================
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 8
39 1283 M BCF STATUSRP0
3A 1303 M BCF STATUSRP1
3B 0C06 00327 RRF PORTB w
3C 00F2 00328 MOVWF X1 ; сохраняем X1
3D 0C72 00329 RRF X1 w
3E 00F3 00330 MOVWF X2 ; сохраняем X2
3F 0C73 00331 RRF X2 w
40 00F4 00332 MOVWF X3 ; сохраняем X3
41 0C74 00333 RRF X3 w
42 00F5 00334 MOVWF X4 ; сохраняем X4
43 09F3 00335 COMF X2 f ;инвертируем Х2 Х3
44 09F4 00336 COMF X3 f ;
45 0872 00337 MOVF X1 w
46 0475 00338 IORWF X4 w
47 00E9 00339 MOVWF TMP
48 09E9 00340 COMF TMP f ; !(X1 X4)
49 0873 00341 MOVF X2 w
4A 0574 00342 ANDWF X3 w ; !X2 && !X3
4B 0669 00343 XORWF TMP w ; !(X1 X4) + (!X2 && !X3)
4C 1C00 00345 BTFSS W 0
4D 2??? 00346 GOTO M1
4E 30FF 00347 MOVLW T1_1 ; если =1 то формируем Y4
4F 008F 00348 MOVWF TMR1H
50 3096 00349 MOVLW T1_2
51 008E 00350 MOVWF TMR1L
52 1408 00351 BSF PORTD RD0
53 1410 00352 BSF T1CON TMR1ON
54 1C0C 00353 BTFSS PIR1 TMR1IF
55 2??? 00354 GOTO -1
56 1008 00355 BCF PORTD RD0
57 1010 00356 BCF T1CON TMR1ON
58 100C 00357 BCF PIR1 TMR1IF
360 ;=============================================
361 ;ЧТЕНИЕ ИМПУЛЬСНОГО ДАТЧИКА
362 ;=============================================
59 3064 00363 MOVLW 0x64
5A 00A0 00364 MOVWF 0x20
5B 0181 00365 CLRF TMR0
5C 309E 00366 TMI:MOVLW Timp_1
5D 008F 00367 MOVWF TMR1H
5E 3057 00368 MOVLW Timp_2
5F 008E 00369 MOVWF TMR1
60 1410 00370 BSF T1CON TMR1ON
61 1C0C 00371 BTFSS PIR1 TMR1IF
62 2??? 00372 GOTO -1
63 100C 00373 BCF PIR1 TMR1IF
64 0BA0 00374 DECFSZ 0x20 f
65 2??? 00375 GOTO TMI
66 1010 00376 BCF T1CON TMR1ON
67 0801 00377 MOVF TMR0 w
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 9
68 00FA 00378 MOVWF Pt
379 ;=============================================
380 ;ЧТЕНИЕ АНАЛОГОВЫХ ДАТЧИКОВ
381 ;=============================================
386 GOTO -1 ;РЕАЛИЗАЦИЯ ЗАДЕРЖКИ ДЛЯ АЦП
387 BSF ADCON0 GO ;НАЧАТЬ ПРЕОБРАЗОВАНИЕ AN0
388 BTFSC ADCON0 GO ;ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ
390 MOVF ADRESH w ;СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ (СТАРШИЕ 8 БИТ)
69 119F 00393 BCF ADCON0CHS0
6A 121F 00394 BCF ADCON0CHS1
6B 129F 00395 BCF ADCON0CHS2 ;ВЫБОР КАНАЛА AN0
6C 3050 M MOVLW D'80'
6E 0BE9 M DECFSZ TMP f
6F 2??? M GOTO -1 ;РЕАЛИЗАЦИЯ ЗАДЕРЖКИ ДЛЯ АЦП
70 151F M BSF ADCON0 GO ;НАЧАТЬ ПРЕОБРАЗОВАНИЕ AN0
71 191F M BTFSC ADCON0 GO ;ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ
73 081E M MOVF ADRESH w ;СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ (СТАРШИЕ 8 БИТ)
74 00FB 00397 MOVWF N1
75 159F 00399 BSF ADCON0CHS0
76 121F 00400 BCF ADCON0CHS1
77 129F 00401 BCF ADCON0CHS2 ;ВЫБОР КАНАЛА AN1
78 3050 M MOVLW D'80'
7A 0BE9 M DECFSZ TMP f
7B 2??? M GOTO -1 ;РЕАЛИЗАЦИЯ ЗАДЕРЖКИ ДЛЯ АЦП
7C 151F M BSF ADCON0 GO ;НАЧАТЬ ПРЕОБРАЗОВАНИЕ AN0
7D 191F M BTFSC ADCON0 GO ;ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ
7F 081E M MOVF ADRESH w ;СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ (СТАРШИЕ 8 БИТ)
80 00FC 00403 MOVWF N2
81 159F 00405 BSF ADCON0CHS0
82 161F 00406 BSF ADCON0CHS1
83 129F 00407 BCF ADCON0CHS2 ;ВЫБОР КАНАЛА AN2
84 3050 M MOVLW D'80'
86 0BE9 M DECFSZ TMP f
87 2??? M GOTO -1 ;РЕАЛИЗАЦИЯ ЗАДЕРЖКИ ДЛЯ АЦП
88 151F M BSF ADCON0 GO ;НАЧАТЬ ПРЕОБРАЗОВАНИЕ AN0
89 191F M BTFSC ADCON0 GO ;ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 10
8B 081E M MOVF ADRESH w ;СОХРАНИТЬ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ (СТАРШИЕ 8 БИТ)
8C 00FD 00409 MOVWF N3
411 ;=============================================
412 ;ЧТЕНИЕ ЗНАЧЕНИЯ УСТАВКИ K
413 ;=============================================
8D 1388 00414 BCF PORTD RD7
8E 300E 00415 MOVLW 0x0E
8F 0093 00416 MOVWF SSPBUF
90 1D8C 00417 BTFSS PIR1 SSPIF
91 2??? 00418 GOTO -1
92 118C 00419 BCF PIR1SSPIF
93 3001 00420 MOVLW 0x01
94 0093 00421 MOVWF SSPBUF
95 1D8C 00422 BTFSS PIR1 SSPIF
96 2??? 00423 GOTO -1
97 118C 00424 BCF PIR1SSPIF
98 1788 00425 BSF PORTD RD7
99 0813 00426 MOVF SSPBUF w
9A 00FE 00427 MOVWF K
428 ;==================================================
429 ;ВЫЧИСЛЕНИЕ N И СРАВНЕНИЕ С Q
430 ;===================================================
9B 087E 00431 MOVF K w
9C 077A 00432 ADDWF Pt w
9D 077D 00433 ADDWF N3 w
9E 00F8 00434 MOVWF N
9F 1003 00435 BCF STATUS C
A0 0CF8 00436 RRF N f ; N = (K+Pt+N3)2
A1 087B 00438 MOVF N1 w
A2 077C 00439 ADDWF N2 w
A3 00E9 00440 MOVWF TMP ; TMP = N1+N2
A4 1003 00442 BCF STATUS C
A5 0278 00443 SUBWF N w
A6 1803 00444 BTFSC STATUS C ; проверяем TMP с N находим min
A7 2??? 00445 GOTO M2
A8 0869 00446 MOVF TMP w
A9 00F8 00447 MOVWF N
AA 1003 00449 BCF STATUS C
AB 3023 00450 MOVLW Q
AC 0278 00451 SUBWF N w
AD 1803 00452 BTFSC STATUS C
AE 2??? 00453 GOTO M2_1
AF 3000 00454 MOVLW 0x00
B0 00F9 00455 MOVWF NQ
B1 30F8 00456 MOVLW T2_1 ; если N Q формируем Y2 длительностью T2
B2 008F 00457 MOVWF TMR1H
B3 30C5 00458 MOVLW T2_2
B4 008E 00459 MOVWF TMR1L
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 11
B5 1488 00460 BSF PORTD RD1
B6 1410 00461 BSF T1CON TMR1ON
B7 1C0C 00462 BTFSS PIR1 TMR1IF
B8 2??? 00463 GOTO -1
B9 1088 00464 BCF PORTD RD1
BA 1010 00465 BCF T1CON TMR1ON
BB 100C 00466 BCF PIR1 TMR1IF
BC 2??? 00467 GOTO M3
BD 3001 00469 MOVLW 0x01
BE 00F9 00470 MOVWF NQ
BF 30D4 00471 MOVLW T3_1 ; если N > Q формируем Y3 длительностью T3
C0 008F 00472 MOVWF TMR1H
C1 300D 00473 MOVLW T3_2
C2 008E 00474 MOVWF TMR1L
C3 1508 00475 BSF PORTD RD2
C4 1410 00476 BSF T1CON TMR1ON
C5 1C0C 00477 BTFSS PIR1 TMR1IF
C6 2??? 00478 GOTO -1
C7 1108 00479 BCF PORTD RD2
C8 1010 00480 BCF T1CON TMR1ON
C9 100C 00481 BCF PIR1 TMR1IF
482 ;==================================================
483 ;ВЫЧИСЛЕНИЕ Y4 = a0 + a1 * N3
484 ;==================================================
CA 0802 00486 MOVF a1 w ;
CB 00E9 00487 MOVWF TMP ; реализуем двоичное умножение
CC 187D 00488 BTFSC N3 0 ; через комманды сдвига
CD 07F7 00489 ADDWF Y4 f ;
CE 1003 00490 BCF STATUS C ;
CF 0DE9 00491 RLF TMP f ;
D0 0869 00492 MOVF TMP w ;
D1 18FD 00493 BTFSC N3 1 ;
D2 07F7 00494 ADDWF Y4 f ;
D3 1003 00495 BCF STATUS C ;
D4 0DE9 00496 RLF TMP f ;
D5 0869 00497 MOVF TMP w ;
D6 197D 00498 BTFSC N3 2 ;
D7 07F7 00499 ADDWF Y4 f ;
D8 1003 00500 BCF STATUS C ;
D9 0DE9 00501 RLF TMP f ;
DA 0869 00502 MOVF TMP w ;
DB 19FD 00503 BTFSC N3 3 ;
DC 0700 00504 ADDWF W w ;
DD 1003 00505 BCF STATUS C ;
DE 0DE9 00506 RLF TMP f ;
DF 0869 00507 MOVF TMP w ;
E0 1A7D 00508 BTFSC N3 4 ;
E1 07F7 00509 ADDWF Y4 f ;
E2 1003 00510 BCF STATUS C ;
E3 0DE9 00511 RLF TMP f ;
E4 0869 00512 MOVF TMP w ;
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 12
E5 1AFD 00513 BTFSC N3 5 ;
E6 07F7 00514 ADDWF Y4 f ;
E7 1003 00515 BCF STATUS C ;
E8 0DE9 00516 RLF TMP f ;
E9 0869 00517 MOVF TMP w ;
EA 1B7D 00518 BTFSC N3 6 ;
EB 07F7 00519 ADDWF Y4 f ;
EC 1003 00520 BCF STATUS C ;
ED 0DE9 00521 RLF TMP f ;
EE 0869 00522 MOVF TMP w ;
EF 1BFD 00523 BTFSC N3 7 ;
F0 07F7 00524 ADDWF Y4 f ; a1 * N3
F1 0808 00526 MOVF a0 w ;a1*N3+a0
F2 07F7 00527 ADDWF Y4 f ;Y4=a0+a1*N3
528 ;==================================================
529 ;ФОРМИРОВАНИЕ Y4 c помощью ЦАП(SPI)
530 ;==================================================
F3 1007 00531 BCF PORTC RC0
F4 0877 00532 MOVF Y4 w
F5 0093 00533 MOVWF SSPBUF
F6 1D8C 00534 BTFSS PIR1 SSPIF
F7 2??? 00535 GOTO -1
F8 118C 00536 BCF PIR1SSPIF
F9 1407 00537 BSF PORTC RC0
538 ;=========================================================
FA 1D07 00539 OST:BTFSS PORTC RC2 ;ЕСЛИ ЕСТЬ “ОСТАНОВ” ТО ВЫКЛЮЧЕНИЕ ПРОГРАММЫ.
FB 2??? 00540 GOTO START
FC 2??? 00541 GOTO OST
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 13
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 14
DATA_ADDRESS 00000005
GO_NOT_DONE 00000002
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 15
NOT_ADDRESS 00000005
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 16
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 17
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 18
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 19
_.org_1_0019 00000019
_.org_1_0024 00000024
_.org_1_0028 00000028
_.org_1_002E 0000002E
_.org_1_0033 00000033
_.org_1_0038 00000038
_.org_1_003F 0000003F
_.org_1_0044 00000044
_.org_1_0049 00000049
_.org_1_0055 00000055
_.org_1_0061 00000061
_.org_1_0065 00000065
_.org_1_006B 0000006B
_.org_1_006F 0000006F
_.org_1_0074 00000074
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 20
_.org_1_0091 00000091
_.org_1_0096 00000096
_.org_1_009B 0000009B
_.org_1_00A2 000000A2
_.org_1_00A7 000000A7
_.org_1_00AC 000000AC
_.org_2_0255 00000255
_.org_2_0262 00000262
_.org_2_026F 0000026F
_.org_2_0272 00000272
_.org_2_027B 0000027B
_.org_2_027E 0000027E
_.org_2_0287 00000287
_.org_2_028A 0000028A
_.org_2_0291 00000291
_.org_2_0296 00000296
_.org_2_02B8 000002B8
_.org_2_02C6 000002C6
_.org_2_02F7 000002F7
_FOSC_EXTRC 00003FFF
_WRT_1FOURTH 00003BFF
MPASM 5.56 PROG.ASM 11-12-2016 15:01:28 PAGE 21
Warnings : 0 reported 0 suppressed
Messages : 15 reported 0 suppressed

Свободное скачивание на сегодня

Обновление через: 15 часов 6 минут
up Наверх