- •Вторая лекция
- •Третья лекция
- •Четвертая лекция Карты Карно
- •Кдп Данные
- •Адрес Ячейки зу
- •Пятая лекция
- •Интерфейс
- •Шестая лекция
- •Часть с:__ функции
- •Режимы обмена
- •Дерево вызова процедур п ример с охранной сигнализацией
- •Микропроцессорный комплект с фиксированной разрядностью 580 серии
- •Машинные циклы
- •Система машинных команд кр580вм80
- •Формат команд
- •Команды передачи данных
- •00 110 110 00 000 001 - 1 Загружается в ячейку памяти,адрес которой записан в паре регистров h,l.
- •4.Stax, ldax - передача данных между регистрами а и ячейками памяти, адрес которых хранится- в паре регистров вс,de.
- •Формат команды: 00 ddd 101
- •Input, output - выполняется особый цикл чтения/записи во внешнее устройство, адрес ву в цикле обращения к ву выдается на 8 младших бит шины адреса.
- •1.Режим таймера - генератор временных интервалов
- •1.Вывод произвольных кодовых комбинаций, которые фиксируются до появления следующих.
- •Используется 4 способа адресации:
- •4.Неявная адресация.
1.Режим таймера - генератор временных интервалов
2.Режим счетчика внешних событий
ALE
INT
:32
START T
S TT
ТАЙМЕР
F
S
TOP
TCNT
R
T
1
JTF Adr
Команды работы с таймером-счетчиком:
START TCNT - переводит таймер в режим счета.
STOP TCNT - переводит таймер из режима счета в режим останова.
SET - установка таймера.
RESET - сброс таймера, осуществляется программным путем.
JTF Adr - переход по адресу, в который надо переместить счетчик.
MOV A,T, MOV T,A - считывание таймера.
По команде START T на вход счетчика подаются синхроимпульсы, получаемые от деления сигнала ALE на 32, 6МГц/32=12.5кГц, частота приращения счетчика 8мкс, это дает возможность получить задержки от 80 до 20 мсек.
Чтобы получить длительность менее 80 мсек, на вход T1 подают сигналы требуемой частоты, входная частота ограничена частотой 1 Мгц.
РЕЖИМ СЧЕТЧИКА СОБЫТИЙ
Включается по команде START TCNT , на вход счетчика подаются сигналы с выхода Т1, счет осуществляется по заднему фронту, длительность импульсов не менее 100 нсек.
STOP TCNT - сигнал на входе RESET , который останавливает счетчик, при переходе через максимальное значение счета это число составляет FF, устанавливаются нули в счетчике, счет продолжается дальше. В момент перехода формируется запрос на прерывание и устанавливается триггер индикатора прерывания TF.
По команде перехода по флагу таймера JTF Adr можно определить состояние триггера прерывания. По команде JTF и сигналу RESET триггер обнуляется, запрос на прерывание через схему “ИЛИ” соединен со входом INT. При обработке прерывания от таймера управление передается подпрограмме, адрес которой находится в ячейке 7 памяти программы. Запрос на прерывание от таймера автоматически или при его обслуживании, или по команде запрет прерывания.
DIS TCNTI - запрет прерывания от таймера
BN TCNTI - разрешение прерывания от таймера.
ВСТРОЕННЫЕ ЗУ
Имеют объем 64 байта, т.е. имеют 64 машинных слова, при этом первые 8 слов - РОН (R0 - R7), ячейки с 0 по 8 адресуются непосредственно, в команде указывается прямой адрес этой ячейки. Все 64 ячейки косвенно адресуются через любой из 2 регистров указателей адреса. расположенных в регистрах R0,R1 - это регистры указателей данных. Ячейки являются первым банком работы регистров. Глубина вложения - 8, занимает следующие после РОН 16 ячеек памяти.Ячейки стека двухбайтовые. Рабочими регистрами в 1-ом банке являются ячейки с 24 по 31, они также прямо адресуются.
О
ЗУ
0 -7 РОН РОН * RB0,RB1
8 - 23 Стек Рабочие
24 - 31 Рабочие
0 банк 1 банк
Карта памяти
При переключении на банк 1 создаются дополнительных два регистра указателя данных (R0* , R1* ).
Стек может быть использован как рабочие регистры.
ВСТРОЕННАЯ ПАМЯТЬ ПРОГРАММ
Встроенная память программ представляет собой перепрограммируемое ПЗУ, емкостью 1 кБт, используется для хранения управляющих программ и констант.
По внешнему сигналу RESET счетчик команд устанавливается на адрес “0”, далее счетчик контролирует адресную часть программы, т.е. указывает адрес ППЗУ.
В счетчике команд содержится адрес следующей команды, т.к. программа в ЗУ программ записывается в порядке возрастания адресов, то при выборке очередной команды его содержимое увеличивается на 1, 10 младших разрядов РС адресует встроенное ЗУ программ, записывается в направлении возрастания адресов. Старшие разряды (11.12) используются для выборки команд из внешней памяти, для реализации прерываний содержимое счетчика команд запоминается в паре регистров стека. Счетчик команд 12-разрядный.
12 11 10 9 7 0
РС
А
C A F B SP PSW
Y C 0 S 1
M F
2 0
B 1
SP - указатель стека
CY - бит переноса
AC - дополнительный перенос. десятичная коррекция
F0,F1 - флаги пользователя
BS - выбор банка регистров
MB - выбор банка памяти
Память программ разделена на 2 банка по 2 кБт каждый:
1 кБт встроенной памяти команд находится в первом банке
вся область каждого банка разделена на страницы по 256 байт.
PSW
Состоит из 8 бит, старший записывается в стеке и устанавливается по команде RETR -возврат из подпрограммы по прерыванию. Команда RET не возвращает на PSW. Разрядность 0 - 2 занимает УС. В разряде 3 всегда 1, он не используется, разряд 4 - номер банка, разряд 5 - флаг индикатора F0, по содержимому которого осуществляется переход по командам JF0, JF1. В разряде 6 содержится бит промежуточного переноса, выработанный командой ADD. используемый при десятичной коррекции DAA, 7 разряд - индикатор переноса переполнения аккумулятора.
ПРЕРЫВАНИЯ
Прерывание - один из способов обмена. Для прерывания МП имеет специальную линию INT, 0 - вызов прерывания. Линия INT контролируется в каждом машинном цикле во время действия сигнала ALE. При появлении 0 происходит переход к подпрограмме обработки прерывания по адресу 3 ЗУ программ после завершения всех циклов текущей программы. Содержимое счетчика команд и слова состояния записывается в стек. Обычно ячейка 3 содержит команды безусловного перехода к подпрограмме обработки прерываний, которая заканчивается командой RETR. До завершения подпрограммы обработки прерываний система не реагирует на запросы прерываний. Выполняемый запрос прерывания снимают перед завершением подпрограммы обработки прерываний, иначе процессор снова начнет его обработку. Для разрешения и запрещения прерывания используются команды ENT, DISI. Сигнал RESET запрещает прерывания, пока они не будут разрешены программно.
АРИФМЕТИКО - ЛОГИЧЕСКОЕ УСТРОЙСТВО
АЛУ выполняет следующие функции:
сложение с переносом ADDC
сложение без переноса ADD
операция “И” ANL
операция “ИЛИ” ORL
операция “Исключающее ИЛИ” XRL
увеличение содержимого аккумулятора на 1 INC A
уменьшение содержимого аккумулятора на 1 DEC A
обмен местами 4-х старших и младших разрядов аккумулятора SWAP A
очистка аккумулятора CLR A
десятичная коррекция аккумулятора DAA.
При переполнении старшего разряда А, в результате проведения операции в АЛУ, бит CARRY в PSW устанавливается в 1.
При выполнении операции двоично-десятичного сложения устанавливается флаг промежуточного переноса AC (при переносе из третьего разряда в четвертый). Аккумулятор содержит один из операндов, туда же помещается и результат. Обмен через канал ввода-вывода осуществляется через аккумулятор.
Дешифратор команд.
Каждая операция процессора задается с помощью кода команды, который помещается в регистр команд и преобразуется в сигналы, управляющие АЛУ, т.е. дешифрируются. Если команда двухбайтовая, то первый байт помещается в регистр команд, а второй в дополнительный регистр - промежуточный. После дешифрации происходит переход к выполнению команды. При выборке команд процессор передает сначала адрес из счетчика команд в память программ, затем из памяти программ возвращается выбранный байт, который процессор запоминает в регистре команд.
УВВ
Для ввода-вывода в МК-48 используется 27 линий, которые сгруппированы в 3 порта (0,1,2) по 8 выводов, кроме того имеется 3 вывода тестирования (Т0,Т1,INT). Для изменения хода программы по командам условного перехода используются выводы Т0,Т1,INT - вход для запроса прерываний.
8-разрядные порты (1 и 2) имеют одинаковые характеристики и структуру цепей ввода-вывода, которые позволяют служить каждому выводу порта 1 и 2 в качестве входа, выхода или и того, и другого. При выполнении вывода данные на выходах порта 1 и 2 удерживаются до появления следующей серии данных, а при вводе данные не фиксируются, т.е. вводимые данные должны сохранятся на входах, пока они не будут считаны. По команде RESET порты устанавливаются в 1 - можно ввести данные, 0 - порт занят. Ввести данные на 1-ый и 2-ой порты можно путем изменения уровня отдельных выводов с высокого (1) на низкий (0). Изменить же на некотором выводе низкий уровень на высокий за счет изменения уровня внешних сигналов нельзя. Т.о. порты 1 и 2 имеют следующие возможности:
