Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Вычислительная техника и информационные технологии. Цифровые автоматы и микроконтролеры. Руководство к лабораторным работам в системе PROTEUS 7.2 SP6

.pdf
Скачиваний:
15
Добавлен:
12.11.2023
Размер:
4.8 Mб
Скачать

MOV R0,#1

; загрузка 1 в регистр R0

MOV P2,R0

; вывод R0 в P2

JMP NEXT

 

ORG 0BH

; адрес вектора прерываний от Т/С0

JMP MET

 

ORG 100H

; начальный адрес подпрограммы

MET: MOV A,R0

; передача из R0 в А

RL A

; сдвиг А влево циклический

MOV R0,A

; передача из А в R0

MOV P2,A

; передача из А в P2

MOV P2,R0

 

MOV TMOD,#00000001B

; настройка Т/С0

MOV TL0,#LOW(NOT(64000–1))

; загрузка таймера

MOV TH0,#HIGH(NOT(64000–1))

; загрузка таймера

SETB TCON.4

; старт Т/С0

RETI ; выход из подпрограммыобработки прерывания

NEXT:MOV TMOD,#00000001B; первоначальная настройкаТ/С0

MOV TL0,#LOW(NOT(50000–1)); первоначальная

 

загрузкатаймера

MOV TH0,#HIGH(NOT(50000–1)); первоначальная

 

загрузка таймера

SETB TCON.4

; первоначальный старт Т/С0

SETB IE.1

; разрешение прерывания от Т/С0

NEXT1:JMP NEXT1

; переход, петля, ожидание прерывания

END

 

На рис. 2.7 проиллюстрирован результат работы программы «бегущая единица» с реализацией временной задержки 64 мс на основе прерываний.

31

Рис. 2.7. Иллюстрация работы программы «бегущая единица» с реализацией временной задержки 64 мс на основе прерываний

2.9. Передача информации по последовательному порту

Управление режимом работы универсального асинхронного приемо-передатчика (УАПП) осуществляется регистром с символическим именем SCON (табл. 2.7):

 

 

 

Таблица 2.7

 

 

 

 

Символ

Позиция

Имя и назначение

7

SM0

SCON.7

Бит управления режимом.

Устанавливается/сбрасывается программно

6

SM1

SCON.6

Бит управления режимом.

Устанавливается/сбрасывается программно

 

 

 

Бит управления режимом.

5

SM2

SCON.5

Устанавливается программно для запрета

приема сообщения, в котором девятый бит

 

 

 

имеет значение 0

 

 

 

Бит разрешения приема.

4

REN

SCON.4

Устанавливается/сбрасывается программно

для разрешения или запрета приема после-

 

 

 

довательных данных

 

 

 

Передача бита 8.

3

TB8

SCON.3

Устанавливается/сбрасывается программно для

 

 

 

задания девятого бита в режиме УАПП-9 бит

 

 

 

32

 

 

 

Окончание табл. 2.7

Символ

Позиция

Имя и назначение

 

 

 

Прием бита 8.

2

RB8

SCON.2

Устанавливается/сбрасывается программ-

 

 

 

но для фиксации девятого бита, принима-

 

 

 

емого в режиме УАПП-9 бит

 

 

 

Флаг прерывания передатчика. Устанав-

1

T1

SCON.1

ливается аппаратурно при окончании пе-

редачи байта. Сбрасывается программно

 

 

 

после обслуживания прерывания

 

 

 

Флаг прерывания приемника. Устанавли-

0

R1

SCON.0

вается аппаратурно при окончании прие-

ма байта. Сбрасывается программно после

 

 

 

обслуживания прерывания

Таблица режимов работы УАПП имеет следующий вид

(табл. 2.8).

 

 

 

 

 

 

Таблица 2.8

 

 

 

 

 

 

 

SМ0

 

SМ1

 

Режим работы EFGG

0

 

 

0

 

Сдвигающий регистр расширения ввода-вывода

0

 

 

1

 

УАПП-8 бит. Изменяемая скорость передачи

1

 

 

0

 

УАПП-9 бит. Фиксированная скорость передачи

1

 

 

1

 

УАПП-9 бит. Изменяемая скорость передачи

 

Таблица регистра управления мощностью (РУМ) имеет

следующий вид (табл. 2.9).

 

 

 

 

 

 

 

Таблица 2.9

 

 

 

 

 

 

 

Символ

 

Позиция

Имя и назначение

 

 

 

 

 

 

Удвоенная скорость передачи.

7

 

SMOD

 

PCON.7

Если бит= 1, то скорость передачи

 

 

 

 

 

 

УАПП вдвое больше, чем прибит = 0

6

 

 

 

PCON.6

Не используется

5

 

 

 

PCON.5

Не используется

4

 

 

 

PCON.4

Не используется

3

 

 

GF1

 

PCON.3

Флаг, специфицируемый пользова-

 

 

 

телем (флаг общего назначения)

 

 

 

 

 

 

2

 

 

GF0

 

PCON.2

Флаг, специфицируемый пользова-

 

 

 

телем (флаг общего назначения)

 

 

 

 

 

 

1

 

 

PD

 

PCON.1

Бит пониженной мощности

0

 

 

IDL

 

PCON.0

Бит холостого хода

 

 

 

 

 

 

33

При одновременной записи 1 в PD и IDL бит PD имеет преимущество.

Сброс содержимого регистра управления мощностью осуществляется путем загрузки кода 0ххх0000.

Запись байта в буферный регистр SBUF приводит к автоматической перезаписи его в сдвигающий регистр и инициирует начало передачи.

Наличие буферного регистра позволяет совмещать операцию чтения ранее принятого байта с приемом очередного.

В режиме 0 информация (8 бит) и передается, и принимается через внешний вывод входа приемника RxD. Через внешний вывод выхода передатчика TxD выдаются синхроимпульсы. Частота передачи равна 1/12 частоты резонатора.

Попробуем передать байт из микроконтроллера во внешний регистр в этом режиме (рис. 2.8).

Рис. 2.8. Схема для передачи информации по последовательному порту

34

Регистр 74НС299 – регистр последовательного приема информации. Настроим его на прием с D7. Для этого подключим D7 к линии RxD порта 3, а линию синхроимпульсов ТxD – ко входу CLK регистра. Входы управления S0, S1 настроим для приема с D7: S0 = 0, S1 = 1. Обнулим также управляющие сигналы выдачи информации из регистра: ОЕ1 = 0, ОЕ2 = 0. Напишем программу выдачи байта из контроллера:

BEGIN:

; передача байта в регистр в режиме 0

 

P1 EQU 90H

; определение порта Р1

 

P2 EQU 0A0H

; определение порта Р2

 

P0 EQU 80H

; определение порта Р0

 

P3 EQU 0B0H

; определение порта Р3

 

TCON EQU 88H

; определение TCON

 

TMOD EQU 89H

; определение TMOD

 

IE EQU 0A8H

; определение IE

 

TL0 EQU 8AH

; определение TL0

 

TH0 EQU 8CH

; определение TH0

 

PCON EQU 87H

; определение PCON

 

SBUF EQU 99H

; определение SBUF

 

SCON EQU 98H

; определение SCON

 

SMOD EQU 8FH

; определение бита

 

 

; удвоеннойскоростипередачи

 

CLR SCON.7

; задание режима 0

 

CLR SCON.6

; задание режима 0

 

CLR SMOD

; обнуление SMOD

END

MOV SBUF,#7

; передача байта 7

 

 

Проверим работу программы (рис. 2.9).

35

Рис. 2.9. Иллюстрации работы программы передачи данных по последовательному порту

Байт 00000111 выдан.

Попробуем передавать информацию по последовательному порту из контроллера в контроллер.

Программа передачи байта #5:

 

BEGIN:

; передача байта в режиме 0

P1 EQU 90H

; определение порта Р1

P2 EQU 0A0H

; определение порта Р2

P0 EQU 80H

; определение порта Р0

P3 EQU 0B0H

; определение порта Р3

TCON EQU 88H

; определение TCON

TMOD EQU 89H

; определение TMOD

IE EQU 0A8H

; определение IE

TL0 EQU 8AH

; определение TL0

TH0 EQU 8CH

; определение TH0

PCON EQU 87H

; определение PCON

SBUF EQU 99H

; определение SBUF

SCON EQU 98H

; определение SCON

36

 

SMOD EQU 8FH

; определение бита

 

 

; удвоенной скорости передачи

CLR SCON.6

 

; задание режима 2

SETB SCON.7

 

; задание режима 2

SETB SMOD

 

; установка SMOD

NEXT:MOV SBUF,#5

 

; передача байта #5

END

 

 

Выберем режим 2, так как он не требует настройки таймеров.

Программа приема:

 

 

BEGIN:

 

; передача байта в режиме 1

P1 EQU 90H

 

; определение порта Р1

P2 EQU 0A0H

 

; определение порта Р2

P0 EQU 80H

 

; определение порта Р0

P3 EQU 0B0H

 

; определение порта Р3

TCON EQU 88H

 

; определение TCON

TMOD EQU 89H ; определение TMOD

IE EQU 0A8H

 

; определение IE

TL0 EQU 8AH

 

; определение TL0

TH0 EQU 8CH

 

; определение TH0

PCON EQU 87H

 

; определение PCON

SBUF EQU 99H

 

; определение SBUF

SCON EQU 98H

 

; определение SCON

SMOD EQU 8FH

; определение бита

 

 

; удвоеннойскорости передачи

ORG 0

 

 

SETB IE.7

; разрешение прерываний

SETB IE.4

; разрешение прерываний от УАПП

CLR SCON.6

; задание режима 2

SETB SCON.7

; задание режима 2

SETB SMOD

; установка SMOD

CLR SCON.0 ; сбросфлагапрерыванияприемника

SETB SCON.4

; разрешение приема

 

37

 

MET:JMP MET

; петля ожидания приема

ORG 0023H

; адрес вектора прерываний от УАПП

JMP NEXT

; переход на метку NEXT

NEXT:MOV P2, SCON

; выдача SCON для контроля

MOV P1,SBUF

; передача байта из буфера на порт P1

CLR SCON.0

; сброс SCON.0 – флага прерывания

 

; приемника

RETI

; возврат из подпрограммы

 

; обслуживания прерывания

END

Иллюстрация передачи и приема данных приведена на рис. 2.10.

Рис. 2.10. Иллюстрация передачи и приема данных между микроконтроллерами

Байт передан.

38

Лабораторная работа № 3

Разработка программы распознавания последовательности срабатывания двоичных датчиков для микроконтроллера 80С51 в системе Proteus 7.2 SP6

Задание: Разработать программу для микроконтроллера 80С51 (по алгоритму ПЛА) для реализации автомата распознавателя заданной последовательности срабатывания датчиков.

Последовательность срабатывания датчиков 0–1–3–2. При правильной последовательности срабатывания датчи-

ков должна производиться выдача сигнала 1 (z1) на нулевой разряд порта. В случае любого нарушения последовательности – выдается сигнал 1 на первый разряд выходного вектора (z2).

3.1. Синтез последовательностного автомата-распознавателя последовательности

Пусть на вход автомата подается следующая последовательность ab: 00 → 01 → 11 → 10. Построим первичную таблицу переходов-выходов (табл. 3.1).

 

 

 

 

 

 

Таблица 3.1

 

 

 

 

 

 

 

 

Входной сигнал ab

 

Выходной сигнал

такта

00

01

11

10

z1

 

z2

1

1

2

5

5

0

 

0

2

6

2

3

6

0

 

0

3

7

7

3

4

0

 

0

4

 

 

 

4

1

 

0

5

 

 

5

5

0

 

1

6

6

 

 

6

0

 

1

7

7

7

 

 

0

 

1

Здесь, в отличие от ранее рассмотренной модели автомата, учтены все нарушения заданной последовательности, устойчивые такты подчеркнуты. Так же, как и ранее, не предусмотрен возврат автомата в исходное положение.

39

Получим минимизированную таблицу переходов-выходов

(табл. 3.2).

 

 

 

 

Таблица 3.2

 

 

 

 

 

№ строки

 

Входной сигнал ab

 

00

01

11

10

 

1, 5

1

2

5

5

2, 6

6

2

3

6

3, 4, 7

7

7

3

4

Построим таблицу переходов-выходов автомата

Мили

(табл. 3.3).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.3

 

 

 

 

 

 

 

 

 

 

Код

 

 

ab

 

 

 

 

 

состояния

00

01

 

11

10

 

 

 

 

Y2Y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00

00H

01H

 

03H

02H

 

 

 

 

00

01

 

00

00

 

 

 

 

 

00

00

 

10

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

04H

05H

 

07 H

06H

 

 

 

 

01

01

 

11

01

 

 

 

 

 

10

00

 

00

10

 

 

 

 

11

0CH

0DH

 

0FH

0EH

 

y2 y1

(t +1)

 

11

11

 

11

11

 

 

 

z1z2

 

10

10

 

00

01

 

 

 

 

 

 

 

Код клетки – дизъюнкция двоичного кода строки и двоичного кода столбца (в двух старших разрядах кода клавиши всегда нули).

3.2. Написание программы и получение таблицы констант для программы ПЛА

Метод программируемой логической матрицы является универсальным и унифицированным методом вычисления логических функций. В нем достигается сокращение объема памяти.

40

Соседние файлы в папке книги