МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
ТЕХНОЛОГІЧНИЙ КОЛЕДЖ
НАЦІОНАЛЬНОГО УНІВЕРСИТЕТУ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Відділення комп’ютерних технологій
Спеціальність 5.05010201 "Обслуговування комп’ютерних систем і мереж"
Напрям підготовки 6.050102 "Комп’ютерна інженерія"
Методичні вказівки до розрахункової роботи
з дисципліни
“МІКРОПРОЦЕСОРНІ СИСТЕМИ”
на тему:
"Розробка програми передачі даних через послідовний порт мікроконтролера"
Львів – 2012
Мета роботи.
Засвоїти такі аспекти роботи мікроконтролера MCS-51:
методику програмування послідовного порту;
формування часових затримок;
роботу з перериваннями.
Короткі теоретичні відомості.
Найменування виводів мікроконтролера
Блок регістрів спеціальних функцій
Символ |
Найменування |
Адреса |
* ACC |
Акумулятор |
E0H |
* B |
Регістр-розширювач акумулятора |
F0H |
* PSW |
Слово стану програми |
D0H |
SP |
Регістр-покажчик стека |
81H |
DPTR |
Регістр-покажчик даних (DPH) -“- (DPL) |
83H |
82H |
||
* P0 |
Порт 0 |
80H |
* P1 |
Порт 1 |
90H |
* P2 |
Порт 2 |
A0H |
* P3 |
Порт 3 |
B0H |
* IP |
Регістр пріоритетів |
B8H |
* IE |
Регістр маски переривань |
A8H |
TMOD |
Регістр режиму таймера/лічильника |
89H |
* TCON |
Регістр управления/статус таймера |
88H |
TH0 |
Таймер 0 (старший байт) |
8CH |
TL0 |
Таймер 0 (молодший байт) |
8AH |
TH1 |
Таймер 1 (старший байт) |
8DH |
TL1 |
Таймер 1 (молодший байт) |
8BH |
* SCON |
Регістр управління приймачем-передавач |
98H |
SBUF |
Буфер приймача-передавач |
99H |
PCON |
Регістр управління потужністю |
87H |
Примітка. Регістри, імена яких відзначені знаком (*), допускають адресацію окремих біт. |
Формат слова стану програми (PSW)
Символ |
Позиція |
Ім'я і призначення |
|||
С |
PSW.7 |
Прапор перенесення. Встановлюється і скидається апаратурними засобами або програмою при виконанні арифметичних і логічних операцій |
|||
АС |
PSW.6 |
Прапор допоміжного перенесення. Встановлюється і скидається тільки апаратурними засобами при виконанні команд складання і віднімання і сигналізує про перенесення або позику в біті 3 |
|||
F0 |
PSW.5 |
Прапор 0. Може бути встановлений, скинений або перевірений програмою як прапор, що специфікується користувачем |
|||
RS1 RS0 |
PSW.4 PSW.3 |
Вибір банку регістрів. Встановлюється і скидається програмою для вибору робочого банку регістрів (див. примітку) |
|||
OV |
PSW.2 |
Прапор переповнювання. Встановлюється і скидається апаратно при виконанні арифметичних операцій |
|||
- |
PSW.1 |
Не використовується |
|||
P |
PSW.0 |
Прапор паритету. Встановлюється і скидається апаратно в кожному циклі команди і фіксує непарне/парне число одиничних біт в акумуляторі, тобто виконує контроль по парності |
|||
Примітка. |
RS1 |
RS0 |
Банк |
Межі адрес |
|
0 |
0 |
0 |
00H-07H |
||
0 |
1 |
1 |
08H-0FH |
||
1 |
0 |
2 |
10H-17H |
||
1 |
1 |
3 |
18H-1FH |
Регістр режиму роботи таймера/лічильника (TMOD)
Символ |
Позиція |
Ім'я і призначення |
||
GATE |
TMOD.7 для T/C1 і TMOD.3 для T/C0 |
Управління блокуванням. Якщо біт встановлений, то таймер/лічильник "x" дозволений до тих пір, поки на вході "INTx високий рівень" і біт управління "TRx" встановлений. Якщо біт скинений те Т/С дозволяється, як тільки біт управління "TRx" встановлюється |
||
C/ мT |
TMOD.6 для T/C1 і TMOD.2 для T/C0 |
Біт вибору режиму таймера або лічильника подій. Якщо біт скинений, то працює таймер від внутрішнього джерела сигналів синхронізації. Якщо біт встановлений, то працює лічильник від зовнішніх сигналів на вході "Тх" |
||
M1 |
TMOD.5 для T/C1 і TMOD.1 для T/C0 |
Режим роботи (див. примітку)
|
||
M0 |
TMOD.4 для T/C1 і TMOD.0 для T/C0 |
|||
Примітка |
||||
M1 |
M0 |
Режим роботи |
||
0 |
0 |
Таймер МК48. "TLx" працює як 5-бітовий попередній подільник |
||
0 |
1 |
16-бітовий таймер/лічильник. "ТНх" і "TLx" включені послідовно |
||
1 |
0 |
8-бітовий таймер/лічильник з автоперезавантажуванням. "ТНх" збперігає значення, яке повинне бути перезавантажене в "TLx" кожного разу по переповнюванню |
||
1 |
1 |
Таймер/лічильник 1 зупиняється. Таймер/лічильник 0: TL0 працює як 8-бітовий таймер/лічильник, і його режим визначається управляючими бітами таймера 0. ТН0 працює тільки як 8-бітовий таймер, і його режим визначається управляючими бітами таймера 1 |
Регістр управління/статусу таймера (TCON)
Символ |
Позиція |
Ім'я і призначення |
TF1 |
TCON.7 |
Прапор переповнювання таймера 1. Встановлюється апаратурно при переповнюванні таймера/лічильника. Скидається при обслуговуванні переривання апаратурно |
TR1 |
TCON.6 |
Біт управління таймера 1. Встановлюється/скидається програмою для пуску/зупинки |
TF0 |
TCON.5 |
Прапор переповнювання таймера 0. Встановлюється апаратурно. Скидається при обслуговуванні переривання |
TR0 |
TCON.4 |
Біт управління таймера 0. Встановлюється/скидається програмою для пуску/останову таймера/лічильника |
IE1 |
TCON.3 |
Прапор фронту переривання 1. Встановлюється апаратурно, коли детектує зріз зовнішнього сигналу мЗПР1 (мINT1). Скидається при обслуговуванні переривання |
IT1 |
TCON.2 |
Біт управління типом переривання 1. Встановлюється/скидається програмно для специфікації запиту мЗПР1 (зріз/низкий рівень) |
IE0 |
TCON.1 |
Прапор фронту переривання 0. Встановлюється по зрізу сигналу мЗПР0. Скидається при обслуговуванні переривання |
IT0 |
TCON.0 |
Біт управління типом переривання 0. Встановлюється/скидається програмно для специфікації запиту мЗПР0 (зріз/низкий рівень) |
Регістр управління/статусу (SCON)
Символ |
Позиція |
Ім'я і призначення |
|||
SM0 |
SCON.7 |
Биті управління режимом роботи УАПП. Встановлюються/ скидаються програмно (див. примітку) |
|||
SM1 |
SCON.6 |
||||
SM2 |
SCON.5 |
Біт управління режимом УАПП. Встановлюється програмно для заборони прийому повідомлення, в якому десятий біт має значення 0 |
|||
REN |
SCON.4 |
Біт дозволу прийому. Встановлюється/скидається програмно для дозволу/заборони прийому послідовних даних |
|||
TB8 |
SCON.3 |
Передача службового біта. Встановлюється/скидається програмно для завдання службового передаваного біта в режимах 2, 3. |
|||
RB8 |
SCON.2 |
Прийом службового біта. Встановлюється/скидається апаратурно для фіксації службового біта, що приймається, в режимах 2, 3 |
|||
TI |
SCON.1 |
Прапор переривання передавача. Встановлюється апаратурно при закінченні передачі байта. Скидається програмно після обслуговування переривання |
|||
RI |
SCON.0 |
Прапор переривання приймача. Встановлюється апаратурно при прийомі байта. Скидається програмно після обслуговування переривання |
|||
Примітка |
|||||
SM0 |
SM1 |
Режим роботи УАПП |
|||
0 |
0 |
Р-м 0. Синхронна передача 8 біт даних |
|||
0 |
1 |
Р-м 1. Асинхронна передача 8 біт даних |
|||
1 |
0 |
Р-м 0. Асинхронна передача 8 біт даних і службового біта |
|||
1 |
1 |
Р-м 0. Асинхронна передача 8 біт даних і службового біта |
Регістр управління потужністю (PCON)
Символ |
Позиція |
Ім'я і призначення |
SMOD |
PCON.7 |
Подвоєна швидкість передачі. Якщо біт встановлений в 1, то швидкість передачі удвічі більше, ніж при SMOD = 0 |
- |
PCON.6 |
Не використовуються |
- |
PCON.5 |
|
- |
PCON.4 |
|
GF1 |
PCON.3 |
Прапори, що специфікуються користувачем (прапори загального призначення) |
GF0 |
PCON.2 |
|
PD |
PCON.1 |
Біт зниженої потужності. При установці біт а в 1 МК переходить в режим зниженої споживаної потужності |
IDL |
PCON.0 |
Біт холостого ходу. Якщо біт встановлений в 1, то МК переходить в режим холостого ходу |
Примітка. При одночасному записі 1 в PD і IDL біт PD має перевагу. Скидання вмісту РУМ виконується шляхом завантаження в нього коду 0XXX0000. |
Швидкість прийому/передачі, тобто частота роботи УАПП в різних режимах, визначається різними способами.
У режимі 0 частота передачі залежить тільки від резонансної частоти кварцового резонатора Fпер =fclk/12. За один машинний цикл послідовний порт передає один біт інформації.
У режимах 1, 2 і 3 швидкість прийому/передачі залежить від значення управляючого біта SMOD в регістрі спеціальних функцій PCON.
У режимі 2 частота передачі визначається виразом Fпер = 2SMOD/64 * fclk іншими словами, при SMOD = 0 частота передачі рівна fclk/64, а при SMOD = 1 рівна fclk/32.
У режимах 1 і 3 у формуванні частоти передачі окрім управляючого біта SMOD бере участь таймер 1. При цьому частота передачі залежить від частоти переповнювання таймера (таймер повинен працювати в режимі 2)
Fпер = 2SMOD/32 * fclk /12 * 1 /(256-(TH1))
Схема переривань
Регістр масок переривання (ІЕ)
Символ |
Позиція |
Ім'я і призначення |
ЕА |
IE.7 |
Зняття блокування переривань. Скидається програмно для заборони всіх переривань незалежно від станів IЕ4 - IЕ0 |
- |
IE.6 |
Не використовуються |
- |
IE.5 |
Не використовуються |
ES |
IE.4 |
Біт дозволу переривання від УАПП. Установка/скидання програмою для дозволу/заборони переривань від прапорів TI або RI |
ET1 |
IE.3 |
Біт дозволу переривання від таймера 1. Установка/скидання програмою для дозволу/заборони переривань від таймера 1 |
EX1 |
IE.2 |
Біт дозволу зовнішнього переривання 1. Установка/скидання програмою для дозволу/заборони переривань |
ET0 |
IE.1 |
Біт дозволу переривання від таймера 0. Працює аналогічно IE.3 |
EX0 |
IE.0 |
Біт дозволу зовнішнього переривання 0. Працює аналогічно IE.2 |
Регістр пріоритетів переривань (ІР)
Символ |
Позиція |
Ім'я і призначення |
- |
IP.7 - IP.5 |
Не використовуються |
PS |
IP.4 |
Біт пріоритету УАПП. Установка/скидання програмою для привласнення перериванню від УАПП вищого/низького пріоритету |
PT1 |
IP.3 |
Біт пріоритету таймера 1. Установка/скидання програмою для привласнення перериванню від таймера 1 вищого/низького пріоритету |
PX1 |
IP.2 |
Біт пріоритету зовнішнього переривання 1. Установка/скидання програмою для привласнення вищого/низького пріоритету зовнішньому перериванню мINT1 |
PT0 |
IP.1 |
Біт пріоритету таймера 0. Працює аналогічно IP.3 |
PX0 |
IP.0 |
Біт пріоритету зовнішнього переривання 0. Працює аналогічно IP.2 |