Рефераты. Разработка и описание работы устройства на PIC-контроллере

Рисунок 3.8 - Внешняя цепь сброса


Организация прерываний

Микроконтроллеры PIC16F84 имеют четыре источника прерываний:

-              Внешнее по входу RB0/INT

-              Внешнее по изменению состояния одной из линий RB4-RB7 порта В

-              Внутреннее по переполнению таймера/счетчика TMR0

-              Внутреннее по окончанию записи в EEPROM.

Для каждого из прерываний 1, 2 и 3 существует свой флаг-бит в регистре INTCON, сигнализирующий о поступлении конкретного вида запроса. Для прерывания 4 флаг-бит хранится в регистре EECON1. Анализируя эти биты подпрограмма обработки прерываний, начинающаяся с адреса 0004h, определяет источник прерывания. Кроме этого, в регистре INTCON содержится бит глобального запрета прерываний GIE и биты индивидуального запрета каждого прерывания. Когда бит GIE сброшен, все прерывания запрещены. При включении питания бит GIE по умолчанию сброшен.

Когда поступает прерывание, бит GIE сбрасывается, чтобы не допустить возникновения нового прерывания (поскольку у микроконтроллера PIC16F84 существует только один вектор прерывания), адрес возврата загружается в стек, а в программный счетчик загружается адрес-вектор 0004h. Инструкция возврата из подпрограммы обработки прерывания RETFIE устанавливает бит GIE в единицу, тем самым разрешая прерывания.

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

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

Энергосберегающий режим SLEEP.

Микроконтроллер переводится в режим SLEEP при выполнении специальной команды SLEEP. Если сторожевой таймер включен, то он обнуляется и начинает отсчет задержки заново. В регистре STATUS сбрасывается бит PD и устанавливается бит ТО. Тактовый генератор отключается. Выводы портов сохраняют состояние, которое было непосредственно перед исполнением команды SLEEP.

Пробуждение из режима SLEEP.

Процессор может быть выведен из режима SLEEP тремя различными способами:

-              внешним сбросом по входу MCLR;

-              при переполнении сторожевого таймера (если он включен);

-              прерыванием по входу RB0/INT, по изменению состояния входов RB4-RB7 или по окончанию записи в EEPROM.

Событие 1 приводит к сбросу процессора и исполнению программы с начального адреса. Два остальных события приводят к продолжению исполнения программы. Во время исполнения команды SLEEP процессор загружает в буфер команд следующую команду (РС+1). Чтобы контроллер вышел из режима SLEEP по прерыванию, оно должно быть разрешено соответствующими битами.

Порядок пробуждения по прерыванию зависит от состояния бита GIE. Если этот бит сброшен, то после пробуждения выполняется команда, следующая за командой SLEEP (и уже загруженная в буфер) и далее по порядку. Если бит GIE установлен в 1, то сначала исполняется команда, загруженная в буфер, а затем процессор переходит на адрес-вектор прерывания 0004h. Если исполнение команды, следующей за SLEEP, при выходе по прерыванию нежелательно, то сразу после команды SLEEP должна следовать команда NOP.

Система команд

Каждая команда контроллера PIC16F84 представляет собой 14-битное слово, состоящее из кода команды (OPCODE) и одного или нескольких операндов.

f - Адрес специального регистра или регистра пользователя. Диапазон значений от 0x00 до 0x7F. Фирменный ассемблер допускает применять вместо цифровых значений непосредственно имена регистров, определенные ранее.

W - Рабочий регистр (аккумулятор)

b - Битовый адрес, используемый с 8-битным регистром, и указывающий внутри регистра на бит, с которым выполняется битовая операция. В ассемблерном тексте обозначает константу, представленную в двоичном счислении.

k - Литерал, константа или метка.

d - Указатель приемника результата операции. Если d=0, результат сохраняется в W, если d= 1, результат сохраняется в регистре, объявленном в команде. По умолчанию d=l. Никакой другой регистр, кроме используемого в операции, не может быть назначен приемником. Фирменный ассемблер для большей наглядности допускает применять вместо значений 0 и 1 соответственно символы w и f.


Таблица 3.6 - Система команд микроконтроллера PIC16F84

Мнемоника

операнды

Расшифровка мнемоники

Количество

циклов

Изменяемые

регистры

Примечание

БАЙТОВЫЕ ОПЕРАЦИИ С РЕГИСТРАМИ

ADDWF f, d

Add W and F

1

C, DC, Z

1,2

ANDWF f, d

AND W with F

1

Z

1,2

CLRF f

Clear F

1

Z

2

CLRW

Clear W

1

Z


СОМF f, d

Complement F

1

Z

1,2

DECF f, d

Decrement F

1

Z

1,2

DECFSZ f, d

Decrement F, Skip if Zero

1(2)


1,2,3

INCF f, d

Increment F

1

Z

1,2

INCFSZ f, d

Increment F, Skip if Zero

1(2)


1,2,3

IORWF f, d

Inclusive OR W with F

1

Z

1,2

MOVF f, d

Move F

1

Z

1,2

MOVWF f

Move W to F

1



NOP

No Operation

1



RLF f,d

Rotate Left F through carry

1

C

1,2

RRF f,d

Rotate Right through carry

1

C

1,2

SUBWF f, d

Subtract W from F

1

C, DC, Z

1,2

SWAPF f, d

Swap nibbles in F

1


1,2

XORWF f, d

Exclusive OR W with F

1

Z

1,2

Мнемоника

операнды

Расшифровка мнемоники

Количество

циклов

Изменяемые

регистры

Примечание

БИТОВЫЕ ОПЕРАЦИИ С РЕГИСТРАМИ

BCF f, b

Bit Clear F

1


1,2

BSF f, b

Bit Set F

1


1,2

BTFSC f, b

Bit Test F, Skip if Clear

1(2)


3

BTFSS f, b

Bit Test F, Skip if Set

1(2)


3

ОПЕРАЦИИ С ЛИТЕРАЛАМИ И ПЕРЕХОДЫ

ADDLW k

Add Literal and W

1

C, DC, Z


 

ANDLW k

AND Literal with W

1

Z


 

CALL k

Call subroutine

2



 

CLRWDT

Clear Watchdog Timer

1

TO, PD


 

GOTO k

Go To address

2



 

IORLW k

Inclusive OR Literal with W

1

Z


 

MOVLW k

Move Literal to W

1



 

RETFIE

Return From Interrupt

2



 

RETLW k

Return with Literal in W

2



 

RETURN

Return from subroutine

2



 

SLEEP

Sleep into standby mode

1

TO, PD


 

SUBLW k

Subtract W from Literal

1

C, DC, Z


 

XORLW k

Exclusive OR Literal with W

1

Z


 


Примечания:

1) Когда происходит чтение-модификация-запись портов ввода-вывода, то всегда считывается реальные значения напряжений на выводах, независимо от того, как настроены линии порта и что записано в триггер-защелку. Операция производится над считанным реальным значением и результат записывается в защелку.

2) Когда эта инструкция выполняется над регистром TMR0 и d= 1, предделитель сбрасывается, если подключен к модулю Timer0.

3) Если программный счетчик модифицируется или проверка на условие возвращает истинный результат, инструкция требует два машинных цикла. Второй цикл исполняется процессором как NOP.


3.6.2 Микросхема КР142ЕН5А

Микросхема КР142ЕН5А трехвыводный стабилизатор с фиксированным выходным напряжением 5 вольт могут найти применение в широком спектре радиоэлектронных устройств в качестве источниках питания логических систем, измерительной технике, устройств высококачественного воспроизведения и других радиоэлектронных устройств.

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

-Допустимый выходной ток 1А

-Не требуются внешние компоненты

-Внутренняя термозащита

-Защита выходного транзистора

-Внутреннее ограничение тока КЗ


Таблица 3.7 - Электрические характеристики КР142ЕН5А

Рис. 3.9 - Схема включения КР142ЕН5А


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


Схема тахометра показана на рис. . Входной сигнал с контактов прерывателя стабилизируется стабилитроном VD1 на уровень ТТЛ и подается на вход RB0. При бесконтактной системе зажигания сигнал снимается с выхода коммутатора, выдающего перепад напряжения 3 В. Этого напряжения достаточно для срабатывания микроконтроллера.

Входы RA0-RA2 коммутируют аноды светодиодов, реализуя динамическую индикацию. Вход RA3 нагружен переключателем предела измерения

«Is—3s». Внутренние подтягивающие резисторы программно отключены, но ими снабжены только входы «В» микроконтроллера, поэтому возникла необходимость в установке резистора R2. Входы RBI—RB7 использованы для вывода значений сегментов. Поскольку микроконтроллер работает при верхнем питающем напряжении 6 В, то микросхему стабилизатора напряжения КР142ЕН5 можно взять с любой буквой, обеспечивающей это напряжение.

Потребляемый тахометром ток около 25 мА, поэтому микросхема стабилизатора напряжения не нуждается в радиаторе. Диод VD2 защищает прибор от переполюсовки. Если тахометр будет использоваться при регулировке карбюраторов, то светодиоды АЛ304Г нежелательно заменять индикаторами с большими размерами цифр.


5 Алгоритм работы устройства и программное обеспечение


Тахометр реализован на одной микросхеме микроконтроллера PIC16F84A.

Алгоритм программы тахометра представлен на рис. 16. После включения питания происходит начальная инициализация всех регистров с последующей индикацией. После инициализации вступает в работу таймер TMR0. Таймер имеет коэффициент деления, равный 256, что вместе с предцелителем, имеющим коэффициент деления, равный 32, и циклом процессора, равным 4, дает прерывания каждую секунду (4 х 32 х 256 = 3,2768).

При замыкании контактов прерывателя с входа RB0 также происходит прерывание. При прерывании сохраняются значения регистров, задействованных на момент прерывания, и определяется происхождение прерывания. Если прерывание с входа RB0, то двоичный 16-разрядный счетчик увеличивается на единицу. Таким образом, подсчитывается количество прерываний с входа RB0 между прерываниями от переполнения таймера, то есть за 1 секунду. Каждое прерывание заканчивается восстановлением ранее сохраненных значений регистров, и процессор переключается на работу с индикацией.

Если прерывание произошло по переполнению таймера, то определяется состояние переключателя предела измерения и, если переключатель на пределе одной секунды, двоичное значение 16-разрядного счетчика умножается на 3 (2N х 3). 16-разрядный счетчик обнуляется, готовясь к новому циклу измерения. Полученное двоичное значение перекодируется в трехразрядное двоично-десятичное число и переписывается в регистры индикации. После восстановления значений регистров индикация происходит с новыми данными. То есть индикация обновляется каждую секунду.

Если установлен предел измерения, равный 3 секундам, то при переполнении таймера значение счетчика секунд увеличивается на единицу. Если значение счетчика секунд еще не равно трем, прерывание завершается без обнуления 16-разрядного счетчика. В противном случае в 16-разрядном счетчике накапливается количество прерываний с входа RB0 за три секунды. Это значение перекодируется в двоично-десятичное число и переписывается в регистры индикации. Двоичный счетчик обнуляется и цикл повторяется. В данном случае индикация обновляется каждые три секунды.












Заключение


В ходе выполнения курсовой работы был разработан «Цифровой автомобильный тахометр». В пояснительной записки представлены схемы: электрическая структурная, электрическая функциональная, электрическая принципиальная с описанием. Также приведено описание всей элементной базы устройства, приведено описание работы пользователя с устройством.

Применение микроконтроллера PIC16F84 позволило создать компактное, эргономичное устройство с минимальными массогабаритными и экономическими показателями.

Прошивка микроконтроллера приведена в приложении к пояснительной записки.

В графической части представлены чертежи схем: электрической структурной и электрической принципиальной в соответствии со стандартами ЕСКД.


Список использованных источников

1.                      www.microchip.ru;

2.                      Радиолюбительские конструкции на PIC-микроконтроллерах кн.1(Заец Н.) 2003;

3.                      www.integral.by.

Ссылки для скачивания чертежеи:

#"_GoBack">


Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.