Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ
В первом варианте решения (пример 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 |
; Вывод результата | |||
Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:
Поиск рефератов
Последние рефераты раздела
- Микроконтроллер системы управления
- Разработка алгоритмического и программного обеспечения стандарта IEEE 1500 для тестирования гибкой автоматизированной системы в пакете кристаллов
- Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi 7.0
- Разработка детектора высокочастотного излучения
- Разработка микропроцессорного устройства для проверки и диагностики двигателя внутреннего сгорания автомобиля
- Разработка микшерного пульта
- Математические основы теории систем