Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 6Л.doc
Скачиваний:
0
Добавлен:
21.11.2019
Размер:
616.45 Кб
Скачать

12

Міністерство транспорту та зв’язку україни львівський коледж державного університету інформаційно-комунікаційних технологій

Навчальна дисципліна: Обчислювальна техніка та мікропроцесори

Лабораторія: обчислювальної техніки, мікропроцесорних систем і мереж

Спеціальність 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 Блок керування лабораторного стенду

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]