Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 440; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.73.125 (0.1 с.) |