Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ

В первом варианте решения (пример 1) не используются команды битового процессора, хотя используется мнемоника MCS-51. Другие процессоры могут выполнить аналогичные действия, используя собственную мнемонику типа INPUT, OUTPUT, LOAD, STORE и т.д.

Благодаря возможностям проверки битов одна команда MCS51 может заменить последовательность "переслать/маскировать/условно перейти". Это

позволяет сократить программу (пример 2). Для удобства каждой входной переменной присвоено символическое имя.

Рисунок 9 – Аппаратное решение логической функции

Рисунок 10 – Программное решение логической функции

Более красивое решение (пример 3) получается с применением команд битового процессора, благодаря чему удается написать программу без команд условного перехода. При завершении программы полученный результат присваивается флагу переноса, который копируется на выходной вывод.

Таким образом ОМЭВМ семейства MCS-51 могут моделировать любую комбинационную схему с N-числом входов с помощью самое большее N+1 строк исходной программы: по одной строке на каждый вход и еще одна на сохранение результата. Возможное ограничение при моделировании большого числа входов и выходов определяется длиной программы и фиксированным числом выводов портов.

Пример 1. Использование команд с байтовыми операндами

BFUNC1

вычисляет логическую функцию 6 переменных путем загрузки байта маскирования соответствующих битов в аккумуляторе и выполнения условных переходов. Байты и маски соответствуют адресам и битовым позициям. (Используется для процессоров, ориентированных на работу с байтами)

OUTBUF

DATA

22H ; карта состояния выходов

TESTV:

MOV

A,P2

 

ANL

A,#00000100B

 

JNZ

TESTU

 

MOV

A,TCON

 

ANL

A,#00100000B

 

JZ

TESTX

TESTU:

MOV

A,P1

 

ANL

A,#00000010B

 

JNZ

SETQ

TESTX:

MOV

A,TCON

 

ANL

A,#00001000B

 

JNZ

TESTZ

 

MOV

A,20H

 

ANL

A,#00000001B

 

JZ

SETQ

TESTZ:

MOV

A,21H

 

ANL

A,#00000010B

 

JZ

SETQ

CLRQZ:

MOV

A, OUTBUF

 

ANL

A,#11110111B

 

JMP

OUTQ

SETQ:

MOV

A, OUTBUF

 

ORL

A,#00001000B

OUTQ:

MOV

OUTBUF, A

 

MOV

P3,A

Пример 2. Использование команд проверки битов

BFUNC2

вычисляет логическую функцию 6 переменных путем прямого опроса каждого бита. Биты обозначены в соответствии с символами, использованными в алгоритме (Используется возможность проверки битов)

U

BIT

Pl.l

V

BIT

P2.2

W

BIT

TF0

X

BIT

IE1

Y

BIT

20H.0

Z

BIT

21H.1

Q

BIT

P3.3

TEST_V:

JB

V,TEST_U

 

JNB

W,TEST_X

TEST_U:

JB

U,SET_Q

TEST_X:

JNB

X,TEST_Z

 

JNB

Y,SET_Q

TEST_Z:

JNB

Z,SET_Q

CLR_Q:

CLR

Q

 

JMP

NXTTST

SET_Q:

SETB

Q

NXTTST:

.

; продолжение программы

Пример 3. Использование битового процессора

FUNC3

Вычисляет логическую функцию 6 переменных с использованием возможностей битового процессора MCS-51.

 

MOV

C,V

 
 

ORL

C,W

; Выход вентиля ИЛИ

 

ANL

C,U

; Выход верхнего вентиля И

 

MOV

0F,C

; Сохранение промежуточного состояния

 

MOV

C,X

 
 

ANL

C,/Y

; Выход нижнего вентиля И

 

ORL

C,0F

; Использование ранее вычисленного значения

 

ORL

C,/Z

; Использование последней входной переменной

 

MOV

C,/Z

; Вывод результата

Страница:  1  2  3  4  5  6  7  8 


Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы