Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа № 6 Обработка прерываний. Таймер TMR0.Содержание книги
Поиск на нашем сайте Краткие теоретические сведения Прерывания делятся на внутренние и внешние. Внешние прерывания поступают на RB0 порта PORTB. Внутренние прерывания возникают при переполненении таймера TMR0 и при снижении напряжения на битах PORTB. При разрешенных прерываниях в случае их возникновения осуществляется переход на регистр 04h в памяти программ, где находится указание о безусловном переходе на подпрограмму обработки прерывания. Сама программа отделяется от основной программы через GOTO $, а заканчивается RETFIE. При переходе на подпрограмму бит GIE в регистре INTCON<7> автоматически сбрасывается в 0. В теле этой подпрограммы анализируются флаги, сообщающие о возможных источниках возникновения прерываний, снимается флаг, сообщающий о возникновении данного прерывания, что исключает повторную обработку прерывания, и выполняются действия, которые необходимо выполнить при появлении данного прерывания. После выполнения инструкции RETFIE восстанавливается автоматически разрешение прерываний и основная программа продолжает выполняться с адреса, перед которым произошло прерывание. Это осуществляется благодаря запоминанию в стеке адреса последней выполненной инструкции. В данном упражнении организуется прерывания от переполнения таймера TMR0. Исходные данные и выполнение программы Соедините разряды PORTC и разъемы сигнальных ламп также, как и в предыдущей лабораторной работе.
Таблица 6 Задания по изменению времени работы TMR0
В соответствии с этим заданием по варианту 1 коэффициент предделителя 1:4, по варианту 2 – 1:8 и по варианту 3 – 1:16. Для наблюдения за работой программы в режиме симулятора в окно наблюдения включите туда регистры PORTC, OPTION_REG, INTCON, PCL, Wreg, STATUS, TRISC. Снимите окна в начальный момент, в момент запуска программы обработки переполнения. Сравните значение счетчика команд, при котором наступило прерывание при разных значениях предделителя.
Программа 4.3 Include<p16F877A.inc>; org h'00'; GOTO GLAV; при запуске программы сразу происходит переход на ;выполнение основной программы с пропуском инструкции перехода ; на подпрограмму обработки прерывания Prer nop; nop; nop; org h'04'; GOTO Prer NOP GLAV NOP NOP CLRF STATUS CLRF PORTC MOVLW b'00100000' MOVWF INTCON; разрешаем прерывания от TMR0 BSF STATUS,5 CLRF TRISC MOVLW B'00000000' MOVWF OPTION_REG;установили предделитель 1:2 и работу таймера ;от внутреннего тактового сигнала BCF STATUS, 5 MOVLW B'11000000';со значения этого числа начнет работать ;модуль TMR0 со скоростью наполнения регистра, определяемой ;настройкой предделителя в регистре OPTION_REG. MOVWF TMR0 Sled_det MOVLW B'00001111' MOVWF PORTC GOTO Sled_det GOTO $ Prer;подпрограмма обработки прерывания, вызванного переполнением ;счетчика TMR0, после ее отработки в PORTC будут гореть все лампы BCF INTCON,2; сброс флага переполнения таймера MOVLW b'11111111' MOVWF PORTC; в PORTC горят все лампы RETFIE END; конец программы
Оформление отчета по лабораторной работе Отчет оформляется на группу. В созданный вордовский файл копируется текст программы и окна по ходу выполнения программы в режиме MPLabSim.
4.13 Контрольные вопросы 1. После выполнения инструкции RETFIE куда возвращается программа? 2. В каком состоянии находится бит разрешения прерываний в регистре INTCON после выполнения инструкции RETFIE? 3. Как изменяется значение в регистре PCL при входе в подпрограмму обработки прерывания и при выходе из нее? 4. Где сохраняется значение счетчика регистра, позволяющее при завершении подпрограммы вернутся к выполнению следующей инструкции? 5. После отработки программы обработки прерывания какое значение устанавливается в INTCON<5>? О чем это говорит? 6. В каких банках находятся регистры INTCON и OPTION_REG? 7. Какой производственный процесс может работать под управлением этой программы?
5 Лабораторная работа № 7 Преобразование аналоговых сигналов. АЦП. Цель работы: изучение операций преобразования аналоговых сигналов в двоичное значение с помощью АЦП микроконтроллера, применение таймера ТМR0. Процесс преобразования аналогового значения (напряжения, силы тока) в двоичное значение происходит в цифровых измерительных приборах, электросчетчиках, терминалах РЗ и ПА и т.д. Теоретические сведения Модуль аналого-цифрового преобразователя (АЦП) имеет восемь каналов у 40/44-выводных микросхем. Входной аналоговый сигнал через коммутатор каналов заряжает внутренний конденсатор АЦП Chold. Модуль АЦП преобразует напряжение, удерживаемое на конденсаторе Chold в соответствующий 10-разрядный цифровой код методом последовательного приближения. Источник верхнего и нижнего опорного напряжения может быть программно выбран с выводов VDO, VSS, RA2 или RA3. Допускается работа модуля АЦП в SLEEP режиме микроконтроллера, при этом в качестве источника тактовых сигналов должен быть выбран RC генератор. Для управления АЦП в микроконтроллере используется 4 регистра. - регистр результата ADRESH (старший бит); - регистр результата ADRESL (младший бит); - регистр управления ADCON0; - регистр управления ADCON1. Регистр ADCON0 используется для настройки работы модуля АЦП, а с помощью регистра ADCON1 устанавливается какие входы микроконтроллера будут использоваться модулем АЦП и в каком режиме (аналоговый вход или цифровой порт ввода/вывода). После включения и конфигурации АЦП выбирается рабочий аналоговый канал. Соответствующие биты TRIS аналоговых каналов должны настраивать порт ввода/вывода на вход. Перед началом преобразования необходимо выдержать временную паузу, расчет которой приведен в [11]. Рекомендованная последовательность действий для работы АЦП: 1. Настроить модуль АЦП: - настроить выводы как аналоговые входы, входы VREF или цифровые каналы ввода/вывода (ADCON1); - выбрать входной канал АЦП (ADCON0); - выбрать источник тактовых импульсов для АЦП (ADCON0); - включить модуль АЦП (ADCON0). 2. Настроить прерывание от модуля АЦП (если необходимо): - сбросить бит ADIF в 0 (регистр PIR1<6>); - установить бит ADIE в 1(регистр PIE1<6>); - установить бит PEIE в 1(регистр INTCON<6>); - установить бит GIE в 1(регистр INTCON<7>); 3. Выдержать паузу, необходимую для зарядки конденсатора СHOLD. Пауза обеспечивается с помощью таймера TMR0. 4. Начать аналого-цифровое преобразование: - установить бит GO/-DONE в 1(ADCON0<2>). 5. Ожидать окончания преобразования: - ожидать пока бит GO/-DONE не будет сброшен в 0; ИЛИ - ожидать прерывание по окончанию преобразования. 6. Считать результат преобразования из регистров ADRESH:ADRESL, сбросить бит ADIF в 0 (регистр PIR1<6>), если это необходимо. 7. Для следующего преобразования необходимо выполнить шаги начиная с пункта 1 или 2. Время преобразования одного бита определяется как время ТAD. Минимальное время ожидания перед следующим преобразованием должно составлять не менее 2 ТAD.
Задания для внеаудиторной подготовки Изучите назначение регистров ADCON0, ADCON1, ADRESH, ADRESL, INTCON, PIR1, PIE1, TRISA, PORTA, TRISE, PORTE, TMR0 (приложения Ж и З).
5.2 Исходные данные и задание На рисунке 5.1 показана схема соединения разъемов и бит регистров для выполнения лабораторной работы. Аналоговый сигнал подается с выхода делителя на бит RA0 PORTA. Сигнал внешнего прерывания на бит RB0 PORTB подается от бита 1 PORTD через схему с двумя тумблерами, один из которых включен при запуске программы, а другой выключен. Он включается для подачи сигнала прерывания на бит RB0, в результате чего происходит выход из цикла и обработка в АЦП следующего аналогового значения. Вывод двоичного значения сигнала после преобразования аналогового сигнала в АЦП из PORTC осуществляется на лампы 0-7 (рисунок 5.1). Биты PORTC и RORTD настраиваются на вывод, биты 0-2 PORTA и биты 0-3 PORTB - на ввод. АЦП настраивается на работу от основного генератора частоты с пределителем Fosc/8. TMR0 запускается с предделителем 1:256. Время его работы обеспечивает зарядку конденсатора в АЦП до уровня, соответствующего но-вому сигналу. Значение нового сигнала устанавливается в период ожидания внешнего прерывания (включения тумблера) изменением положения задатчика в соответствии с вариантом лабораторной работы. В окне наблюдения выведите все регистры, состояние которых меняется в процессе выполнения программы. Моменты сохранения окна указаны в тексте программы.
Рисунок 5.1 – Схема соединений в лабораторной работе к программе 5.1
Таблица 7 Задания к лабораторной работе по применению АЦП
Программа 5.1. include "p16F877A.inc" org h'00' nop nop nop org h'05' CLRF STATUS CLRF PORTC; Очистка регистра PORTC movlw B'01000001'; Настройка АЦП. Частота Fosc/8 movwf ADCON0 ; сохранить окно bsf STATUS,5 movlw B'00000111' movwf TRISA;биты 0-2 PORTА на ввод movlw B'00001111' movwf TRISB;настроить,биты 0-3 PORTB на ввод clrf TRISD;настроить PORTD на вывод clrf TRISC;настроить PORTC на вывод ; сохранить окно сохранить окноаботе по применению АЦПе программы. выполнения программы. ия подачей movlw B'10000111';Установка предделителя перед TMR0 movwf OPTION_REG; коэффициент деления 1:256 ; сохранить окно movlw B'00001110';эта константа вводится в регистр ADCON1;для настройки АЦП – левое выравнивание и выбор бита RA0 в PORTA для;ввода аналогового сигнала movwf ADCON1 ; сохранить окно bcf STATUS,5 movlw B'00000111' movwf PORTD; подаем энергию в PORTD ; сохранить окно Main btfss INTCON,T0IF; Ждать переполнения TMR0 goto Main bcf INTCON,T0IF;Сбросить флаг прерывания от TMR0 bsf ADCON0,GO; Запуск АЦП Wait btfss PIR1,ADIF; Ждать окончания преобразования goto Wait movf ADRESH,W;Вывод результата преобразования movwf PORTC; на светодиоды порта С WaitPush; после загорания светодиодов записать двоичное значение,;установить новый ток, если это необходимо, и включить тумблер на подачу 1;в PORTB<0> btfss PORTB,0; Ждать включение тумблера и подачи 1 в RB0 goto WaitPush goto Main; Повтор программы end
Оформление отчета по лабораторной работе Отчет оформляется на группу. В созданный вордовский файл копируется текст программы и окна по ходу выполнения программы в режиме MPLabSim. Записать двоичное значение измеренного аналогового значения по показаниям ламп.
5.4 Контрольные вопросы 1.Сколько каналов ввода аналоговых значений имеет микроконтроллер PIC16F877A? 2.Каким методом преобразуется аналоговое значение в цифровое в модуле АЦП микроконтроллера PIC16F877A? 3.Какие регистры используются для управления АЦП в микроконтроллере PIC16F877A? 4.Для чего нужна пауза перед подключением канала АЦП в микроконтроллере PIC16F877A? 5.Сколько должно быть TAD для 10-разрядного преобразования в микроконтроллере PIC16F877A? 6.В каких регистрах сохраняется результат 10-разрядного преобразования в АЦП в микроконтроллере PIC16F877A? 7.Почему нельзя отлаживать программу в режиме MPLabSim?
Приложение А Системы счислений
Количество цифр (символов) применяемых в системе называют ее основанием. Минимальный объем информации, который можно записать на носителе информации называют бит. Восемь носителей информации объединили в одну ячейку памяти, и назвали байт.
Т а б л и ц а Б.1 - Запись чисел в различных системах счислений
Примеры записи чисел в программе: - D’07’ – десятичное число; - B’0111’ – двоичное число; - H’07’или 0х07 или 07h – шестнадцатеричное число. Алгоритм перевода чисел из двоичной системы в шестнадцатеричную систему: сначала двоичное число разбиваем на четверки чисел справа налево, затем для каждой четверки записываем его эквивалент из приведенной таблицы А1. П р и м е р. 0101 1011 11012 = 5ВD16. Обратный перевод чисел очевиден, необходимо только аккуратно писать именно четверки двоичных чисел, дописывая при необходимости нули слева: 116.= 00012, 216 = 00102. П р и м е р. 415С16==0100 0001 0101 11002. В двоично-десятичной системе каждый десятичный знак отображается четырьмя двоичными числами. Приложение Б Карта памяти МК PIC16877
Приложение В Описание л абораторного комплекса "УМК-7" Лабораторный комплекс "УМК-7" создан для подготовки специалистов согласно современным требованиям, диктуемых развитием технологий в области: применения микропроцессоров и микроконтроллеров в системах (АР, СОИ, ДУ) технологических процессов. Помимо обучения языку ассемблер на примере легко программируемого контроллера PIC16F877A, студент ознакомится с внутренней и внешней структурой современных микроконтроллеров. Таким образом, комплект предназначен для изучения архитектурных и программных возможностей микропроцессоров. Структурная схема УМК-7 представлена на рисунке В1. Устройство программирования микроконтроллера, предназначено для ввода программы в микроконтроллер с ПК. Выводы микроконтроллера непосредственно соединены с внешними разъёмами лабораторного комплекса. Клеммные соединения (внешние разъёмы), предназначены для соединения выводов микроконтроллера с внешними устройствами. К внешним устройствам относятся: внешние тумблеры, светодиоды, датчик температуры с нагревательным элементом, устройство звуковой сигнализации, источник регулируемого напряжения для АЦП, а также два внешних реле для управления внешними цепями до 12 Вольт и током до 0,5 Ампер.
Рисунок В1 - Структурная схема УМК-7
Рисунок В2 - Передняя панель стенда
1 - микроконтроллер PIC16F877A; 2 – модуль MPLAB-ICD; 3 - ряд клеммных соединений (выводы PIC16F877A); 4 - ряд клеммных соединений (выводы внешних устройств); 5 - аналоговый выход (ограничение по току до 1 мА); 6 - световая сигнализация; 7 – тумблеры с выходом 0 или 5 Вольт (ограничение по току до 1 мА, верхнее положение тумблера соответствует наличию на выходе напряжения 5 Вольт); 8 – внешние реле К1 и К2.
Для того чтобы скоммутировать контроллер с внешними устройствами соедините нужные клеммы из ряда клеммных соединений контроллера с клеммами из ряда клеммных соединений внешних устройств, при помощи перемычек.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 546; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |