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 реализована благодаря прерываниям МК.

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

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

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

Проектирование систем электроснабжения промышленных предприятий на примере маслохозяйственного отделения ПП Ефремовская ТЭЦ
Основными потребителями электроэнергии являются различные отрасли промышленности: транспорт, сельское хозяйство, коммунальное хозяйство городов и поселков. ...

Программно управляемый генератор сигнала типа меандр сверхнизкой частоты на микроконтроллере
является 8-ми разрядным CMOS микроконтроллером с низким уровнем энергопотребления, основанным на усовершенствованной AVR RISC архитектуре. Благодаря выполне ...

Меню сайта