
- •Глава 2
- •Оглавление Разработка программного обеспечения Структура данных
- •Принцип построения программы.
- •Программное обеспечение
- •Тело основного цикла.
- •Прерывание
- •Выдача звуковых сообщений.
- •Модуль клавиатуры.
- •Интерфейсы Интерфейс с синтезатором частоты мс145192
- •Интерфейс с eeprom.
- •Протокол общения с жки
- •Испытания, расчеты и отладка Технология создания программы
- •Расчеты
- •Расчет констант для загрузки в синтезатор
- •Расчет констант для звуковых сообщений.
Фурсов М.В. Дипломный проект
Глава 2
Структура данных и принцип построения программы
Разработал: Фурсов М.В.
Группа: МП-65
Консультант: Панфилов Д.И.
Оглавление Разработка программного обеспечения Структура данных
До начала проектирования алгоритма программы необходимо разработать структуру хранимых в памяти данных.
В целях повышения оперативности связи было решено организовать в станции две сетки частот. В одной из них количество каналов было бы равно диапазону частот, принимаемых станцией, деленному на текущий шаг сетки частот, а в другой было бы фиксированное количество каналов (20шт.), куда можно было бы предписывать значения частот, которые наиболее часто применяются. А последний канал предназначен для дежурного прослушивания.
Основной информацией в радиостанции являются сведения о каналах, настраиваемых пользователем. В перечень необходимой информации о канале входят:
абсолютный номер канала (от базовой точки 170 МГц);
последний уровень порога шумоподавителя;
шаг частоты;
дуплексный разнос частот между частотой приема и передачи.
В общую информацию о состоянии станции входят:
текущий уровень громкости;
текущий номер канала;
текущий разнос частот;
Эти данные необходимо сохранять при выключении или пропадании питающего напряжения в энергонезависимое ОЗУ.
Таблицы выходных данных с последовательностями музыкальных нот для проигрывания мелодий и таблицы последовательностей символов для отображения на индикаторе находятся во второй странице программной памяти и доступ к ним осуществляется путем вычисления смещения нужной последовательности относительно начала списка этих таблиц.
Клавиатурная таблица находится там же и служит для определения номера нажатой на клавиатуре клавиши или их комбинации.
Остальные переменные нужны только каким-либо подпрограммам и используются только в них
Принцип построения программы.
Программа построена по модульному принципу и имеет в своем составе две основные части: тело основного цикла и процедуру обработки прерывания.
Тело основной программы содержит в себе процедуры общения с внешними устройствами, процесс общения процессора с которыми занимает значительное время и не допускает перерывов. Вследствие небольшого количества выводов микроконтроллера и достаточно большого количества внешних устройств, им управляемых, сигналы на многие устройства совмещались и мультиплексировались. Некоторые процессы используют одни и те же выводы и при их одновременной работе они мешали бы друг другу.
Процедура обработки прерывания занимается тем, что каждый раз при запуске проверяет состояние станции и ее внешних устройств, выставляет флаги статусов различных устройств, получив которые, процедуры выполняют соответствующие действия. Здесь также выполняются процедуры обслуживания внешних устройств, не требующие длительного времени на их обслуживание и не обращающихся через порты ввода-вывода к другим устройствам. Процедура обработки прерывания занимается также обработкой музыки. Каждый раз она проверяет наличие какой-либо ноты в музыкальном буфере и, если найдет, - начинает ее проигрыш до следующего входа в прерывание. Таким образом, минимальная длительность одного музыкального такта равна длительности самого прерывания.
Необходимость именно такой структуры была вызвана тем, что структура адресного пространства процессора предполагает наличие всего двух векторов прерывания: RESET(0000h) и вектора прерывания от всех остальных источников (0004h), что очень неудобно при организации своей процедуры обработки прерывания для каждого из источников.
Рисунок 2-1 : Общая структура программы