- •1.2.3 Контрольні запитання і завдання
- •1.2.4 Приклади аудиторних і домашніх завдань
- •1.3 Заняття 2. Двійкова арифметика і основні функції алгебри логіки
- •1.3.2 Методичні вказівки з організації самостійної роботи студентів
- •1.3.3 Контрольні запитання і завдання
- •1.3.4 Приклади аудиторних і домашніх завдань
- •2 Алгоритми і програми проектування мікропроцесорних систем
- •2.1 Мета занять
- •2.2 Методичні вказівки з організації самостійної роботи студентів
- •2.3 Контрольні запитання і завдання
- •2.4 Приклади аудиторних і домашніх завдань
- •3.2.3 Контрольні запитання і завдання
- •3.2.4 Приклади аудиторних і домашніх завдань
- •3.3 Заняття 2,3. Групи команд
- •3.3.1 Мета занять
- •3.3.2 Методичні вказівки з організації самостійної роботи студентів
- •3.3.3 Контрольні запитання і завдання
- •3.3.4 Приклади аудиторних і домашніх завдань
- •4.2.3 Контрольні запитання і завдання
- •4.2.4 Приклади аудиторних і домашніх завдань
- •4.3 Заняття 2. Алгоритми і програми обміну інформацією через послідовний порт
- •4.3.1 Мета занять
- •4.3.2 Методичні вказівки з організації самостійної роботи студентів
- •4.3.3 Контрольні запитання і завдання
- •4.3.4 Приклади аудиторних і домашніх завдань
- •4.4 Заняття 3. Алгоритми і програми обробки інформації в режимі переривань
- •4.4.1 Мета заняття
- •4.4.2 Методичні вказівки з організації самостійної роботи студентів
- •4.4.3 Контрольні запитання і завдання
- •4.4.4 Приклади аудиторних і домашніх завдань
- •61166 Харків, просп. Леніна, 14
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 ;скидання високого рівня сигналу
