Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Загрузочный файл программы

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

 

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

 

Пример.

Согласно заданию программируемый генератор формирует аналоговый сигнал, соответствующий заданию.Предусмотрено несколько режимов работы устройства, сопровождающихся соответствующей индикацией. Блок-схема алгоритма работы генератора приведена на рисунке 5.1.

 

Рисунок 5.1 - Блок-схема алгоритма работы генератора сигнала

 

Микроконтроллер выполняет управляющую программу, размещенную во внешней памяти программ. Так как область младших адресов памяти программ отведена под обработку прерываний, основная программа размещается по адресу 40h.

Пример блок-схемы алгоритма работы управляющей программы генератора приведен на рисунке 5.2.

 


При включении питания производится инициализация микроконтроллера: загрузка начальных значений регистров-указателей и счетчиков, настройка системы прерываний и таймеров. Генератор переводится в режим «Ожидание». Индикация режима производится светодиодом, подключенным к линии Р1.1.

В режиме «Ожидание» периодически производится опрос сигнала «Start», подаваемого на линию Р1.4 микроконтроллера. Если на линию Р1.4 подается уровень логического нуля генератор переводится в режим «Пуск», включается таймер Т0 и начинается формирование аналогового сигнала Uвых. Индикация режима производится светодиодом, подключенным к линии Р1.0,

В каждом цикле выдачи аналогового сигнала в порт вывода последовательно записываются 16 кодовых комбинаций.Кодовая таблица сигналов хранится во внешней памяти данных по адресу 9000h.

Кодовые комбинации на входах порта вывода обновляются каждые 100 мкс. Для обеспечения заданной длительности сигнала используется таймер/счетчик Т0, работающий в режиме восьмиразрядного таймера с автоперезагрузкой.

Перед первым пуском в регистры таймера записывается число 38h, котороеавтоматически перезагружается в регистр TL0при переполнении таймера. Для выбора режима работы таймера в регистре TMOD устанавливаются соответствующие значения битов C/T, М0 и М1. Для включения таймерав регистре TCON устанавливается бит TR0.

Чтение кодовых комбинаций из памяти, их запись в порт вывода и организация нового цикла выдачи сигналов выполняются при обработке запроса прерывания от таймера Т0. Для разрешения прерывания от таймера Т0 необходимо в регистре IE установить бит ЕТ0 и снять блокировку всех прерываний, установив бит ЕА.

Для обслуживания прерывания таймера Т0 в ячейку памяти программ с адресом 0Вh записывается код команды перехода к подпрограмме обработки прерывания TIMER_HAND .

Чтение кодовой таблицы производится с использованием косвенной адресации через регистр-указатель данных DPTR. Регистр общего назначения R2 используется как счетчик, для контроляколичества кодовых комбинаций, записанных в порт вывода. После выдачи последней кодовой комбинации регистр-указатель DPTRи регистр-счетчик R2 снова загружаются начальными значениями.

Адрес порта вывода аналогового сигнала AB00h принадлежит внешней памяти данных. Запись текущей кодовой комбинации в порт вывода производится с использованием косвенной адресации. Порт Р2 используется для адресации старшего байта адреса, а регистр R0, как регистр-указатель младшего байта адреса.

Если на линию Р1.4, поступает сигнал «StOP», соответствующий уровню логической единицы, таймер выключается и генератор снова переводится в режим «Ожидание». Формирование сигнала может быть возобновлено с момента остановки при повторной подаче сигнала «Start».

 

 

Пример блок-схемы алгоритма работы подпрограммы обработки прерывания таймера приведен на рисунке 5.3.

 

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

 

Создание и отладка рабочей программы генератора производится при помощи интегрированной среды разработки программного обеспечения Keil mVision.


 

 

Таблица 5.1 – Назначение переменных, меток и регистров, используемых в программе

Имя Значение Назначение
ADDR_TAB 9000h начальный адрес кодовой таблицы сигналов
N_CODE 16d количество кодовых комбинаций в таблице
PORT_L 00h младший байт адреса порта вывода аналогового сигнала
PORT_H 0ABh старший байт адреса порта вывода аналогового сигнала
X 38H уставка таймера, соответствует длительности 0,1 мс при 24 МГц
START/STOP P1.4 сигнал "START/STOP"
Метка Назначение
BEGIN инициализация микроконтроллера
wait перевод генератора в режим «Ожидание»
OPROS опрос кнопки «START», ожидание прерывания таймера Т0
WORK перевод генератора в режим «Пуск»
TIMER вход в подпрограмму обработки прерывания таймера Т0
NEXT выход из подпрограммы обработки прерывания таймера Т0
TABLE таблица кодовых комбинаций
Регистр Назначение
R0 указатель младшего байта адреса порта вывода
R3 счетчик количества кодовых комбинаций, выданных в порт вывода
Порт Р1 Назначение
Р1.4 место подключения кнопки «START/STOP»
P1.1 место подключения VD1, индикация режима «Ожидание»
Р1.0 место подключения VD2, индикация режима «Пуск»

 

После проверки работоспособности программы и ее соответствия заданию в пояснительной записке приводятся:

- листинг программы, содержащий результаты компиляции

(см. файл *. lst вдиректории проекта);

- загрузочный файл программы (см. файл *. hex вдиректории проекта).


 

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

 

 

 

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


 

 

Загрузочный файл программы

:02000000803E40

:02000B0080551E

:1000400078007A1090900075A882758902758C38B6

:10005000758A38C28C7590FD2094F87590FED28C0C

:1000600080F6E49375A0ABF2A3DA059090007A10C5

:01007000325D

:10900000B0C0D0E0F0D8C0A89020000010203040C0

:00000001FF

Общие сведения

Hex-файл - символьный файл определённой структуры.

Файл состоит из строк шестнадцатеричных чисел следующего формата:

:NNAAAA0SD0…DFCS

Строка начинается с двоеточия и содержит:

NN - число в байт строке (чаще всего шестнадцать байт),

АААА - адрес первого байта строки,

0S - тип записи (если последняя строка - 01, иначе 00),

D0…DF - шестнадцатеричное представление очередных байт данных,

CS - контрольная сумма (сумма всех байт в строке равна 00)

:00000001FF - последняя строка файла

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...