Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ
Рисунок 4 – Форматы команд операций над битами
В зависимости от значения байта адреса прямо адресуемый бит выбирается из двух групп битов. Значения адреса от 0 (00Н) до 127 (7FH) определяют биты в 16-байтном блоке внутреннего ОЗУ между адресами 20Н и 2FH (см. рис.5а). Они пронумерованы последовательно от младшего бита младшего байта к старшему биту старшего байта. Адреса битов от 128 (80Н
) до 255 (0FFH) соответствуют битам регистров специальных функций. Адреса этих битов вычисляются иначе, чем адреса ячеек ОЗУ: пять старших битов адреса совпадают с собственными адресами регистров, а три младших бита адреса идентифицируют позицию бита в пределах регистра (см. рис.5б).
Хотя MCS-51 имеет 20 регистров специальных функций, побитовый доступ обеспечен только для 11 (PSW, АСС, В, P0, P1, P2, P3, TCON, SCON, IE, IP). У 6 из них (PSW, Р3, TCON, SCON, IE, IP) разряды имеют собственные символические имена (рис.6).
Команды общего назначения, адресующиеся непосредственно к битам, могут обращаться к ним (в том числе и к биту переноса), используя соответствующую мнемонику: CY, AC, F0 и т.д.
К битам всех 11 регистров также можно обратиться, используя соответствующее позиционное обозначение: PSW.1, АСС.2, В.З, Р0.4 и т.д.
Регистр АСС (аккумулятор) и регистр В относятся к байтовой арифметике, но их отдельные биты могут использоваться в программе в качестве произвольных 16 флагов. В сумме со 128 ячейками ОЗУ это дает 144 битовые ячейки общего назначения для хранения переменных или программных флагов.
Рисунок 5 – Адреса прямо адресуемых битов
Все 32 вывода портов Р0-РЗ могут индивидуально адресоваться как вход, выход или вход/выход в любой комбинации. Любой вывод может служить программно реализуемым стробом, тестовым входом или последовательным каналом ввода/вывода.
Для обработки битов регистров ОЗУ, не имеющих побитового доступа, могут быть использованы логические операции с байтами.
Регистр слова состояния программы PSW содержит биты флагов и состояния процессора, включая флаг переноса. Операции обработки байтов, воздействуя на регистр PSW, могут таким образом влиять и на бит переноса.
Рисунок 6 – Формат регистров специальных функций, имеющих символические имена прямо адресуемых битов
В языке ассемблера MCS-51, как показано в табл.3, адрес бита указывается одним из трех способов: числом или выражением, соответствующим прямому адресу бита; названием или адресом регистра, содержащего данный бит, и позицией бита в регистре (0-7), разделенными точкой; для определенных битов (рис.6) – указанием символического имени. Биты также могут обозначаться произвольными именами директивой ассемблера "BIT". Например, 5-й бит регистра PSW может быть очищен любой из четырех команд:
USR_FLG |
BIT PSW.5 |
; Описание символа пользователя |
CLR 0D5H |
; Абсолютная адресация | |
CLR PSW.5 |
; Использование точечного оператора | |
CLR F0 |
; Использование собственного имени бита | |
CLR USR_FLG |
; Символ пользователя. |
6. Применение битового процессора
Программная реализация последовательного порта. ОМЭВМ семейства MCS-51 могут программно принимать и передавать последовательные данные с использованием системы команд битового процессора. Поскольку любой вывод порта может служить последовательным входом или выходом, одновременно можно организовать несколько последовательных линий связи.
На рис. 7 показаны алгоритмы приема и передачи байтов данных. Программа будет обращаться к этому алгоритму 8 раз, синхронизируясь старт-битом, тактовым сигналом, программной задержкой или прерыванием от таймера. Данные принимаются путем опроса входного вывода, присвоения биту переноса состояния этого вывода, сдвига бита переноса в буфер данных и сохранения полученного значения в ОЗУ. Передача происходит путем сдвига содержимого буфера передаваемого байта через перенос и выдачи состояния флага переноса на выходной вывод.
Рисунок 7 – Алгоритмы последовательного порта ввода/вывода
На рис. 8 приведены программы, реализующие показанные на рис. 7 алгоритмы приема и передачи для трех различных микропроцессоров: 8085, 8048 и 8051. Программная реализация последовательного порта на MCS-51 наиболее эффективна. Представленные оценочные характеристики подтверждают эффективность реализации последовательного порта на базе MCS-51.
Решение уравнений комбинаторной логики. На рис. 9 показана реализация на ТТЛ-элементах функции шести переменных от U до Z, которая является решением уравнения
Q = (U × (V+W))+(X × Y)+Z.
Уравнения такого рода решаются с помощью карт Карно или аппарата алгебры булевой логики. Для сравнения выполним эту функцию тремя способами, ограничиваясь тремя подмножествами системы команд MCS-51.
Предположим, что U и V являются входными выводами некоторого порта, W и Х – биты состояния двух периферийных контроллеров, a Y и Z – программные флаги, ранее установленные в программе. Окончательный результат должен выдаваться на выходной вывод порта.
Первые два способа решения основываются на алгоритме, показанном на рис. 10, который может быть выполнен практически любым микропроцессором. Выполнение программы идет с проверками и ветвлением, до тех пор пока не будет получен результат, который выдается на порт.
8085 |
8048 |
8051 |
IN SERPORT |
MOV C,SERPIN | |
ANI MASK |
CLRC | |
JZ L0 |
JNT0 L0 | |
CMC |
CPLC | |
L0: LXI HL,SERBUF |
L0: MOV R0,#SERBUF | |
MOV A,M |
MOV A,@R0 |
MOV A,SERBUF |
RR |
RRC A |
RRCA |
MOV M,A |
MOV @R0,A |
MOV SERBUF,A |
8 команд |
7 команд |
4 команды |
14 байт |
9 байт |
7 байт |
56 состояний |
9 циклов |
4 цикла |
19 мкс |
22,5 мкс |
4 мкс |
а) подпрограмма ввода | ||
8085 |
8048 |
8051 |
LXI HL,SERBUF |
MOV R0,#SERBUF | |
MOV A,M |
MOVA,@RO |
MOV A,SERBUF |
RR |
RRCA |
RRCA |
MOV M,A |
MOV @R0,A |
MOV SERBUF,A |
IN SERPORT | ||
JC H1 |
JCHI | |
L0: ANI NOT MASK |
ANL SERPRT,#NOT MASK |
MOV SERPIN,C |
JMP CNT |
JMPCNT | |
H1: ORI MASK |
H1: ORL SERPRT,#MASK | |
CNT: OUT SERPORT |
CNT: | |
10 команд |
8 команд |
4 команды |
20 байт |
13 байт |
7 байт |
72 состояния |
11 циклов |
5 циклов |
24 мкс |
27,5 мкс |
5 мкс |
б) подпрограмма вывода | ||
Рисунок 8 – |
Подпрограммы последовательного ввода/вывода |
Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:
Поиск рефератов
Последние рефераты раздела
- Микроконтроллер системы управления
- Разработка алгоритмического и программного обеспечения стандарта IEEE 1500 для тестирования гибкой автоматизированной системы в пакете кристаллов
- Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi 7.0
- Разработка детектора высокочастотного излучения
- Разработка микропроцессорного устройства для проверки и диагностики двигателя внутреннего сгорания автомобиля
- Разработка микшерного пульта
- Математические основы теории систем