Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа № 5 Таймер TMR1Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Краткие теоретические сведения Таймер TMR1 входит в состав периферийных устройств микрокон-троллера PIC16F877A. TMR1 - 16-разрядный таймер/счетчик, состоящий из двух 8-разрядных регистров (TMR1H и TMR1L), доступных для чтения и записи. Счет выполняется в спаренных регистрах (TMR1H:TMR1L), инкрементируется их значение от 0000h до FFFFh. Если перед включением TMR1 в эти регистры будут записаны некоторые числа, то после включения TMR1 единица добавляется вначале к значению, записанному в регистр TMR1L. Включается TMR1 установкой бита TMR1ON в ‘1’ (регистр T1CON<0>). При переполнении регистров они будут снова равны 0000h. При переполнении счетчика устанавливается в '1' бит флага прерывания TMR1IF в регистре PIR1<0> вне зависимости от состояния бита разрешения/запрещения прерываний. Флаг прерывания снимается в программе обработки прерывания или по ходу выполнения программы. Запрет прерывания, (при котором не будет вызвана программа обработки прерывания, название которой указывается в адресе 04h) может быть выполнен: - установкой бита глобального запрещения/разрешения прерываний GIE=0 (регистр INTCON<7>); - установкой бита запрещения/разрешения прерываний от периферий- ных устройств PEIE=0 (регистр INTCON<6>); - установкой бита запрещения/разрешения периферийных прерываний TMR1IE=0 (регистр РIЕ1<0>). Если прерывания будут разрешены (соответствующие биты равны 1), то после переполнения счетчика запустится подпрограмма обработки этого прерывания, название которой записывается в память программ по адресу 04h. (разумеется, можно в подпрограмме обработки прерывания, анализируя флаги прерывания, выявить причину появления прерывания и правильно определить реакцию программы на это прерывание). TMR1 может работать в режимах: режим таймера, режим счетчика. В лабораторных работах рассмотрен только режим тайме ра. Управляющие биты TMR1 находятся в регистре T1CON. Если бит TMR1CS=0 (регистр T1CON<1>), то выбирается внутренний источник тактовых импульсов Fosc/4. TMR1 инкрементируется при каждом машинном цикле, т.е. вначале регистр TMR1L, а затем TMR1H, при переполнении которого появляется прерывание, а бит TMR1IF в регистре PIR1<0> становится равным 1 (появляется «флаг»). Регистры TMR1H и TMR1L не сбрасываются в 00h при сбросе по включению питания и других видах сброса, кроме сброса по сигналу триггера специальных событий модуля ССР1 и ССР2. Предделитель TMR1 предназначается для замедления заполнения счетчика в соответствии со своей настройкой. Коэффициент деления предделителя (биты 5-4 в регистре T1CON<5:4>) принимает следующие значения: 11 = 1:8 10 = 1:4 01 = 1:2 00 = 1:1 Предделитель очищается при записи чисел в регистр TMR1L или TMR1H.
Исходные данные и выполнение программы Соедините разряды PORTC и разъемы сигнальных ламп также, как и в лабораторной работе №2. Запишите программу 4.2. Для отладки ее в режиме MPlabSim в целях сокращения циклов заполнения регистров TMR1N и TMR1L и появления флага их переполнения в регистре PIR1(бит TMR1IF) уберите точку с запятой перед строками, в которых вносятся в аккумулятор и затем в регистры TMR1H и TMR1L временные числа. Точки с запятой перед строками, где вносятся изменения в настройки предделителя, не убирайте. В окно наблюдения включите РСН STATUS, W, PORTC, PCL, TMR1H, TMR1L, T1CON, PIR1, PIE1 и INTCON. В пошаговом режиме сохраните в вордовском файле состояние окна наблюдения перед запуском Timer1 и после окончания работы. Сравните состояние регистров STATUS, W и PCL перед включением таймера и после выхода из него. Определите разницу в значениях разрядов. Восстановите в программе точки с запятой в строках, где вносились в регистры TMR1H и TMR1L временные числа. Снимите со строк изменения предделителя точки с запятой и внесите значение числа П из задания. Сохраните программу в общей папке на компьютере, к которому подключен УМК-7. На этом компьютере откройте сохраненный текст программы и выполните последовательно пункты по созданию проекта в режиме MPLAB ICD2 c записью созданного проекта в память программ. Подготовьте секундомер для записи времени задержки. Запустите программу в режиме Run. При загорании всех лампы в разряде 7 включите секундомер, а при загорании всех ламп зафиксируйте время. Запишите время в отчете.
Таблица 5 Задания по изменению времени работы TMR1
Программа 4.2 Include<p16F877A.inc> ORG h'00' NOP NOP NOP ORG h'05' CLRF STATUS BSF STATUS,5 CLRF TRISC CLRF PIE1;запрещаем периферийные прерывания BCF STATUS,5 CLRF T1CON; установка TMR1 в режим ожидания ;тактирование TMR1от внутреннего генератора, значение ;предделителя частоты 1:1 CLRF TMR1H; очищаем старший регистр-счетчик TMR1 CLRF TMR1L; очищаем младший регистр-счетчик TMR1 CLRF INTCON; запрещаем прерывания от TMR1 MOVLW b'00010000' MOVWF T1CON;устанавливаем предделитель частоты 1:2 ;MOVLW b'П';устанавливаем предделитель частоты по заданию ;MOVWF T1CON MOVLW B'10000000' MOVWF PORTC;включаем секундомер CALL Timer1 MOVLW B'11111111' MOVWF PORTC; засекаем время работы таймера GOTO $; разделитель основной программы и подпрограмм. Timer1 MOVLW D'255'; для отладки TMR1, при добавлении 1 регистр;переполнится, появится флаг прерывания, оба регистра обнулятся MOVWF TMR1H;для отладки TMR1 MOVLW D'254';для отладки TMR1 MOVWF TMR1L;для отладки TMR1 BCF PIR1,TMR1IF; сброс флага переполнения таймера BSF T1CON,TMR1ON; пуск таймера TMR1 ;следующие три строки это циклы работы таймера TMR1 M_TRM1; BTFSS PIR1,TMR1IF; проверка флага переполнения таймера GOTO M_TRM1; если флага нет,то цикл TMR1 продолжается BCF T1CON,TMR1ON; останов таймера TMR1 RETURN; конец подпрограммы Timer. END; конец текста всей программы.
Оформление отчета по лабораторной работе Отчет оформляется на группу. В созданный вордовский файл копируется текст программы и окна по ходу выполнения программы в режиме MPLabSim. Записывается время паузы, созданной таймером при использовании заданных по варианту значений предделителя. 4.9 Контрольные вопросы 1. Что будет, если в подпрограмме не остановить работу TMR1? 2. Как влияет установка предделителя на общее время работы таймера? 3. Как изменяется значение в регистре PCL при входе в подпрограмму Timer1 и при выходе из нее? 4. Где сохраняется значение счетчика регистра, позволяющее при завершении подпрограммы вернутся к выполнению следующей инструкции?
|
|||||||||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 836; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.007 с.) |