TechShape.ru

Информационные технологии

Основные разделы

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

Алгоритм работы МКС приведен на рис. 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 ; Ввод из P0P3.5 ; Закрыть буферы DD4ACC.7, COUNT ; Переход, если SA4 разомкнут (Работа) PULT ; Подпрограмма обслуживания пульта

; управления

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

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

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

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

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

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

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

В подпрограмме инициализации необходимо настроить УАПП и таймеры Т/C0, 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. Время машинного цикла связано с тактовой частотой работы МК соотношением:

Перейти на страницу: 1 2 3 4 5 6

Еще статьи

Синхронизация в сетях SDH
Данная дипломная работа посвящена теме синхронизации в сети SDH. Современная первичная сеть ориентирована на использование технологии SDH. В отличие от технологии PDH, где предусматривался режим, плезиохронной ("почти синхронной") работы различных устройств систем передачи, технология SDH пр ...

Все права защищены! 2021 - www.techshape.ru