Цифровой термометр на базе контроллера PIC16F877

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    51,67 Кб
  • Опубликовано:
    2012-08-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Цифровой термометр на базе контроллера PIC16F877

Содержание

Введение

Техническое задание

1.       Структурная схема цифрового термометра

2.       Выбор микропроцессорного комплекта

.        Описание и расчёт схемы электрической принципиальной

Список литературы

Принципиальная схема

Перечень элементов

Блок-схема алгоритма программы

Текст программы

Введение

В настоящее время более тридцати зарубежных фирм выпускают микроконтроллеры массового применения с разрядностью 8 бит, недорогие и пригодные для использования в самых разнообразных приложениях. Однако именно микроконтроллеры серии PIC фирмы Microchip® Technology Inc. переживают последние три-четыре года в России поистине взрывной рост популярности. Эти микроконтроллеры также крайне популярны во всём мире, как у производителей электронной техники, так и среди радиолюбителей.

Причиной такой популярности является мощная и продуманная поддержка разработчиков со стороны фирмы и низкая стоимость микросхем. Кроме того сам продукт обладает целым рядом неоспоримых достоинств. Микроконтроллеры PIC фирмы Microchip® объединили в себе все передовые технологии, применяемые в производстве микроконтроллеров: развитую RISC-архитектуру, минимальное энергопотребление при высоком быстродействии, ППЗУ, программируемое пользователем, функциональную законченность. Немаловажное значение имеет возможность защиты кода программы от несанкционированного копирования и использования.

Чёткая и продуманная внутренняя структура контроллеров и небольшая, но мощная система команд с интуитивно понятной мнемоникой значительно облегчают процесс изучения контроллеров PIC и написание для них программ.

Для производителей электронной аппаратуры микроконтроллеры PIC интересны обширным и законченным функциональным рядом, возможностью заказа дешёвых масочно-программируемых кристаллов при наличии отладочных кристаллов с флэш-памятью и УФ-стиранием

Микроконтроллеры серии PIC идеально подходят для организации и развития малого и среднего бизнеса в области производства электронной аппаратуры

Техническое задание

В работе рассматривается возможность создания устройства - «цифровой термометр» для измерения комнатных температур в диапазоне от 0…50°С с точностью измерений 7% с использованием в данном устройстве современного микропроцессорного комплекта.

Измерение температур при помощи цифрового термометра на базе микроконтроллера PIC16F877 может быть широко использовано для ряда задач в области радиотехники и других отраслях науки и техники. Внешнее исполнение устройства может быть любым, в зависимости от предъявляемых требований. При достаточно простом программном и схемотехническом исполнении устройства за основу были взяты следующие характеристики:

1.       Массогабаритные.

2.       Несложная реализация.

.        Надежность.

.        Невысокая стоимость.

.        Удобство в применении.

1.      
Структурная схема цифрового термометра





Принцип работы устройства: на входную цепь подаётся напряжение 5 В, которое далее преобразуется в 0.5 В. Полученное напряжение поступает на терморезистор, который меняет своё сопротивление в зависимости от температуры. Далее напряжение усиливается и подаётся на микроконтроллер PIC16F877, в нем оно преобразуется в кодовую комбинацию, соответствующую температуре, которая впоследствии преобразуется в десятичное число и выводится на семисегментные цифровые индикаторы.

2.       Выбор микропроцессорного комплекта


Для реализации устройства был выбран PIC16F877, в корпусе PDIP. Основными факторами при выборе контроллера являлись: стоимость и достаточное количество линий ввода-вывода.

Характеристика микроконтроллера:

·        Высокоскоростная RISC архитектура

·        35 инструкций

·        Все команды выполняются за один цикл, кроме инструкций переходов, выполняемых за два цикла

·        Тактовая частота:

Ø  DC - 20МГц, тактовый сигнал

Ø  DC - 200нс, один машинный цикл

·        До 8к х 14 слов FLASH памяти программ

·        До 368 х 8 байт памяти данных (ОЗУ)

·        До 256 х 8 байт EEPROM памяти данных

·        Совместимость по выводам с PIC16C73B/74B/76/77

·        Система прерываний (до 14 источников)

·        8-уровневый аппаратный стек

·        Прямой, косвенный и относительный режим адресации

·        Сброс по включению питания (POR)

·        Таймер сброса (PWRT) и таймер ожидания запуска генератора (OST) после включения питания

·        Сторожевой таймер WDT с собственным RC генератором

·        Программируемая защита памяти программ

·        Режим энергосбережения SLEEP

·        Выбор параметров тактового генератора

·        Высокоскоростная, энергосберегающая CMOS FLASH/EEPROM технология

·        Полностью статическая архитектура

·        Программирование в готовом устройстве (используется два вывода микроконтроллера)

·        Низковольтный режим программирования

·        Режим внутрисхемной отладки (используется два вывода микроконтроллера)

·        Широкий диапазон напряжений питания от 2.0 В до 5.5 В

·        Повышенная нагрузочная способность портов ввода/вывода (25 мА)

·        Малое энергопотребление:

Ø  < 0.6 мА @ 3.0 В, 4.0 МГц

Ø  20 мкА @ 3.0 В, 32 кГц

Ø  < 1 мкА в режиме энергосбережения

Характеристика периферийных модулей:

·        Таймер 0: 8-разрядный таймер/счетчик с 8-разрядным программируемым предделителем

·        Таймер 1: 16-разрядный таймер/счетчик с возможностью подключения внешнего резонатора

·        Таймер 2: 8-разрядный таймер/счетчик с 8-разрядным программируемым предделителем и выходным делителем

·        Два модуля сравнение/захват/ШИМ (ССР):

Ø  16-разрядный захват (макс. разрешающая способность 12.5 нс)

Ø  16-разрядное сравнение (макс. разрешающая способность 200 нс)

Ø  10-разрядный ШИМ

·        Многоканальное 10-разрядное АЦП

Ø  ведущий/ведомый режим SPI

Ø  ведущий/ведомый режим I2C

·        Последовательный синхронно-асинхронный приемопередатчик USART с поддержкой детектирования адреса

·        Ведомый 8-разрядный параллельный порт PSP с поддержкой внешних сигналов -RD, -WR, -CS (только в 40/44-выводных микроконтроллерах)

·        Детектор пониженного напряжения (BOD) для сброса по снижению напряжения питания (BOR)

3.       Описание и расчёт схемы электрической принципиальной

цифровой термометр микропроцессорный программирование

Входная цепь вместе с внутренним АЦП микроконтроллера представляет собой схему преобразования «напряжение - код». При изменении температуры сопротивление терморезистора изменяется, а, следовательно, изменяется и входное напряжение на микропроцессоре. Напряжение на входе RA0 преобразуется в 10-битный цифровой двоичный код с шагом квантования

Схема включает в себя два операционных усилителя марки К140УД6. DA1 исключает влияние делителя напряжения на сопротивление терморезистора, а DA2 необходим для согласования терморезистора с микроконтроллером.

После преобразования микроконтроллер ставит в соответствие полученному коду температуру и отображает её на семисегментные индикаторы.

Для измерений используется терморезистор с отрицательным ТКС КМТ-8. Его номинальное сопротивление Rt = 510 Ом.


Терморезистор имеет нелинейную зависимость R(T), для её линеаризации параллельно терморезистору поставим резистор R3 = 1000 Ом.

Рассчитаем сопротивления делителя напряжения:

 ,

примем      R1 = 1 КОм                  и       R2 = 9 КОм.

Рассчитаем R*:


Рассчитаем конденсатор (на частоте 1 Гц):

4 = 10 КОм - по условию для операционных усилителей.

Рассчитаем ограничивающие сопротивления R5 - R11:


Рассчитаем значения сопротивлений резисторов R12, R13:

Транзистор КТ315А имеет статический коэффициент усиления тока базы β=50, Максимальный ток в цепи коллектора равен:


Список литературы

1.            Мэклин Э. Д. Терморезисторы.

2.       Методические указания «Микроконтроллеры PIC 16F877».- Новосибирск: НГТУ, 2002.

.        Конспект лекций по дисциплине «Вычислительная техника и информационные технологии». Кривецкий А. В.


 Поз. обозн.

Наименование

Кол.

Примечание





С1

Конденсатор КМ5 - 160 мкФ ± 1%

1







Резисторы



R1, R3, R*

МЛТ-0,25 - 1кОм ± 1%

3


R2

МЛТ-0,25 - 9 кОм ± 1%

1


R4

МЛТ-0,25 - 10 кОм ± 1%

1


R5-R11

МЛТ-0,25 - 180 Ом ± 1%

7


R12, R13

МЛТ-0,25 - 1.6 кОм ± 1%

2






Rt

Терморезистор КМТ-8 - 510 Ом ± 10%

1







Транзисторы



VT1, VT2

КТ315А

2







Микросхемы



DD1

Микроконтроллер PIC16F877

1


DA1, DA2

Операционный усилитель К140УД6

2







Индикаторы знакосинтезирующие

АЛ305А

2











































НГТУ.ХХХ.ХХХ.21

Лист







12

Изм.

Лист

№ докум.

Подпись

Дата



Блок-схема алгоритма программы


Объяснение некоторых операций программы:

0°С соответствует сопротивление 340 Ом, следовательно напряжение на входе микроконтроллера будет: . Это значит, что от полученного кода необходимо отнять комбинацию, соответствующую этому напряжению. Найдём её:

В/1024 = 4,88 мВ - шаг измерения напряжения микроконтроллером;

.47/4.88 = 301 - вычитаемая комбинация.

Найдем шаг, соответствующий изменению температуры на 1°С:

Т. е. полученную комбинацию нужно разделить на 14.

Текст программы

p=16f877

include «p16f877.inc»_1 equ 0x21_0 equ 0x22               EQU 0x23            EQU 0x24            EQU 0x25            b'00000000' ;команда записи в аккумулятор;

movwf                 ADRESS_1 ;копирует из аккумулятора в прямоуказанный регистр;

movwf                  ADRESS_0          ССС           ССС2                   ССС3

BSF            STATUS, RP0     ;переход в первый банк

BCF            STATUS, RP1

movlw                  b'10000000'

movwf                  ADCON1             ;настройка АЦП

CLRF                   TRISC                           ;обнуление регистра, настройка PORTC на выход

movlw                  b'00000111'          OPTION_REG     ;настройка TMR0                  STATUS, RP0     ;переход в нулевой банк

movlw                  b'10000001'

movwf                  ADCON0             ;настройка АЦП

;----------------- тело цикла --------------------

preobr         BSF            ADCON0, 2         ;установка флага GO/DONE

ggg    BTFSC       ADCON0, 2         ;пропустить следующую инструкцию, если битовое поле 2

;содержит 0

goto   ggg

movf           ADRESH, 0          ;копировать содержимое регистра в аккумулятор

movwf                  ADRESS_1 ;и записать его в переменную

movf           ADRESL, 0

movwf                  ADRESS_0

CLRF                   STATUS,C ;сброс флага переноса

;вычитание 301             b'00101101' ;запись числа 45 в аккумулятор      ADRESS_0,1         ;вычитает содержание аккумулятора из регистра,

;сохраняет результат в регистре.

movf           b'00000001' ; запись числа 256 в аккумулятор (45+256=301)

SUBWF      ADRESS_1,1

BTFSC       STATUS, C

DECF                   ADRESS_1,1       ;команда декремента, вычитает единицу из

;прямоуказанного регистра с сохранением результата в

;регистре;

CLRF                   STATUS, C

;деление на 14

goto   LLL

del     INCF          CCC, 1       ;команда инкремента, прибавляет единицу к

;содержимому прямоуказанного регистра, сохраняет

;результат в регистре

LLL   movf           b'00001110' ; запись числа 14 в аккумулятор

SUBWF      ADRESS_0, 1

BTFSC       STATUS, C         ADRESS_1,1;      выполняет декремент прямоуказанного регистра,

;осуществляет проверку равенства результата с 0, если да, ;то, пропускает следующую команду

goto   del                                 ;результат деления хранится в регистре ССС

movf           CCC, 0       ;записываем содержимое регистра ССС в регистр ССС2

movwf                  CCC2

;выделение единиц и десятков

goto   LLL1 INCF          CCC3, 1     ;десятки               CCC2         movlw                  b'1010'                 ;единицы    CCC2, 0     STATUS, C

;вывод температуры на индикаторы

goto LLL2

movf           CCC2, 0               dec7            PORTA                PORTE

CALL                   delay           ;команда вызова подпрограммы;

BCF            PORTE, 1            CCC3,0                dec7            PORTA                PORTE, 0                   delay           PORTEpreobr               0x02            ;подпрограмма задержки на 2 мс.

return

;подпрограмма табличной конвертации, принимает и возвращает данные в аккумулятор                 PCL, f                 ;прибавляем к PCL число, которое нужно преобразовать              b'1111110'   ;цифра "0"           b'0110000'   ;цифра "1"           b'1101101'         ;цифра "2"           b'1111001'   ;цифра "3"           b'0110011'   ;цифра "4"           b'1011011'         ;цифра "5"           b'1011111'   ;цифра "6"           b'1110000'   ;цифра "7"           b'1111111'         ;цифра "8"           b'1111011'   ;цифра "9"

end

Похожие работы на - Цифровой термометр на базе контроллера PIC16F877

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!