Термометр на PIC контроллере

Автор: Пользователь скрыл имя, 09 Марта 2013 в 13:31, курсовая работа

Описание работы

За последние десятилетия электронная промышленность развивалась опережающими темпами в сравнении с любой другой отраслью. Появление недорогих интегральных схем высокой и сверхвысокой степени интеграции, ориентированных на решение всевозможных задач, позволило разработать принципиально новые подходы к проектированию электронных устройств. Появившийся в конце 70-хг. XX века новый класс полупроводниковых приборов, являющихся полностью укомплектованной управляющей ЭВМ на одном кристалле, вызвал настоящую революцию в мире электроники. Подобные устройства получили название микроконтроллеров (в русскоязычной литературе микроконтроллеры достаточно часто называют однокристальными ЭВМ – ОЭВМ) и нашли широкое применение в системах управления различными объектами в реальном масштабе времени.

Содержание

ВВЕДЕНИЕ…………………………………………………………………….3
МИКРОКОНТРОЛЛЕР PIC16F62X…………………………………...4
2. ТЕРМОМЕТР НА PIC16F62X………………………………………...10
2.1. Программа цифрового термометра…………………………………14
ЗАКЛЮЧЕНИЕ……………………………………………………………….31
ЛИТЕРАТУРА………………………………...................................................32

Работа содержит 1 файл

курсач.doc

— 1.29 Мб (Скачать)

 

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ  ОБРАЗОВАНИЯ  “ГРОДНЕНСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ ЯНКИ КУПАЛЫ”

 

 

 

ФИЗИКО - ТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ

 

 

 

Кафедра ИСиТ

 

Курсовая работа по предмету

” Микропроцессорная техника”

 

ТЕРМОМЕТР НА PIC КОНТРОЛЛЕРЕ

 

 

 

Специальность “ Промышленная электроника ”

Автор работы

Студент 4 курса, 2 группы               Ванцовский А.Г.

 

Руководитель

Ст.преподаватель       Самородов А.П.

 

 

 

Гродно 2010

 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ…………………………………………………………………….3

  1. МИКРОКОНТРОЛЛЕР PIC16F62X…………………………………...4

2.       ТЕРМОМЕТР НА PIC16F62X………………………………………...10

2.1.  Программа цифрового термометра…………………………………14

ЗАКЛЮЧЕНИЕ……………………………………………………………….31

ЛИТЕРАТУРА………………………………...................................................32

 

 

ВВЕДЕНИЕ

За  последние  десятилетия  электронная  промышленность развивалась  опережающими  темпами  в сравнении  с любой  другой отраслью. Появление  недорогих интегральных схем высокой  и сверхвысокой степени интеграции, ориентированных на решение всевозможных задач, позволило разработать принципиально новые подходы к проектированию электронных устройств. Появившийся в конце 70-хг. XX века новый класс полупроводниковых приборов, являющихся полностью укомплектованной управляющей  ЭВМ  на  одном  кристалле,  вызвал настоящую революцию в мире электроники. Подобные устройства получили название микроконтроллеров (в русскоязычной литературе  микроконтроллеры достаточно часто называют однокристальными ЭВМ – ОЭВМ)  и  нашли  широкое  применение в  системах  управления различными объектами в реальном масштабе времени.

Несмотря на огромное количество разнообразной литературы,  посвященной  микроконтроллерам,  ее  использование  начинающими конструкторами затруднительно, вследствие несистематизированного  изложения  материала  и  частого  применения нестандартных обозначений.

PIC — микроконтроллеры Гарвардской архитектуры, производимые американской компанией Microchip Technology Inc. Название PIC является сокращением от Peripheral Interface Controller, что означает «периферийный интерфейсный контроллер». Название объясняется тем, что изначально PIC предназначались для расширения возможностей ввода-вывода 16-битных микропроцессоров CP1600.

В номенклатуре Microchip Technology Inc. представлен широкий спектр 8-и, 16-и и 32-битных микроконтроллеров  и цифровых сигнальных контроллеров под маркой PIC. Отличительной особенностью PIC-контроллеров является хорошая преемственность различных семейств. Это и программная совместимость (единая бесплатная среда разработки MPLAB IDE, С-компиляторы от GCC), и совместимость по выводам, по периферии, по напряжениям питания, по средствам разработки, по библиотекам и стекам наиболее популярных коммуникационных протоколов. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, памяти, количеством выводов, производительностью, диапазонами питания и температуры и т. д.

 

 

 

1.МИКРОКОНТРОЛЛЕР PIC16F62X

 

18-выводные FLASH микроконтроллеры PIC16F62X  входят  в  состав  распространенного   семейства PICmicro PIC16CXX.  Микроконтроллеры  этого семейства имеют 8-разрядную,  высокопроизводительную  и полностью статическую RISC архитектуру.

Рис.1.1. Расположение выводов.

PIC16F62X имеют  8-уровневый аппаратный стек и  большое количество внутренних  и внешних прерываний. В гарвардской  архитектуре RISC ядра  микроконтроллера разделены 14-разрядная память  программ  и 8-разрядная память данных. Такой подход позволяет выполнять все инструкции за один машинный цикл, кроме команд ветвления, которые выполняются за  два машинных  цикла. Ядро микроконтроллеров поддерживает 35 простых  в  изучении, но очень  эффективных  инструкций.  Дополнительные  регистры  управления  и  архитектурные  новшества  позволяют создавать высокоэффективные устройства.

По сравнению  с 8-разрядными микроконтроллерами  этого класса, при  использовании PIC16F62X  выигрыш в эффективности использования памяти программ достигает 2:1, а в производительности 4:1.

Специальные особенности  микроконтроллеров PIC16F62X позволяют  сократить число внешних компонентов, что в  свою  очередь  снижает  стоимость  конечного  устройства,  повышает  надежность  системы и уменьшает энергопотребление.  Дополнительную  гибкость  в  разработках  дает  широкий  выбор  режимов  работы  тактового генератора: ER генератор, наиболее дешевое решение; LP генератор, минимизирует потребляемый ток; XT генератор, для подключения стандартного резонатора; INTRC внутренний RC генератор; HS генератор, для  высокоскоростных режимов работы.

Энергосберегающий  режим SLEEP, позволяет эффективно использовать микроконтроллеры в  устройствах  с питанием от батареек или аккумуляторов. Выход из режима SLEEP происходит при возникновении внешних, некоторых внутренних  прерываниях  и  сбросе  микроконтроллера.  Высоконадежный  сторожевой  таймер WDT с  собственным внутренним RC генератором предотвращает «зависание» программы.

Микроконтроллеры PIC16F62X удовлетворяют ряду параметров для их использования от зарядных устройств до удаленных датчиков с малым потреблением электроэнергии. FLASH технология и большое количество периферийных модулей, совместимых  с предыдущими микроконтроллерами, позволяют быстро и удобно разрабатывать программное обеспечение.  Высокая  производительность,  малая  стоимость,  легкость  в  использовании  и  гибкость  портов ввода/вывода – делают PIC16F62X универсальными микроконтроллерами.

В таблице 1.1. сведены основные характеристики микроконтроллеров PIC16F62X.

Таблица 1.1.

 

 

 

 

 

 

На рисунке 1.2. представлена структурная схема микроконтроллеров PIC16F62X.

Рис.1.2. Структурная схема микроконтроллеров PIC16F62X.

Микроконтроллеры PIC16F62X удовлетворяют ряду параметров для их использования от зарядных устройств до удаленных датчиков с малым потреблением электроэнергии. FLASH технология и большое количество периферийных модулей, совместимых с предыдущими микроконтроллерами, позволяют быстро и удобно разрабатывать программное обеспечение.  Высокая  производительность,  малая  стоимость,  легкость  в  использовании  и  гибкость  портов ввода/вывода – делают PIC16F62X универсальными микроконтроллерами.

Высокая  эффективность  микроконтроллеров PIC16F62X  достигается  за  счет  архитектуры  ядра,  подобная архитектура обычно используемой в RISC микропроцессорах. В PIC16F62X используется Гарвардская архитектура с раздельными шинами доступа к  памяти программ и памяти  данных, в отличие от традиционных систем, в  которых обращение к памяти программ и данных выполняется по одной шине.

Разделение  памяти программ и памяти данных позволяет  использовать не 8-разрядные команды  или кратные разрядности  шины  данных.  Все  команды  микроконтроллера  14-разрядные  однословные.  По  14-разрядной  шине доступа  к  памяти  программ  выполняется  выборка  кода  за  один  машинный  цикл.  Непрерывная  работа  ядра микроконтроллера по  выборке  и  выполнению кодов  программы дает возможность выполнять все команды  за один машинный  цикл (200нс @ 20МГц),  кроме  команд  ветвления.  Ядро  микроконтроллеров  поддерживает 35 высокоэффективных команд.

В таблице 1.2. представлен объем FLASH памяти программ, памяти данных (ОЗУ) и EEPROM памяти данных.

Таблица1.2.

В PIC16F62X адресовать память  данных  можно непосредственно или косвенно.  Все регистры  специального назначения  отображаются  в  памяти данных,  включая  счетчик  программ. PIC16F62X  имеет  ортогональную  систему команд, что дает возможность выполнить любую операцию с любым регистром памяти данных, используя любой метод адресации. Это облегчает написание программ для микроконтроллеров PIC16F62X и снижает общее время разработки устройства.

Микроконтроллеры PIC16F62X содержат 8-разрядное АЛУ (арифметико-логическое устройство) с одним рабочим регистром W. АЛУ  выполняет  арифметические  и булевы операции между  рабочим  регистром  и  любым  регистром памяти  данных.  Основными  операциями  АЛУ  являются:  сложение,  вычитание,  сдвиг  и  логические  операции.  В командах с двумя операндами один операнд всегда рабочий регистр W, а второй операнд регистр памяти данных или  константа. В командах с одним операндом используется регистр W или регистр памяти данных.

В микроконтроллерах PIC16F62X существует два типа памяти данных:

  • энергонезависимая EEPROM память  данных,  предусмотрена для хранения  калибровочной информации, таблиц  или  любой  другой  информации,  требующей  периодического  изменения.  Данные,  записанные  в EEPROM память, не будут потеряны при отключении питания микроконтроллера;
  • регулярная память данных (ОЗУ), используется для хранения временной информации во время выполнения программы.  Информация  в  регулярной  памяти  данных  будет  потеряна  при  выключении  питания микроконтроллера.

Назначение  выводов микроконтроллеров сведено в таблицу 1.3.

 

 

 

 

 

 

 

 

 

 

2.ТЕРМОМЕТР  НА PIC16F62X

В последнее  время конструирование цифровых термометров очень популярно. Применение микроконтроллеров (МК) и современных  датчиков температуры позволяет  упростить подобные устройства до предела. Однако цифровые термометры с питанием от сети — явно не лучший вариант для портативного прибора, которым пользуются всего несколько раз в сутки. 
Для отображения показаний радиолюбители применяют в термометрах либо светодиодные индикаторы, потребляющие довольно большой ток и, следовательно, неоптимальные при батарейном питании, либо дорогостоящие ЖКИ со встроенным контроллером. Между тем существуют дешевые ЖКИ без контроллера, например ИЖЦ5-4/8. При правильном подходе к разработке схемы их использование лишь немного ее усложняет. Уменьшить габариты экономичного прибора можно за счет питания от одного гальванического элемента. 
        Имеет значение и выбор датчика температуры. Использовать p-n переход полупроводникового прибора, терморезистор или прецизионный аналоговый датчик, дающий пропорциональное температуре напряжение, нерационально, так как требуется аналого-цифровое преобразование. Из датчиков с цифровым выходом распространены приборы серии DS18Х2Х с однопроводным интерфейсом 1-Wire. Они компактны и в принципе допускают параллельное подключение неограниченного числа датчиков к одному проводу (точнее к двум, считая общий). Однако программная реализация однопроводного интерфейса довольно сложна. 
Для измерения температуры в быту лучше использовать датчики с интерфейсом I2C. Они не менее компактны, а многие можно соединять до восьми в параллель. Программно интерфейс I2С гораздо проще однопроводного. 
В предлагаемом термометре реализованы все изложенные идеи.

Как видно из приведенной на рис.2.1. схемы, применен микроконтроллер PIC16F628 — более совершенный, чем PIC16F84A, и дешевле последнего. Датчик температуры — DS1631 с интерфейсом I2С. Его погрешность ±0,5 °С в интервале температуры 0...+70 °С. В остальных участках интервала -55...+125 СС она не превышает ±1°С. 
Помимо прямого назначения, датчик DS1631 может служить узлом управления термостатом с программируемыми значениями температуры включения и выключения нагревателя, причем сделанные установки хранятся в энергонезависимой памяти датчика. Точность преобразования "температура—число" можно программно изменять от 9 до 12 двоичных разрядов. В зависимости от заданной точности длительность измерительного цикла составит 93,75.. .750 мс. Завершив его, датчик DS1631 автоматически переходит в режим пониженного энергопотребления, из которого его выводит только очередная команда, полученная по интерфейсу I2С. 

Рис.2.1.Принципиальная схема  цифрового термометра

С помощью стабилизированного преобразователя постоянного напряжения в постоянное (DC/DC) МАХ1674 напряжение гальванического элемента G1 (1,5 В) повышается до 3,3 В. Эта микросхема способна работать с КПД до 94 % при входном напряжении 0,7...5,5 В, отдавая в нагрузку ток, достигающий 1 А. Если ее вывод 1 (FB) соединить не с выходом (вывод 8. OUT), как на схеме, а с общим проводом (вывод 6, GND), выходное стабилизированное напряжение возрастет до 5 В. Подключая между указанными выводами резисторы, выходное напряжение можно регулировать. 
        В МАХ1674 предусмотрен встроенный компаратор. На вывод 2 (LBI) — его не инвертирующий вход — подано входное напряжение. На инвертирующем входе компаратора — образцовое напряжение 1,3 В от внутреннего стабилизатора, его можно измерить, на выводе 4 (REF). С помощью дополнительных внешних резисторов порог срабатывания компаратора можно изменить. В предлагаемом устройстве к выходу компаратора (вывод 3. LBO) подключен светодиод HL1. Его свечение предупреждает о необходимости заменить элемент G1.

В термометре установлен индикатор  на жидких кристаллах ИЖЦ5-4/8 (MG1). Так как управлять им динамически невозможно, пришлось ввести микросхемы DD2 и DD3 — широко известные КМОП счетчики К176ИЕ4 с встроенными преобразователями кода. Выводя результат измерения температуры на индикатор, микроконтроллер DD1, прежде всего, посылает сигнал сброса на входы R счетчиков. Затем подает на входы С каждого из них импульсы, числом, соответствующим выводимым цифрам. 
Входы 5 счетчиков, отвечающие за полярность их выходных сигналов, соединены с подложкой индикатора, на которую с вывода 18 микроконтроллера поступают прямоугольные импульсы. В итоге напряжение на элементах индикатора тоже импульсное, причем на тех, которые не должны быть видны, оно синфазно напряжению на подложке, а на видимых- противофазно ему. 
       Выводы элементов ж1 (знак "минус"), б2 и в2 (цифра 1 в разряде сотен градусов) подключены к микроконтроллеру напрямую. Он программно формирует сигналы нужной для управления ими формы. 
Если температуру проверяют лишь несколько раз в сутки, нет смысла держать термометр включенным Для повышения экономичности предусмотрено управление его питанием с помощью ключа на транзисторе VT1. Кратковременное замыкание контактов кнопки SB1, подключенной параллельно участку эмиттер—коллектор транзистора, дает микроконтроллеру DD1 достаточно времени для запуска тактового генератора и выполнения процедуры инициализации, которая, в частности, устанавливает низкий уровень на выходе RB6. Это удерживает транзистор открытым, а термометр — включенным после отпускания кнопки. 
Завершив инициализацию, микроконтроллер обращается к датчику температуры, переводя его в режим девятиразрядного преобразования, затем посыпает датчику команду начать измерение. Через 100 мс микроконтроллер считывает результат и преобразует полученное значение в вид, пригодный для вывода на индикатор. Если датчик не подключен или неисправен, будут выведены два нуля со знаком "минус". 
       По завершении загрузки цифр результата в счетчики DD2 и DD3 на выводе 18 микроконтроллера появится напряжение возбуждения индикатора. Еще через 3 с программа завершит работу, предварительно установив высокий уровень на выводе 12 микроконтроллера. Транзистор VT1 будет закрыт, питание прибора выключено. 
       Таким образом, нажатие на кнопку SB1 приводит к однократному измерению температуры и трехсекундному отображению результата на индикаторе. Этим обеспечена высокая экономичность прибора. 
В слове конфигурации необходимо указать, что тактовый генератор — INTRC (RA6 и RA7 — линии ввода-вывода), сторожевой таймер выключен, включены таймер задержки запуска при включении питания и узел сброса при снижении напряжения питания. Состояние разрядов, отвечающих за режим низковольтного программирования и работу вывода MCLR/RA5, в данном случае безразличны.

Информация о работе Термометр на PIC контроллере