
- •1 Вивчити систему роботи стека мк51. 32
- •1 Вивчити систему роботи стека мк51. 38
- •1 Вивчити систему роботи стека мк51. 41
- •1 Вивчити систему роботи стека мк51. 49
- •1 Загальні положення
- •1.1 Вступ
- •1.2 Вимоги з техніки безпеки
- •1.3 Загальні вимоги до підготовки, проведення та здавання лабораторних робіт
- •1.1Порядок підготовки до лабораторної роботи
- •1.2Порядок проведення лабораторної роботи
- •1.3Здавання лабораторних робіт
- •1.4Вимоги до форми та змісту звіту
- •1.3.4.1 Вимоги до змісту звіту до однієї лабораторної роботи
- •1.4 Робота зі стендом
- •2 Лабораторна робота 1. Вивчення стенда і команд однокристальної еом сімейства mcs-51
- •Порядок виконання лабораторної роботи
- •Приклад виконання лабораторної роботи 1
- •Короткі теоретичні відомості Системи відображення інформації.
- •Система переривань еом 80c51
- •Структура переривань
- •Приклад програми:
- •Режими роботи таймерів-лічильників
- •Приклад програми
- •Порядок виконання лабораторної роботи
- •Приклад програми
- •Варіанти індивідуальних завдань
- •Список літератури
- •Абрайтис в.Б. Быстродействующие интегральные микросхемы " Электронная промышленность ", 1989.
- •Додаток а (довідковий) Теоретичні відомості.
- •Система команд mk51 Структура інформаційних зв'язків
- •Група команд операцій з бітами
Приклад програми:
Організувати почергове миготіння лінійки світлодіодів у шаховому порядку. При натисканні кнопки SW1 (INT0) виводити на статичному індикаторі число 01h, при натисканні кнопки SW2 (INT1) виводити на статичному індикаторі число 02h. У програмі використати переривання.
$ NOMOD51
$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)
ORG 0
jmp Config
ORG 0003h
jmp SW1
ORG 0013h
jmp SW2
Config:
mov P2, # 00000001b
mov IE, # 10100101b
mov IP, # 00000001b
Begin:
mov R1, # 01h; записати в R1 число 1
mov R2, # 02h; записати в R2 число 2
mov P1, # 01010101b; вивід результату на лінійку світлодіодів
call DEL; виклик підпрограми затримки
mov P1, # 10101010b
call DEL; виклик підпрограми затримки
jmp Begin, перехід у початок програми
SW1:
mov P2, R1
reti
SW2:
mov P2, R2
reti
DEL:; підпрограма затримки
mov R6, # 0FFh
mov R5, # 0Ah
C2: mov R7, # 0FFh
C4: djnz R7, C4
djnz R6, C2
djnz R5, C2
ret; вихід з підпрограми
END
Таблиця 10 - Варіанти індивідуальних завдань до ЛР 6
Номер вар. |
Текст індивідуального завдання |
1,11, 21 |
Занести до регістра R1 число 25Н, віднімаючи від числа "1", відображати результат на подвійному статичному індикаторі у молодшому розряді до нуля. За переривання INT0 вмикати, а після INT1 вимикати переміщення світлодіода на HL1-HL8 |
2,12, 22 |
Занести до регістра R1 число 05Н. За переривання INT0 організувати біжучий рядок на подвійному статичному індикаторі справа наліво, а після перериванню INT1 зліва направо. Увімкнути в шаховому порядку світлодіоди HL1-HL8 |
3,13, 23 |
Після переривання INT0 вмикати непарні світлодіоди на HL1-HL8, а по INT1 парні. Занести до регістра R5 00Н, додаючи до числа "1" відображати результат на подвійному статичному індикаторі у молодшому розряді до 30 |
4,14, 24 |
Занести до регістра R0 число 00Н, додаючи до числа "1", відображати на подвійному статичному індикаторі, організувати можливість зміни кроку підсумовування, використовуючи INT0 і INT1 (INT0 - зменшує крок, INT1 - збільшує крок). Дублювати ці числа на лінійці світлодіодів (у двійковій формі) |
5,15, 25 |
Занести до регістра R5 число 08Н. Використовуючи переривання INT0 і INT1 (INT0 - забирає "2", INT1-додає "2"), організувати можливість зміни значення на подвійному статичному індикаторі. Сумарну кількість натискань SW1 і SW2 виводити на одинарний статичний індикатор |
6,16 |
Занести до регістра R3 число 40Н, віднімаючи від числа "4", відображати результат на подвійному статичному індикаторі у молодшому розряді до нуля. Після переривання INT0 вмикати, а по INT1 вимикати переміщення світлодіода на HL1-HL8 |
7,17 |
Занести до регістра R7 число 08Н. Після переривання INT0 організувати біжучий рядок на подвійному статичному індикаторі зліва направо, а по перериванню INT1 справа наліво. Ввімкнути крайні світлодіоди HL1-HL8 |
8,18 |
Після переривання INT0 вмикати парні світлодіоди на HL1-HL8, а після INT1 непарні. Занести до регістра R1 00Н, додаючи до числа "2", відображати результат на подвійному статичному індикаторі у молодшому розряді до 50 |
9,19 |
Занести до регістра R2 число 00Н, додаючи до числа "5", відображати на подвійному статичному індикаторі, організувати можливість зміни кроку підсумовування використовуючи INT0 і INT1 (INT0 - зменшує крок, INT1 - збільшує крок). Дублювати ці числа на лінійці світлодіодів (у двійковій формі) |
Продовження табл. 10
10,20 |
Занести до регістра R0 число 05Н. Використовуючи переривання INT0 і INT1 (INT0 - забирає "5", INT1-додає "5"), організувати можливість зміни значення на подвійному статичному індикаторі. Сумарна кількість натискань SW1 і SW2 виводити на одинарний статичний індикатор |
Рисунок 16 - Схема до лабораторної роботи 6
8 Лабораторна робота 7. Робота з таймерами-лічильниками. Система переривань МК51
Тема «Робота з таймерами-лічильниками.»
Мета роботи - вивчити режими роботи таймерів-лічильників.
Порядок виконання лабораторної роботи
1 Вивчити систему роботи стека МК51.
2 Розробити алгоритм для виконання індивідуального завдання.
3 Розробити програму для виконання індивідуального завдання.
4 Ввести програму індивідуального завдання на ПК.
5 За допомогою ПОЗ проаналізувати виконання індивідуальної програми.
6 Завантажити програму в стенд ЕОМ. Переконатися у правильному виконанні індивідуального завдання, при негативному результаті змінити алгоритм або програму. Повторити завантаження програми на стенд ЕОМ.
7 Роздрукувати лістинг правильно працюючої програми.
8 Відповісти на контрольні питання викладача.
Короткі теоретичні відомості
Таймери/лічильники мікроконтролерів сімейства 8051.
У базових моделях сімейства є два програмованих 16-бітних таймери /лічильники (T/C0 і T/C1), які можуть бути використані як таймер, так і як лічильники зовнішніх подій. У першому випадку вміст відповідного таймера/лічильника (Т/С) інкрементується в кожному машинному циклі, тобто через кожні 12 періодів коливань кварцового резонатора, в другому воно інкрементується під впливом переходу з 1 в 0 зовнішнього вхідного сигналу, що подається на відповідний (T0, T1) вивід мікроЕОМ 8051. Оскільки на розпізнавання періоду потрібні два машинних цикли, максимальна частота підрахунку вхідних сигналів дорівнює 1/24 частоти резонатора. На тривалість періоду вхідних сигналів обмежень зверху немає. Для гарантованого прочитання вхідний сигнал повинен утримувати значення 1, як мінімум, протягом одного машинного циклу мікроЕОМ.
Для керування режимами роботи Т/С і для організації їх взаємодії з системою переривань використовуються два регістри спеціальних функцій (TMOD і TCON), опис яких наведено нижче.
Таблиця 11 - Регістр режиму роботи таймера/лічильника
Символ |
Позиція |
Назва і призначення |
|||||||||||||||
GATE |
TMOD.7 для Т/С1 і TMOD.3 для Т/СО |
Управління блокуванням. Якщо біт встановлено, то таймер/лічильник "x" дозволений до тих пір, поки на вході "lNTx" високий рівень і біт управління "TRx" встановлено. Якщо біт скинутий, то Т/С дозволяється, як тільки біт управління "TRx" встановлюється |
|||||||||||||||
С/Т |
TMOD.6 для T/C1 і TMOD.2 для Т/СО |
Біт вибору режиму таймера або лічильника подій. Якщо біт скинутий, то працює таймер від внутрішнього джерела сигналів синхронізації. Якщо встановлено, то працює лічильник від зовнішніх сигналів на вході "Tx" |
|||||||||||||||
M1 |
TMOD.5 для T/C1 і TMOD.1 для Т/СО |
Режим роботи
|
|||||||||||||||
M0 |
TMOD.4 для Т/С1 і TMOD.0 для Т/СО |
Таблиця 12 - Регістр управління/статусу таймера TCON
Символ |
Позиція |
Ім'я та призначення |
TF1 |
TCON.7 |
Прапорець переповнення таймера 1. Встановлюється апаратно при переповненні таймера/лічильника. Скидається при обслуговуванні переривання апаратно |
TR1 |
TCON.6 |
Біт управління таймера 1. Встановлюється/скидається програмою для пуску/зупинки |
TF0 |
TCON.5 |
Прапорець переповнення таймера 0. Встановлюється апаратно. Скидається при обслуговуванні переривання |
TR0 |
TCON.4 |
Біт управління таймера 0. Встановлюється/скидається програмою для пуску/зупинки таймера/лічильника |
IE1 |
TCON.3 |
Прапорець фронту переривання 1. Встановлюється апаратно, коли детектується фронт зовнішнього сигналу INT1. Скидається при обслуговуванні переривання |
IT1 |
TCON.2 |
Біт управління типом переривання 1. Встановлюється/скидається програмно для специфікації запиту INT1 (фронт/низький рівень) |
IE0 |
TCON.1 |
Прапорець фронту переривання 0. Встановлюється за фронту сигналу INT0. Скидається при обслуговуванні переривання |
IT1 |
TCON .0 |
Біт управління типом переривання 0. Встановлюється/скидається програмно для специфікації запиту INT0 (фронт/низький рівень) |