Informatics Point

Информатика и проектирование

Программное обеспечение контроллера системы

Программа работы микроконтроллера написана на языке программирования C в среде разработки Atmel Studio версии 6.1.

Для работы с дисплеем на основе контроллера HD44780 была написана библиотека, исходный код которой содержится на компакт диске. Основные функции данной библиотеки:

. void LcdInit(void); - Функция инициализации дисплея. Данная функция содержит в себе набор команд необходимых для включения дисплея, выбора режима работы и очитки видеопамяти для последующей работы с ней.

. void LcdSetToLcd(unsigned char command,unsigned char x); - Функция отсылки команд и данных контроллеру дисплея. Первый параметр данной функции определяет тип отсылаемого пакета:

.1 Пакет команд. В качестве аргумента используется константа LCD_COMMAND.

.2 Пакет данных. В качестве аргумента используется константа LCD_DATA.

Второй параметр представляет собой данные отправляемые контроллеру.

. void LcdConvertIntDisplay(int16_t u); - Функция автоматической конвертации целочисленной константы со знаком в строковую переменную с последующей записи ее в видеопамять дисплея.

. void LcdFillSpace(); - Функция очистки видеопамяти за курсивом.

. void LcdDrawString(char* str_); - Функция записи строковой переменной в видеопамять дисплея.

. void LcdGoToPos(uint16_t pos_); - Функция перемещения курсива. Параметром данной функции является номер ячейки видеопамяти в которую должен быть перемещен курсив.

Для работы с температурным датчиком DS18B20 написана библиотека, исходный код которой содержится на компакт диске. Основные функции данной библиотеки:

. uint8_t TempInit(void); - Функция инициализации датчика. Данная функция содержит в себе набор команд необходимых для включения датчика и выбора режима работы.

. char TempBeginConversion(void); - Функция начала преобразования температуры с последующей записи ее в буферную память. Данная функция возвращает результат операции:

.1 Возвращаемое значение 0 - ошибка связи с датчиком.

.2 Возвращаемое значение 1 - операция прошла успешно.

. int16_t TempGetTemp(void); - Функция передачи запроса на прием данных с последующим приемом. Данная функция возвращает результат операции в виде показаний датчика. В случае если датчик находится в стадии обработки температуры, возвращаемое значение равно 8191.

Для работы с АЦП МК написана библиотека, исходный код которой содержится на компакт диске. Основные функции данной библиотеки:

. void AdcInit(void); - Функция инициализации. Данная функция содержит в себе набор команд необходимых для включения АЦП микроконтроллера и выбора скорости преобразования.

. unsigned int GetAdc(unsigned char pin); - Функция начала преобразования. Параметром функции является константа определяющая номер вывода порта A с которого необходимо снять показания. Возвращаемое значение - результат обработки аналогово-цифровым преобразователем сигнала.

Обработка состояния кнопок клавиатуры (нажата/отпущена) происходит непрерывно во время переполнения TIMER1.

Для работы с USART написана библиотека. Основные функции:

. void UsartInit(void); - Функция инициализации. Данная функция содержит в себе набор команд необходимых для включения USAT микроконтроллера и выбора скорости передачи данных.

. void UsartSend(char x); - Функция передачи одного байта. Аргументом функции является передаваемый байт.

. void ConvertToStrAndSend(int16_t u); - Функция передающая через USART целочисленное значение размером 16 бит. Аргументом функции является передаваемое чмсло.

. void Calculate(char byte_); - Функция измеряющая параметры и передающая их через USART. Аргументом функции является байт определяющая какие параметры необходимо измерить и передать. Каждый бит байта принадлежит к определенному измеряемому параметру: первый - постоянное напряжение, второй - переменное напряжение, третий - постоянный ток, четвертый - переменный ток, пятый - сопротивление, шестой - температура. Т.е. для приема какого либо параметра на вход функции передается байт данных, содержащий в себе список параметров которые необходимо померять.

Выполнение программы контроллера начинается с функции main() состоящей из поля инициализации контроллера и основного цикла.

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

Общий объем кода составляет более двухсот строк кода. Весь исходный код находится на компакт диске. Исходный код основных функций с комментариями изложен в приложении Д.

Лучшие статьи по информатике

Цифровой таймер для насоса
Устройства способные облегчить жизнь в быту, уже давно заполнили наши дома. Данное устройство, как раз одно из таких, и предназначено для периодического зап ...

Расчет тиристорного преобразователя
1. Техническое задание на проектирование Данные электродвигателя постоянного тока Тип двигателя РН, кВт ...

Основы построения глобальной системы контроля Эшелон
«Эшелон» - общепринятое название глобальной системы радиоэлектронной разведки и контроля, представляющей собой многонациональную сеть электронных прослушива ...

Меню сайта