Электронный термометр
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ния 3В и номинальным выходным током (не менее) 5мА.
Рисунок 15 - Функциональная схема термометра
5. РАЗРАБОТКА АЛГОРИТМА РАБОТЫ
Выходное напряжение датчика температуры TMP36 прямо пропорционально температуре. Его можно преобразовать в цифровой код с помощью встроенного в МК АЦП и отобразить на ЖКИ. Следует отметить, что для заданной точности измерений достаточно использовать 8-битный двоичный код. С этой целью при применении преобразователя ADC используется только старший байт. Первая процедура аналого-цифрового преобразователя ADC работает совместно с процедурой обработки прерывания от преобразователя ADC0_ISR. Процедуры ADC содержит цепочку операторов: разрешения преобразователя, запуска процесса преобразования, ожидания прерывания от преобразователя по окончанию процесса преобразования и сохранения в качестве результата старшего байта.
Процедура обработки прерывания ADC0_ISR в этом случае сводится к трем операциям: очистке флага прерывания, запрещению преобразователя и установке флага переноса, которого ожидает процедура ADC. Полученный двоичный код N связан с измеренным напряжением U следующим уравнением:
=VREF-N/256, где VREF - опорное напряжение.
С другой стороны, выходное напряжение датчика пропорционально температуре:
= T * 0.01, где Т - температура в градусах Цельсия.
Решая совместно уравнения и используя VREF = 2.4 В (опорное напряжение внутреннего генератора) можно получить Т = N-240/256. Необходимо еще учесть тот факт, что если параметр N меньше 50-ти, то температура отрицательная. Все преобразования производятся в процедуре масштабирования SCALE, двоичный код N передается процедуре через аккумулятор А. Поэтому масштабирование выполняется путем умножения байта кода на байт константы 240, а из двухбайтного результата сохраняется лишь старший байт, что эквивалентно делению на 256. Также проводится проверка на отрицательную температуру (N < 50) и при положительном результате записывается 1 в переменную ZNAK.
Для отображения двух десятичных цифр на ЖКИ необходимо полученный двоичный результат преобразовать в десятичный. Для этого используется процедура BIN_BCD, которая из двоичного формат записи, преобразует его в вид Packed BCD, при этом входной параметр передается также через аккумулятор МК. Преобразование выполняется путем целочисленного деления двоичного кода на 10. С помощью свопинга частного четырехбитный код десятков пересылается в старшие биты байта, после чего с помощью операции логического ИЛИ можно упаковать обе цифры в один байт для получения формата Packed BCD.
Обмен с ЖК-модулем осуществляется в соответствии с описанием на модуль и рекомендациями фирмы производителя. Для упрощения работы с модулем целесообразно использовать только процедуру для записи байта, а вместо чтения бита занятости в начале каждого обращения к модулю ЖКИ использовать временную задержку в 50 мс.
Процедура INIT_LCD является процедурой инициализации дисплея. Она включает в себя 3 команды. Первая - function set устанавливает параметры интерфейса: ширину данных 8 бит, число строк 2. Вторая команда Entry Mode Set устанавливает режим ввода: направление сдвига вправо и сдвиг курсора, а не дисплея. И третья команда инициализации Display Control включает дисплей и курсор в обычном режиме.
Процедура очистки дисплея Clear_SCRN содержит только одну команду- clear display (код команды 01h). Блок-схема алгоритма работы термометра приведена на рисунке 16. Исходный текст программы приведен в приложении А.
Рисунок 16 - Блок-схема алгоритма работы термометра
ЗАКЛЮЧЕНИЕ
В данной работе был разработан прибор - цифровой термометр. Прибор включает в себя датчик, микроконтроллер и ЖК-дисплей. Микроконтроллер обрабатывает сигнал, поступающий от датчика и выводит значение на дисплей.
Разработанное устройство удовлетворяет всем требованиям технического задания. При выборе элементной базы, были учтены требования для сведения к минимуму габаритов и веса устройства. Себестоимость устройства также невелика, самый дорогой элемент - ЖКИ производства компании МЭЛТ. Использован микроконтроллер семейства MCS-51 компании Silicon Laboratories - C8051F001. В результате проделанной работы был разработан электронный термометр с микропроцессорным управлением и с диапазоном измерения от -40… +50 С и точностью измерения 1 С. Электронный термометр работает от любого источника стабилизированного напряжения 3 В. Потребляемый ток - 5 мА. Потребляемая мощность ? 15 мВт.
В завершение проектирования прибора был разработан алгоритм и написана программа для работы устройства (текст программы в приложении A).
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1) (дата обращения: 28.05.2009). ">Термометр [Электронный ресурс] : Материал из Википедии- свободной энциклопедии. - : (дата обращения: 28.05.2009).
2)TMP35/TMP36/TMP37 Low Voltage Temperature Sensors. Data Sheet Rev. E. Analog Devices, Inc. -08.2008. - :">
3)Описание ЖКИ компании МЭЛТ. - :
4)C8051F000/1/2/5/6/7, C8051F010/1/2/5/6/7 Mixed-Signal 32KB ISP FLASH MCU Family. Data Sheet Rev.1.4. CYGNAL Integrated Products, Inc. - 4.2002. - :
5)Гладштейн М.А. Микроконтроллеры смешанного сигнала C8051FXXX фирмы Silicon Laboratories и их применение. Руководство пользователя. -М.: Издательский дом Додэка-XXI, 2008. -336 с.
)А.В. Фрунзе, А.А. Фрунзе. Микроконтроллеры? Это же просто! Т.1. -М. : ООО ИД СКИМЕН, 2002.-336 с.
7)Санкт-Петербург [Электронный ресурс] : Материал из Википедии- свободной энциклопедии. - : "> (дата