- •Основные понятия и определения мпт
- •Основные характеристики и типы мп
- •Общие принципы построения мпс
- •Основные операции, выполняемые в мпс с 3-мя шинами
- •Прямой доступ к памяти
- •Микропроцессор кр580вм80а (вм80)
- •Программная модель портов ввода-вывода
- •Внутренняя структура
- •Программная модель мпс
- •Программная модель памяти
- •Анализ работы мп вм80
- •Машинные такты и циклы
- •Слово состояния процессора
- •Временные диаграммы сигналов мп
- •Режимы работы мп
- •Построение отдельных модулей мпс
- •Основные параметры мс пзу
- •Принцип построения внутренней памяти мпс
- •Построение модуля пзу
- •Построение модуля озу
- •Построение двухстраничного модуля памяти
- •Модуль ввода-вывода
- •Реализация модуля ввода-вывода при раздельном поле адресов памяти и портов
- •Схемотехника модуля ввода-вывода
- •Порт ввода:
- •Построение модуля прерывания.
- •Микропроцессор вм85.
- •Система прерываний мп вм85.
- •Ввод и вывод последовательных данных.
- •Построение модуля центрального процессора мп вм85.
- •Система команд мп.
- •Язык Ассемблера.
- •Псевдокоманды Ассемблера.
- •Методика разработки программного обеспечения.
- •Процедура обработки данных.
- •Виды программного обеспечения ( по ) мпс.
- •Подпрограммы как средства модульного программирования.
- •Иерархическая организация подпрограмм.
- •Применение таблиц.
- •Программирование цифровых вычислительных устройств.
- •Арифмитические операции с целыми числами без знака.
- •Быстрое умножение и деление двоичных чисел.
- •Сложение десятичных чисел
- •Преобразование двоичных чисел в десятичные и наоборот.
- •Операции с целыми двоичными числами со знаком !
- •Дробные числа.
- •Арифметические операции с числами с пз
- •Бис параллельного интерфейса
- •Бис последовательного интерфейса кр580вв51а
- •Внутренняя структура бис кр580вв51а
- •Программирование бис вв51а
- •Формат инструкции асинхронного режима работы
- •Формат инструкции синхронного режима работы
- •Формат инструкции команды
- •Формат слова состояния
- •Бис программируемого таймера кр580ви53 (i8253)
- •Программирование таймера
- •Применение мп в системах управления и контроля
- •Работа мк с дискретными сигналами
- •Борьба с дребезгом контактов
- •Формирование управляющих сигналов
- •Методы управления отдельными линиями порта ввода
- •Формирование временных задержек
- •Управление дискретными нагрузками от мпс
- •Сопряжение ацп с мпс
- •Интерфейс быстрых ацп с мпс
- •Интерфейс с 10-разрядным ацп
- •Интерфейс медленных ацп с мпс
- •Сопряжение цап с мпс
- •Устройство сбора и распределения данных
- •Организация связи мпс с оператором.
- •Управление индикаторами линейного дисплея.
- •Программа управления дисплеем с использованием таймера.
- •Интерфейс дисплея с клавиатурой.
- •Программируемый контроллер кр580вв79 с клавиатурой и дисплеем.
- •Программирование кр580вв79.
- •Слово состояние контроллера.
- •Методы ввода данных с клавиатуры.
- •Общая характеристика языков программирования.
- •Структура простейшей программы на языке Си.
- •Представление информации в языке Си.
- •Типы данных.
- •Переменные.
- •Строковые переменные и константы.
- •Элементарный ввод вывод в Си.
- •Операция и выражения в языке Си.
- •Преобразование типов в выражении.
- •Операции управления вычислительным процессом.
- •Функции языка Си.
- •Библиотечные функции.
- •Функции для работы с портами ввода вывода.
- •Видимость переменных.
- •Классы хранения переменных.
- •Операции присвоения.
- •Условная операция.
- •Операция sizeof (определение размера).
- •Указатели.
- •Массивы и функции
- •Операции со строками
- •Массивы строк.
- •Массивы – указатели.
- •Типы, определяемые пользователем.
- •Операции с файлами.
- •Обмен инф-ции с файлами.
- •Часть 3 Разработать мк для управления насосом напорной башни.
- •Интерфейс мпс.
- •Организация интерфейсов.
- •Структура интерфейса:
- •Организация линий интерфейса.
- •Передача по однонаправленным линиям связи.
- •Передача по двухпроводной линии.
- •Интерфейс ирпр ( bs – 4421 )
- •Пример подключения ппа кр580вв55а.
- •Драйверы обмена оирпр.
- •Последовательный интерфейс.
- •Драйверы для работы интерфейса.
- •Аппаратное квитирование передачи данных.
- •Интерфейс коп (канал общего пользования).
- •Команды интерфейса коп.
- •Транспортная передача данных.
- •Сопряжение устройств управления и контроля с пк.
- •Интерфейсная часть ус.
- •Подключение устройств к порту принтера.
- •Подключение устройств сопряжения к компьютеру через последовательный порт.
- •Интерфейсная шина i2c.
Программируемый контроллер кр580вв79 с клавиатурой и дисплеем.
Функционально БИС делится на две части:
Клавиатурная (управляет работой клавиатуры или матрицы датчиков)
Дисплейная
Имеется оперативная память (восемь ячеек – восемь байтов): в режиме ввода датчиков – как обычная ОЗУ; в режиме работы с клавиатурой – как регистр FIFO.
Дисплейная часть рассчитана на работу с семисегментными индикаторами. Имеется ОЗУ для вывода данных на индикаторы (шестнадцать ячеек).
Д – выводы шины данных;
АО – шина адреса;
СS – выбор МС;
RD – строб чтения;
WR – строб записи;
СLK – сигнал для тактовых импульсов fmax = 2 mГц;
RESET – вход сброса начальной установки «1» - во всех регистрах 0;
Ucc – питание +5 В;
SND – земля;
RL0 ... RL7 – линия возврата (байт возврата при опросе клавиатуры);
SHIFT – линия сдвига;
CTRL/
- линия управления или стробирования;
SL0 ... SL3 - линия сканирования (вырабатывается сканирующий код);
DSPA0 ... DSPA3 – младший такт линии управления;
DSPB0 ... DSPB3 - старший такт линии управления;
BD – вывод бланкирования (гашения дисплея);
IRQ – вывод сигнала запроса прерывания.
Программирование кр580вв79.
Программная модель контроллера:
0000 |
Ячейка 0 |
|
Ячейка 1 |
000 |
0001 |
Ячейка 1 |
|
Ячейка 2 |
001 |
|
ОЗУ дисплея |
|
ОЗУ клавиатуры / портов вывода |
|
1111 |
Ячейка 15 |
|
Ячейка 8 |
111 |
Команды для управления контроллера:
общие (используются во всех режимах);
управляющие дисплеем;
управляющие клавиатурой (портами ввода).
Тип команды |
Наименование |
Общие |
|
Команды управления дисплеем |
|
Управление клавиатурой (портами ввода) |
|
Команды установки режимов работы.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
0 |
Д |
Д |
К |
К |
К |
|
|
|
|||||
Тип команд |
Управление дисплеем |
Управление клавиатурой |
|||||
Д |
Д |
|
|
0 |
0 |
Восьми позиционный дисплей |
Ввод слева |
1 |
0 |
Ввод справа |
|
0 |
1 |
Шестнадцати позиционный дисплей |
Ввод слева |
1 |
1 |
Ввод справа |
|
Пример ввода числа 245 слева:
2 |
|
2 |
… |
||
4 |
|
2 |
4 |
… |
|
5 |
|
2 |
4 |
5 |
… |
Пример ввода числа 245 справа:
… |
2 |
|
2 |
||
… |
2 |
4 |
|
4 |
|
… |
2 |
4 |
5 |
|
5 |
К |
К |
К |
Примечание |
|
0 |
0 |
0 |
Режим ввода с клавиатуры с обнаружением двух и более нажатых клавиш |
Кодирование SL0 … SL3 |
0 |
0 |
1 |
Декодирование SL0 … SL3 |
|
0 |
1 |
0 |
Режим ввода с клавиатуры без блокирования ввода одновременно нажатых клавиш |
Кодирование SL0 … SL3 |
0 |
1 |
1 |
Декодирование SL0 … SL3 |
|
1 |
0 |
0 |
Опрос восьми портов ввода |
Кодирование SL0 … SL3 |
1 |
0 |
1 |
Декодирование SL0 … SL3 |
|
1 |
1 |
0 |
Режим стробируемого ввода |
Кодирование SL0 … SL3 |
1 |
1 |
1 |
Декодирование SL0 … SL3 |
Кодирование – на линейное кодирование вырабатывается двоичный код (бегущий ноль).
Д
екодирование
– с выхода контроллера идет действительный
код сканирования (бегущая 1).
Программная очистка.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1 |
1 |
0 |
Д |
Д |
Д |
F |
0 |
F – сброс регистра слова состояния и сброс сигнала запроса прерывания.
0 – бит общей очистки FIFO, ОЗУ дисплея.
Д |
Д |
Д |
Примечание |
0 |
0 |
Х |
Запись в ОЗУ нулей (гашение индикаторов) |
0 |
1 |
0 |
Запись в ОЗУ кода пробела |
0 |
1 |
1 |
Запись в ОЗУ единиц (горение всех сегментов) |
Код пробела: 20Н = 00100000В
Управление частотой сканирования.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
1 |
Р |
Р |
Р |
Р |
Р |
Р – коэффициент деления.
Условные регистры:
РУС – при А0 = 1
DAN – при А0 = 0
Пример: произвести инициализацию контроллера со следующими параметрами: произвести ввод данных с клавиатуры с блокировкой, шестнадцати позиционный дисплей, ввод слева, частота сканирования 5 кГц, частота синхронизации 2 мГц.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
fclk – 2 мГц
f1 = 2000/100 = 20 кГц
f2 = fskan = 5 кГц
Кдекг = 4
INIT1 |
MVI A,001H |
Управляющее слово |
|
OUT РУС |
|
|
MVI A,008H |
Команда режима |
|
OUT РУС |
|
|
MVI A,24H |
Установка частоты сканирования |
|
OUT РУС |
|
Чтение из ОЗУ дисплея.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
1 |
1 |
АI |
А |
А |
А |
А |
|
|
|
|
|
|
|
|
Признак команды |
|
Адрес ячейки ОЗУ дисплея |
|||||
АI – бит автоинкремента адресации (автоматически увеличивает адрес после каждой команды чтения).
Запись в ОЗУ дисплея.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1 |
0 |
0 |
АI |
А |
А |
А |
А |
Пример: составить программу чтения кода символа, отображается на пять позиций дисплея.
01100101 = 65Н
MVI A,65H
OUT РУС
IN DAN ; в регистре А – содержимое ячейки 0101
Пример: составить программу для вывода «,» на вторую позицию дисплея.
01100010 = 62Н
MVI A,62H;
OUT РУС;
IN DAN;
ORI 10000000B ; установить Д7 = 1
MOV C,A;
MVI A,82H; – 10000010В
OUT РУС ; команда записи
MOV A,C;
OUT DAN;
Бланкирование – запрещение записи.
При вводе информации данные помещаются в ОЗУ ввода:
режим опроса портов ввода (можно опрашивать восемь восьмиразрядных портов ввода, данные из каждого порта помещаются в ОЗУ ввода).
000 |
Ячейка 0 |
001 |
Ячейка 1 |
|
|
111 |
Ячейка 7 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
1 |
0 |
АI |
Х |
А |
А |
А |
|
|
|
|
|
|
|
|
|
|
|
|
|
Адрес ячейки ОЗУ ввода |
||
режим опроса клавиатуры, (ОЗУ организована по принципу FIFO – прочитать можно только верхушку регистра; при каждом нажатии данные записываются снизу).
0 |
1 |
0 |
Х |
Х |
Х |
Х |
Х |
Пример: прочитать код нажатой клавиши.
MVI A,40H
OUT РУС
IN DAN
