Проектирование микропроцессорной системы - Курсовая работа

бесплатно 0
4.5 78
Разработка микропроцессорной системы управления технологическим объектом. Выбор и расчет элементов системы, разработка ее программного обеспечения. Составление структурных, функциональных и принципиальных схем микроконтроллеров семейства MCS-51.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


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

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

При втором подходе в микроконтроллере измеряемый сигнал преобразуется в цифровую форму, затем обрабатывается и записывается в запоминающее устройство. Основные достоинства такой системы: резкое сокращение расходных материалов (например, чернил и бумаги), уменьшение массогабаритных показателей, возможность наблюдения большого числа сигналов одним многоканальным микроконтроллером, отсутствие в микроконтроллере подвижных механических частей, почти неограниченные возможности по обработке измеряемого сигнала (например, допусковый контроль предельных значений, ведение статистики, определение динамических параметров сигнала, уплотнение и ‘упаковка’ сигнала для передачи его по каналу связи с недостаточной пропускной способностью и т. д.), возможность полной автоматизации процесса измерений.

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

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

1.

Разработка структурной схемы МКС

Рис. 2.1. Структура МКС

Аналоговый коммутатор: микросхема КР590КН3 для ввода цифровых и аналоговых сигналов. Она является коммутатором (аналоговым мультиплексором) аналоговых входных сигналов U1-U3. Переключение входных каналов коммутатора выполняется цифровыми сигналами уровней ТТЛ, подаваемых на адресные входы А1 и А0. МК выдает адрес для выбора канала коммутатора, а также сигнал для запуска АЦП.

АЦП: аналогово-цифровой преобразователь К572 ПВ3; необходим, чтобы преобразовать аналоговые показания с датчиков в понятный микроконтроллеру вид (в двоичный код). Микросхема представляет собой 8-разрядный АЦП последовательного приближения, выполненный по технологии КМОП.

Микроконтроллер: микроконтроллер AT89C51, который производит обработку получаемой информации, вычисляет необходимые функции f() и g(), пересылает при необходимости информацию на ПК, выводит данные на семисегментные дисплеи. МК имеет 2 таймера: Т/С0 и Т/С1. Таймер Т/С0 используется для отсчета времени Топр, а таймер Т/С1 используется для задания требуемой скорости обмена 9600 бит/с по интерфейсу ИРПС.

Интерфейс: интерфейс ИРПС, через который происходит передача информации с микроконтроллера в центральный компьютер.

Пульт оператора: включает в себя дисплей на семисегментных индикаторах, на которых отображаются значения Ux в десятичном коде; светодиоды, отображающие значения X1,X2,X3,X4,X5,Y1,Y2,Y3, переключатель для выбора аналоговых каналов; переключатель режима работы МКС; кнопку “Сброс”, при нажатии на которую производится сброс МК.

ФС: формирователи одиночных импульсов с усилением по току для управления каким-либо объектом.

Модуль сопряжения: служит для преобразования сигналов последовательного интерфейса TXD (передаваемые данные) и RXD (принимаемые данные) вырабатываемых последовательным портом (УАПП) микроконтроллера в сигналы интерфейса ИРПС.

2.

Разработка принципиальной схемы МКС

2.1 Схема подключения микроконтроллера

Для работы микроконтроллеров семейства MCS-51 необходимо присоединить времязадающую цепь для работы внутреннего тактового генератора, обеспечить сброс при включении электропитания, подключить память программ (внутреннюю или внешнюю).

На рис. 3.1 приведена типовая схема подключения микроконтроллера AT89C51. Его технические характеристики: • 4 КБАЙТА встроенной программируемой памяти (до 1000 циклов записи\ перезаписи)

• рабочий диапахон частот от 0 до 24 МГЦ

• 128 x 8-bit внутренних ячеек памяти

• 32 программируемых входа/выхода

• два 16-ти битных таймера/счетчика

• 6 источников прерываний

• низкое энергопотребление

Для обеспечения генерации тактовой частоты к выводам XTAL1 и XTAL2 подключен кварцевый резонатор ZQ1. Частота резонатора выбирается из условия = и в нашем случае равна 18 МГЦ .

Конденсаторы С2,С3 служат для облегчения запуска внутреннего генератора. Цепочка С1,R9 обеспечивает сброс МК при подаче электропитания. По [2] выбираем конденсаторы: C1: К42-4 -160 В - 10 МКФ 10%;

C2: К10-42 -50 В - 20 ПФ 10%;

C3: К10-42 -50 В - 20 ПФ 10%;

C4: К42П-5 -40 В - 0,1 МКФ 10%;

С помощью кнопки SB1, расположенной на пульте управления, сброс МК может выполнить оператор в любой момент времени. На вывод EA подан высокий уровень, что разрешает работу внутренней памяти программ. Конденсатор С4 служит для фильтрации высокочастотных помех, возникающих на выводах источника питания при работе микросхемы.

К выводам порта Р0 присоединены “подтягивающие” резисторы R1-R8, которые обеспечивают ток для входов микросхем ТТЛ, подключенных к этому порту, при высоком логическом уровне, когда все линии Р0 находятся в z-состоянии. Порты Р1,Р2,Р3 имеют внутренние “подтягивающие” резисторы.

По справочнику [2] выберем резисторы: R1-R8: МЛТ - 0.125 - 4,7 КОМ ±5%;

R9: МЛТ - 0.125 - 8,2 КОМ ±5%;

По [6] выберем кварцевый резонатор ZQ1: HC-49/U_180

Рис. 3.1. Схема подключения микроконтроллера с внутренней памятью программ.

2.2 Схема ввода цифровых и аналоговых сигналов

В качестве АЦП используется схема К572ПВ3. Микросхема представляет собой 8-разрядный АЦП последовательного приближения, выполненный по технологии КМОП. Конденсатор С1 и резистор R1 задают частоту генератора.

Рис.3.2.1 Схема включения АЦП К572ПВ3

В этой схеме: длина цифрового слова (число разрядов) на выходе АЦП равно длине слова 8-разрядных микропроцессоров, наиболее широко применяемых на практике;

управление его работой осуществляется непосредственно сигналами от микропроцессора с минимальными аппаратными и программными затратами;

временные характеристики АЦП хорошо согласуются с временными характеристиками 8-разрядных микропроцессоров;

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

Условное графическое обозначение АЦП К572ПВ3 приведено на рис.3.2.2

Рис. 3.2.2 Условное обозначение БИС К572ПВ3

Назначение выводов: 1-4, 15-18 - цифровые выходы, 4 - (МЗР), 15 - (СЗР);

5 - ( ) - выход состояния;

6 - ( ) - вход чтения;

7 - ( ) - вход выбора микросхемы;

8 - (CLK) - вход тактирования;

9 - (GD) - цифровая общая шина (цифровая земля);

10 - ( ) - напряжение источника питания;

11 - ( ) - опорное напряжение;

12 - (BOFS) - вход смещения характеристики;

13 - (AI) - аналоговый вход;

14 - (GA) - аналоговая общая шина (аналоговая земля).

Основные электрические параметры

Напряжение источника питания ……………………..……….5 В

Ток потребления ………………………………… ….. ……….4 MA

Нелинейность ………………………………………...±0.5 ед. МЗР

Дифференциальная нелинейность ……………..…±0.75 ед. МЗР

Абсолютная погрешность преобразования в конечной точке шкалы ±4ед.МЗР

Время преобразования…………………………………………7.5 мкс

Опорное напряжение …………………….......................-10В

Число разрядов………………………………………………………8

Помимо времени преобразования БИС характеризуется и другими динамическими показателями: временем установления АЦП в начальное состояние (2 мкс), временем задержки считывания данных (120 нс), временем задержки сброса данных (80 нс) (в скобках указаны типовые значения перечисленных показателей).

Состояние выходов АЦП К572ПВ3 в различных режимах работы

Таблица1

Режимы Состояние входов АЦП Состояние выходов Функциональное состояние АЦП

D7-D0

Статическая память с произвольной выборкой (СОЗУ) L L L H L L L H X H H H H X L L L Z Z®данные данные®Z Z Z Z Z Начало преобразования Считывание данных Сброс Отсутствие выборки Промежуточ. преобраз-я То же Запрещенное

Медленная память L L L L H L L Z®данные данные®Z Z Z Считывание данных Сброс, начало преобраз-я Промежуточ. преобраз-я Запрещенное

Память со считыванием H L L H H L L H H L H H Z X Z Z®данные Данные®Z Z Отсутствие выборки Начало преобразования Преобразование Считывание данных Сброс Отсутствие выборки

На рис. 3.2.3 приведена функциональная схема ввода цифровых и аналоговых сигналов. Микросхема DA1 КР590КН3 является коммутатором аналоговых входных сигналов U1-U3. Переключение входных каналов коммутатора выполняется цифровыми сигналами уровней ТТЛ, подаваемых на адресные входы А1 и А0. Таблица истинности коммутатора имеет вид: А1 А0 Соединение

0 0 Y=X1

0 1 Y=X2

1 0 Y=X3

Рис. 3.2.3 Схема ввода цифровых и аналоговых.

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

Выход состояния аналоговой обработки цифровые входные сигналы Х1-Х5 подаются на входы DD3. Выходы регистров DD2 и DD3 соединены с выводами порта Р0 МК. Управление выходными буферами регистров осуществляется от линий Р3.3 и Р3.4. При Р3.3=1, Р3.4=1 выходы регистров DD2, DD3 находятся в z-состоянии и они отключены от выводов порта Р0. Переключение каналов коммутатора производят сигналы с линий Р1.6, Р1.7 микроконтроллера.

Параметры мультиплексора: КР590КН3

Твкл 300 нс

Ukom 15 В

Іком 20 МА

Uвх0 0,8 В

Uвх1 4 В

Свх 10 пф

2.3 Схема ввода управляющих сигналов

В проектируемой МКС имеются 3 управляющих сигнала Y1, Y2, Y3. Эти сигналы представляют собой одиночные импульсы ТТЛ - уровней, поступающие на исполнительные устройства МКС. Управляющие сигналы снимаются с портов МК. Однако следует учитывать, что нагрузочная способность портов P1, P2, P3 мала. Емкость нагрузки не должна превышать 150 ПФ. Для увеличения нагрузочной способности линий портов МК следует использовать усилительные элементы. Это обычно микросхемы, имеющие выходы с открытым коллектором.

На рис. 3.3.1 приведена схема формирования управляющих сигналов МКС. В ней используется инвертор К155ЛН3. При сигнале на входе уровня логической 1 на выходе будет логический 0, т. е. такая схема требует инверсных входных сигналов для управления. По справочнику [2] выбираем резисторы R1-R3: МЛТ- 0.125 - 200 Ом ±5%;

Рис. 3.3.1 Схема вывода управляющего сигнала Y1.

1,3,5,9,11,13 - входы;

2,4,6,8,10,12 - выходы;

7 - общий;

14 - напряжение питания;

Рис. 3.3.2 Условное графическое обозначение К155ЛН3

2.4 Схема подключения светодиодных индикаторов

В проектируемой МКС на пульте управления имеются светодиоды для индикации значений входных сигналов X1, X2, X3, X4, X5 и управляющих Y1, Y2, Y3. На рис. 3.4 приведена схема подключения светодиодов индикации. Если С = 1, то триггеры регистра “прозрачны”, и их выходы повторяют сигналы на входах. При С = 0 триггеры “защелкиваются”, т. е. запоминают состояния входов в этот момент. После этого сигналы на входах регистра DD5 могут иметь произвольное значение. Это обстоятельство позволяет использовать порт Р0 для выполнения других функций, например, для ввода данных из АЦП.

Регистр КР1533ИР33 имеет довольно мощные выходы: ток низкого логического уровня 20 МА, а ток высокого уровня 100 МКА. Поэтому можно непосредственно управлять светодиодами без использования инверторов, но на входы регистра необходимо подавать также сигналы низкого уровня, т.е. логические 0.

Рис. 3.4. Схема подключения светодиодов индикации

По справочнику [3] выбираем диоды VD1-VD8: АЛ307Б

2.5 Схема подключения линейного дисплея и клавиатуры

Семисегментные индикаторы (ССИ) широко используются для отображения цифровой и буквенной информации. Семь отображающих элементов ССИ позволяют высвечивать десятичные и шестнадцатиричные цифры, некоторые буквы русского и латинского алфавитов, а также некоторые специальные знаки.

На рис. 3.5.1 приведена схема подключения четырехразрядного дисплея на семисегментных светодиодных индикаторах при статическом управлении. Дисплей предназначен для отображения только десятичных цифр. Для отображения информации будем использовать программную перекодировку. Индикатор HG1 отображает младшую десятичную цифру, а HG4 - старшую. Коды для индикаторов HG1 и HG4 непосредственно снимаются с порта P0, а порт P2 управляет открытием и закрытие буферных регистров. . Однако для работы элементов индикации нужно на входы регистров DD5 - DD9 подавать инверсные значения данных с порта P0 микроконтроллера для их отображения на VD1 - VD8 и HG1 - HG4.

По справочнику [2] выбираем резисторы: МЛТ- 0.125 - 240 Ом ±5%;

По справочнику [7] выбираем индикаторы: HG1-HG4: АЛС324Б

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

На рис. 3.5.2 приведена схема подключения кодирующей клавиатуры, состоящей из переключателей с фиксацией, к порту МК. Переключатели SA1-SA3 служат для выбора аналоговых сигналов U1-U3, а переключатель (тумблер) SA4- для выбора режима работы МКС: “Работа-Пульт”. Особенностью переключателей SA1-SA3 является то, что они взаимозависимы, т.е. в любой момент времени может быть замкнут только один из них. Для подключения используем дополнительный регистр. микропроцессор управление программный микроконтроллер

Рис.3.5.1 Схема подключения индикаторов при использовании программной перекодировки

Рис. 3.5.2 Схема подключения переключателей к регистру

По справочнику [2] выбираем резисторы R1-R4: МЛТ- 0.125 - 4700 Ом ±5%;

2.6 Схема сопряжения с последовательным интерфейсом

Разрабатываемая микроконтроллерная система должна иметь связь с внешним удаленным компьютером через последовательный интерфейс ИРПС. По запросу внешнего компьютера МК должен передавать данные о сигналах X1-Y3 и коды аналоговых сигналов U1-U3, получаемых с помощью АЦП. Обычно для связи МКС с внешним компьютером используют программный метод управления передачей, так как это позволяет уменьшить число линий связи. В этом случае интерфейс должен обеспечить двустороннюю передачу, т.е. от компьютера к МК (запрос) и от МК к компьютеру (передача данных).

При сопряжении МК со стандартным последовательным интерфейсом необходимо решить следующие проблемы: · согласование уровней сигналов интерфейса с уровнями ТТЛ МК;

· поддержание стандартной скорости приемо-передачи;

· поддержание стандартных форматов посылки;

· поддержание стандартных протоколов обмена;

На рис. 3.6 приведена схема сопряжения с интерфейсом ИРПС (токовая петля 20 МА). Принимаемые данные (импульсы тока 20 МА в цепи ПРД/-ПРД) преобразуются в уровни ТТЛ с помощью оптрона V1 и инвертора DD1. Оптрон также обеспечивает гальваническую развязку передатчика (компьютера) и приемника (МК). Передаваемые данные (импульсы тока 20 МА в цепи ПД/-ПД) образуются из уровня ТТЛ с помощью инвертора DD2 и оптрона V2, который также обеспечивает гальваническую развязку передатчика (МК) и приемника (компьютера). Схема требует дополнительный источник питания Uп1 напряжением 12 В, гальванически не связанный с источником 5В питания МК.

Рис.3.6. Схема сопряжения МК с интерфейсом ИРПС.

По справочнику [2] выбираем резисторы: R1: МЛТ- 0.125 - 1000 Ом ±5%;

R2: МЛТ- 0.125 - 1000 Ом ±5%;

R3: МЛТ- 0.125 - 100 Ом ±5%;

R4: МЛТ- 0.125 - 100 Ом ±5%;

Инверторы возьмем со схемы К155ЛН3 из пункта 3.3.

3.

Разработка программного обеспечения работы МКС

Алгоритм работы МКС приведен на рис. 4.1. По нему составим блок-схему алгоритма (БСА) главной программы работы МКС, которая будет иметь символическое имя CONTROL. Из нее видно, что главная программа состоит из нескольких подпрограмм, которые вызываются по мере надобности. Такое построение упрощает структуру программы, делает ее более наглядной. Кроме того, использование подпрограмм упрощает разработку и отладку всей программы работы МКС.

Текст главной программы на языке Ассемблера для МК51 имеет следующий вид: ;************************************************************

; CONTROL - главная программа работы МКС

;************************************************************

DATA_W: EQU 30H ; Начальный адрес массива в ПД для

; хранения кодов АЦП

ORG 0000H ; Начальный адрес программы

CONTROL: JMP MAIN ; Переход на основную программу

ORG 000BH ; Вектор прерывания от Т/С0

CALL TIMER ; Подпрограмма отсчета времени Топр

RETI

ORG 0023H ; Вектор прерывания от УАПП

CALL TRANSMIT ; Подпрограмма передачи данных в

; интерфейс

RETI

ORG 0030H ; Таблица констант

ADR_K1: DW XXXXH ; Константа К1

ADR_Q: DW XXXXH ; Константа q

ORG 0050H ; Основная программа

MAIN: MOV SP, #70H ; Определить стек

CALL INIT ; Подпрограмма инициализации МКС

AGAIN: CALL DIGIT ; Подпрограмма ввода и обработки

; цифровой информации

CALL ANALOG ; Подпрограмма ввода и обработки

; аналоговой информации

SETB ES ; Разрешить прерывание от УАПП

SETB PS ; Присвоить прерыванию от УАПП

; высший приоритет

; Опрос состояния переключателя SA4 “Работа/Пульт”

MOV P0, #0FFH ; Настроить порт P0 на ввод

CLR P3.5 ; Открыть выходные буферы DD4

MOV A,P0 ; Ввод из P0

SETB P3.5 ; Закрыть буферы DD4

JB ACC.7, COUNT ; Переход, если SA4 разомкнут (Работа)

CALL PULT ; Подпрограмма обслуживания пульта

; управления

JMP AGAIN ; Зацикливание программы

COUNT: JNB F0, COUNT ; Цикл отсчета времени Топр = 0,55с

CLR F0 ; Сбросить флаг окончания счета Топр

CLR ES ; Запретить прерывания от УАПП

JMP AGAIN ; Зацикливание программы

В программе определен массив ячеек памяти данных МК с начальным символическим адресом DATA_W для хранения кодов с выхода АЦП. Так как входных переменных 3 и используется 8-разрядный АЦП, то массив будет иметь 3 ячейки. В памяти программ, начиная с адреса 0030H, размещаются двухбайтные константы, которые будут использоваться при вычислениях функций. Значения констант условно обозначено XXXXH. Константы занимают в памяти две ячейки, например, по адресу ADR_K1 размещается младший байт (МЛБ), а по следующему адресу ADR_K1 1 - старший байт (СТБ) константы. В главной программе используются 2 прерывания: от таймера Т/С0 и от УАПП. Флаг F0 используется для индикации окончания отсчета времени опроса Топр. Он устанавливается, когда истечет время Топр = 0,55 с.

Подпрограмма INIT используется для инициализации МКС после включения электропитания. При сбросе МК все порты настраиваются на ввод, т.е. на их выводах будут высокие уровни (логические 1). Поэтому необходимо вывести P1.0 = P1.1 = P1.2 = 0 для установки начальных значений управляющих сигналов Y1 = Y2 = Y3 = 0. Необходимо также вывести нули в порт P0 для гашения светодиодов индикации VD1- VD8, так как после включения электропитания на выходах регистра DD5 могут быть случайные значения. Индикаторы дисплея HG1 - HG4 также будут погашены нулями из порта P0.

В подпрограмме инициализации необходимо настроить УАПП и таймеры Т/С0, T/C1 на заданные режимы работы. Для двустороннего обмена по интерфейсу ИРПС выбираем для УАПП режим 1. При использовании режима 1 передается через вывод P3.1 (TXD) или принимается из P3.0 (RXD) 10 бит информации: старт-бит (логический 0), 8 бит данных и стоп-бит (логическая 1). Скорость приемо/передачи - величина переменная и задается таймером T/C1.

Управляющее слово, которое следует загрузить в регистр SCON, будет 52H .

Рис. 4.1 Блок-схема алгоритма работы МКС

Скорость обмена УАПП задает таймер T/C1, который должен работать в режиме 2. Управляющее слово, которое нужно загрузить в регистр TMOD, будет 20H. Для получения заданной скорости обмена в регистр TH1 таймера T/С1 необходимо загрузить число, которое вычисляется из соотношения: . (4.1)

При SMOD = 0, = 18 МГЦ и = 9600 бит/с получаем из формулы число FBH.

Для отсчета времени Топр будем использовать таймер T/С0 в 1-м режиме работы. Управляющее слово для этого режима равно 01H. Время машинного цикла связано с тактовой частотой работы МК соотношением: . (4.2)

При МГЦ имеем: мкс.

В 1-м режиме таймер - это 16-разрядный счетчик, который считает от 0 до 65535. Максимальное время задержки будет 65536* 0,67 мкс=43910 мкс, что значительно меньше требуемой 0,55с. Поэтому на таймере T/C0 реализуем задержку на 25 мс, а в регистре общего назначения (РОН) будем накапливать количество переполнений таймера с целью получения требуемой задержки в 0,55с. Для получения задержки 25 мс в регистры таймера TH0,TL0 первоначально необходимо загрузить число 43910 - 25000 = 18910 = DE49H. Количество переполнений таймера для отсчета времени 0,75 с будет: 750 мс / 25 мс = 22. Для счета переполнений будем использовать регистр R0 1-го банка РОН.

;************************************************************

; INIT - подпрограмма инициализации МКС

;************************************************************

INIT: ANL P1, #11111000B ; Вывести Y1 = Y2 = Y3 = 0

MOV P0, #0 ; Вывести нули в порт P0 (погасить

; VD1-VD8)

ANL P2,#11100000 ; Закрыть триггеры регистров DD5-DD9

MOV SCON, #52H ; Режим 1 для УАПП, двусторонний

; обмен

MOV TMOD, #20H ; Режим 2 для T/С1

MOV TH1, #0FBH ; Загрузить TH1 для скорости

; обмена 9600 бит/с

SETB TR1 ; Запустить T/С1

ORL TMOD, #01H ; Режим 1 для T/С0

MOV TH0, #0DEH ; Загрузить регистры T/С0

MOV TL0, #49H ; для отсчета задержки 40 мс

MOV 08H, #0 ; Очистка регистра R0 в 1-м банке P0H

SETB TR0 ; Запустить T/С0

SETB EA ; Общее разрешение прерываний

SETB ET0 ; Разрешить прерывание от T/С0

RET

Подпрограмма TIMER является обработчиком прерывания при переполнении таймера T/C0. Эта подпрограмма производит отсчет времени опроса Топр. При каждом вызове подпрограммы вследствие переполнения таймера (истекло 25 мс) инкрементируется регистр R0 в 1-м банке РОН. Если содержимое R0 станет равным 22, то это означает, что истекло время Топр = 0,55 с. После окончания отсчета времени 0,55 с подпрограмма TIMER устанавливает флаг F0 = 1, что является сигналом для главной программы CONTROL начать новый цикл опроса датчиков и выполнения других функций управления.

;*************************************************************

;TIMER - подпрограмма отсчета времени Топр = 0,55 с

; Выходной параметр: F0 - флаг окончания отсчета времени

; Используется 1-й банк P0H

;*************************************************************

TIMER: CLR TR0 ; Остановить T/С0

SETB RS0 ; Перейти в 1-й банк P0H

INC R0

CJNE R0, #22,EXIT ; Переход, если (R0)<22

SETB F0 ; Установить флаг F0 окончания счета 0,55 c

MOV R0, #0 ; Очистить R0

EXIT: MOV TH0, #0DEH ; Перезагрузить T/С0

MOV TL0, #49H

SETB TR0 ; Запустить T/С0

CLR RS0 ; Перейти в 0-й банк P0H

RET

Подпрограмма DIGIT выполняет обработку цифровых сигналов X1,X2,X3 X4,X5 поступающих в МКС от датчиков. Ввод цифровых сигналов осуществляется через регистр DD3. Перед вводом данных из DD3 необходимо настроить порт P0 МК на ввод, а затем открыть выходные буферы DD3 подачей на управляющий вход OE низкого уровня с линии P3.4 порта МК. После ввода данных в аккумулятор МК надо вновь закрыть выходные буферы DD3.

Ячейка ПД с адресом 24H используется в программе для хранения значений входных сигналов X1,X2,X3,X4,X5, а также для запоминания результата вычисления логической функции f() - управляющего сигнала Y1. Выбор этого адреса обусловлен тем, что эта ячейка, как и другие с адресами от 20H до 2FH, допускают обращение к отдельным битам с помощью команд SETB bit и CLR bit, что упрощает программирование. После выполнения подпрограммы DIGIT в ячейке 24H будет: 7 6 5 4 3 2 1 0 - разряды

24H X5 X4 X3 X2 X1 Y1 0 0

Для формирования одиночного управляющего импульса Y1 длительностью t1 = 76 мкс используется подпрограмма задержки DEL76MKS, текст которой будет приведен ниже.

;************************************************************

; DIGIT - подпрограмма ввода и обработки цифровой информации

; Используется ячейка ПД с адресом 24H для хранения значений

; X1,X2,X3,X4,X5,Y1

;*************************************************************

DIGIT: MOV P0, #0FFH ; Настроить P0 на ввод

CLR P3.4 ; Открыть выходные буферы DD3

MOV A, P0 ; Ввод сигналов X1-X5

SETB P3.4 ; Закрыть буферы DD3

ANL A, #11111000B ; Обнулить 3 бита аккумулятора

MOV 24H, A ; Переслать аккумулятор в ячейку 24H

MOV C, 24H.6 ; Переслать С ? X4

ANL C, 24H.7 ; С ?

CPL C ; C ?

MOV 24H.0, C ; Переслать 24H.0 ?

MOV C, 24H.3 ; Переслать С ? X1

ANL C, 24H.4 ; C ?

ANL C, /24H.5 ; C ?

ORL C, 24H.0 ; C ? f( ) =

MOV 24H.2, C ; Переслать результат в 24H.2 ? f( )

JNC EXIT ; Переход, если С = f( ) = 0

SETB P1.0 ; Вывести Y1=1

CALL DEL76MKS ; Подпрограмма задержки на 76мкс

CLR P1.0 ; Вывести Y1=0

EXIT: RET

Подпрограмма ANALOG выполняет ввод и обработку аналоговой информации - напряжений U1,U2, и U3, поступающих в МКС от датчиков. Первый блок БСА - это подпрограмма OPROS, которая производит ввод аналоговых сигналов U1 - U3, их преобразование в цифровые коды W1 - W3 и размещение в памяти данных МК. В результате выполнения подпрограммы OPROS в ПД в ячейках с адресами 30H - 37H будет следующая информация: 7 6 5 4 3 2 1 0 - разряды

32H x x x x x x x x W3

31H x x x x x x x x W2

(DATA_W) 30H x x x x x x x x W1

Здесь обозначено: x - произвольное значение (0 или 1).

Сначала производится нахождение g()=3*W1-K1 (W2 W3)/W4

Для выполнения арифметических операций умножения и деления используется подпрограммы: ; **************************************************************

; ---------------------------- M16_8 ---------------------------------------------------------

; Подпрограмма умножения целых двоичных чисел без знака; формата 16?8=24. ; Входные параметры: (R4,R3) - СТБ,МЛБ множимого, (R2) - множитель. ; Выходные параметры: (R5,R4,R3) - СТБ,СРБ,МЛБ произведения.

;****************************************************************

M16_8: MOV A, R2

MOV B, R3

MUL AB

MOV R3, А ; (R3) - МЛБ произведения

MOV R7, В

MOV A, R2

MOV B, R4

MUL AB

ADD A, R7

MOV R4, A ; (R4) - СРБ произведения

MOV A, В

ADDC A, #0

MOV R5, A ; (R5) - СТБ произведения

RET

; --------------------------------- D16_8 ---------------------------------------------

; Подпрограмма деления целых двоичных чисел без знака ; формата 16:8=(8,8). ; Входные параметры: (R4,R3) - СТБ,МЛБ делимого, (R2) - делитель. ; Выходные параметры: (R3) - частное, (R4) - остаток.

D16_8: MOV В, #8 ; Счетчик циклов

; Сдвиг влево остатка и частного в R4,R3

CYCLE: MOV A, R3

ADD A, R3

MOV R3, A MOV A, R4

ADDC A, R4 ; (А) - СТБ остатка

JC PER1 ; Если переполнение остатка

; Вычитание делителя из остатка

SUBB A,R2

JNC PER2 ; Если разность > 0

; Разность < 0, восстановление остатка

ADD A, R2 ;

MOV R4, А JMP PER3

; Переполнение остатка, разряд частного = 1

PER1: CLR C

SUBB A, R2

PER2: MOV R4, A INC R3 ; 1 в частное

PER3: DJNZ В, CYCLE ; Зацикливание

RET

Примечания: При выполнении операции умножения кода АЦП на постоянный коэффициент, например, 9*W1, будем использовать подпрограмму M16_8 - умножения двухбайтного числа на однобайтное. В общем случае результат (произведение) должен быть трехбайтным двоичным числом, которое размещается в регистрах R5, R4 и R3. Но так как у нас умножается однобайтное число, то входным и выходным параметром будет R3 и R4.

В блоке 3 БСА полученное значение функции g() сравнивается с двухбайтной константой Q, хранящейся в памяти программ по символическому адресу ADR_Q. Сравнение можно выполнить с помощью программы вычитания двухбайтных целых чисел g() - Q. Результат сравнения определяется значением флага переноса C микроконтроллера после вычитания старших байтов. Если C=1, то g() =Q. В блоке 4 подпрограммы ANALOG производится анализ флага C, и в зависимости от его значения формируются одиночные импульсы Y1 или Y2 длительностью t1 и t2 на выводах P1.1 и P1.2 порта МК. Подпрограммы задержек DEL15MS на 15 мс и DEL45MS на 45 мс будут приведены ниже. После выполнения подпрограммы ANALOG в ячейке с адресом 24H будет

7 6 5 4 3 2 1 0 - разряды

24H X5 X4 X3 X2 X1 Y1 Y2 Y3

;*************************************************************

; ANALOG - подпрограмма ввода и обработки аналоговой информации

;*************************************************************

ANALOG: CALL OPROS ; Подпрограмма ввода аналоговых

; СИГНАЛОВU1-U5, преобразования

;их в коды W1-W5 и запоминания в массиве DATA_W

; Вычисление {g()}

; Вычисление

MOV R3,DATA_W ; Переслать в регистр R3 младший

; байт (МЛБ) кода W1 (МЛБ множимого)

MOV R4, #00H ; Переслать в регистр R4 старший

; байт (СТБ) - нули ( СТБ множимого)

MOV R2, #3 ; Множитель

CALL M16_8 ; Подпрограмма умножения, ; результат: R4-СТБ, R3-МЛБ произведения

; Вычисление

MOV DPTR, #ADR_K1 ; Адрес МЛБ константы K1

CLR A MOVC A, @A DPTR ; В аккумуляторе - МЛБ константы K1

MOV R6, A ; В регистре R6 - МЛБ константы K1

MOV A,#1

MOVC A, @A DPTR ; В аккумуляторе - СТБ константы K1

MOV R7, A ; В регистре R7 - СТБ константы K1

MOV A, R3

SUBB A, R6 ; Вычитание младших байтов

MOV 25H, A ; МЛБ разности

MOV A, R7

ADDC A, R4 ; Вычитание старших байтов

MOV 26H, A ; СТБ разности

; Вычисление /4

MOV R3,DATA_W 1 ; Переслать в регистр R3 байт кода W2

MOV A,DATA_W 2 ; Переслать в аккумулятор байт кода W3

ADD A, R3 ; сложить W2 W3

MOV R3,A ; в R3-МЛБ делимого

MOV R4,#00H ; в R4-нули

MOV R2,4 ; в R2-делитель

CALL D16_8 ; Подпрограмма деления

; результат - (R3) - частное, (R4) - остаток.

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

Из данного отчета видно, что основной объем работы заняла разработка программного обеспечения для МК. В первую очередь это связано с тем, что программы писались на ассемблере, на котором даже самые элементарные действия могут требовать трудоемкого кода. Однако это оправдано тем, что программы на ассемблере занимают очень мало памяти.

Список литературы
1. Интегральные микросхемы и их зарубежные аналоги: Справочник. / Нефедов А.В. Т. 9.-М.: ИП РАДИОСОФТ, 1999.- 512 с.

2. Резисторы, конденсаторы, трансформаторы, дроссели, коммутационные устройства РЭА: Справочник/ Н.Н. Акимов и др. Мн.: Беларусь, 1994.

3. Полупроводниковые приборы: (диоды и транзисторы) / Галкин В.И., Прохоренко В.А. -Мн.: Беларусь, 1979.

4. Цифровые и аналоговые интегральные микросхемы: Справочник / C. В. Якубовский и др.- М.: Радио и связь, 1989.

5. Популярные цифровые микросхемы: Справочник. / Шило В.Л. М.: Радио и Связь, 1987.

6.

7. http://radiol12.ru/

Размещено на

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?