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

Дмитриев Универсалный лабораторный стенд. Аппаратные средства проектирования встраиваемых систем 2009

.pdf
Скачиваний:
71
Добавлен:
17.08.2013
Размер:
10.11 Mб
Скачать

MET_TOG:

 

 

CLR

CMI2

;сброс флага прерывания от

 

 

;компаратора СМ2

INC

R2

;инкремент номера входа в обработчик

CJNE

R2,#01h,M31

;если номер входа=1

CLR

C

 

MOV

A,CML2

;загрузка в СМ2 момента времени

ADD

A,#57h

;переключения (2)

 

MOV

CML2,A

 

MOV

A,CMH2

 

ADDC

A,#02H

 

MOV

CMH2,A

 

LJMP

EX_TOG

;на выход из обработчика

;=====================================================

M31: CJNE

R2,#02h,M32

;если номер входа=2

XRL

RTE,#0C0h

;переключение Р4.6 в момент времени (3)

CLR

C

 

MOV

A,CML2

;загрузка в СМ2 момента времени

ADD

A,#57h

;переключения (3)

 

MOV

CML2,A

 

MOV

A,CMH2

 

ADDC

A,#02H

 

MOV

CMH2,A

;на выход из обработчика

LJMP

EX_TOG

;=====================================================

M32: CJNE

R2,#03h,M33

;если номер входа=3

XRL

RTE,#0C0h

;переключение Р4.7 в момент времени (5)

CLR

C

 

MOV

A,CML2

;загрузка в СМ2 момента времени

ADD

A,#0AEh

;переключения (5)

 

MOV

CML2,A

 

MOV

A,CMH2

 

ADDC

A,#04H

 

MOV

CMH2,A

 

LJMP

EX_TOG

;на выход из обработчика

;======================================================

M33: CJNE

R2,#04h,M34

;если номер входа=4

CLR

C

 

MOV

A,CML2

;загрузка в СМ2 момента времени

ADD

A,#57h

;переключения (6)

 

 

 

101

MOV

CML2,A

 

MOV

A,CMH2

 

ADDC

A,#02H

 

MOV

CMH2,A

 

LJMP

EX_TOG

;на выход из обработчика

;======================================================

M34: CJNE

R2,#05h,M35

;если номер входа=5

XRL

RTE,#0C0h

;переключение Р4.6 в момент времени (7)

CLR

C

 

MOV

A,CML2

;загрузка в СМ2 момента времени

ADD

A,#57h

;переключения (7)

 

MOV

CML2,A

 

MOV

A,CMH2

 

ADDC

A,#02H

 

MOV

CMH2,A

 

LJMP

EX_TOG

;на выход из обработчика

;=====================================================

M35:

 

;если номер входа=6

XRL

RTE,#0C0h

;переключение Р4.7 в момент времени (1)

CLR

 

C

MOV

A,CML2

;загрузка в СМ2 момента времени

ADD

A,#5Ch

;переключения (1)

 

MOV

CML2,A

 

MOV

A,CMH2

 

ADDC

A,#09H

 

MOV

CMH2,A

;сброс номера входа в обработчик

MOV

R2,#00h

EX_TOG:

 

 

RETI

 

;возврат из обработчика прерывания

END

 

;от компаратора СМ2

 

 

Результат работы составленной для решения данной задачи программы можно проконтролировать при помощи логического анализатора. Для этого перед запуском программы на исполнение в ПЛИС необходимо загрузить проект, представленный на рис. 3.23. При помощи этого проекта линии порта Р4 подключаются к каналам СН А0 – СН А7 логического анализатора.

102

Рис. 3.23. Схема подключения порта Р4 микроконтроллера к каналам СН А0 – СН А7 логического анализатора

На рис. 3.24 представлена временная диаграмма, полученная при помощи логического анализатора. Помимо структуры многоканальной последовательности сигналов при помощи анализатора в режиме маркерных измерений проверяются и значения временных интервалов. Например, на временной диаграмме представлен результат измерения интервала между моментами времени 0 и 1 исходной диаграммы, который составляет 650 мкс. Таким образом, по полному соответствию исходной диаграммы (рис. 3.23) и временной диаграммы анализатора можно судить о правильности работы программы.

103

Рис. 3.24. Временная диаграмма, полученная при помощи логического анализатора

104

Список литературы

1.Схемотехника ЭВМ. Лабораторный практикум: учебное пособие / Под ред. Б.Н. Ковригина. – 3-е изд., перераб. и доп. – М.:

МИФИ, 2006. – 212 с.

2.Ковригин Б.Н. Введение в инструментальные средства проектирования и отладки цифровых устройств на ПЛИС: Учебнометодическое пособие. – М.: МИФИ, 2006. – 192 с.

3.Дмитриев Н.А. Универсальный лабораторный стенд. Инструментальные средства проектирования и отладки. Электронное учебное пособие. 50 с.

105

Приложение 1

 

 

 

 

 

Команды, которые изменяют состояниефлагов

Команда

 

 

Флаги

Команда

Флаги

 

 

 

 

С

OV

AC

 

С OV AC

 

ADD

 

X

X

X

CLR С

0

 

 

ADDC

 

X

X

X

CPLC

X

 

 

SUBB

 

X

X

X

ANLC.bit

X

 

 

MUL

 

0

X

 

ANLC. /bit

X

 

 

DIV

 

0

X

 

ORLC.bit

X

 

 

DA

 

X

 

 

ORLC. /bit

X

Примечание:

Насостояниефлаговмогутвлиятьоперации

RRC

 

X

 

 

MOV C.bit

X

 

 

 

 

сPSW исегоотдельными битами.

RLC

 

X

 

 

CJNE

X

 

 

 

 

 

 

SETB С

 

1

 

ОБОЗНАЧЕНИЯ, ИСПОЛЬЗУЕМЫЕ В ОПИСАНИИ СИСТЕМЫ КОМАНД

 

 

 

 

Rn

– Регистры R7-R0 текущего банка регистров общегоназначения;

 

direct

8-ми разрядный адрес данных. Это может быть адрес внутренней памяти данных (0-127) или регистра специальных

 

 

функций (128-255);

 

 

 

 

@Ri

– 8-ми разрядный косвенный адрес внутренней памяти данных (0-255). Используются только R1 и R0;

#data

8-ми битная константа;

 

 

 

 

#data 16 –

16-ти битная константа;

 

 

 

 

addr 16

16-ти битный адрес, обеспечивает переход на любой адрес в пределах всего пространствапамяти программ;

addr 11

11-ти битный адрес, обеспечивает переход на любой адрес в пределах двухкилобайтной страницы, на которой

 

 

находится первый байт следующей инструкции;

 

 

rel

– Смещение в виде числа со знаком в диапазоне от –128 до +127 относительно адреса первого байта

 

 

следующей команды;

 

 

 

 

bit

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

МНЕМОНИЧЕСКОЕ

ОПИСАНИЕ

ДЛИНА

ВРЕМЯВЫПОЛНЕНИЯ

 

ОБОЗНАЧЕНИЕ

 

(БАЙТ)

(ПЕРИОДОВГЕНЕРАТОРА)

АРИФМЕТИЧЕСКИЕОПЕРАЦИИ

 

 

 

ADD

A,Rn

Сложитьрегистр иаккумулятор

1

12

ADD

A,direct

Сложить прямо адресуемый байтиаккумулятор

2

12

ADD

A,@Ri

Сложитькосвенно адресуемый байт иаккумулятор

1

12

ADD

A,#data

Сложитьнепосредственныеданныеиаккумулятор

2

12

ADDC

A,Rn

Сложитьрегистр иаккумулятор спереносом

1

12

ADDC

A,direct

Сложить прямо адресуемый байтиаккумулятор спереносом

2

12

ADDC

A,@Ri

Сложитькосвенно адресуемый байт иаккумуляторс переносом

1

12

ADDC

A,#data

Сложитьнепосредственныеданныеиаккумуляторс переносом

2

12

SUBB

A,Rn

Вычесть регистр из аккумулятора с заемом

1

12

SUBB

A.direct

Вычесть прямо адресуемый байт из аккумулятора с заемом

2

12

SUBB

A,@Ri

Вычесть косвенно адресуемыйбайт из аккумулятора с заемом

1

12

SUBB

A,#data

Вычесть непосредственные данные из аккумулятора с заемом

2

12

INC

A

Инкрементировать аккумулятор

1

12

INC

Rn

Инкрементировать регистр

1

12

INC

direct

Инкрементировать прямо адресуемый байт

2

12

INC

@Ri

Инкрементировать косвенно адресуемый байт

1

12

DEC

A

Декрементировать аккумулятор

1

12

DEC

Rn

Декрементировать регистр

1

12

DEC

direct

Декрементировать прямо адресуемый байт

2

12

DEC

@Ri

Декрементировать косвенно адресуемый байт

1

12

INC

DPTR

Инкрементироватьрегиструказательданных

1

24

MUL

AB

Умножитьаккумулятор нарегистр В

1

48

DIV

AB

Разделить аккумулятор нарегистр В

1

48

DA

A

Десятичнаякоррекцияаккумулятора

1

12

 

МНЕМОНИЧЕСКОЕ

ОПИСАНИЕ

ДЛИНА

ВРЕМЯВЫПОЛНЕНИЯ

 

ОБОЗНАЧЕНИЕ

 

(БАЙТ)

(ПЕРИОДОВГЕНЕРАТОРА)

ЛОГИЧЕСКИЕОПЕРАЦИИ

 

 

 

ANL

A,Rn

Логическое И регистра и аккумулятора

1

12

ANL

A,direct

Логическое И прямо адресуемого байта и аккумулятора

2

12

ANL

A,@Ri

Логическое И косвенно адресуемого байта и аккумулятора

1

12

ANL

A,#data

Логическое И непосредственных данных и аккумулятора

2

12

ANL

direct,A

Логическое И аккумулятора и прямо адресуемого байта

2

12

ANL

direct,#data

Логическое И непосредственных данных и прямо адресуемого

 

 

 

 

байта

3

24

ORL

A,Rn

Логическое ИЛИ регистра и аккумулятора

1

12

ORL

A,direct

Логическое ИЛИ прямо адресуемого байта и аккумулятора

2

12

ORL

A,@Ri

Логическое ИЛИ косвенно адресуемого байта и аккумулятора

1

12

ORL

A,#data

Логическое ИЛИ непосредственных данных и аккумулятора

2

12

ORL

direct,A

Логическое ИЛИ аккумулятора и прямо адресуемого байта

2

12

ORL

direct,#data

Логическое ИЛИ непосредственных данных и прямо

 

 

 

 

адресуемого байта

3

24

XRL

A,Rn

Исключающее ИЛИ регистра и аккумулятора

1

12

XRL

A,direct

Исключающее ИЛИ прямо адресуемого байта и аккумулятора

2

12

XRL

A,@Ri

Исключающее ИЛИ косвенно адресуемого байта и аккумулятора

1

12

XRL

A,#data

Исключающее ИЛИ непосредственных данных и аккумулятора

2

12

XRL

direct,A

Исключающее ИЛИ аккумулятора и прямо адресуемого байта

2

12

XRL

direct,#data

Исключающее ИЛИ непосредственных данных и прямо

 

 

 

 

адресуемого байта

3

24

CLR

A

Обнулениеаккумулятора

1

12

CPL

A

Побитно инвертировать аккумулятор

1

12

RL

A

Циклический сдвиг аккумулятора влево

1

12

МНЕМОНИЧЕСКОЕ

ОПИСАНИЕ

ДЛИНА

ВРЕМЯВЫПОЛНЕНИЯ

 

ОБОЗНАЧЕНИЕ

 

(БАЙТ)

(ПЕРИОДОВГЕНЕРАТОРА)

RLC

A

Циклический сдвиг аккумулятора влево через перенос

1

12

RR

A

Циклический сдвиг аккумулятора вправо

1

12

RRC

A

Циклический сдвиг аккумулятора вправо через перенос

1

12

SWAP

A

Переставитьместамиполубайтыаккумулятора

1

12

ОПЕРАЦИИПЕРЕСЫЛКИДАННЫХ

1

 

MOV

A,Rn

Переслать регистр в аккумулятор

12

MOV

A.direct

Переслать прямо адресуемый байт в аккумулятор

2

12

MOV

A,@Ri

Переслать косвенно адресуемый байт в аккумулятор

1

12

MOV

A,#data

Переслать непосредственные данные в аккумулятор

2

12

MOV

Rn,A

Переслать аккумулятор в регистр

1

12

MOV

Rn,direct

Переслать прямо адресуемый байт в регистр

2

24

MOV

Rn,#data

Переслать непосредственные данные в регистр

2

12

MOV

direct,A

Переслать аккумулятор в прямо адресуемый байт

2

12

MOV

direct,Rn

Переслать регистр в прямо адресуемый байт

2

24

MOV

direct,direct

Переслать один прямоадресуемый байт в другой

3

24

MOV

direct,@Ri

Переслать косвенно адресуемый байт в прямо адресуемый

2

24

 

 

байт

 

 

MOV

direct,#data

Переслать непосредственные данные в прямо адресуемый

3

24

 

 

байт

 

 

MOV

@Ri,A

Переслать аккумулятор в косвенно адресуемый байт

1

12

MOV

@Ri,direct

Переслать прямо адресуемый байт в косвенно адресуемый

2

24

 

 

байт

 

 

MOV

@Ri,#data

Переслать непосредственные данные в косвенно адресуемый

2

12

 

 

байт

 

 

МНЕМОНИЧЕСКОЕ

ОПИСАНИЕ

ДЛИНА

ВРЕМЯВЫПОЛНЕНИЯ

 

ОБОЗНАЧЕНИЕ

 

(БАЙТ)

(ПЕРИОДОВГЕНЕРАТОРА)

MOV

DPTR,#data16

Переслать 16-ти разрядные данные в в регистр указатель

3

24

MOVC

A,@A+DPTR

Переслать в аккумулятор данные из памяти программ по адре-

 

 

 

 

су, определяемому как сумма регистра указателя и аккумуля-

1

24

 

 

тора

 

 

MOVC

A,@A+PC

Переслать в аккумулятор данные из памяти программ по адре-

1

24

 

 

су, определяемому как сумма счетчика команд и аккумулятора

 

 

MOVX

A,@Ri

Переслатьв аккумуляторкосвенноадресуемые черезрегистр

 

 

 

 

данныеиз внешнейпамятиданных

 

 

MOVX

A,@DPTR

Переслатьв аккумуляторкосвенноадресуемые черезрегистр

1

24

 

 

указательданныеизвнешнейпамятиданных

 

 

MOVX

@Ri,A

Переслать данные в косвенно адресуемую через регистр ячейку

 

 

 

 

внешней памяти данных из аккумулятора

1

24

MOVX

@DPTR,A

Переслать данные в косвенно в косвенно адресуемую через

 

 

 

 

регистр указатель ячейку внешней памяти данных из аккумуля-

 

 

 

 

тора

1

24

PUSH

direct

Поместитьпрямо адресуемые данные в стек

2

24

POP

direct

Извлечь из стека прямо адресуемые данные

2

24

XCH

A,Rn

Поменять местами содержимое регистра и аккумулятора

1

12

XCH

A,direct

Поменять местами содержимое прямо адресуемого байта и

 

 

 

 

аккумулятора

2

12

XCH

A,@Ri

Поменять местами содержимое косвенно адресуемого байта и

 

 

 

 

аккумулятора

1

12

XCHD

A,@Ri

Поменять местами младшие тетрады косвенно адресуемого

 

 

 

 

байта и аккумулятора

1

12

Соседние файлы в предмете Интегрированные системы управления и проектирования