Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_prakt-Mikroprocesori-2008-ukr.doc
Скачиваний:
15
Добавлен:
13.04.2015
Размер:
1 Мб
Скачать

4.2.3 Контрольні запитання і завдання

1. Чому дорівнює тривалість машинного циклу в ОМЕВМ МК| - 51, якщо частота задаючого генератора 5 Мгц і 3 Мгц відповідно?

2. Чому дорівнює тривалість машинного циклу в ОМЕВМ МК| - 51, якщо частота задаючого генератора 4 Мгц і 12 Мгц відповідно?

3. Чому дорівнює тривалість машинного циклу в ОМЕВМ МК| - 51, якщо частота задаючого генератора 20 Мгц і 6 Мгц відповідно?

4. Чому дорівнює тривалість машинного циклу в ОМЕВМ МК| - 51, якщо частота задаючого генератора 24 Мгц і 10 Мгц відповідно?

5. Чому дорівнює тривалість машинного циклу в ОМЕВМ МК| - 51, якщо частота задаючого генератора 15 Мгц і 6 Мгц відповідно?

6. Чому дорівнює тривалість машинного циклу в ОМЕВМ МК| - 51, якщо частота задаючого генератора 2 Мгц і 8 Мгц відповідно?

7. На якій частоті задаючого генератора ОМЕВМ МК| - 51 тривалість машинного циклу буде рівна 2 і 1.5 мкс|?

8. На якій частоті задаючого генератора ОМЕВМ МК| - 51 тривалість машинного циклу дорівнюватиме 0.6 і 4 мкс|?

9. На якій частоті задаючого генератора ОМЕВМ МК| - 51 тривалість машинного циклу дорівнюватиме 0.5 і 1.2 мкс|?

10. На якій частоті задаючого генератора ОМЕВМ МК| - 51 тривалість машинного циклу дорівнюватиме 2 і 0.8 мкс|?

11. Які регістри спеціальних функцій задіяні в управлінні і забезпеченні функціонування таймерів/лічильників ОМЕВМ МК-51|?

12. Який з режимів таймера/лічильника необхідно використовувати у разі роботи послідовного порту?

12. Які команди можна використовувати для настроювання Т/С1 як лічильника в режимі 2?

MOV 88H, #60H

MOV 89H, #6FH

SETB TCON.6

MOV TCON, #1FH

CLR TMOD.4

SETB TMOD.6

13. Які команди можна використовувати для настроювання таймера – лічильника 0 на режим таймера, передбачивши увімкнення від зовнішнього джерела?

MOV 89H, #08H

MOV 88H, #10H

SETB TR0

MOV 85H, #FFH

SETB TMOD.3

CLR TMOD.1

4.2.4 Приклади аудиторних і домашніх завдань

Приклад 4.1. Настроїтти таймер/лічильник в режим автозавантаження і забезпечити при цьому управління передачею даних (або формування сигналу через вихідний порт) f=9600 Гц.

Розв’язок.

Необхідно визначити часову затримку для заданої частоти f=9600 Гц.

FBQ =12МГц; 1c= 106MкC

,т.е. при FBQ =12МГц, необхідно 104 (68H) машинних цикла.

256-104=152 або 100H-68H=98H

Схема алгоритму розв’язку задачі наведена на рис. 4.2.

Початкова адресація масиву

Розмір масиву N

Номер банку

Автозавантажувана величина TH0:=xx TL0:=xx

Режим (TMOD.0,1:=0.1)

Функція -Таймера (TMOD.2:=0)

Увімкнути TCON.4:=1 (TRO:=1)

TCON.5:=0 (TFO:=0)

If TFO

Передача байта даних у порт Р0

Збільшення адреси (перехід до наступного байта масиву)

Зменшення масиву

If N_

TRO:=00

Рисунок 4.2 – Схема алгоритму розв’язку задачі Avtogener

Програма «Avtogener.» мовою Асемблера

;«Avtogener.»- 0070H

;40H – початкова адреса масиву даних

;[35H]– розмірність масиву N

;[36H]– автозавантажувана змінна

; для заданої чатоти

;R0:=40H-

;R4:=[35]

ORG 0070H ;визначення адреси програми

Avtogener: MOV R4,35H ;встановлення розмірності масиву слів

MOV R0,40H ;встановлення початкової адреси масиву

MOV TH0,36H ;початкове встановлення Т/С

MOV TL0,36H ;автозавантажуваною величиною

MOV TMOD,#02H ;настроювання Т/С на режим 2

SETB TR0 ;увімкнення Т/С

M2: CLR TF0 ;очищення прапорця переповнювання

М1: JNB TF0,M1 ;виконувати безперервно if TF0!=1

MOV PO.@R0 ;пересилання БД в Р0

INC R0 ;перехід до наступного байта масиву

DJNZ R4,M2 ;перехід якщо N!=0

.

CLR TF0 ;скидання прапорця переповнювання

CLR TR0 ;вимкнення таймера

NOP

RET(RETI)

Приклад 4.2. Настроїти таймер/лічильник в режимі 3 на рахунок числа подій до NN, де 255<NN<65535 (наприклад, для N=755).

Оскільки в третьому режимі максимальне число рахунків дорівнює 256, то 755 : 256 = 2 число повних рахунків лічильника, а остача 755 – 512 = 243.

Визначаємо початок рахунку: 256 - 243 = 13.

Таким чином під час встановлення початка рахунку, що дорівнює 13, число переповнювань дорівнюватиме 2+1=3.

Схема алгоритму розв’язку задачі наведена на рис. 4.3.

Рисунок 4.3 – Схема алгоритму розв’язку задачі «Подія»

Програма «Подія» мовою Асемблер.

;«Подія»- 0090Н

;режим-3

;[30H]-число переповнювань

;[31]-початок рахунку

ORG 0090H ;початок програмного модуля

«Подія»: CLR P1.3 ;P1.3:=1-установити низький рівень

MOV R4,50H ;R4:=[30H]-Число переповнення.

MOV TL0,51H ;TL0:=початок рахунку

MOV TMOD,#0FH ;TMOD.0,1:=1,1-Режим 3

;TMOD.2:=1-Лічильник

;TMOD.3:=1-Увімкнути зовнішнє джерело

SETB TR0 ;ввімкнути лічильник

K2: CLR TF0 ;очищення прапорця

S1: JNB TF0,S1 ;якщо TF0=0-виконувати

; безперервно

DJNZ R4,K2 ;R4-1 якщо R4=0 виконувати К2

SETB P1.3 ;P1.3:=1-встановити високий рівень

ACALL del 60 з ;затримка 60 с

CLR P1.3 ;скидання високого рівня сигналу