Здесь можно найти учебные материалы, которые помогут вам в написании курсовых работ, дипломов, контрольных работ и рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

 

Повышение оригинальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение оригинальности любого файла в формате MS Word. После такого повышения оригинальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, РУКОНТЕКСТ, etxt.ru. Программа «StudentHelp» работает по уникальной технологии так, что на внешний вид, файл с повышенной оригинальностью не отличается от исходного.

Результат поиска


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


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

Информация:

Тип работы: Курсовик. Предмет: Схемотехника. Добавлен: 19.11.2013. Год: 2012. Страниц: 33. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Содержание
Введение 4
1 Техническое задание 5
2 Структурная схема микропроцессорной системы управления 7
3 Блок чтения информации с датчиков 9
4 Блок вывода управляющих сигналов 12
5 Блок последовательного канала связи 133
6 Пульт управления 155
7 Общий алгоритм управления 177
8 Алгоритм работы блока чтения информации с цифровых датчиков 188
9 Алгоритм работы блока чтения информации с аналоговых датчиков 199
10 Алгоритм работы блока обмена информацией по последовательному каналу связи 211
11 Алгоритм работы блока взаимодействия с оператором 222
12 Алгоритмы обработки аварийных ситуаций 233
13 Разработка блока питания 244
Заключение 26
Список используемой литературы 247
Приложение А Схема электрическая принципиальная микропроцессорной системы управления 288
Приложение Б Листинг управляющей программы 29

?
Введение

Микропроцессорные и информационно-управля щие системы, в настоящее время, стали одним из наиболее дешевых и быстрых способов обработки информации. Практически ни одна область современной науки и техники не обходиться без использования их.
В настоящее время всё острее встают проблемы безопасности. Практика показывает, что наибольшее число аварийных ситуаций возникает из-за ошибочных действий человека. В связи с этим большое значение имеет применение в системах управления технических средств позволяющих полностью автоматизировать этот процесс. Развитие микропроцессорных и информационно-управля щих систем позволило перейти на качественно новую элементную базу, которая в свою очередь повысила скорость и качество выполнения операций.
К настоящему времени значительную часть мирового рынка микропроцессорных средств составляет другой вид однокристальных контроллеров – это периферийные интерфейсные контроллеры или PIC. Они представляют собой высокопроизводительн е БИС, в которые интегрированы помимо цифровых устройств (собственно микроконтроллера) также и аналоговые – это различные АЦП, компараторы, модули сравнения ШИМ и т.д. Это делает данные устройства чрезвычайно популярными у производителей «интеллектуальных» устройств.
1 Техническое задание
Обработка цифровой информации
Микропроцессорная система опрашивает двоичные датчики Х1-Х3, вычисляет значение функции Y1= .
При единичном значении функции система вырабатывает выходной сигнал Y1 = 1 длительностью 107 мкс.
В системе имеется также двоичный датчик аварийной ситуации X0, единичный сигнал с которого должен вызывать аварийный останов системы в любой момент времени.
Обработка аналоговой информации
Сигналы с аналоговых датчиков V1, V2 преобразуются в цифровую форму в АЦП. С выхода АЦП 8-разрядные коды N1 и N2, представляющие собой целые числа без знака, поступают на обработку. Величина К — 8-разрядный код установки, поступающий от оператора. Далее система вычисляет функцию N=N1+N2-N3. Полученное значение функции сравнивается с константой Q, хранящейся во внутренней памяти.
Если N меньше Q, то система выводит двоичный управляющий сигнал Y2 длительностью 126 мкс. Если N больше Q, то система выводит двоичный управляющий сигнал Y3 длительностью 129 мкс.
Управляющее воздействие Y4 формируется в виде аналогового сигнала V4 и с выхода ЦАП и поступает на исполнительный механизм. Значение Y4 определяется как восьмиразрядное двоичное число по формуле
Y4=A0+A1*N2 (1);
где А0 и А1 — 8-разрядные коэффициенты, хранящиеся во внутренней памяти микроконтроллера;
N2 — 8-разрядный код, поступающий с выхода АЦП.
Исходные величины, поступающие с АЦП, меньше единицы и представляются двоичным числом с фиксированной запятой.
Если после умножения значение Y4 превышает 8 разрядов, но необходимо принимать значение Y4 равное младшему байту.
Обработка запросов на прерывания
Система обрабатывает пять запросов на прерывание:
запрос на прерывание по сигналу отказа источника питания IRQ0;
запрос на прерывание по сигналу аварийного датчика IRQ1;
запрос на прерывание от терминала внешней ЭВМ IRQ2;
запрос на прерывание от таймера IRQ3;
запрос на прерывание от пульта управления IRQ4.
Пульт управления
Пульт управления должен содержать следующие элементы:
устройство индикации;
входной 8-разрядный регистр для приема с тумблеров пульта кода К;
светодиод аварийной сигнализации, на который подается меандр с частотой 2 Гц;
кнопку «Сброс», при нажатии на которую производится начальная установка элементов системы;
тумблер «Останов», опрашиваемый в конце каждого цикла выполнения программы.
2 Структурная схема микропроцессорной системы управления
Структурная схема микропроцессорной системы управления представлена на рисунке 1.
Входными сигналами для системы являются:
сигналы бинарных датчиков X1-Х3;
сигналы аналоговых датчиков V1-V3.
Выходными управляющими сигналами для системы являются:
цифровые сигналы Y1-Y3;
аналоговый сигнал V4, формируемый ЦАП из кода Y4.

Рисунок 1 — Структурная схема микропроцессорной системы управления
В качестве микроконтроллера выбрана микросхема PIC16F877.
Для обработки информации нам необходимы 27 выводов, что соответствует эталонному микроконтроллеру. Данный микроконтроллер является со встроенным АЦП и характеризуется высокой скоростью выполнения команд.
Как видно из структурной схемы, используются схемы сопряжения со всеми видами датчиков.
Микроконтроллер является центральным блоком системы управления. Он обрабатывает входные сигналы с бинарных датчиков, сигналы прерывания, вырабатывает цифровые управляющие сигналы, сигналы управления периферийными устройствами.
По заданию, у нас 3 бинарных и 3 аналоговых датчика.
Блок чтения информации с датчиков предназначен для согласования уровней сигналов датчиков с уровнями ТТЛ и ввода этих сигналов в микроконтроллер. Для этого используются схемы согласования и АЦП.
Блок вывода управляющих сигналов предназначен для вывода цифровых сигналов управления Y1-Y3. Для вывода аналогового управляющего сигнала V4 в схеме блока присутствует ШИМ.
Пульт управления служит для управления системой. Он содержит блок тумблеров для задания кода установки, схему индикации, аварийную сигнализацию и тумблер «Останов».
Блок канала с последовательным доступом состоит из микросхемы преобразователя уровней и разъёма.
3 Блок чтения информации с датчиков
Согласно задания нижний уровень входного сигнала составляет плюс 2 В, верхний — минус 3 В. Чтобы МК мог принимать информацию с датчиков, необходимо преобразовать эти уровни в уровни ТТЛ.
Схема согласования с бинарным датчиком представлена на рисунке 2.

Рисунок 2 — Схема согласования с бинарным датчиком
Для корректной обработки цифровых входных сигналов воспользуемся схемой сопряжения, выполненной на оптронах. На выходе цифровые сигналы также требуется преобразовать в заданный формат, и для этой цели воспользуемся фототранзисторным оптроном 4N35.
Оптрон 4N35 состоит из фототранзистора и оптически связанного с ним инфракрасного светодиода на основе соединения арсенид-галлия. Выпускаются в 6-ти выводном DIP корпусе. Кроме того, различные производители предлагают модификации оптрона 4N35 в различных корпусах, в том числе и для поверхностного монтажа.

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

Формула расчета сопротивления резистора R2:
(2);
где Uпр – прямое падение напряжения на светодиоде оптрона при прямом токе Iпр. Для оптрона 4N35 Uпр = 1,5 В при Iпр.= 10 мА.

Произведя вычисления получим R1=150 Ом. Такой номинал есть в ряду Е24.
Выбираем резистор
Учитывая, что все входные схемы сопряжения имеют одинаковую структуру, резисторы остальных входных схем сопряжения будут соответственно равны написанным выше.

Резистор R3 используется для ограничения тока в цепи и равен 1,2кОм. Учитывая, что входные схемы сопряжения одинаковы, следовательно, и номиналы резисторов равны.
В качестве операционных усилителей возьмем ОУ AD 202 имеющих гальваническую развязку входа и выхода.
Для согласования аналоговых сигналов с АЦП используем инвертирующий сумматор напряжений с гальванической развязкой:


Рисунок 4 – Схема инвертирующего сумматора с гальванической развязкой

расчет сопротивлений резисторов:
(3);
кОм; (4)
кОм; (5)
(6)
R4=1/0,0019 = 0.529 кОм.
Принимаем значения сопротивлений согласно ряду Е24:
R1 = 1,2 кОм, R2 = 4,5 кОм, R3 = 1,2 кОм, R1 = 1 кОм.
Где Uпит – напряжение источника питания, подключаемого к резистору R2.
Используем в схеме следующие резисторы:
R1 - Ом
R2 - Ом
R3 - Ом
R4 - Ом
Это напряжение выбирается следующим образом:
Если Uвхmin › 0 В, то Uпит = -7,5 В (резистор R2 соединяется с выводом 5 ОУ (-Viss));
Преобразование входных аналоговых сигналов V1, V2 и V3 в цифровую форму производится с помощью АЦП, встроенного в микроконтроллер.
4 Блок вывода управляющих сигналов
Для получения аналогового управляющего сигнала Y4 в разрабатываемом курсовом проекте применим настройку модуля CCP в режим ШИМ.
Каждый модуль CCP содержит 16-разрядный регистр, который может использоваться в качестве двух 8-разрядных регистров (ведомый и ведущий) ШИМ.
Инициализация ШИМ осуществляется следующим образом:
CLR CCP1CON Выключаем модуль ССР
CLR TMR2
MOVLW 0x7F
MOVWF PR2
MOVLW 0x1F
MOVWF CCPR1L Длительность импульса 25% от цикла ШИМ
CLRF INTCON Выключить прерывания
BSF STATUS, RP0 Банк 1
BCF TRISC, CCP1 Настроить вывод ССР на выход
CLRF PIE1 Выключить периферийные прерывания
BCF STATUS, RP0 Банк 0
CLRF PIR1 Сбросить все флаги периферийных прерываний
MOVLW 0x2C Режим ШИМ. Два младших биты длительности
MOVWF CCP1CON импульса ШИМ=10
BSF T2CON, TMR2ON Разрешить приращение TMR2
Микроконтроллер может выдавать только цифровой сигнал — логические «1» и «0».
В ШИМ сигнале с постоянной частотой первую часть периода на выход подается «1», а вторую часть — «0». Скважность сигнала можно менять, изменяя соотношение длительности обоих частей. Скважность ШИМ — это соотношение продолжительности импульса логической единицы и периода ШИМ. 10-битный ШИМ может обеспечить точность изменения скважности в 1/1024 длительности периода.
Так как частота сигнала достаточно велика, то низкоскоростным нагрузкам будет казаться, что они получают напряжение, равное проценту скважности от максимума. Таким образом из ШИМ у нас выйдет обычный аналоговый выход с диапазоном напряжения от 0 до Vdd (в нашем случае — 5В).

5 Блок последовательного канала связи

Рисунок 5 – Схема принципиальная интерфейса RS-485

Протокол связи RS-485 является наиболее широко используемым промышленным стандартом, использующим двунаправленную сбалансированную линию передачи. Протокол поддерживает многоточечные соединения, обеспечивая создание сетей с количеством узлов до 32 и передачу на расстояние до 1200 м. Использование повторителей RS-485 позволяет увеличить расстояние передачи еще на 1200 м или добавить еще 32 узла. Стандарт RS-485 поддерживает полудуплексную связь. Для передачи и приема данных достаточно одной скрученной пары проводников.
Электрические характеристики интерфейса RS-485 приведены в таблице 1.
Таблица 1 — Электрические характеристики интерфейса RS-485
Наименование параметра Значение
Диапазон напряжений "1" передатчика +1.5...+6 В
Диапазон напряжений "0" передатчика –1.5...–6 В
Диапазон синфазного напряжения передатчика –1...+3 В
Допустимый диапазон напряжений приемника –7...+12 В
Пороговый диапазон чувствительности приемника ±200 мВ

Интерфейс RS-485 обладает следующими электрическими характеристиками:
1 Сопротивление нагрузки Tx - 54 Ом;
2 Максимальное входное сопротивление Rx 12 кОм;
3 Диапазон напряжений входного (выходного) сигнала от -7 В до +12 В.
Рассчитаем скорость модуля работы USART:
Fosc/(64(x+1)), (7) – скорость работы низкоскоростного модуля USART;
Fosc/(16(x+1)), (8) – скорость работы высокоскоростного модуля USART, где Fosc- скорость резонатора.
Для низкоскоростного модуля USART:
96000= , выразим х;
Х= -1=2,254?2 , подставим вместо х полученное значение
=104166,6
Погрешность составляет 8,5%.
Для высокоскоростного модуля USART:
96000= , выразим х;
Х= -1=12,02?12 , подставим вместо х полученное значение:
=96153,85
Погрешность составляет 0,16%.
Как видно, погрешность гораздо ниже у высокоскоростного модуля, следовательно, выбираем высокоскоростной модуль USART.

6 Пульт управления
Пульт управления будет содержать следующие регистры:
Регистр со светодиодами индикации значения N - РИ1;
Регистр со светодиодами индикации значений X1…X3 – РИ2;
Регистр со светодиодами индикации значений Y1,Y2 – РИ3;
Регистр со светодиодами индикации значений Y4 – РИ4;
Кнопку «Сброс», при нажатии на которую производится начальная установка элементов системы;
Весь пульт управления будет выполняться при помощи регистра SN64ALS37.
Для дальнейших расчетов нам необходимы следующие характеристики регистра:
Напряжение питания (Vcc) - +5В ± 10%
Ток потребления (статический), max - 27мА
Входной ток (0/1), не более - 20мкА/200мкА
Выбранная нами микросхема представляет собой восьмиразрядный регистр хранения информации, тактируемый импульсом. При подаче «1» на вход LE происходит запись информации в триггеры регистра, в этом случае сигналы на выходах регистра повторяют входные, регистр открыт для сигналов на входах D1 - D8. При подаче «0» на вход LE регистр переходит в режим хранения информации.
Выходы микросхемы находятся в активном состоянии, если на вход OE подан «0».

Рисунок 6 – Схема пульта управления

7 Общий алгоритм управления

Рисунок 7 — Общий алгоритм управления
Блок i1 выполняет начальную установку системы.
Блок d1 реализует задачу логического управления: принимает информацию от двоичных датчиков Х1-Х3, вычисляет значение функции выдает это значение в качестве управляющего сигнала Y1 по соответствующему выходному каналу на исполнительный механизм.
Блок a1 обеспечивает прием информации с аналоговых датчиков, ее преобразование в цифровую форму, вычисление значений управляющих воздействий Y2, Y3, Y4 и выдачу их на исполнительные механизмы. При выполнении этого блока учитывается значение установки, заданной оператором с пульта.
Блок l1 обеспечивает циклический режим управления или останов системы в соответствии с командой, поступающей с пульта управления.
8 Алгоритм работы блока чтения информации с цифровых датчиков

Рисунок 8 — Алгоритм работы блока чтения информации с цифровых датчиков
В блоке d1 происходит побитовый ввод значений X1-X3 с одновременным вычислением значения функции f во флаге переноса.
Блок d2 проверяет значение функции f и если оно равно 0, то организуется обход блока d3.
В блоке d3 происходит выдача управляющего сигнала Y1 длительностью 107 мкс. Для этого необходимо рассчитать константу для загрузки в таймер.
Т.к. частота у нас 20 МГц, то одна команда будет выполняться за 4/20 = 0,2мкс., следовательно, за 107 мкс будут выполнятся 107/0,2 = 535 команд.
53510 = 21716
Константа будет равна
FFF – 216 = FDE9.
9 Алгоритм работы блока чтения информации с аналоговых датчиков

Рисунок 9 — Алгоритм работы блока чтения информации с аналоговых датчиков
В блоке a1 происходит ввод кодов N1, N2 и N3 с АЦП.
В блоке a2 вычисляется значение функции N.
В зависимости от результата сравнения значения функции N и константы Q блок a3 передает управление на блок a4 или блок a5.
В блоке a4 происходит выдача управляющего сигнала Y3 длительностью 129 мкс. Для этого необходимо рассчитать константу для загрузки в таймер.
129/0,2 = 645
Константа будет равна
FFF – 285 = FD7A.
В блоке a5 происходит выдача управляющего сигнала Y2 длительностью 126 мкс. Для этого необходимо рассчитать константу для загрузки в таймер.
126/0.2 = 630
Константа будет равна
FFF – 276 = FF81.
В блоке a6 организуется вычисление значения Y4.
В блоке a7 с помощью ЦАП из Y4 формируется и выдается управляющий сигнал V4.
10 Алгоритм работы блока обмена информацией по последовательному каналу связи
Сдвиговый регистр TSR получает данные из буфера передатчика TXREG. Данные в регистре TXREG загружается программно. В последнем машинном такте цикла BRG, после передачи стопового бита предыдущего байта, TSR загружается новым значением из TXREG (если оно присутствует), после чего устанавливается флаг прерывания TXIF (PIR1‹4›). Прерывание может быть реализовано битом TXIE (PIE1‹4›). Флаг TXIF устанавливается независимо от состояния бита TXIE и не может быть сброшен в «0» программно. Флаг TXIF очищается только после загрузки новых данных в регистр TXREG. Аналогичным образом бит TRMT (TXSTA‹1›) отображает состояние регистра TSR. Бит TRMT доступен только на чтение и не может вызвать генерацию прерывания.
Примечания:
Регистр TSR не отображается на память и не доступен для чтения.
Флаг TXIF устанавливается в «1» только, когда бит TXEN=1 и сбрасывается автоматически в «0» после загрузки новых данных в регистр TXREG.

Рисунок 10 – Структурная схема асинхронного передатчика USART
Для разрешения передачи необходимо установить бит TXEN (TXSTA‹5›) в «1». Передача данных не начнется до тех пор, пока в TXREG не будут загружены новые данные: не придет очередной тактовый импульс от генератора BRG. Как правило, после разрешения передачи регистр TSR пуст, таким образом, данные записываемые в TXREG сразу передаются в TSR, а TXREG остается пустым. Сброс бита TXEN в «0» вызовет немедленное прекращение передачи, сброс передатчика и перевод вывода RC6/TX/CK в третье состояние.

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

Микроконтроллеры PICmicro среднего семейства могут иметь несколько источников прерываний. У каждого периферийного модуля назначен отдельный источник прерываний, хотя некоторые из них могут содержать несколько источников прерываний (например, модуль USART).
Прерывания, которые мы использовали в данной курсовой работе:
Внешний источник прерываний INT;
Переполнение таймера TMR0;
Прерывания от USART;
Завершение преобразования АЦП;
Прерывание от модуля CCP, который, как описывалось ранее, используется в режиме ШИМ;
Для реализации всех необходимых прерываний в нашей курсовой работе будет применяться следующий алгоритм:
данные по прерываниям подводятся на ножку INT;
производится опрос, для того, чтобы определить, откуда пришла информация (найти причину прерывания);
переход на необходимую метку, соответствующую предыдущему пункту, в которой и производятся необходимые для данного случая действия.
Блок программы касающейся прерываний:

;Прерывания
BTFSC PORTC,RC7; USART
GOTO M8;
BTFSC PORTD,RD7 ; ПУ
GOTO M9;
BTFSC PORTD,RD6; АВАРИЙНЫЙ ДАТЧИК
GOTO M10

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

Произведем расчет потребляемой мощности системы. Для этого просуммируем максимальные токи, потребляемые каждым из устройств системы и полученную сумму умножим на напряжение питания.
В приведенном расчете не учитывается потребленнная или рассеянная энергия резисторами, конденсаторами, диодами и другими микропотребляющими приборами, т.к. оно будет незначительным. Однако при расчёте блока питания его мощность необходимо увеличить, чтобы учесть это потребление.
В начале рассчитаем мощность потребляемую микроконтроллером:
; (9)
где – напряжение относительно ;
– максимальный ток вывода ;
– выходное напряжение высокого уровня;
– ток I/O канала;
– выходное напряжение низкого уровня;
– ток I/O канала.
P_pic=5.5•(250•?10?^ -3)-5•7•?10?^(-3) )+(5•7•?10?^(-3) )•(5-4.3)+5•(-2.5•?1 ?^(-3) )=1.2 Вт
Теперь найдем остальные мощности, которые потребляет наша система.
В нашей работе используется оптрон 4N35 в схеме сопряжения с цифровыми датчиками. Рассеиваемая мощность оптрона 150мВт. По заданию у нас 3 цифровых датчика, и следовательно 3 оптрона на схемах сопряжения, следовательно общая мощность 450мВт. Как видим, мощность незначительная.
При проектировании используем 5 регистров SN64ALS37, каждый из которых работает при 27мА и от 5В, следовательно, общая потребляемая мощность равна 0.675 Вт.
Будем использовать усилитель AD202 который работает при токе 5мА и напряжении 15В, а его потребляемая мощность составляет 0.075 Вт.
С учетом приведенных расчетов,
Общая потребляемая мощность всего устройства составит 6Вт.

13 Разработка блока питания
Малогабаритные трансформаторы малой мощности типа ТПП отличаются низкими напряжениями на вторичных обмотках. Трансформаторы данного типа применяются для работы в устройствах, собранных на полупроводниковых приборах в радиоэлектронной аппаратуре, аппаратуре средств связи и электронно-вычислител ных машинах при питании от промышленной и специальной сети переменного тока напряжением 40, 115, 127 и 220 В с частотой 50 и 400 Гц. Эти трансформаторы охватывают широкий диапазон напряжений и токов при мощности до 500 В-А.
Благодаря наличию нескольких вторичных обмоток, рассчитанных на различные токи и напряжения, возможность их последовательного и параллельного соединений, можно получать разнообразные сочетания токов и напряжений для питания устройств различного функционального назначения.
При разработке блока питания я выбрал трансформатор ТПП48, у которого броневая конструкция. Он рассчитан на мощность 14Вт, что вполне удовлетворяет мощности, которую потребляет наша микропроцессорная система. Трансформатор рассчитан на работу в сети с напряжением 220В и частотой 50Гц.
Кроме трансформатора, в состав блока питания входят схемы выпрямителей и схемы стабилизации.
Схемы выпрямителей переменного напряжения представляют собой диодные блоки КЦ407А.
В качестве схемы стабилизации по каналу плюс 5В применим интегральный стабилизатор напряжения LM7805, по каналу плюс 15В — LM7815, по каналу минус 15В — LM7915.

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

Заключение

В процессе выполнения данной курсовой работой была разработана микропроцессорная система в соответствии с полученным индивидуальным заданием. Была выбрана микропроцессорная плата PICmicro, которая удовлетворяет заданным условиям. Были разработаны схемы сопряжения с цифровыми и аналоговыми датчиками и выбраны элементы для их нормального функционирования. Для работы с аналоговым выходом был проинициализирован и включен в режим работы ШИМ модуль CCP. Описан блок последовательного интерфейса RS-485. Разработаны алгоритмы для работы с самой микропроцессорной системы и ее функциональными блоками. Вычислена общая потребляемая мощность системы и разработан блок питания, для работы этой системы.
?
Список используемых источников
Сташин, В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин, А.В. Уросов, О.Ф.Мологонцева – М.: Энергоатомиздат, 1990. – 224 с.
Бродин, В.Б. Системы на микроконтроллерах и БИС программируемой логики / В.Б. Бродин, А.В.Калинин – М.: Издательство ЭКОМ, 2002. – 400 c.
Яценков, В.С. Микроконтроллеры Microchip. Практическое руководство / В.С. Яценков – М.: Горячая линии – Телеком, 2002. – 296 с.
Тавернье, К. PIC-микроконтроллеры. Практика применения: Пер. с фр. /К. Тавернье – М.: ДМК Пресс., 2004. – 272 с.

Приложение А Схема электрическая принципиальная микропроцессорной системы управления
Приложение Б Листинг управляющей программы
#include ‹p16f877a.inc›
org 0x00;
start;
NOP
NOP
NOP
NOP
;ПРЕРЫВАНИЕ
BTFSC PORTC,RC7; USART
GOTO M8;
BTFSC PORTD,RD7; ПУ
GOTO M9;
BTFSC PORTD,RD6; АВАРИЙНЫЙ ДАТЧИК
GOTO M10
;Инициализация портов
BCF STATUS,RP0; Выбираем нулевой банк регистров
CLRF PORTA; Очищаем портА
CLRF PORTB; Очищаем порт В
CLRF PORTC; Очищаем порт С
CLRF PORTD; Очищаем порт D
CLRF PORTE; Очищаем порт E
BSF STATUS,RP0; Выбираем первый банк регистров
MOVLW 0xFF; Записываем константу в аккумулятор
MOVWF TRISA; Пересылаем значение аккумулятора в регистр TRISA
MOVWF TRISB; Пересылаем значение аккумулятора в регистр TRISB
MOVLW 0xDF Записываем константу в аккумулятор
MOVWF TRISC; Пересылаем значение аккумулятора в регистр TRISC
MOVLW 0x0F; Записываем константу в аккумулятор
MOVWF TRISD; Пересылаем значение аккумулятора в регистр TRISD
MOVLW 0xFF; Записываем константу в аккумулятор
MOVWF TRISE; Пересылаем значение аккумулятора в регистр TRISE
;Конец инициализации портов
;Инициалищация модуля USART на передатчик и приемник
BSF STATUS,RP0; Выбираем первый банк регистров
MOVLW 0x06; Записываем константу в аккумулятор
MOVWF SPBRG; Пересылаем значение аккумулятора в регистр SPBRG
MOVLW 0xA4; Записываем константу в аккумулятор
MOVWF TXSTA; Пересылаем значение аккумулятора в регистр TXSTA
BCF STATUS,RP0; Выбираем нулевой банк регистров
MOVLW 0x90; Записываем константу в аккумулятор
MOVWF RCSTA; Пересылаем значение аккумулятора в регистр RCSTA
;Конец инициализации
;Инициализация АЦП
BSF STATUS,RP0; Выбираем первый банк регистров
MOVLW 0x00; Записываем константу в аккумулятор
MOVWF ADCON1; Пересылаем значение аккумулятора в регистр adcon1
BCF STATUS,RP0; Выбираем нулевой банк регистров
MOVLW 0xC1 Записываем константу в аккумулятор
MOVWF ADCON0; Пересылаем значение аккумулятора в регистр adcon0
;Конец инициализации АЦП
;Инициализация таймеров
CLRF T1CON; Очистить регистр T1CON
CLRF TMR1H; Очистить регистр TMR1H
CLRF TMR1L; Очистить регистр TMR1L
CLRF INTCON; Очистить регистр INTCON
BSF STATUS, RP0; Выбираем первый банк регистров
CLRF PIE1; Очистить регистр PIE1
BCF STATUS, RP0; Выбираем первый банк регистров
CLRF PIR1; Очистить регистр PIR1
BSF T1CON, TMR1ON; Установить бит TMR1ON в регистре T1CON
;Конец инициализации

;Выполнение программы
M50
M36
M12
M16
M18
M29
M20
M28
;ПРИЕМ БИНАРНЫХ
MOVF PORTD; Пересылаем данные из порта Д в аккумулятор
MOVWF 20h; Пересылаем данные из аккумулятора в регистр 20h
MOVWF 21h; Пересылаем данные из аккумулятора в регистр 21h
RRF 21h; Циклический сдвиг вправо битов регистра 21h
MOVWF 22h; Пересылаем данные из аккумулятора в регистр 22h
RRF 22h; Циклический сдвиг вправо битов регистра 22h
MOVLW 0x01; Записываем константу в аккумулятор
ANDWF 20h; Наложение маски на регистры
ANDWF 21h;
ANDWF 22h;
;фУНКЦИИ
MOVF 20h; Задаем функцию по заданию
MOVWF 24h;
MOVF 21h;
M1
MOVF 20h Производим вычисление заданной функции
MOVWF 21h
MOVF 22h
ANDWF 21h
COMF 21h Инвертируем данные регистра 21h
MOVF 23h;
ADDWF 21h Сложение данных регистра и аккумулятора
MOVLW 0x01;
SUBWF 26h Проверяем есть ли данные на бинарных датчиках
BTFSC STATUS,C; Проверка бита С в регистре STATUS
GOTO M2;
GOTO M3;
;ПРИЕМ АНАЛОГА
M3
BTFSC PORTA,RA0; Проверка данных на ножке RA0
GOTO M5
BCF PIR1,ADIF; Отмена прерывания
BSF ADCON0, GO; Запуск преобразования из аналогового в цифровой
M4
BTFSC ADCON0,GO; Ожидание преобразования
GOTO M4;
BSF STATUS,RP0; Выбираем первый банк
MOVF ADRESL; Пересылаем ADRESL в аккумулятор
BCF STATUS,RP0; Выбираем нулевой банк
MOVWF 27h;
BSF STATUS,RP0
MOVF ADRESH;
BCF STATUS,RP0;
ADDWF 27h;
M5
BTFSC PORTA,RA1; Проверка данных на ножке RA1
GOTO M6
MOVLW 0xC9;
MOVWF ADCON0;
BCF PIR1,ADIF; Отмена прерывания
BSF ADCON0,GO; Запуск преобразования
M7
BTFSC ADCON0,GO; Ожидание перобразования
GOTO M7;
BSF STATUS,RP0;
MOVF ADRESL;
BCF STATUS,RP0;
MOVWF 28h;
BSF STATUS,RP0;
MOVF ADRESH;
BCF STATUS,RP0;
ADDWF 28h
M6
BTFSC PORTA,RA2; Проверка данных на ножке RA2
GOTO M51
BCF PIR1,ADIF; Отмена прерывания
BSF ADCON0, GO; Запуск преобразования
M47
BTFSC ADCON0,GO; Ожидание преобразования
GOTO M47;
BSF STATUS,RP0;
MOVF ADRESL;
BCF STATUS,RP0;
MOVWF 27h;
BSF STATUS,RP0
MOVF ADRESH;
BCF STATUS,RP0;
ADDWF 27h;

M51
MOVF 27h;
MOVWF 29h;
MOVF 28h;
SUBWF 29h;
BTFSC STATUS,C;
GOTO M13;T2
GOTO M14;T3

M2; посылка бинарных
COMF PORTD Инвертируем данные из порта Д
MOVLW 0xFF;
MOVWF TMR1H
MOVLW 0x94; ;Задается количество циклов
MOVWF TMR1L
M15
COMF PORTD
BTFSS PIR1,TMR1IF
GOTO M15 ;
BCF PIR1,TMR1IF
NOP
COMF PORTD ;
GOTO M16

M8
M30
BTFSS PIR1, RCIF; Проверка бита RCIF в регистре PIR1
GOTO M30
MOVF RCREG;
MOVWF 31h
GOTO M29

M9
MOVF 24h
MOVWF 45h
MOVF 25h
ADDWF 45h
MOVF PORTD ;
MOVWF 35h;
ADDWF 35h;
M48
DECFSZ 45h; Декрементируем данные в 45h
GOTO M48
GOTO M36

M10
MOVLW 0x04;
MOVWF 37h;
M26
MOVLW 0x20;
MOVWF 36h;
M25
DECFSZ 36h
GOTO M25
MOVLW 0xFF
MOVF PORTD
DECFSZ 37h;
GOTO M26
GOTO M28

M11
SLEEP;

;ШИМ
M21
MOVLW 0x34;
MOVWF 32h;
MOVLW 0x42;
MOVWF 33h;
MOVF 28h;
MOVWF 34h;
M22
ADDWF 33h;
DECFSZ 28h;
GOTO M22
MOVF 33h;
MOVWF 32h;

CLRF CCP1CON; Инициализация ШИМ
CLRF TMR2;
MOVLW 0x7F;
MOVWF PR2;
MOVLW 0x1F;
MOVWF CCPR1L;
CLRF INTCON;
BSF STATUS,RP0;
CLRF PIE1;
BCF STATUS,RP0;
CLRF PIR1;
MOVLW 0x2C;
MOVWF CCP1CON;

MOVLW 0x03;
MOVWF 34h
M24
DECFSZ 34h;
GOTO M24
GOTO M18

M13
COMF PORTD
MOVLW 0xFF
MOVWF TMR1H
MOVLW 0x81 ;Задается количество циклов
MOVWF TMR1L
M31
BTFSS PIR1,TMR1IF
GOTO M31 ;
BCF PIR1,TMR1IF
NOP
COMF PORTD ;
GOTO M21;T4

M14
COMF PORTD
MOVLW 0xFF
MOVWF TMR1H
MOVLW 0x7E ;Задается количество циклов
MOVWF TMR1L
M17
BTFSS PIR1,TMR1IF
GOTO M17 ;
BCF PIR1,TMR1IF
NOP
COMF PORTD
GOTO M21;T4

GOTO M50
END



Смотреть работу подробнее



Скачать работу


Скачать работу с онлайн повышением оригинальности до 90% по antiplagiat.ru, etxt.ru


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.