- •Основные понятия и определения мпт
- •Основные характеристики и типы мп
- •Общие принципы построения мпс
- •Основные операции, выполняемые в мпс с 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.
Массивы строк.
Организуются также как и массивы др. типа.
Char name [ 10 ] [ 20 ];
строки Max число симв. в строке
Язык CI позволяет вводить и выводить строки целиком:
Gets () – Ввод
Puts () – Вывод
# include < stdio.h >
main ()
{
char name [ 10 ] [ 20 ];
int index;
for ( index = 0; index<10; index++);
gets ( name [ index ] );
for ( index = 0; index<10; index++)
puts ( name [ index ] );
return 0;
}
Массивы – указатели.
Массивы могут иметь любой тип, в т. ч. они м. б. указателями ( для компактного располож. в памяти строк и структур – удобны для динамич. выделения памяти)
Массив – указатель д. б. описан ( при описании может выполняться иниц – ия его эл-ов )
Char *messages [ 10 ];
Указатель из массива содержит адрес первого эл-та строки. Часто массивы иниц-ся:
Char *messages [] = { “ Не открыт файл ”, “ Ошибка диска ”, ” Ошибка ввода ”, ” Тайм – аут ” };
Типы, определяемые пользователем.
Переименование типов:
Typedef – ключ. слово позволяет присвоить базовому типу новое имя.
Typedef тип новое_имя_типа;
Байт – 8 бит – unsigned char
Слово – 16 бит – 32 бита – unsigned long
…..
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
….
BYTE b1,b2, b3;
…..
WORD w1, w2;
Структуры:
Структурой или структ. переменной наз. объединение одной или более переменных, возможно разных типов, имеющей одно имя, отдельные составные части структ. переменной наз. полями.
1. Обозначается место в памяти, где распологаются инф-ция – это место наз. структ. переменной.
2. Правило формирования структ. переменной, кот. используется компилятором для выделения области в памяти и организации обращения к ее памяти: это наз. шаблонами.
Структ. переменная д. б. описана:
1.Задание шаблона структуры.
2.Собственно описание структ. переменной.
Синтаксис задания шаблона:
Struct имя_шаблона
{
тип 1 имя_поля;
тпп 2 имя_поля;
….
Тип n имя_поля;
};
struct BOOK
{
char name [ 20 ]; // ФИО автора
char title [ 44] ; // Название
int gear; // Год издания
float price; // Цена
};
Указание шаблона не приводит к выделению памяти.для выдел. памяти надо определить структ. переменную ( тип определяется шаблоном )
Struct BOOK dog_book;
20+44+2+4=70 байт
sizeof ( struct BOOT ) – возвратит результат 70 байт.
Доступ к памяти структуры производится с помощью операции ‘ .’
Сначала указ.
Имя структ. переменная . имя поля
Dog_book . gear = 1998;
Strcpy ( dog_book . title, “ Белый Бим Черное ухо” );
Разрешается выполнять иниц-ию структурной переменной.
Struct BOOK dog_book = { “ Траепольский Г.Н. ”,” Белый Бим Черное Ухо”, 1980,2,78};
Typedef struct
{ ;
char name [ 20 ];
char name [ 44 ];
int gear;
float price;
}BOOKS;
BOOKS dog_book; child_book;
Указатели на структурную переменную.
Typedef struct
{
char name [ 20 ];
char title [ 44 ];
int gear;float price;
}BOOKS;
main ()
{
BOOKS first_book, *ptr;
Ptr = & first_book;
First_book = gear = 1992;
Strcpy ( first_book = name, “ Толстый Л.Н. ”)ж
….
Массивы структурных переменных.
Typedef struct
{
char name [ 20 ];
char title [ 44 ];
int gear;
float prite;
}BOOKS;
BOOKS library [ 50 ];
Int index;
Library [ index ]. Gear = 1990;
BOOKS *ptr;
Ptr = & library;
( ptr + index ) – gear = 1992;
Использование структур в функциях.
1.Передача по значению при вызове ф-ии пар-ры записываются в стек, при выходе из ф-ции – пар-ры восстанавливаются.
2.По ссылке ( использование указателей ) в ф-цию, передается только адрес структуры.
Недостаток – ф-ция может изменить данные.
Достоинство – быстрая работа.
2. # include < stdio.h >
# include < string.h >
typedef struct
{
….
}BOOKS;
void example ( BOOKS *first );
main ()
{
BOOKS ret;
Example ( & ret );
Printf ( “ % -20s % -40; Год издания % d, Цена -%2а”, ret – name, ret – title, ret – gear, ret – price );
Return 0;
}
void example ( BOOKS * first )
{
strcpy ( first – name, “ Толстой Л.Н. ” );
strcpy ( first – title, “ Крайцерова соната ” );
first – year = 1990;
first – price = 5.25;
На экране: Толстой Л.Н. Крайцерова соната год издания 1990 цена 5,25
