- •Міністерство транспорту та зв’язку україни львівський коледж державного університету інформаційно-комунікаційних технологій
- •Дослідження роботи паралельних портів мікроконтролера
- •1. Мета роботи
- •2. Теоретичні відомості
- •3. Підготовка до виконання роботи та індивідуальне завдання до лабораторної роботи
- •4. Питання вхідного контролю
- •5. Інструмент, обладнання, прилади
- •6. Порядок виконання роботи
- •7. Питання вихідного контролю
- •8. Оформлення звіту :
- •Перелік посилань
Міністерство транспорту та зв’язку україни львівський коледж державного університету інформаційно-комунікаційних технологій
Навчальна дисципліна: Обчислювальна техніка та мікропроцесори
Лабораторія: обчислювальної техніки, мікропроцесорних систем і мереж
Спеціальність 5.05090308 Монтаж, обслуговування
та експлуатація апаратних засобів інформатизації
РОЗГЛЯНУТО на засіданні циклової комісії фундаментальних дисциплін Протокол № від ”___”______2009 р. Голова комісії_________О.Лабаз |
|
ЗАТВЕРДЖУЮ Заступник директора з НВР ____________Я.Плешівський „___”________2009 р. |
ІНСТРУКЦІЯ
ДО ЛАБОРАТОРНОЇ РОБОТИ №6
Дослідження роботи паралельних портів мікроконтролера
Склали викладачі: к.т.н. Б.А.Бохонко С.О. Леонов |
Львів – 2009
1. Мета роботи
Здобути навиків у роботі з портами паралельного вводу – виводу, ознайомитись з програмними засобами які здійснюють цю функцію: обробка бітів і особливостей програмування бітових операцій, побітове додавання/віднімання числа та перевірити виконання цих функцій на лабораторному стенді.
2. Теоретичні відомості
Для того, щоб мікроконтролер міг працювати з зовнішніми пристроями у режимі паралельного вводу – виводу, пристрої під’єднують до ліній портів Р0-Р3 мікроконтролера і програмно організують: формування необхідних вихідних керуючих сигналів та ввід даних по цих лініях. Цими пристроями можу бути кнопка, світлодіод або інший індикатор і т.д. Наприклад, до мікроконтролера під’єднуємо паралельний АЦП AD7880, керуємо ним та отримуємо з нього дані.
Рис.1 Схема під’єднання 12 розрядного паралельного АЦП до МК
В даному випадку дані з АЦП поступають по 12 паралельних лініях - порт Р1 та молодшу тетраду порту Р3. Керуючі сигнали формуються у старшій тетраді Р3. Сигнал CONVST задає початок перетворення АЦП, CS та RD дають дозвіл на вивід. Послідовність цих сигналів та програма, яка реалізує їх формування і збереження даних з АЦП в регістрах R5, R4 мікроконтролера, наведено нижче.
Рис.2 Сигнали 12 розрядного паралельного АЦП при роботі з МК
ПОЧАТОК ПРОГРАМИ ЧИТАННЯ АЦП AD7880.
ПРАЦЮЄМО З ПОРТАМИ Р1 И РЗ,
CS = РЗ. 7, RD = P3.6 , CONVST= P3.5.
; ******
CS .EQU P3.7
RD .EQU P3.6
CONVST .EQU P3.5
;
MOV Р1,#11111111В;ПОЧАТКОВЕ ВСТАНОВЛЕННЯ Р1
MOV РЗ,#11111111В; ПОЧАТКОВЕ ВСТАНОВЛЕННЯ Р3
;
L7880: ; БЕЗПОСЕРЕДНЬО ЧИТАННЯ З АЦП
;
CLR CONVST ; ПОЧАТОК ФОРМУВАННЯ ІМПУЛЬСУ СТАРТУ ПЕРЕТВОРЕННЯ
SETB CONVST ; КІНЕЦЬ ФОРМУВАННЯ ІМПУЛЬСУ СТАРТУ ПЕРЕТВОРЕННЯ
;
NOP (повторення 20 разів цієї команди) ; ЗАТРИМКА НА ЧАС ПЕРЕТВОРЕННЯ - СИГНАЛ BUSY
· (при частоті МК 12Мгц час виконання 1 команди NOP 1мкс)
·
·
NOP
;
CLR CS ; ПОЧАТОК ФОРМУВАННЯ ІМПУЛЬСУ CS
CLR RO ; ПОЧАТОК ФОРМУВАННЯ ІМПУЛЬСУ RO
;
MOV A, P1 ;ЧИТАЄМО ДАНІ З ПОРТУ Р1 МЛ. I СТ. ТЕТРАДИ
MOV R4 ,A ;ЗБЕРІГАЇМО ЇХ В R4
;
MOV A, P3 ;ЧИТАЄМО ДАНІ З ПОРТА Р3 МЛ ТЕТРАДУ
MOV R5, A ;В R5R4 РЕЗУЛЬТАТ - ДАНІ З АЦП
;
SETB RD ;ВСТАНОВЛЕННЯ RO В 1
SETB CS ;ВСТАНОВЛЕННЯ CS В 1
;
SJNP L7880 ; ЗАЦИКЛЮВАННЯ ПОВЕРТАННЯ НА МІТКУ L7880
КОМАНДИ РОБОТИ З БІТОВИМИ ДАНИМИ
Дана група команд оперує з однобітовими операндами. Як операнди можуть виступати окремі біти деяких регістрів спеціальних функцій, біти портів і біти 16 елементів внутрішньої пам'яті даних. Всі біти, що адресуються, утворюють однорозрядний лінійно впорядкований простір BSEG місткістю 256 біт.
У просторі BSEG використовується тільки пряма адресація, пряма восьмирозрядна адреса в просторі BSEG позначається bit. Адресація в просторі BSEG ілюструється табл. 1, 2.
Таблиця 1. Адресація в просторі BSEG
Адреса в просторі ВSEG
|
Розряд елементу внутрішньої пам'яті даних |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
20 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
21 |
0F |
0E |
0D |
0C |
0B |
0A |
09 |
08 |
22 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
23 |
1F |
1E |
1D |
1C |
1B |
1A |
19 |
18 |
24 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
25 |
2F |
2E |
2D |
2C |
2B |
2A |
29 |
28 |
26 |
37 |
36 |
35 |
34 |
33 |
32 |
31 |
30 |
27 |
3F |
3E |
3D |
3C |
3B |
3A |
39 |
38 |
28 |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
29 |
4F |
4E |
4D |
4C |
4B |
4A |
49 |
48 |
2A |
57 |
56 |
55 |
54 |
53 |
52 |
51 |
50 |
2B |
5F |
5E |
5D |
5C |
5B |
5A |
59 |
58 |
2C |
67 |
66 |
65 |
64 |
63 |
62 |
61 |
60 |
2D |
6F |
6E |
6D |
6C |
6B |
6A |
69 |
68 |
2E |
77 |
76 |
75 |
74 |
73 |
72 |
71 |
70 |
2F |
7F |
7E |
7D |
7C |
7B |
7A |
79 |
78 |
Таблиця 2. Регістри спеціального призначення
Адреса в просторі ВSEG
|
Розряд регістра спеціального призначення |
Регістр
|
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
80 |
87 |
86 |
85 |
84 |
83 |
82 |
81 |
80 |
PO |
81 |
8F |
8E |
8D |
8C |
8B |
8A |
89 |
88 |
TCON |
90 |
97 |
96 |
95 |
94 |
93 |
92 |
91 |
90 |
P1 |
98 |
9F |
9E |
9D |
9C |
9B |
9A |
99 |
98 |
SCON |
A0 |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
P2 |
A8 |
AF |
-- |
-- |
AC |
AB |
AA |
A9 |
A8 |
IE |
B0 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
P3 |
B8 |
-- |
-- |
-- |
BC |
BB |
BA |
B9 |
B8 |
IP |
|
|
|
|
|
|
|
|
|
|
D0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
PSW |
E0 |
E7 |
E6 |
E5 |
E4 |
E3 |
E2 |
E1 |
E0 |
A |
F0 |
F7 |
F6 |
F5 |
F4 |
F3 |
F2 |
F1 |
F0 |
B |
Група команд операцій з бітами (табл. 3.) включає 6 операцій : три одномісні операції - установки (SETB), скидання (CLR) і інверсії (CPL), дві двомісні операції - кон'юнкції і диз'юнкції, і операцію пересилки. Як "акумулятор" в бітових операціях використовується тригер (прапорець) перенесення С. Характеристики бітових команд наведені табл. 3.
Таблиця 3. Група команд операцій з бітами.
№ |
МНЕМОНІКА |
КОП |
Б |
Ц |
ОПЕРАЦІЯ |
||||
|
CLR |
C |
11000011 |
1 |
1 |
(C):=0 |
|||
|
CLR |
bit |
11000010 |
2 |
1 |
(b):=0 |
|||
|
SET |
C |
11010011 |
1 |
1 |
(C):=1 |
|||
|
SET |
bit |
11010010 |
2 |
1 |
(b):=1 |
|||
|
CPL |
C |
10110011 |
1 |
1 |
(C):= C |
|||
|
CPL |
bit |
10110010 |
2 |
1 |
(b):= ~ (b) |
|||
|
ANL |
C,bit |
10000010 |
2 |
2 |
(C):=(C)/\(b) |
|||
|
ANL |
C,/bit |
10110000 |
2 |
2 |
(C):=(C)/\(b) |
|||
|
ORL |
C,bit |
01110010 |
2 |
2 |
(C):=(C)\/(b) |
|||
|
ORL |
C,/bit |
10100000 |
2 |
2 |
(C):=(C)\/(b) |
|||
|
MOV |
C,bit |
10100010 |
2 |
1 |
(C):=(b) |
|||
|
MOV |
bit,C |
10010010 |
2 |
2 |
(b):=(C) |
Фрагмент програми, що реалізована в навчальному лабораторному стенді.
;*****************Початок виконання Л.Р. "бітові операції"****************
mov a,#01d ;
call Delay_sec ; секундна затримка для усунення тремтіння контакту
mov acc,KEYREG ; Занесення даних з регістра тумблерів в акумулятор біт. опер.
mov c,acc.0 ; Вибір нульового розряду
;*******************Опитування нульового розряду******************************
x0:
jb BUT_DEC,x1a ;Перевірка натискання кнопки "Менше" - у випадку натискання виконується наступне
;якщо ні то перехід на опитування наступної операції
anl c,acc.1 ;проходить операція "І" із записом результату в "c"
mov LEDDR,#80h ;Засвічення восьмого верхнього світлодіоду
call Write_LED_H ;
mov a,#01d ;
call Delay_sec ;секундна затримка
mov LEDDR,#00h ;Обнуління верхніх світлодіодів
call Write_LED_H ;
jmp x1 ;Перехід на опитування наступного розряду
x1a:
jb BUT_INC,x1b ;Перевірка натиску кнопки "Більше" - вразі натиску виконується наступне
;якщо ні то перехід на опитування наступної операції
orl c,acc.1 ;проходить операція "АБО" із записом результату в "c"
mov LEDDR,#40h ;Засвічення сьомого верхнього світлодіоду
call Write_LED_H ;
mov a,#01d ;
call Delay_sec ;секундна затримка
mov LEDDR,#00h ;Обнуління верхніх світлодіодів
call Write_LED_H ;
jmp x1 ;Перехід на опитування наступного розряду
x1b:
jb BUT_ENT,x1c ;Перевірка натиску кнопки "Ввід" - вразі натиску виконується наступне
;якщо ні то перехід на опитування наступної операції
anl c,/acc.1 ;проходить операція "І-НЕ" із записом результату в "c"
mov LEDDR,#20h ;Засвічення шостого верхнього світлодіоду
call Write_LED_H ;
mov a,#01d ;
call Delay_sec ;секундна затримка
mov LEDDR,#00h ;Обнуління верхніх світлодіодів
call Write_LED_H ;
jmp x1 ;Перехід на опитування наступного розряду
x1c:
jb BUT_CNT,x1d ;Перевірка натиску кнопки "Ввід" - вразі натиску виконується наступне
;якщо ні то перехід на опитування наступної операції
orl c,/acc.1 ;проходить операція "АБО-НЕ" із записом результату в "c"
mov LEDDR,#10h ;Засвічення п’ятого верхнього світлодіоду
call Write_LED_H ;
mov a,#01d ;секундна затримка
call Delay_sec ;
mov LEDDR,#00h ;Обнуління верхніх світлодіодів
call Write_LED_H ;
jmp x1 ;Перехід на опитування наступного розряду
x1d:
jmp x0 ;якщо жодна кнопка не натиснута перехід на початок
;опитування операцій для нульового розряду
;************************** Опитування другого розряду*************************
............................................................................
;*********************** Опитування третього розряду і т.д.*******************
............................................................................
............................................................................
;*********************Вивід результату*************************************
x7:
mov a,#01d ; Секундна затримка
call Delay_sec ;
mov acc,#00h ;Обнуління акумулятора бітових операцій
mov acc,c ;перенесення результату з рег. біт. опер. в акумулятор біт. опер.
mov a,acc ;перенесення результату в акумулятор
jnz bit_a ;
;
; Перевірка, якщо нуль виводимо результат в акумулятор біт. опер.
mov acc,#0001b ; і засвічуємо перший верхній світлодіод
jmp bit_a1 ;
bit_a: ;
; Якщо не нуль виводимо результат в акумулятор біт. опер. і засвічуєм
mov acc,#0010b ; другий верхній світлодіод
bit_a1: ;
mov LEDDR,acc ; Засвічення верхніх світлодіодів
call Write_LED_H ;
БЛОК КЕРУВАННЯ ЛАБОРАТОРНОГО СТЕНДУ
Вкл/Викл – вимикач лабораторного стенду.
К1-К8 – перемикачі встановлення двійкової інформації(донизу – „0”, догори – „1”)
„+”, ”-„ – кнопки вибору лабораторної роботи в меню стенда
Ввід – кнопка підтвердження вводу
Вихід – вихід з підпрограми або з лабораторної роботи
Рис.3 Блок керування лабораторного стенду