- •Основные понятия и определения мпт
- •Основные характеристики и типы мп
- •Общие принципы построения мпс
- •Основные операции, выполняемые в мпс с 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 до нескольких функций. Функция это логически самостоятельная именованная часть программы, которой можно передавать параметры и которая может возвращать какое-то значение.
Формат определения функции:
Возвращаемый_тип имя_функции (тип параметр_1, … тип параметр_n)
описание данных;
оператор_1;
оператор_n;
return (выражение);
Если функция не возвращает ничего, то вместо возвращаемого типа пишется void, тогда в теле функции оператор return не нужен.
Если возвращаемый тип не указан, то по умолчанию int.
Имя функции любое, разрешённое в языке Си.
В ( ) список параметров или аргументов, через запятую, для каждого параметра указывается тип.
Если никакие параметры не передаются, то:
Имя_функции (void)
Имя_функции ( )
Пример функции:
Int mul (int a, int b)
return;
void output (float x)
printf (“Значение x=%f \n”, x);
int input ( ) //или int input (void)
int i;
puts (“Введите целое число:”);
scanf (“%d”, &i);
return i;
Функция должна быть определена раньше, чем она использовалась в программе.
Использование прототипов (он указывает тип возвращаемого функцией значение и типы параметров, используемой в функции).
Формат прототипа:
Возвращаемый_тип имя_функции (тип параметр_1, … тип параметр_n);
Int mul (int a, int b);
Void output (float x);
Int input ( );
#include <stdio.h>
int sqr (int x); // прототип
main ( )
int t=10;
printf (“Квадрат числа %d равен %d \n”, t, sqr (t));
return 0;
int sqr (int x) // определение функции
x=x*x;
return x;
x – формальный параметр.
t – фактический параметр.
Библиотечные функции.
Среда помощи – F1.
Заголовочные файлы - .h (в них содержатся прототипы функций):
Stdio.h – для функций ввода вывода.
Conio.h – для работы с клавиатурой.
Dos.h – функции ОС ДОС.
Math.h – математические функции.
Sound (unsigned int) – звук, частота которой задается параметром, Гц.
Nosaund ( ) – нет звука.
Delay (unsigned int) – задержка в мсек.
Int kbhit – возвращает 0, если не нажата ни одна из клавиш, если клавиша нажата – возвращает код этой клавиши.
/*sound.cpp*/
#include <stdio.h>
#include <dos.h> //прототипы функций
sound ( ), nosound ( ), delay
#include <conio.h> //прототип функции kbhit ( )
main ( )
unsigned freq;
printf (“Введите значение частоты (целое от 50 до 5000)”);
scanf (“%d”, &freq);
while (!kbhit ( ))
sound (freg);
delay (2000);
nosound ( );
delay (1000);
return (0);
Функции для работы с портами ввода вывода.
Inportb – ввод байта из порта ввода.
Outportb – вывод байта.
Inport – ввод слова (два байта).
Outport – вывод слова.
Они находятся в dos.h.
Unsigned char inportb (unsigned port);
Port – адрес порта ввода (0 … 65535), эта функция возвращает без знаковое символьное значение.
Void outportb (unsigned port, unsigned char value);
Port – адрес порта вывода.
Value – значение, которое выводится.
#include <stdio.h>
#include <dos.h>
main ( )
unsigned char result;
unsigned port=0; //адрес порта
result = inport (port);
printf (“Принятый байт из порта %d равен0x%x \n”, port, result);
return 0;
#include <stdio.h>
#include <dos.h>
main ( )
char value =’C’
unsigned port = 0; //адрес порта
outport (port, Value);
printf (“Значение %С послано в порт %d \n”, value, port);
return 0:
В conio.h содержатся следующие функции:
Inp – ввод байта.
Outp – вывод байта.
Inpw – ввод слова.
Outw – вывод слова.
Пример: управление каналом звука.
SPEAKER – символ, имя канала звука.
Счетчик СТ2 обеспечивает частоту звука (работает в режиме генератора меандра).
По входу GATE можно разрешить (1) или запретить (0) счет.
Для работы вентиля (&) на D1 = 1.
Адрес СТ2 =42h.
Адрес PYC =43h/
Д2 … Д7 – менять нельзя!
/*speaker.cpp Программа генерации звука*/
#include <stdio.g>
#include <dos.h> // Прототипы функций inportb ( ), outportb ( ), delay ( )
#include <conio.h> //Прототип функции kbhit ( )
#define CTRL_PT 0x43 //регистр РУС
#define CTRL_WD 0x66 //управляющее слово для СТ2
#define N_LOW 0х26 //младший байт числа N
#define N_HIGH 0x11 //старший байт числа N
#define CT2 0x42 //адрес СТ2
#defineSYST_PRT 0x61 //адрес системного порта
main ( )
unsigned char ch1, ch2;
outportb (CTRL_PT, CTRL_WD); //Вывод УС с РУС
outportb (CT2, N_LOW); //загрузка младшего байта числа в СТ2
outportb (CT2, N_HIGH); //загрузка старшего байта
ch1=inportb (SYST_PRT);
ch2=ch1; //создание копии
ch2=ch2 0x3 //Установить D0=1,D1=1
while (!kbhit ( ))
outportb (SYST_PRT, ch2); //есть звук
delay (1000); //задержка на 1 секунду
ch2=ch2&0xfd; // 0xfd = 1111 1101
outportb (SYST_PRT, ch2); //звук нет
delay (1000);
ch2 = ch20x2; // установка D1=1
outport (SYST_PRT, ch1);
return 0;
Звук заканчивается когда нажимается любая клавиша.
Программа не меняет Д1 … Д7.
Для формирования звука надо сформировать меандр:
Счетчик должен работать в режиме 3 (генератор прямоугольных импульсов).
Fзв = 440 Гц (нота Ля первой октавы)
N=fвх/fзв = 1931800 / 440 = 4390,45 1126h
Формат управляющего слова: счетчик двоичный, загрузить два байта.
01110110b = B6h.
