Блок – схема алгоритма написания функции записи
В итоге по тактам сформированы данные для записи в регистр 0x37A (RC)
Функция записи в регистр RC микропроцессорного модуля БУ УРТК по формату Centronics
606.50K
Категория: ЭлектроникаЭлектроника

Формирование данных с их записью в регистры по формату порта Centronics

1.

Формирование данных
с их записью в регистры
по формату порта Centronics
04.01.2017
1

2.

Что нужно знать при написании функции записи данных в регистр
RC микропроцессорного модуля БУ УРТК по формату Centronics
1. Назначение разрядов регистра управления
Centronics (слайд 3),
2. Временную диаграмму для записи в регистры
0x378 и 0x37A (слайд 4),
3. Общий алгоритм написания функции (слайд 5),
3. Правила формирования данных по тактам и
правила формирования байтов (слайды 6-7),
4. Соответствие между числами в разных системах
счисления (слайд 8), и использование кодов в функции
записи (слайд 9),
5. Некоторые библиотечные функции outport (), delay()
(слайд 10) ,
6. Правила использования функции записи (слайд 11).
04.01.2017
2

3.

Назначение разрядов регистра управления Centronics
Номер
разряда
Название
Инверсия
Назначение разряда
0
RD
Да
Строб чтения данных из СУ
1
A0
Да
Младший разряд шины адреса
2
WR
Нет
Строб записи данных в СУ
3
A1
Да
Старший разряд шины адреса
Не используется. Должен быть равен 0
4
5
B5
Нет
Дополнительный бит для режима чтения
6
Не используется. Должен быть равен 0
7
Не используется. Должен быть равен 0
04.01.2017
3

4.

1
2
3
4
5
6
7
8
0x378
1
Data
А1 А0
1 1
0
1
Ad r
0
1
RD
0
0x37A
1
WR
А1 А0
0 0
0
1
B5
0
Начало 1-го такта
Начало 7-го такта
Временные диаграммы формирования байтов для записи в
регистры
04.01.2017
4

5. Блок – схема алгоритма написания функции записи

04.01.2017
5

6.

Формируем данные по тактам
1-й такт :
RD~0 , A0~0 , WR~1 , A1~0 , 0 , 0 , 1 , 0
см. слайд8
2-й такт :
RD~0 , A0~0 , WR~1 , A1~0 , 0 , 0 , 1 , 0
см. слайд 8
3-й такт :
В регистр 0x378 байт
btt пишется целиком
см. слайд 1
4-й такт :
RD~0 , A0~0 , WR~0 , A1~0 , 0 , 0 , 0 , 0
см. слайд 8
5-й такт :
Устанавливается задержка перед записью в RC
см. слайд 9
04.01.2017
6

7.

Формируем данные (продолжение)
6-й такт :
RD~0 , A0~0 , WR~1 , A1~0 , 0 , 0 , 1 , 0
см. слайды 8 и 9
7-й такт :
На этом такте ничего не изменяется (см. слайд 9)
8-й такт :
На этом такте регистр RC устанавливается
в исходное состояние
04.01.2017
7

8.

Таблица соответствия
между
числами в разных
системах счисления
04.01.2017
ð = 10
ð=8
ð = 16
ð=2
0
0
0
0000
1
1
1
0001
2
2
2
0010
3
3
3
0011
4
4
4
0100
5
5
5
0101
6
6
6
0110
7
7
7
0111
8
10
8
1000
9
11
9
1001
10
12
A
1010
11
13
B
1011
12
14
C
1100
13
15
D
1101
14
16
E
1110
15
17
F
1111
8

9. В итоге по тактам сформированы данные для записи в регистр 0x37A (RC)


00000100 ~ 0x04 или outportb(0x37A,0x04);
00000100 ~ 0x04 или outportb(0x37A,0x04);
Байт btt пишется целиком~outportb(0x378, btt);
00000000 ~ 0x00 или outportb(0x37A,0x00);
Задержка 2-7 ms или delay(5);
00000100 ~ 0x04 или outportb(0x37A,0x04);
! На 7-м и 8-м такте ничего не меняется,
поэтому операторы можно не писать
При записи в RC байт btt может иметь значение
одной из констант 11h, 12h, 13h, 14h (см. слайд 2)
04.01.2017
9

10. Функция записи в регистр RC микропроцессорного модуля БУ УРТК по формату Centronics

void wbtr (unsigned int regN, unsigned char btt) {
//register number 0 - RC, 1 - RD
outportb(0x37A,0x04);
if (regN==0){
outportb(0x37A,0x04);
outportb(0x378,btt);
outportb(0x37a,0x00);
delay(5);
outportb(0x37A,0x04);
}
if (regN==1){ для RD написать самостоятельно }
04.01.2017
10

11.

Использование функций записи в
программах управления
Пример: /*Фрагмент программы, осуществляющей
движение робота по степени М1 в отрицательном направлении*/

wbtr (0x00, 0x11); //в регистр RC записываем управляющий байт
wbtr (0x01, 0x80);//включаем обмотку возбуждения двигателя M1
wbtr (0x01, 0x02);//включаем якорную обмотку двигателя M1

04.01.2017
11
English     Русский Правила