Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ Прог ЦТ лабы для БАУ 2011.doc
Скачиваний:
18
Добавлен:
01.05.2015
Размер:
2.99 Mб
Скачать

9 Лабораторная работа №9. Таймер tmr1

Цель работы. Научиться применять встроенный таймер TRM1 и регистры специального назначения, связанные с его настройкой.

Ознакомьтесь с регистрами специального назначения PIR1, TICON, INTCON, TMR1, TMR1H, TMR1L по приложению В.

Задание на проектирование. Создать программу, применяющую таймер TMR1,для автоматической окрасочной камеры, описанной в лабораторной работе «Подпрограммы». Дополнительно следует пересчитывать детали

Временная диаграмма работы камеры показана на рисунке 3.3.

Проработайте блок-схему алгоритма автоматизации работы окрасочной камеры по рисункам 9.1 и 9.2. Ознакомьтесь с фрагментом программы. На его основании создайте программу для заданного варианта.

Фрагменты программы. Курсивом отмечены дополнительные команды по сравнению с лабораторной работой «Подпрограммы».

Include<p16F877.inc>; подключаем библиотеку символов.

T_reg EQU h'20'; регистр, определяющий время задержки.

Kol_det EQU h'21'; регистр, хранящий количество окрашенных деталей.

; настройка МК опущена. Ниже настройка TMR1.

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'00110000'; тактирование от внутреннего генератора

MOVWF T1CON; устанавливаем предделитель частоты =1:8.

Рабочая часть программы совпадает с программой лабораторной работы «Подпрограммы».

Подпрограмма Timerзаменяется подпрограммойTimer2.

GOTO$

Timer2; подпрограмма с TMR1.

MOVWF T_reg

; Return; для выключения при отладке главной программы.

M_T_reg; следующие 4 команды только для отладки в режиме F7.

;MOVLW D'255'; для отладки Timer2.

;MOVWF TMR1H; для отладки Timer2.

;MOVLW D'254'; для отладки Timer2.

;MOVWF TMR1L; для отладки Timer2.

BCF PIR1, TMR1IF; сброс флага переполнения таймера в каждом цикле.

BSFT1CON,TMR1ON; запуск таймераTMR1.

; следующие три строки это циклы работы таймера TRM1

M_ TRM1; метка

BTFSS PIR1, TMR1IF; проверка флага перепол­нения таймера

GOTO M_ TRM1; если флага нет, то цикл TRM1 продолжается.

DECFSZ T_reg, F; уменьшаем число в регистре и проверяем на ноль.

GOTO M_T_reg; (только при Z=0) время не кончилось, повторяем цикл.

RETURN

END

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

Т а б л и ц а 9.1 – Варианты заданий

Вариант

Биты подключения S1, D1, D2 L1, L2.

Время работы, сек

Вариант

Биты подключения S1, D1, D2 L1, L2.

Время работы, сек

S1

D1

D2

S1

D1

D2

1

1, 2, 3, 4, 5

5

6

3

6

6, 7, 0, 1, 2

6

6

4

2

2, 3, 4, 5, 6

6

7

4

7

7, 0, 1, 2, 3

7

7

5

3

3, 4, 5, 6, 7

7

6

5

8

0 ,1 ,2 ,3, 4

8

6

6

4

4, 5, 6, 7, 0

8

5

6

9

1, 3, 5, 7, 0

9

5

7

5

5, 6, 7, 0, 1

9

7

7

10

2, 4, 6, 0, 1

10

6

3

Результаты занесите в таблицу 9.2.

Т а б л и ц а 9.2– Результаты настройки циклов задержки

Вариант

Оборудование

Параметры подпрограммы Timer2

Время, сек

Значение счетчиков

T_reg

TMR1H

TMR1L

S1

D1, D2, L1

D2, L1

Отладка программы.Оставьте только первый вызов подпрограммыTimer2, установив аргументW=2. Установите значения для счетчиков приведенные в подпрограмме с пометкой для отладки. (СчетчикиTMR1 срабатывают не на каждое нажатие кнопки F7, из-за отсутствия синхронизации). После отладки программы в пошаговом режиме, выключите указанные строки и запустите ее в автоматическом режиме. Настройте заданное время работы установки.

Рисунок 9.1 – Окно наблюдения

Контрольные вопросы.

  1. Назначение таймера TMR1.

  2. Сколько счетчиков у TMR1?

  3. Как устанавливается максимальное время TRM1?

  4. Какое максимальное число можно записать в счетчики TMR1.

  5. Назначение регистра TICON.

  6. Назначение регистра INTCON.

  7. Назначение регистра PIR1.

  8. Назначение регистра PIE1.

  9. Как задается длительность работы Timer2?

  10. Назначение предделителя.

  11. В каком банке находится регистр PIE1?

  12. Когда появляется флаг, сигнализирующий, что TMR1 переполнен?

  13. Как запускается TMR1?

  14. Назначение регистра T_reg.

  15. Какой будет результат сложения в регистре 255+1?

Рисунок 9.1 - Блок-схема программы Рисунок 9.2 - Блок-схема п/п Timer2