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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

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

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


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

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

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

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

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

мц = 4·T,

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

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

= tимп/Tмц ;

=600.

Данное число в шестнадцатеричной системе счисления N = 258 h. Так как таймер 16-ти разрядный, то FFFF-285=FD7A, полученное значение записываем в регистр TMR1.

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


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

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

Вначале осуществляется первичная инициализация АЦП. После чего происходит считывание информации с АЦП, которая была получена от аналоговых датчиков, и дальнейшая ее запись по портам ввода-вывода в регистры микроконтроллера. Происходит считывание 8-и разрядного кода установки (величина К), который приходит с пульта управления. Затем происходит вычисление , по заданию. Далее происходит сравнение функции N с константой Q, которая храниться в регистре микроконтроллера. Если N < Q, то осуществляется выработка двоичного управляющего воздействие Y2. Если же функция N1 > K, то осуществляется переход к выработке двоичного управляющего воздействие Y3. После этого идет завершение данного алгоритма.

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

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

Tмц = 4·T,

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

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

N = tимп/Tмц ;

N=1590.

Данное число в шестнадцатеричной системе счисления N = 636 h. Так как таймер 16-ти разрядный, то FFFF-636=F9C9, полученное значение записываем в регистр TMR1.

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

T3=395 мкс;=1975=7B7 h;B7=F848.

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


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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

Потребитель

Количество

Iпотр, мА

∑Iпотр, мА

+ 15 В

AD202

2

50

100

Итого

100

+ 5 В

КР1533ЛН1

1

3,8

3,8


PIC16F877A

1

43,0

43,0


MCP2551

1

75

75


PCA9535

1

160

160


PCF8574

1

100

100


КИПД05А

16

5,0

80,0


КР1533ЛА4

3

2,2

6,6

Итого

189,6

+7.5 В

AD202

2

50

100

Итого

100


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

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


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

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

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

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

Заключение

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

Список литературы

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

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

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

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

Приложение

ЛИСТИНГ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 1

LOC OBJECT CODE LINE SOURCE TEXT VALUE

00001 #include <p16f877a.inc>

00001 LIST

00002

00003

 00004 ; MPASM PIC16F877A processor include

00005 ; 00006 ; (c) Copyright 1999-2013 Microchip Technology, All rights reserved

00007

00008

00566 LIST

00002 ;

00003 ;ОБЪЯВЛЕНИЕ КОНСТАНТ

00004 ;

00005 DEL_ADC EQU D'100'

00000044 00006 KOD_D EQU 'D'

00007 ;

;ОБЪЯВЛЕНИЕ РЕГИСТРОВ

00009 ;

CBLOCK 0x20

00000020 00011 N1; РЕГИСТР ВЕЛИЧИНЫ АНАЛОГОВОГО СИГНАЛА ОТ ДАТЧИКА N1

00000021 00012 N2; РЕГИСТР ВЕЛИЧИНЫ АНАЛОГОВОГО СИГНАЛА ОТ ДАТЧИКА N2

00000022 00013 N; РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ АНАЛОГОВОЙ ФУНКЦИИ N

00000023 00014 N2_TMP; РЕГИСТР ДЛЯ ХРАНЕНИЯ РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ N2-K

00000024 00015 Y2

00000025 00016 Y3; РЕГИСТРЫ УПРАВЛЯЮЩИХ СИГНАЛОВ Y2,Y3

00000026 00017 KREG;РЕГИСТР ДЛЯ ХРАНЕНИЯ 8-РАЗРЯДНОГО K

00000027 00018 Q;КОНСТАНТА ХРАНЯЩАЯСЯ ВО ВНУТРЕННЕЙ ПАМЯТИ

00000028 00019 IND1;РЕГИСТР ИНДИКАЦИИ 1

00000029 00020 IND2;РЕГИСТР ИНДИКАЦИИ 2

0000002A 00021 Y1; РЕГИСТР РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ ЦИФРОВОЙ ФУНКЦИИ Y1

0000002B 00022 W_TEMP;КОПИЯ АККУМУЛЯТОРА

0000002C 00023 STATUS_TEMP;КОПИЯ РЕГИСТРА СОСТОЯНИЯ

0000002D 00024 X1

0000002E 00025 X2

0000002F 00026 X3

00000030 00027 X4; Х1-Х4-ХРАНЯТ ЗНАЧЕНИЯ ЦИФРОВЫХ ДАТЧИКОВ

00000031 00028 X_BUF; ДОПОЛНИТЕЛЬНЫЙ РЕГИСТР ДЛЯ ЦИФРОВЫХ ДАТЧИКОВ

00000032 00029 IBUF; РЕГИСТР ДЛЯ ХРАНЕНИЯ ЗНАЧЕНИЙ X1-X5

00000033 00030 XAND;РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ X1*X2*X3*X4*X5 НА СЛУЧАЙ ПРЕРЫВАНИЯ

00000034 00031 XIOR;РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ X1VX2VX3VX4VX5 НА СЛУЧАЙ ПРЕРЫВАНИЯ

00000035 00032 COUNTER_ADC; СЧЁТЧИК ЗАДЕРЖКИ ДЛЯ АЦП

00000036 00033 REG_1

00000037 00034 REG_2

00000038 00035 REG_3; ДОПОЛНИТЕЛЬНЫЕ РЕГИСТРЫ ДЛЯ ФОРМИРОВАНИЯ АВАРИЙНОЙ СИГНАЛИЗИЦИИ

00036 ENDC

00037 ;

;МАКРОКОМАНДЫ

00039 ;

MPASM 5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 2

LOC OBJECT CODE LINE SOURCE TEXT VALUE

00040 BANC0 MACRO ; ВЫБОР БАНКА 0

00041 BCF STATUS, RP0

00042 BCF STATUS, RP1

00043 ENDM

00044 BANC1 MACRO ; ВЫБОР БАНКА 1

00045 BSF STATUS, RP0

00046 BCF STATUS, RP1

00047 ENDM

00048 RES_VECT CODE 0x0000; ВЕКТОР СБРОСА

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

00050 MAIN_PROG CODE

00051 ;

;ОБРАБОТКА ПРЕРЫВАНИЙ

00053 ;

00054 ORG 0x04

00055 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

00AB 00056 MOVWF W_TEMP

0007 0803 00057 MOVF STATUS,W

00AC 00058 MOVWF STATUS_TEMP; СОХРАНЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА СОСТОЯНИЯ

;

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

00061 ;

188B 00062 BTFSC INTCON,INTF; ПРЕРЫВАНИЕ ПО ВХОДУ INT

A 2??? 00063 GOTO INTER_INT

B 1A8C 00064 BTFSC PIR1,RCIF; ПРЕРЫВАНИЕ ОТ USART (ПРЕРЫВАНИЯ ОТ ТЕРМИНАЛА ВНЕШНЕЙ ЭВМ)

C 2??? 00065 GOTO INTER_USART

00066 ;

;ОПРЕДЕЛЕНИЕ ПРЕРЫВАНИЙ ПО ВХОДУ INT

00068 ;

000D 00069 INTER_INT

00070 BANC0

D 1283 M BCF STATUS, RP0

000E 1303 M BCF STATUS, RP1

F 1A86 00071 BTFSC PORTB,5; ПРЕРЫВАНИЕ ПО СИГНАЛУ ОТКАЗА ИСТОЧНИКА ПИТАНИЯ

2??? 00072 GOTO INTER_PIT

1809 00073 BTFSC PORTE,0; ПРЕРЫВАНИЕ ПО СИГНАЛУ АВАРИЙНОГО ДАТЧИКА

0012 2??? 00074 GOTO INTER_AVD

1C07 00075 BTFSS PORTC,0; ПРЕРЫВАНИЕ ОТ ПУ

0014 2??? 00076 GOTO INTER_PU

00077 ;

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

00079

0015 00080 INTER_PIT

108B 00081 BCF INTCON,INTF; СБРОС ФЛАГА5.54 NEWPIC_8B_SIMPLE.ASM 12-8-2014 7:44:43 PAGE 3OBJECT CODE LINE SOURCE TEXT VALUE

00082 BANC0

1283 M BCF STATUS, RP0

1303 M BCF STATUS, RP1

1606 00083 BSF PORTB,4; 1 НА Y5

018F 00084 CLRF TMR1H; ОЧИСТКА TMR1H

A 018E 00085 CLRF TMR1L; ОЧИСТКА TMR1L

001B 30FF 00086 MOVLW 0xFF; ЗАНЕСТИ В TMR1 30МКС ЗНАЧЕНИЕ Т1

C 008F 00087 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H

D 3069 00088 MOVLW 0x69

E 008E 00089 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L

F 1410 00090 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1

0020 00091 T5_WAIT1

1C0C 00092 BTFSS PIR1, TMR1IF

2??? 00093 GOTO T5_WAIT1

140C 00094 BSF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ TMR1

1206 00095 BCF PORTB,4; 0 НА Y5

30FF 00096 MOVLW 0xFF; ЗАНЕСТИ В TMR1 30МКС ЗНАЧЕНИЕ Т1

0025 008F 00097 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H

3069 00098 MOVLW 0x69

008E 00099 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L

1410 00100 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1

0029 00101 T5_WAIT2

1C0C 00102 BTFSS PIR1, TMR1IF

A 2??? 00103 GOTO T5_WAIT2

B 140C 00104 BSF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ TMR1

C 1606 00105 BSF PORTB,4; 1 НА Y5

D 30FF 00106 MOVLW 0xFF; ЗАНЕСТИ В TMR1 30МКС ЗНАЧЕНИЕ Т1

002E 008F 00107 MOVWF TMR1H; ЗАПИСЬ СТАРШЕГО БАЙТА В РЕГИСТР TMR1H

F 3069 00108 MOVLW 0x69

008E 00109 MOVWF TMR1L; ЗАПИСЬ МЛАДШЕГО БАЙТА В РЕГИСТР TMR1L

1410 00110 BSF T1CON, TMR1ON; ВКЛЮЧЕНИЕ ТАЙМЕРА TMR1

0032 00111 T5_WAIT3

1C0C 00112 BTFSS PIR1, TMR1IF

2??? 00113 GOTO T5_WAIT3

140C 00114 BSF PIR1, TMR1IF; ОБНУЛИТЬ ФЛАГ ПЕРЕПОЛНЕНИЯ TMR1