Shamrov_M_I_Telnov_G_G_Organizatsia_ustroystv_na_baze_protsessorov_maloy_razryadnosti
.pdf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
– 80 – |
|
|
|
|
|
|
|
|
|
|
|
||||
+5В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
правый нижний |
|
|
|
8 |
|
|
|
|
|
|
|
|
|
правая клавиша |
|
|
|
. |
|
. |
|
. |
|
. |
|
. |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
. |
|
. |
|
. |
|
. |
|
. |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
. |
|
. |
|
. |
|
. |
|
. |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SA |
|
|
|
|
|
|
|
ПС |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
платы |
левый верхний |
1 |
|
|
1 |
|
1 |
|
1 |
|
1 |
|
|
левая клавиша |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
схема |
||
|
ППИ |
B1 |
B2 |
B3 |
B4 |
B5 |
B6 |
B7 |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
A0 |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
|
|
|
В+5 |
Функциональная |
|
1 |
|
|
2 |
|
3 |
|
4 |
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
|
|
|
|
|
A0 |
A1 CS |
|
|
|
|
RD |
WR |
RES |
|
|
|
|
|
27. |
|
|
1 |
2 |
1 3 |
2 4 |
3 5 |
4 6 |
5 7 |
6 8 |
7 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. |
|
|
|
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПЗУ |
|
|
|
|
|
|
|
|
|
|
2K x 8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A0 |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
A9 |
A10 |
CS |
OE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
|
1 2 8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
|
|
|
|
|
A0 |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
A9 |
A10 |
A11 |
A12 |
A13 |
A14 |
A15 |
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
MRDC |
IORC |
IOWC |
RESET |
|
– 81 –
; |
|
ASEG |
|
|
АДРЕСА ПОРТОВ ППИ |
;ПОРТ ВВОДА |
|||
0000 |
PORTA |
EQU |
0 |
|
0001 |
PORTB |
EQU |
1 |
;ПОРТ ВЫВОДА |
0002 |
PORTC |
EQU |
2 |
;ПОРТ ВЫВОДА |
0003 |
PORTW |
EQU |
3 |
;ПОРТ УПРАВЛ. |
;АДРЕСА БУФЕРОВ СТРОК МАТРИЦЫ СВЕТОДИОДОВ
; |
(1 – ВЕРХНЯЯ; 5 – НИЖНЯЯ) |
|||
0801 |
LINE1 |
EQU |
0801H |
;СТРОКА 1 |
0802 |
LINE2 |
EQU |
0802H |
;СТРОКА 2 |
0803 |
LINE3 |
EQU |
0803H |
;СТРОКА 3 |
0804 |
LINE4 |
EQU |
0804H |
;СТРОКА 4 |
0805 |
LINE5 |
EQU |
0805H |
;СТРОКА 5 |
;ПОДПРОГРАММА ЧТЕНИЯ ПОРТА ВВОДА
;И ОТОБРАЖЕНИЯ СОСТОЯНИЯ КЛАВИАТУРЫ
;НА ВСЕ СТРОКИ МАТРИЦЫ СВЕТОДИОДОВ
8000 |
CD 54 80 |
CONTROL: |
ORG |
8000H |
CALL |
INIT |
|||
8003 |
CD 65 80 |
LOOP: |
CALL |
LIGHT |
8006 |
DB 00 |
|
IN |
PORTA |
8008 |
2F |
|
CMA |
LINE1 |
8022 |
32 01 08 |
|
STA |
|
8025 |
32 02 08 |
|
STA |
LINE2 |
8028 |
32 03 08 |
|
STA |
LINE3 |
802B |
32 04 08 |
|
STA |
LINE4 |
802E |
32 05 08 |
|
STA |
LINE5 |
8031 |
C3 03 80 |
|
JMP |
LOOP |
Рис. 28. Текст резидентных подпрограмм платы ПС (начало)
–82 –
;ПОДПРОГРАММА ОБНУЛЕНИЯ БУФЕРОВ СТРОК
;И НАСТРОЙКИ ППИ
8054 |
21 |
01 |
08 |
INIT: |
ORG |
8054H |
LXI |
H,LINE1 |
|||||
8057 |
1E |
05 |
|
NEXT: |
MVI |
E,5 |
8059 |
36 |
00 |
|
MVI |
M,0 |
|
805B |
23 |
|
|
|
INX |
H |
805C |
1D |
59 |
80 |
|
DCR |
E |
805D |
C2 |
|
JNZ |
NEXT |
||
8060 |
3E |
90 |
|
|
MVI |
A,90H |
8062 |
D3 |
03 |
|
|
OUT |
PORTW |
8064 |
C9 |
|
|
|
RET |
|
;ПОДПРОГРАММА ИНДИКАЦИИ НА МАТРИЦЕ СВЕТОДИОДОВ
;ЗНАЧЕНИЙ, НАХОДЯЩИХСЯ В БУФЕРАХ СТРОК
8065 |
21 |
01 |
08 |
LIGHT: |
LXI |
H,LINE1 |
8068 |
06 |
FE |
|
LIGHT1: |
MVI |
B,0FEH |
806A |
CD 75 80 |
CALL |
LGHT |
|||
806D |
23 |
|
|
|
INX |
H |
806E |
7D |
|
|
|
MOV |
A,L |
806F |
FE 06 |
80 |
|
CPI |
6 |
|
8071 |
C2 |
6A |
|
JNZ |
LIGHT1 |
|
8074 |
C9 |
|
|
LGHT: |
RET |
A |
8075 |
AF |
|
|
XRA |
||
8076 |
2F |
02 |
|
|
CMA |
PORTC |
8077 |
D3 |
|
|
OUT |
||
К8079 |
78 |
01 |
|
|
MOV |
A,B |
807A |
D3 |
|
|
OUT |
PORTB |
|
807C |
07 |
|
|
|
RLC |
B,A |
807D |
47 |
|
|
|
MOV |
|
807E |
7E |
|
|
|
MOV |
A,M |
807F |
2F |
02 |
|
|
CMA |
PORTC |
8080 |
D3 |
|
|
OUT |
||
8082 |
3E |
FF |
|
DELAY: |
MVI |
A,0FFH |
8084 |
3D |
84 |
80 |
DCR |
A |
|
8085 |
C2 |
|
JNZ |
DELAY |
||
8088 |
C9 |
|
|
|
RET |
|
|
|
|
|
|
END |
|
Рис. 28. Текст резидентных подпрограмм платы ПС (окончание)
–83 –
6.5.Изучение работы ППИ в режимах 0 и 1
сиспользованием платы М2
ПОДГОТОВКА К РАБОТЕ
1.С использованием настоящего учебного пособия изучить способы настройки и функционирование ППИ в режимах 0 и 1.
2.По настоящему учебному пособию изучить особенности включения ППИ на плате М2.
3.Подготовить программу для организации вывода через ППИ в режиме 0. Для этого по варианту задания из табл. 9 построить временную диаграмму двух периодических сигналов на выходах А0 и А1 канала A ППИ в соответствии с рис. 29. Сигналы должны иметь одинаковый период Т и заданные коэффициенты заполнения k (часть периода, в которой сигнал равен единице), сигнал А1 должен запаздывать относительно сигнала А0 на промежуток времени Т / n. Написать и закодировать программу, осуществляющую циклическую выдачу этих сигналов на выводы соответственно А0 и А1 ППИ в режиме 0. Команды, осуществляющие настройку ППИ на режим, должны находиться вне цикла выдачи данных. Требуемые задержки реализовать программным способом (целесообразно организовать для этого подпрограмму). Считать, что длительность такта равна 600 нс.
4.Подготовить программу для организации вывода через ППИ в режиме 1. Программа должна настроить канал А ППИ на вывод в режиме 1, разрешить выдачу сигнала запроса на прерывание (INTR) от канала А и осуществлять в цикле выдачу через канал А двоичного кода номера варианта. Команды, осуществляющие настройку ППИ на режим и разрешающие выдачу сигнала запроса на прерывание, должны находиться вне цикла
– 84 –
выдачи данных. Для организации вывода через ППИ в режиме 1 необходим сигнал подтверждения приема данных периферийным
устройством. В качестве сигнала подтверждения ( ACK ) использовать разряд РС4, настроенный на вывод в режиме 0. Определить порядок снятия временных диаграмм сигналов
готовности ППИ ( OBF ), подтверждения от периферийного
устройства ( ACK ) и запроса на прерывание (INTR) от канала А ППИ. Особое внимание обратить на необходимость синхронизации осциллографа одним и тем же сигналом при снятии осциллограмм всех трех сигналов.
|
T |
A0 |
T x k (A0) |
T / n |
T |
A1 |
T x k (A1) |
Рис. 29. Временная диаграмма для вывода в режиме 0
– 85 –
РАБОЧЕЕ ЗАДАНИЕ
1.Ввести в УМК программу формирования сигналов в режиме 0 ППИ и отладить ее в поцикловом режиме. Проверить правильность выдачи адресов и управляющих кодов на шины адреса
иданных в циклах записи в порт. Тип исполняемого машинного цикла можно определить по светодиодным индикаторам слова состояния машинного цикла. Во время пошаговой отладки целесообразно заменить обращения к подпрограмме задержки командами отсутствия операции (NOP).
2.Перевести УМК в непрерывный режим и измерить получившийся период Т одного из сигналов. По измеренному периоду скорректировать подпрограмму задержки таким образом, чтобы параметры сигналов соответствовали варианту задания.
3.Ввести в УМК программу вывода в режиме 1 ППИ и отладить ее в поцикловом режиме. Процедура отладки аналогична использованной для предыдущей программы.
4.Перевести УМК в непрерывный режим и снять осцилло-
граммы сигналов готовности ППИ ( OBF ), подтверждения от
периферийного устройства ( ACK ) и запроса на прерывание (INTR) от канала А ППИ.
СОДЕРЖАНИЕ ОТЧЕТА
−временные диаграммы сигналов для режима 0 (по варианту задания), для режима 1 (с дорисованным сигналом WR );
−тексты и коды программ.
– 86 –
Таблица 9
Варианты задания к лабораторной работе № 5 (вывод в режиме 0)
Вариант |
Т, мкс |
n |
k (A0) |
k (A1) |
1 |
200 |
4 |
0,25 |
0,75 |
2 |
300 |
3 |
0,2 |
0,5 |
3 |
400 |
4 |
0,75 |
0,1 |
4 |
500 |
5 |
0,4 |
0,2 |
5 |
600 |
3 |
0,75 |
0,2 |
6 |
700 |
7 |
0,25 |
0,25 |
7 |
800 |
4 |
0,75 |
0,5 |
8 |
900 |
6 |
0,6 |
0,25 |
9 |
1000 |
5 |
0,15 |
0,5 |
10 |
1100 |
4 |
0,25 |
0,6 |
11 |
1200 |
6 |
0,4 |
0,4 |
12 |
1300 |
4 |
0,5 |
0,25 |
13 |
1400 |
7 |
0,6 |
0,2 |
14 |
1500 |
3 |
0,2 |
0,3 |
15 |
1600 |
4 |
0,25 |
0,6 |
16 |
1700 |
4 |
0,2 |
0,5 |
17 |
1800 |
3 |
0,5 |
0,5 |
18 |
1900 |
4 |
0,5 |
0,25 |
19 |
2000 |
5 |
0,2 |
0,8 |
20 |
2100 |
7 |
0,8 |
0,2 |
–87 –
6.6.Использование ППИ для связи с клавиатурой
иматрицей светодиодов на плате ПС
ПОДГОТОВКА К РАБОТЕ Написать и закодировать программу, взаимодействующую с
клавиатурой и матрицей светодиодов по варианту задания. РАБОЧЕЕ ЗАДАНИЕ
1.Запустить с начального адреса 8000Н программу индикации, находящуюся в ПЗУ платы ПС. Убедиться в правильности ее исполнения для различных комбинаций нажатия клавиш.
2.Загрузить и отладить программу, подготовленную по варианту задания.
СОДЕРЖАНИЕ ОТЧЕТА
−вариант задания;
−укрупненная блок-схема программы для заданного
варианта;
−текст и коды программы для заданного варианта. ВАРИАНТЫ ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ № 6 1. На погашенном поле загораются светодиоды построчно
слева направо и сверху вниз. После заполнения всего поля в таком же порядке гаснут. Переход от одного светодиода к другому осуществляется с задержкой в 1 секунду.
2.На погашенном поле загораются светодиоды по столбцам сверху вниз и слева направо. После заполнения всего поля в таком же порядке гаснут. Переход от одного светодиода к другому осуществляется по нажатию любой клавиши.
3.На погашенном поле загораются светодиоды построчно слева направо и сверху вниз. После заполнения всего поля в таком
– 88 – |
– 89 – |
же порядке гаснут. Переход от одного светодиода к другому |
диагонали) и т.д. через каждую секунду до тех пор, пока не |
осуществляется по нажатию любой клавиши. |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
4. На погашенном поле загораются светодиоды по столбцам |
же порядке гаснут. |
сверху вниз и слева направо. После заполнения всего поля в таком |
10. На погашенном поле из правого нижнего угла начинает |
же порядке гаснут. Переход от одного светодиода к другому |
распространяться «волна». Вначале загорается один светодиод в |
осуществляется с задержкой в 1 секунду. |
углу, затем загораются все смежные с ним (в том числе и по |
5. На погашенном поле загораются светодиоды построчно |
диагонали) и т.д. через каждую секунду до тех пор, пока не |
слева направо и сверху вниз. После заполнения всего поля в таком |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
же порядке гаснут. Загораются и гасятся одновременно по 4 |
же порядке гаснут. |
светодиода через каждую секунду. |
11. На погашенном поле из левого верхнего угла начинает |
6. На погашенном поле загораются светодиоды построчно |
распространяться «волна». Вначале загорается один светодиод в |
слева направо и сверху вниз. После заполнения всего поля в таком |
углу, затем загораются все смежные с ним (в том числе и по |
же порядке гаснут. Загораются и гасятся одновременно по 4 |
диагонали) и т.д. по нажатию любой клавиши до тех пор, пока не |
светодиода по нажатию любой клавиши. |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
7. На погашенном поле из левого верхнего угла начинает |
же порядке гаснут. |
распространяться «волна». Вначале загорается один светодиод в |
12. На погашенном поле из правого верхнего угла начинает |
углу, затем загораются все смежные с ним (в том числе и по |
распространяться «волна». Вначале загорается один светодиод в |
диагонали) и т.д. через каждую секунду до тех пор, пока не |
углу, затем загораются все смежные с ним (в том числе и по |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
диагонали) и т.д. по нажатию любой клавиши до тех пор, пока не |
же порядке гаснут. |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
8. На погашенном поле из правого верхнего угла начинает |
же порядке гаснут. |
распространяться «волна». Вначале загорается один светодиод в |
13. На погашенном поле из левого нижнего угла начинает |
углу, затем загораются все смежные с ним (в том числе и по |
распространяться «волна». Вначале загорается один светодиод в |
диагонали) и т.д. через каждую секунду до тех пор, пока не |
углу, затем загораются все смежные с ним (в том числе и по |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
диагонали) и т.д. по нажатию любой клавиши до тех пор, пока не |
же порядке гаснут. |
образуется квадрат из зажженных светодиодов 5×5. Затем в таком |
9. На погашенном поле из левого нижнего угла начинает |
же порядке гаснут. |
распространяться «волна». Вначале загорается один светодиод в |
14. На погашенном поле из правого нижнего угла начинает |
углу, затем загораются все смежные с ним (в том числе и по |
распространяться «волна». Вначале загорается один светодиод в |
– 90 –
углу, затем загораются все смежные с ним (в том числе и по диагонали) и т.д. по нажатию любой клавиши до тех пор, пока не образуется квадрат из зажженных светодиодов 5×5. Затем в таком же порядке гаснут.
15.На погашенном поле слева возникает буква «Т». Ширина
–3 светодиода, высота – 5 светодиодов. Буква перемещается слева направо со скоростью 1 столбец за 1 секунду до тех пор, пока не достигнет правой стороны. После этого буква останавливается.
16.На погашенном поле слева возникает буква «Т». Ширина
–3 светодиода, высота – 5 светодиодов. Буква перемещается слева направо на один столбец по нажатию любой клавиши до тех пор, пока не достигнет правой стороны. После этого буква останавливается.
17.На погашенном поле справа возникает буква «П». Ширина – 3 светодиода, высота – 5 светодиодов. Буква перемещается справа налево со скоростью 1 столбец за 1 секунду до тех пор, пока не достигнет левой стороны. После этого поле гасится.
18.На погашенном поле справа возникает буква «П». Ширина – 3 светодиода, высота – 5 светодиодов. Буква перемещается справа налево на один столбец по нажатию любой клавиши до тех пор, пока не достигнет левой стороны. После этого поле гасится.
19.На погашенном поле возникает слева буква «Х». Ширина
–5 светодиодов, высота – 5 светодиодов. Через каждую секунду буква меняет свое положение на крайнее с противоположной стороны.
20.На погашенном поле возникает слева буква «Х». Ширина
–5 светодиодов, высота – 5 светодиодов. По нажатию любой клавиши буква меняет свое положение на крайнее с противоположной стороны.
–91 –
7.ОРГАНИЗАЦИЯ ТАЙМЕРА
7.1.БИС программируемого интервального таймера
К580ВИ53
Структурная схема БИС программируемого интервального таймера (далее – таймера) представлена на рис. 30. В его состав входят:
−три независимо функционирующих канала, основу каждого из которых составляют 16-разрядный вычитающий счетчик
ирегистр управляющего слова, задающий режим работы канала;
−двунаправленный буфер данных для связи с шиной данных микроЭВМ;
−устройство управления, осуществляющее адресную выборку таймера и обмен данными между каналами таймера и микроЭВМ.
Подключение таймера к шинам микроЭВМ обычно осуществляется следующим образом:
−входы А1, А0 подключаются к соответствующим разрядам шины адреса. При этом три счетчика и регистры управляющих слов адресуются как четыре порта со смежными адресами. Регистры управляющих слов всех трех каналов имеют один и тот же (старший из четырех) адрес;
−вход CS подключается к выходу дешифратора старших линий адреса. На вход такого дешифратора могут быть поданы разряды шины адреса А7–А2 (разрядность адреса порта в микропроцессоре К580ВМ80 – 8 бит);
−вход RD подключается к сигналу IORC шины управле-
ния;
–92 –
−вход WR подключается к сигналу IOWC шины управле-
ния;
−вход RESET подключается к сигналу RESET шины управления;
−двунаправленные выводы D7–D0 подключаются к шине
данных.
Все счетчики могут работать как в двоичном, так и в двоично-десятичном коде. Вычитающие импульсы подаются через независимые входы CLK на каждый канал и могут иметь частоту до
|
|
|
|
|
|
|
|
|
|
CLK0 |
Регистры |
|
|
|
|
|
Счетчик 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||
управляющих слов |
|
|
|
|
|
|
|
|
GATE0 |
|
|
|
|
|
|
|
|
|
|||
каналов |
|
|
|
|
|
|
|
|
|
OUT0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A0 |
|
|
|
|
|
|
|
|
|
|
|
|
CLK1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
A1 |
|
|
|
|
|
|
|
|
Счетчик 1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
GATE1 |
||||
|
|
|
|
|
Устройство |
|
|
|
|
|
|
|
|
|||
|
CS |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
управления |
|
|
|
|
|
|
|
|
|
OUT1 |
|
WR |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RD |
|
|
|
|
|
|
|
|
|
|
|
|
CLK2 |
||
D7-D0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
Счетчик 2 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||||
|
Буфер |
|
|
|
|
|
|
|
|
GATE2 |
||||||
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
данных |
|
|
|
|
|
|
|
|
|
OUT2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
– 93 –
2 МГц. На выходах OUT каналы формируют выходные сигналы, а входы GATE используются для разрешения работы каналов.
Перед запуском любого канала таймера, он должен быть инициализирован путем загрузки управляющего слова настройки (один байт) и начального значения счетчика (один или два байта). В процессе работы канала его текущее значение (один или два байта) может быть считано в микропроцессор. Эти операции обычно реализуются командами OUT и IN. Обмен данными между каналом и микропроцессором осуществляется побайтно. Если необходима пересылка двухбайтного слова, используются две команды, причем вначале пересылается младший байт, затем старший.
Операции, выполняемые с таймером, приведены в табл. 10.
|
|
|
|
|
|
|
|
|
|
|
Таблица 10 |
|
|
|
|
|
|
Операции с таймером |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сигналы управления |
|
|
|
Операция |
||||
CS |
А1 |
А0 |
|
WR |
RD |
|
|||||
1 |
|
~ |
~ |
|
~ |
|
~ |
|
Отсутствие операции |
||
0 |
|
~ |
~ |
|
1 |
|
1 |
|
Отсутствие операции |
||
0 |
|
0 |
0 |
|
0 |
|
1 |
|
Загрузка счетчика 0 |
||
0 |
|
0 |
0 |
|
1 |
|
0 |
|
Чтение из счетчика 0 |
||
0 |
|
0 |
1 |
|
0 |
|
1 |
|
Загрузка счетчика 1 |
||
0 |
|
0 |
1 |
|
1 |
|
0 |
|
Чтение из счетчика 1 |
||
0 |
|
1 |
0 |
|
0 |
|
1 |
|
Загрузка счетчика 2 |
||
0 |
|
1 |
0 |
|
1 |
|
0 |
|
Чтение из счетчика 2 |
||
0 |
|
1 |
1 |
|
0 |
|
1 |
|
Запись управляющего слова |
Рис. 30. Структурная схема БИС таймера
– 94 –
Формат управляющего слова, реализующего операции настройки канала таймера или защелкивания текущего состояния канала, представлен на рис. 31. Номер канала, для которого предназначено управляющее слово, задается в разрядах D7–D6. Разряды D5–D4 задают либо операцию настройки и указывают тип обмена данными между микропроцессором и каналом (только старшим байтом, только младшим байтом, или целым двухбайтным словом), либо операцию защелкивания. Режим работы каждого канала при операции настройки задается разрядами D3–D1. Настройка разных каналов производится независимо один от другого. Разряд D0 указывает, в каком коде должен работать счетчик – двоичном или двоично-десятичном. При операции защелкивания разряды D3–D0 могут принимать произвольные значения.
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Канал 0 – 00 |
|
|
|
|
|
|
0 – двоичный код |
Канал 1 – 01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 – двоично- |
|
Канал 2 – 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
десятичный код |
|
Запрещено – 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Защелкивание – 00 |
|
|
|
|
|
|
000 – режим 0 |
|
|
|
|
|
|
001 – режим 1 |
|
Младший байт – 01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
~10 – режим 2 |
|
Старший байт – 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
~11 – режим 3 |
|
Целое слово – 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
100 – режим 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 – режим 5 |
Рис. 31. Формат управляющего слова таймера
–95 –
ВК580ВИ53 предусмотрено шесть режимов работы каналов.
Режим 0 (сигнал прерывания по окончании счета). После
загрузки управляющего слова на выходе OUT устанавливается нулевой уровень. После загрузки данных счетчик начинает вычитать по каждому срезу CLK. При достижении счетчиком нулевого значения выход OUT устанавливается в единицу и остается таким до загрузки новых данных, при этом счетчик продолжает вычитать (вычитание единицы из нуля дает результат «все единицы» и далее вычитание может продолжаться циклически сколь угодно долго). Загрузка новых данных останавливает текущий счет (при обмене словом – в момент загрузки младшего байта) и запускает новый (при обмене словом – в момент загрузки старшего байта). При загрузке новых данных выход OUT сбрасывается в нуль. Счет разрешается при GATE=1 и приостанавливается при
GATE=0.
Режим 1 (программируемый мультивибратор). По переднему фронту сигнала GATE на выходе OUT формируется нулевой уровень, и счетчик начинает вычитать. При достижении счетчиком нулевого значения на выходе OUT устанавливается 1. Перезагрузка счетчика во время счета не изменяет длину текущего импульса. Появление фронта GATE перезапускает счетчик с новым или старым значением.
Режим 2 (генератор импульсов). На выходе OUT при
GATE=1 формируется сигнал, период которого больше периода CLK в N раз (N – данные, загруженные в счетчик). Счет запускается загрузкой данных (N). При этом вначале на N–1 периодов CLK на выходе OUT устанавливается единичный уровень, а затем на 1 период CLK – нулевой уровень. После этого значение N автоматически перезагружается в счетчик и период повторяется.
– 96 –
При GATE=0 на выходе OUT устанавливается 1, и счет останавливается. При возврате GATE=1 счет возобновляется от начального значения (N). Загрузка во время счета не останавливает счетчик, а новое значение N учитывается в следующем периоде сигнала OUT.
Режим 3 (генератор меандра). Этот режим отличается от режима 2 скважностью (заполнением) выдаваемого на выход OUT периодического сигнала. Период сигнала (как и в режиме 2) равен N. При четном N длительности единичного и нулевого уровней в каждом периоде сигнала равны, а при нечетном N длительность единичного уровня на один период CLK больше. При GATE=1 содержимое счетчика уменьшается на 2 по каждому срезу CLK. При достижении счетчиком нулевого значения состояние выхода OUT инвертируется, а значение N перезагружается в счетчик. После загрузки данных (как и в режиме 2) на выходе OUT вначале устанавливается единичный уровень, затем нулевой. Значение N=3 для загрузки в счетчик запрещено.
Режим 4 (программная задержка строба). После загрузки управляющего слова на выходе OUT устанавливается 1. После загрузки данных счетчик начинает вычитать. При достижении счетчиком нулевого значения на выход OUT выдается импульс нулевого уровня длительностью в один период CLK. После этого выход OUT снова принимает значение 1 и остается таким до загрузки новых данных, а счетчик продолжает вычитать. Перезагрузка счетчика во время счета приводит к его перезапуску (при обмене словом – в момент загрузки старшего байта). Счет разрешается при GATE=1 и приостанавливается при GATE=0.
Режим 5 (аппаратная задержка строба). Данный режим отличается от режима 4 тем, что запуск счета осуществляется только по фронту сигнала GATE. Перезагрузка счетчика в процессе
– 97 –
счета не влияет на длительность текущей задержки, а новое начальное значение будет использовано только при очередном перезапуске.
В процессе счета возможно считывание состояния канала, не останавливая счет. Для этого необходимо в соответствующем канале выполнить операцию защелкивания. При этом текущее значение счетчика запоминается в дополнительном внутреннем регистре. После выполнения операции защелкивания из соответствующего канала необходимо считать один или два байта в соответствии с установленным режимом (байт или слово). При установленном обмене словом после чтения младшего байта запрещается перезагрузка канала новым начальным значением до завершения операции чтения слова (до чтения старшего байта).
Таймер допускает чтение состояния считающего канала и без операции защелкивания, но пользоваться этим не рекомендуется: такой режим не является штатным для данной БИС. Кроме того, в этом случае невозможно считать два байта в один и тот же момент времени (при установленном обмене словом).
Таймер не имеет входа начальной установки, поэтому после включения питания все три канала оказываются в произвольном режиме.
Описание данной БИС приведено также в [2, 3, 5, 10, 11, 13].
–98 –
7.2.Организация процедур счета времени
сиспользованием таймера
Таймер может быть использован для счета времени в микропроцессоре или при формировании сигналов для периферийных устройств. Счет времени в микропроцессоре с помощью таймера может выполняться двумя основными способами:
−использованием системы прерываний;
−программным опросом.
При использовании системы прерываний сигнал OUT должен быть подан на один из входов запроса на прерывание микропроцессору. Такое подключение таймера, во-первых, позволяет максимально уменьшить время реакции микропроцессора на изменения в канале, а во-вторых, освобождает микропроцессор от постоянного опроса таймера, позволяя ему выполнять какуюлибо содержательную программу во время счета времени.
Программный опрос канала может быть выполнен путем периодического считывания сигнала OUT через дополнительный порт ввода, либо считыванием текущего значения счетчиков таймера. В случае считывания текущего значения счетчика, при установленном обмене словом, возникает проблема считывания двух байт в один и тот же момент времени. Решение этой проблемы возможно двумя путями:
−приостановкой работы счетчика выдачей сигнала GATE=0 или запретом сигнала CLK;
−выдачей в канал управляющего слова защелкивания.
–99 –
7.3.Описание платы ППИ
Лабораторная работа № 7 выполняется с помощью учебной микроЭВМ УМК и платы ППИ. Плата ППИ предназначена для расширения функциональных возможностей УМК:
−организации последовательного канала связи через БИС универсального синхронно-асинхронного приемопередатчика (УСАПП) К580ВВ51А (другое название – программируемый связной адаптер);
−организации временных процедур с помощью БИС программируемого интервального таймера К580ВИ53;
−выдачи звуковых сигналов через два встроенных динамика;
−увеличения объема памяти.
Функциональная схема платы ППИ приведена на рис. 32. Увеличение объема памяти достигается подключением БИС ПЗУ с ультрафиолетовым стиранием емкостью 2К байт (микросхема К537РФ2). Адреса ПЗУ не пересекаются с адресами внутреннего ОЗУ и ПЗУ УМК и задаются блоком переключателей SA1, подключенным к выходам неполного дешифратора DC1 старших 5 разрядов шины адреса УМК. При включении одного из переключателей соответствующий выход дешифратора подключается к входу выборки ПЗУ. Номера переключателей в блоке SA1 и назначаемые ими диапазоны адресов ПЗУ приведены в табл. 11. Выдача байта из
ПЗУ на шину данных УМК разрешается сигналом MRDC , формируемым в УМК.