- •Основные понятия и определения мпт
- •Основные характеристики и типы мп
- •Общие принципы построения мпс
- •Основные операции, выполняемые в мпс с 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.
Операция и выражения в языке Си.
Выражение – это последовательность операций операндов и разделительных символов.
Операнды – переменные, константы и более сложные выражения.
Два вида:
Унарные (1 операнд).
Бинарные (2 операнда).
По виду действий:
Арифметические;
Поразрядно логические;
Сдвига;
Логические;
Отношения.
Арифметические операции: +, -, /, *, %, ++, --
% - определение остатка от деления.
Int a=5, b=2, c;
C=a%b; //c=1 – остаток от деления
C=b%a; //c=2
++ - инкремент (+1)
-- - декремент (-1)
формы операций:
Префиксная – операнд располагается справа от знака операции: ++i.
Постфиксная - операнд располагается слева от знака операции: i++.
Для инкремента: в префиксной форме сначала операнд увеличивается на 1, а затем вычисляется выражение. В постфиксной форме выражения операнд подставляется в выражение, производится вычисление и только потом значение увеличивается на 1.
Int a=0, b=1, c, d;
C=a++; // c=0, a=1;
D=++b; // b=2, d=2;
Поразрядные логические операции.
& - логическое И (AND)
- логическое ИЛИ (OR)
^ - логическое исключающее ИЛИ (XOR)
~ - логическое НЕ (NOT)
все эти операции поразрядные.
Операции сдвига:
<< - сдвиг влево на число разрядов справа от операнда (выдвигаемые разряды теряются).
>> - сдвиг вправо (выдвигаемые разряды теряются).
Используются:
Для быстрого умножения и деления.
Для преобразования форматов.
Логические операции и операции отношения, используются для формирования логических выражений.
TRUE -1 и FALSE – 0.
= = - равно.
!= - не равно.
< – меньше.
> - больше.
<= - меньше или равно.
>= - больше или равно.
&& - логическое И.
- логическое ИЛИ.
! – логическое НЕ.
…
var1=15, var2=0;
!var1; //’=0
!var2; //=1
var1var2; //=1
var1&&var2; //=0
Преобразование типов в выражении.
Операнды могут быть различных типов, компилятор преобразует данные к одному типу перед вычислением.
Порядок преобразований: операции приводятся к старшему (более длинному) типу:
|
Long double |
double |
|
F |
|
Unsigned long |
|
Long |
|
Unsigned int |
|
Int |
|
Char |
Можно самим указать тип переменной: (type).
Int a=8, b=5;
Float var1, var2;
Var1 = a/b; // var1=10
Var2 = (float)a/(float)b; // var2=1,6
Приоритет операции и порядок их выполнения: необходимо ставить круглые скобки.
В компиляторе используется ускоренное вычисление логических выражений: вычисление прекращается тогда, когда результат уже ясен.
Выражение_1&&(выражение_2 выражение_3); если Выражение_1=0, то результат = 0.
Операции управления вычислительным процессом.
Ветвление;
Циклическое повторение;
Передача управления в определенное место программ.
Оператор if.
If (выражение)
Оператор_1;
Else
Оператор_2;
Если (выражение) истинно выполняется оператор_1, если ложно оператор_2.
If (выражение)
оператор_1;
оператор_12;
else
оператор_13;
/*ifelse.cpp */
#include <stdio.h>
#include <conio.h>
main ( )
char ch;
puts (“Будите продолжать? Введите y/n”);
if ((ch=getch ( ) = = ‘n’)
puts (“Конец работы”);
else
puts (“Работа продолжается”);
return 0;
Оператор switch.
Switch (целое_выражение)
case константа_1: оператор_1;
break;
case константа_2: оператор_2;
break;
…
break;
default: оператор_(n+1)
/*switch.cpp*/
#include <stdio.h>
main ( )
int k;
printf (“Введите целое число в пределах от1 до 4 для выбора”);
scanf (“%d”,&k);
switch (k)
case 1: printf (“Выбор 1\n”);
break;
case 2: printf (“Выбор 2\n”);
break;
case 3: printf (“Выбор 3\n”);
break;
case 4: printf (“Выбор 4\n”);
break;
default: printf (“Вводи значение правильно \a\n”);
return 0;
Оператор цикла.
While ...
Do ... while
While позволяет организовать цикл с предусловием:
While (условие) оператор;
Проверяется условие, и если оно истинно, то выполняется оператор, если неистинно, то оператор игнорируется.
While (условие)
оператор_1;
оператор_n;
/*while.cpp*/
#include <stdio.h>
main ( )
int dlina=0;
puts (“Введите произвольную строку, затем нажмите Enter”);
while (getchar ( )!=’\n’)
dlina ++;
printf (“Длина строки равна %d\n”, dlina);
return 0;
do ... while – оператор цикла с постусловием:
do
оператор;
while (условие);
Сначала выполняется оператор, затем проверяется условие, если оно истинно, то оператор выполняется ещё раз (до тех пор, пока условие не будет ложным).
Do
оператор_1;
оператор_n;
while (условие);
#include <stdio.h>
#include <conio.h> // Описание функции getch ( )
#define ESC 27 // Код символа ESC
main ( )
float a, b, res;
do
puts (“Введите два числа”);
scanf (“%f%f”, &a, &b);
res=a*b;
printf (“Произведение a*b равно %f \n”, res);
puts (“Нажатие клавиши ESC завершить работу”);
while (getch ( )!=ESC);
return 0;
пример программы, которая зацикливается:
int i=0;
while (i<60);
printf (“i=%d \n”);
i++;
Оператор цикла FOR.
Позволяет организовать определённое число повторений циклов.
For (выражение_1; выражение_2; выражение_3)
Оператор;
Выражение_1 определяет начальное значение параметра цикла.
Выражение_2 это условие окончания цикла.
Выражение_3 заданное изменение параметра цикла.
оператор_1;
оператор_n;
#include <stdio.h>
main ( )
int repeat;
for (repeat=1; repeat<=10; repeat++)
printf (“%d \n”, repeat);
return 0;

loat