- •Оглавление
- •Введение.
- •1 Выбор и обоснование основных технических решений.
- •1.1 Техническое задание
- •1.1 Источники информации
- •1.2 Приемники информации
- •1.2 Возможные варианты решения поставленной задачи, обоснования выбора
- •1.2.1 Выбор способа измерения температуры
- •1.2.2 Выбор устройства отображения информации
- •1.2.3 Выбор микроконтроллера
- •2 Структурная схема
- •2.1 Описание принципа действия и общий алгоритм работы
- •2.2 Блок-схема работы микроконтроллера
- •Алгоритм получения одного байта от датчика
- •Структура программы
- •Код программы
- •Технология отладки программы
- •Моделирование
- •7 Список литературы
Моделирование
Для моделирования работы цифрового термометра использовалась программа Proteus7.7Professional.
Использовались следующие компоненты:
Вид |
Описание |
Микроконтроллер PIC16f628A. RA0-RA7 – выводы портаPORTA RB0-RB7 – выводы портаPORTB | |
Термодатчик DS18S20 1 – заземляющий вывод 2 – вывод на шину данных 3 – вывод основного питания | |
Блок из четырех семисегментных индикаторов A-G– входы соответствующих сегментов DP– вход сегмента-точки 1-4 – вход позиции отображаемого символа | |
Управляющая клавиша. При щелчке мышью по значку клавиши, контакт замыкается. При повторном щелчке – размыкается. Клавиша должна находиться в нормально-разомкнутом состоянии. Для подачи управляющего сигнала нужно замкнуть контакт и сразу же разомкнуть. | |
Резистор 4.7 кОм. Используется для зануления порта RA7 при разомкнутой клавише управления. | |
Подтягивающий резистор шины данных термодатчика. Нужен для установки на шине высокого уровня при отключении соответствующего порта (вернее, при переключении его на ввод). Еще этот резистор позволяет датчику работать в режиме паразитного питания. | |
Осциллограф. Использовался для отслеживания сигналов на шине данных термодатчика. |
Для получения кодов отображаемых на индикаторе символов, я собрал следующую схему:
Последовательность разработки и отладки программного обеспечения
Создал проект в вышеописанной программе MPLABIDEдля конкретного микроконтроллера с указанием начальных параметров конфигурации, добавил в него файл с расширением «.c» - файл кода на языке Си.
Редактировать файл Си в MPLABIDEоказалось неудобно. Открыл файл вVisualStudio, после внесения изменений и сохранении файла при переключении вMPLABIDEон автоматически обновлял проект, предварительно запросив подтверждение:
Запускал трансляцию и компиляцию проекта. За этот этап отвечает HI-TECHCCompiler, синхронизированный сMPLABIDE(см. пункт 6 «Технология отладки программы»).
Результаты компиляции можно посмотреть в окне «Output».
В результате компиляции получается выходной файл с расширением «.hex», находящийся в корневом каталоге проекта.
В Proteusв настройках микроконтроллера необходимо прописать путь к нему. Это требуется сделать лишь один раз. В последствии можно запускать модель на выполнение сразу же после компиляции, что существенно экономит время.
Тестировал модель и программное обеспечение путем отслеживания уровней на входах и выходах с помощью подсветки сигналов и осциллографа
Так же иногда полезно просмотреть состояние регистров и памяти выбором соответствующего пункта в контекстном меню модели микроконтроллера.
Результаты моделирования
Положительные показания прибора
Отрицательные показания
Вид осциллограммы передачи байта данных датчику
Передается байт 0xCC.
0xCC= 11001100b
«Провал» шины на 60 мс соответствует логической единице.
Кратковременный провал и поддержка высокого уровня на 60 мс – нулю.