- •Основные понятия и определения мпт
- •Основные характеристики и типы мп
- •Общие принципы построения мпс
- •Основные операции, выполняемые в мпс с 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.
Строковые переменные и константы.
Для работы со строками Си использует одномерные массивы (один элемент – один символ), признак конца строки \0 (он занимает один байт).
Char client [10];
Char client [ ] = “Иванов”;
Char client [5] = “Иванов”;
Строковые константы можно определять:
С помощью константы макроопределения #define:
#define client “Иванов”;
С помощью типизированной константы:
Const char client = “Иванов”;
Escape последовательности.
Чтобы использовать клавиши в программе, то есть еscape символ, а за ним escape код.
Escape символ \
Escape последовательности:
Последовательность |
Название |
Функция |
\а |
Звонок |
Звук |
\f |
Перевод страницы |
Начало нового экрана |
\n |
Новая строка |
Начало новой строки |
\t |
Табуляция |
Переход к следующей позиции табуляции |
\’ |
Апостроф |
|
\” |
Кавычки |
|
Элементарный ввод вывод в Си.
Особенность Си – отсутствие в языке операторов ввода – вывода, вместо них используют библиотечные функции.
Устройства ввода – вывода это клавиатура и дисплей (консоль).
Бывает:
Неформатированный
Форматированный.
Функции неформатированного ввода – вывода:
функции ввода – вывода символов:
putchar ( ) - не переводит строку.
Getchar ( )
/*putgetch.cpp Иллюстрация ввода – вывода */
#include <stdio.h>
#define initial ‘H’
main ( )
char letter = ‘G’;
char in_letter;
putchar (initial);
putchar (letter);
putchar (‘\a’);
putchar (‘\n’);
in _letter = getchar ( );
putchar (in_letter);
putchar (‘n’);
return 0;
putgetch.exe
HG звонок
_X
_
функции ввода – вывода строки:
puts ( ) – выводит строку с переходом на новую строку.
Gets ( ) – вводит строку, символы которой набираются с клавиатуры, ввод заканчивает ENTER.
/* getsputs.cpp Имитация ввода – вывода */
#include <stdio.h>
main ( )
char name [20];
char full_name [80];
puts (‘Введите ваше имя’);
gets (name);
puts (“Ввод подтверждается”);
puts (name);
puts (“Введите ваше ФИО”);
gets (full_name);
puts (“Ввод подтверждается”);
puts (full_name);
return 0;
Функции форматированного ввода – вывода позволяет обрабатывать несколько переменных, выполнять преобразование данных;
Printf ( ) – выводит данные на экран.
Scanf ( ) – принимает данные с клавиатуры.
Функция printf ( ) выводит на экран строку символов до знака %ХХХ.
ХХХ – тип выводимых данных (спецификация)
%d – целое число.
%f – вещественное число.
%c – символ.
%s – строка.
Printf ( ) – не переводит строку.
/*print.cpp Имитация вывода*/
#include <stdio.h>
main ( )
int a=5, b=7, c;
c=a+b;
printf (“Сумма равна %d \n”,c);
return 0;
При выводе вещественных чисел по умолчанию выводится шесть знаков после запятой:
…
float a=1.2, b=1.44, c;
c=a+b;
printf (“Сумма равна %d \n”,c);
…
на экране будет: сумма равна 2.639999
Чтобы изменить:
Printf (“Сумма равна %2f \n”,c);
Тогда будет только 2 знака после запятой.
/*inout2.cpp Программа ввода – вывода */
#include <stdio.h>
main ( )
int a,b,c;
printf (“Введите два целых числа:”);
scanf (“%d %d”,&a, &b);
c=a+b;
printf (“Результат равен %d \n”, c);
return 0;
Если в программе используется несколько функций scanf, то во входном буфере остается символ перевода строки и каждый раз при выполнении последующей функции scanf этот символ считывается и программа работает неправильно. Поэтому надо очищать входной буфер.
Fflush (stdin) – функция, очищающая буфер, ее надо ставить перед функцией scanf.
Gets ( ) – вводит данные в виде строки.
Atoi ( ) – преобразует строку в данные типа int.
Atof ( ) – преобразует строку в данные типа вещественные.
Они в заголовочном файле stdlib.h
/*inout3.cpp */
#include <stdio.h>
#include <stdlib.h>
main ( )
char name [80];
age_str [80];
weight_str [80];
int age;
float weight;
printf (“Введите ваше имя:”);
gets (name);
printf (“Привет %s! \n” name);
printf (“Какой ваш возраст?”);
gets (age_str);
age=atoi (age_str);
printf (“А какой у вас вес?”);
gets (weight_str);
weight = atof (weight_str);
printf (“Подтверждаю ввод, возраст - %d, вес - %2f \n”, age, weight);
return 0;
gethch ( ) – вводит символ с клавиатуры и не отображает его на экране, нажатие ENTER не надо, это функция возвращает тип char.
Часто это функция используется для ввода значений, например из какого та списка. puts (”для продолжения нажмите ENTER”);
Getch ( ) – находится в заголовочном файле conio.h.
