Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Юго-Западный государственный университет» Кафедра вычислительной техники КУРСОВОЙ ПРОЕКТ по дисциплине «Аналого-цифровая микропроцессоры» интегральная электроника и (наименование учебной дисциплины) на тему «Проектирование управляющей МПС» Специальность (направление подготовки) 11.03.03 - Конструирование и технология электронных средств____________________ (код, наименование) Автор работы (проекта) А.А. Свиридов __________________ (инициалы, фамилия) Группа КС – 21б Руководитель работы (проекта) (подпись, дата) О.Г. Бондарь ________________ (инициалы, фамилия) (подпись, дата) Работа (проект) защищена ________________________ (дата) Оценка____________________ Председатель комиссии _____________________ (подпись, дата) ___________________ (инициалы, фамилия) Члены комиссии _________________________ _________________________ (подпись, дата) (инициалы, фамилия) _________________________ _________________________ (подпись, дата) (инициалы, фамилия) _________________________ _________________________ (подпись, дата) (инициалы, фамилия) 1 Курск, 2015 г. Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Юго-Западный государственный университет» (ЮЗГУ) Кафедра вычислительной техники ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ Студент Свиридов А.А. шифр 01690 группа КС-21б (инициалы, фамилия) 1.Тема «Проектирование управляющей микропроцессорной системы» 2.Срок представления проекта к защите: «11 » мая 2015 г. 3.Исходные данные для проектирования: БИС МП и EPROM, функции Ф1 и Ф2, константы G1, G2, G3 для варианта 6. 4.Содержание пояснительной микропроцессорной записки управляющей курсового системы, проекта: разработка реализующей заданные взаимодействия с объектом управления и разработка программных средств системы, обеспечивающих выполнение алгоритма управления. 5.Перечень графического материала: структурная схема микропроцессорной системы, функциональная система микропроцессорной системы, функциональные схемы подсистем, алгоритм функционирования. Руководитель проекта Бондарь О.Г. 09.02.2015 (подпись, дата) (инициалы, фамилия) Задание принял к исполнению 09.02.2015 (подпись, дата) 2 РЕФЕРАТ Студент: Свиридов Артём Александрович; Руководитель курсовой работы: Бондарь Олег Григорьевич Объем пояснительной записки – 50 страниц; 21 иллюстрация (рисунков), 11 таблиц, 12 использованных источников, 7 приложений. Ключевые слова: микроконтроллер, управляющая микропроцессорная система, разработка, алгоритм. В данном курсовом проекте разработана управляющая микропроцессорная система. 3 Оглавление Введение ................................................................................................................... 5 1 Расшифровка и анализ задания ........................................................................... 6 2.1 Разработка интерфейса и уточнённой структурной схемы .......................... 7 2.2 Оценка памяти программ и данных ................................................................ 8 2.3 Структура адресного пространства. ................................................................ 9 3 Разработка процессорного модуля ................................................................... 11 3.1 Времязадающая цепочка ............................................................................... 13 3.2 Устройство рестарта ....................................................................................... 14 4 Разработка подсистемы памяти ........................................................................ 16 5 Разработка подсистем ввода/вывода ................................................................ 18 5.1 Устройство обмена данными с объектом управления ................................ 18 5.2 Организация клавиатуры ................................................................................ 19 5.4 Организация индикации ................................................................................. 21 6 Разработка алгоритма ПО.................................................................................. 30 Список используемой литературы ...................................................................... 33 ПРИЛОЖЕНИЕ А ................................................................................................. 34 ПРИЛОЖЕНИЕ Б .................................................................................................. 35 ПРИЛОЖЕНИЕ В ................................................................................................. 39 ПРИЛОЖЕНИЕ Г .................................................................................................. 40 ПРИЛОЖЕНИЕ Д ................................................................................................. 41 ПРИЛОЖЕНИЕ Е.................................................................................................. 42 ПРИЛОЖЕНИЕ Ж ................................................................................................ 43 4 Введение Современная микропроцессорная техника является важнейшим средством при решении самых разнообразных задач в области сбора и обработки данных, систем автоматического управления и др. Микропроцессорная техника в науке и технике, промышленности, сельском хозяйстве, военной отрасли, быту и других областях жизнедеятельности человека становится все более востребованной. Практически любая электронная система, обладающая достаточной функциональной сложностью, реализуется с помощью микропроцессорных устройств. Микропроцессоры и микропроцессорные системы являются в настоящее время наиболее массовыми средствами вычислительной техники. Использование микроконтроллеров в системах управления и обработки информации обеспечивает высокие показатели эффективности при достаточно низкой стоимости. 5 1 Расшифровка и анализ задания УМПС реализует следующий алгоритм управления: С ОУ принимается поток значений входных слов Xi и размещается в кольцевом буфере на 17 значений в памяти УМПС. При приёме 16 значений производится вычисление среднего арифметического значения X = (X1 + X2 + … + X16)/16. В дальнейшем, при приёме каждого нового значения, оно записывается в кольцевой буфер вместо самого старого значения, а среднее значение пересчитывается по последним 16 значениям. В зависимости от значений Х, вычисляется управляющее воздействие Y: Y = 00H при X < G1; Y = Ф1(Х) при G1 <= X < G2; (1) Y = Ф2(Х) при G2 <= X <= G3; Y = 0FFH при X > G3. В выражении (1) константы G1, G2, G3 и вид функций Ф1, Ф2 определяется заданием. Во всех вариантах все переменные и константы рассматриваются как 8-разрядные двоичные (2-разрядные шестнадцатеричные) целые без знака, причем: 0 < G1 <G2 < G3 < 0FFH. Для случаев X < G1 и X > G3 необходимо выдать на пульт оператора сигнал <Авария> –включить мигание специального светового индикатора (лампы накаливания, питающейся от осветительной сети переменного тока напряжением 220В частотой 50 Гц) с частотой 2 Гц. По запросу с пульта оператора следует выдать на его индикацию значения Xmin, Xmax, X(среднее), Y для цикла управления, предшествующему текущему. Выдача этой информации должна осуществляться в режиме прерывания программы. Недостающие параметры: Объём выпуска – 1 шт.; Расстояние от объёкта управления до УМПС – 1 метр 6 Расстояние до ПК – 10 метров; Память хранения констант – изолированная; Для обмена данными используется интерфейс RS-232, скорость передачи данных по которому 9600 бит/сек; Питание – 220 В, 50 Гц; Сигнал «авария» не дожжен срабатывать, пока не наберётся 17 значений 2.1 Разработка интерфейса и уточнённой структурной схемы Используем комбинированную организацию линий интерфейсных связей, которая включает в себя радиальную и магистральную. Причиной выбора служит то, что комбинированная структура позволяет подключить большее число устройств. Таблица 1 – устройства с радиальным принципом подключения Устройство Линии EEPROM (по интерфейсу I2C) 2 линии: SDA и SCL Канал RS232 2 линии: RxD и TxD «Авария» 1 линия Итого 5 линий Таблица 2 – устройства с магистральным принципом подключения Устройство Линии Объект управления 8 линий шины данных 2 линии: RD, WR 2 линии прерываний Клавиатура 3х8 3 линии для опроса клавиш 8 линий для считывания 1 линия для прерываний от клавиатуры Буферные регистры для 7 линий шины данных индикации 2 линии сигналов PG0, PG1 Итого 33 линии 7 Помимо устройств необходимы линии для: Питание – 3 линии; Земля – 2 линии; Организация тактирования – 2 линии; Кнопка рестарта Reset – 1 линия. Суммарно получается 46 линий. Индикатор ЦП EEPROM УВВ ОУ ВУ Рисунок 2.1 – Структурная схема УМПС 2.2 Оценка памяти программ и данных Для оценки будем полагаться на аналоги по следующим функциям: - опрос и сканирование клавиатуры [1] - запись и чтение в EEPROM по I2C [2] - вывод данных на индикацию [3] - обмен по последовательному каналу RC-232 [4] - обмен данными с ОУ [5] - вычисления согласно алгоритму [6] 8 Таблица 3 – Оценка памяти Объем Выполняемые функции Опрос и сканирование клавиатуры 4×4 Запись и чтение в EEPROM по I2C Вывод данных на индикацию Обмен по последовательному каналу RC232 Обмен данными с ОУ Вычисления, согласно алгоритму (для ОЗУ- учтем кольцевой буфер- 16 байт) Итого памяти Объем памяти ПЗУ(байт) ОЗУ(байт) 110 4 143 3 20 5 235 2 20 1 68 35 596 50 Система должна содержать кольцевой буфер на 16 значений - это 16 байт памяти ОЗУ. Плюс, введенное значение с пульта оператора K – 1 байт. Возьмем 20 байт. Под стек можно выделить примерно 100-150 байт (ОЗУ) Учитывая коэффициент запаса равный двум, получаем 1192 байта для ПЗУ и 100 байт для ОЗУ. Суммарно текст программ занимает около 1.5 Кб памяти. 2.3 Структура адресного пространства. В микроконтроллерах AVR реализована Гарвардская архитектура, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но и шины доступа к ним. Каждая из областей памяти данных. Память программ (Flash ROM или Flash ПЗУ) предназначена для хранения последовательности команд, управляющих функционированием микроконтроллера, имеет 16-ти битную организацию. Все AVR имеют Flashпамять программ, которая может быть различного размера - от 1 до 256 Кб. 9 Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т.е. допускает многократное стирание и запись информации. Память данных разделена на три части: регистровая память, оперативная память (ОЗУ - оперативное запоминающее устройство или RAM) и энергонезависимая память (EEPROM). Регистровая память включает 32 регистра общего назначения (РОН), объединенных в файл, и служебные регистры ввода/вывода (РВВ). И те и другие расположены в адресном пространстве ОЗУ, но не являются его частью. В области регистров ввода/вывода расположены различные служебные регистры (регистры управления микроконтроллером, регистры состояния и т.п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. Энергонезависимая память данных (EEPROM) используется для долговременного хранения различной информации, которая может изменяться в процессе функционирования микроконтроллерной системы. Все AVR имеют блок энергонезависимой электрически перезаписываемой памяти данных EEPROM от 64 Байт до 4 кБайт. Внутренняя оперативная статическая память Static RAM (SRAM) имеет байтовый формат и используется для оперативного хранения данных. Размер оперативной памяти может варьироваться у различных AVR от 64 Байт до 4 Кбайт [7]. 10 Рисунок 2.2 – Карта адресного пространства 3 Разработка процессорного модуля Основой процессорного модуля является сама БИС, а также вспомогательные схемы: времязадающая цепочка и устройство рестарта. Основные параметры выбора микроконтроллера: МК должен принадлежать семейству AVR, количество выводов, объём ПЗУ и ОЗУ, поддержка дополнительных интерфейсов, в частности I2C и UART, а также стоимость. В рамках единой базовой архитектуры AVR-микроконтроллеры подразделяются на три подсемейства: Tiny AVR, Mega AVR, Xmega AVR. Микроконтроллеры подсемейства Tiny имеют: флеш - память до 16 кб, SRAM до 512 б, EEPROM до 512 б; число линий ввода/вывода 4-18 (общее количество выводов 6-32) и ограниченный набор периферийных устройств. Микроконтроллеры подсемейства Mega имеют: флеш-память до 256 Кб, SRAM до 16 Кб, EEPROM до 4 Кб; число линий ввода/вывода 23-86 (общее 11 количество выводов 28-100); расширенную систему команд и периферийных устройств, аппаратный умножитель, встроенные АЦП и др. Подсемейство Xmega AVR – это микроконтроллеры, которые содержат флеш-память объемом до 384 Кб, SRAM до 32 Кб, EEPROM до 4 Кб, работают при тактовой частоте 32МГц, при напряжении питания от 1,6В до 3,6В. Для выбора микроконтроллера воспользуемся сервисом MicrocontrollersSelector. Рисунок 3.1 – Список отсортированных микроконтроллеров На сайте Atmel указаны цены только на 4 микроконтроллера их этого списка, из них и делаем выбор. 12 Таблица 4 – стоимость МК Микроконтроллер Цена, руб. ATmega165P 198 ATmega165PA 185 ATmega169A 203 ATmega169P 163 Выбираем ATmega169P Основные параметры и распределение выводов приведены в Приложении Б 3.1 Времязадающая цепочка Так как в схеме имеется связь между ПК, то есть RS232 и МК, необходимо установить стандартизированную скорость обмена. Для этого в микроконтроллере имеется регистр UBRR, в который следует записать коэффициент, который рассчитывается по формуле: 𝐵= 𝑓 16(𝑈𝐵𝑅𝑅 + 1) 𝑓 −1 16𝐵 f – тактовая частота, на которой работает микроконтроллер 𝑈𝐵𝑅𝑅 = B – скорость передачи UBRR – содержимое регистра контроллера скорости передачи. Максимальное отклонение скорости не должно превышать 1% [8] B равна 9600 бит/с, она выбрана в анализе ТЗ. Частота резонатора не должна быть более 16 МГц, так как это является максимальной тактовой частотой микроконтроллера. Зададим частоту 12МГц и рассчитаем погрешность. Если f=12000000, то UBRR=77.125, но в регистр UBRR можно записывать только целые числа, округлив до 77, подставляем значение в первую формулу и получаем 9615 бит/с. Погрешность всего 13 0.155%. Итого максимальная частота отклонения кварца при погрешности частоты передачи 1% равна: 𝛥𝑚𝑎𝑥 = 9615 ∗ 16 ∗ (77 + 1) − 12000000 = 119520 (Гц) Рисунок 3.2 – схема подключения кварцевого и керамического резонаторов соответственно Керамические резонатор дешевле, имеет меньший корпус в отличие от кварцевого, но имеет большее отклонение от номинальной частоты, это отклонение обычно менее 1%, поэтому выбираем керамический резонатор ZTT 12.0 МГц, его максимальное отклонение частоты 0.5% при цене 11 руб. 3.2 Устройство рестарта Устройство рестарта подключается к входу RESET и служит для сброса микроконтроллера, т.е приведения его в исходное состояние. Это необходимо при включении электропитания, при авариях в системе электропитания, при зависании программ и др. VD R1 RESET R2 S C3 Рисунок 3.3 - Функциональная схема устройства рестарта 14 Данная схема работает следующим образом: конденсатор C при подачи питания заряжается до напряжения питания через резистор R1, выполнение «сброса» завершится, когда напряжение С достигнет значения напряжения питания и МК переходит, а рабочее состояние. Ключ S используется для сброса системы оператором в любое время. При замыкании ключа конденсатор разряжается, и МК будет находиться в исходном состоянии до тех пор, пока конденсатор не зарядится до напряжения питания. Для того чтобы быстро разрядить конденсатор при коротких «провалах» питания, в схеме используется диод VD1. Резистор R2 ограничивает величину тока через кнопку S. Для формирования требуемой задержки включения (формирования фронта сигнала сброса) резистор R1 и конденсатор C образуют RC цепь. При включении источника электропитания, через некоторое время оно достигает стабильной величины и подается на вход МК для его нормальной работы. Таким образом задержка включения МК есть постоянная времени R1 C – цепочки формирователя рестарта (τRC): (τRC)=R1*C3 где (τRC) для ATmega169P составляет 65ms [9] Величина R1 не более 10 кОм, примем за 9 кОм, следовательно, C3=7.2мкФ, что попадает в диапазон 1-10 мкФ, рекомендуемый в лекциях. Для вычисления величины R2, необходимо найти пределы значений данной величины. 𝑈пит 𝐼кн𝑚𝑎𝑥 При Uпит = 5 В; Iкнmax = 50 мА ; R2 ≥ 100 Ом. 𝑅2 ≥ 𝑈𝑟𝑠𝑡 = 𝑈пит 𝑅2 ≤ 𝑈10 𝑅1 Если принять Urst = 0.2 В (согласно даташиту), тогда найдем R2 ≤ 360 Ом 15 𝑅2 = √𝑅2𝑚𝑎𝑥 ∙ 𝑅2𝑚𝑖𝑛 = 189 Ом Для удобства принимаем R2=200 Ом При выборе диода верхняя рабочая частота не относится к основным параметрам, так как типичное время протекания тока через него от долей до нескольких периодов сетевого напряжения. Uобрmax не более 6В-7В, чему удовлетворяют любые выпрямительные диоды. Возьмём КД513А 4 Разработка подсистемы памяти AT34C02 – микросхема энергонезависимой памяти объёмом 2К, организованная как 256х8 байт памяти с управлением по I2C. ATmega169P поддерживает интерфейс TWI, который пришёл на замену I2C и является его полным аналогом. Передача/Прием сигналов осуществляется установкой линии в 0, в единицу устанавливается за счет подтягивающих резисторов. Чем больше резистор, тем дольше линия восстанавливается в единицу (идет перезаряд паразитной емкости между линиями входов и выходов) , а значит, уменьшается вероятность правильного определения состояния линии. Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ: генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в низкое при высоком уровне на линии SCL. Этот переход воспринимается всеми устройствами, подключенными к шине, как признак начала процедуры обмена. Генерация синхросигнала — это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Процедура обмена завершается тем, что ведущий формирует состояние СТОП — переход состояния линии SDA из низкого состояния в высокое при высоком состоянии линии SCL. Состояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через некоторое время после фиксации 16 состояния СТОП. При передаче посылок по шине I2C каждый ведущий генерирует свой синхросигнал на линии SCL. После формирования состояния СТАРТ, ведущий опускает состояние линии SCL в низкое состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено. Спецификация шины I2C разрешает изменения на линии SDA только при низком уровне сигнала на линии SCL. Данные действительны и должны оставаться стабильными только во время высокого состояния синхроимпульса. Для подтверждения приема байта от ведущего-передатчика ведомым-приемником в спецификации протокола обмена по шине I2C вводится специальный бит подтверждения, выставляемый на шину SDA после приема 8 бита данных DD1 GND 1 2 +5V А0 EEPROM VCC 3 A2 WP 1k 5 SDA 6 SCL GND R4 +5V A1 R3 SDA SCL 8 7 4 AT34C02 1k +5V Рисунок 4.1 – Cхема подключения AT32C02 A0, A1 и A2 заземлены, так как используется одна микросхема, а они предназначены для каскадного включения микросхем. SDA и SCL подтягиваются к источнику. Наивысший приоритет имеют прерывания от клавиатуры (INT2) Прерывания от RS232 осуществляются программно. Затем выполняются прерывания от объекта управлений (INT3, INT6). 17 Рисунок 4.2 – Диаграмма процесса передачи данных и подтверждения их приёма 5 Разработка подсистем ввода/вывода Подсистемы ввода/вывода в УМПС: устройство обмена данными с объектом управления, клавиатура, блок индикации, устройство ввода вывода по RS232. 5.1 Устройство обмена данными с объектом управления Параметры ОУ не заданы, поэтому предполагаем, что ОУ сам управляет состоянием выходов. ОУ подключен к МК через шину данных. ОУ имеет 8 входов/выходов (порт А(P0-P7)), два выхода под прерывания и два вывода Read (RD), Write (WR). Обмен данными по шине осуществляется по инициативе ОУ. Если ОУ хочет передать в МК очередной байт, он выставляет сигнал запроса прерывания INT3. По этому прерыванию происходит вызов обработчика прерывания ввода данных с ОУ. Чтение информации из буфера ОУ осуществляется сигналом RD. По этому сигналу выходные линии буфера ОУ переходят из третьего состояния в режим выдачи сигнала. МК читает данные с шины и снимает сигнал чтения RD. Если ОУ хочет принять с МК управляющее слово то посылает запрос на прерывание INT6, получив данное прерывание МК выставляет данные на шину. Запись информации в буфер ОУ осуществляется сигналом WR. После 18 этого линии чтения/записи ОУ переходят третье состояние. Прерывания происходят по переднему фронту. PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7 RD INT3 WR INT6 ОУ P0 P1 P2 P3 P4 P5 P6 P7 RD INT3 WR INT6 Рисунок 5.1 – Схема подключения ОУ 5.2 Организация клавиатуры Клавиатура предназначена для ввода: констант (16 клавиш для цифр от 0 до F в шестнадцатеричной системе), запроса на вывод Xmax, Xmin, Xсреднего и управляющего воздействия Y(4 функциональные клавиши), клавиша «К» - завершает ввод констант (1 клавиша) – 21 клавиша. Используем порт B для организации клавиатуры, в которой клавиши размещены в виде матрицы (3х8(такой вариант выгоднее, чем 4х6, но задействует на 1 вывод больше) (с запасом-24 клавиш) на пересечении горизонтальных и вертикальных линий связи. Строки матрицы (8 линий) подключаются к выводам порта А (PА0-PА7) МК, и программируются на ввод, а столбцы (3 линии) подключаются к выводам МК (PD0-PD3) - программируемым на вывод. Для формирования сигнала прерывания используем микросхему К155ЛА2, которая представляет собой логический восьмивходовой элемент ИНЕ. Линии клавиатуры (строки) подключены к логическому элементу 8И-НЕ. 19 Линии подключенные к PА0-PА7 подтянуты на питание через резисторы. Когда клавиатура не активна, на линиях столбцов (PD0-PD3) – низкий уровень. На выходе элемента 8И-НЕ - логический «0». При нажатии любой клавиши происходит замыкание соответствующей строки на столбец, при этом на одной из линий строк устанавливается логический «0», на выходе элемента 8И-НЕ установится логическая «1». Выход логического элемента 8И-НЕ подключен к линии микропроцессора. организуется запрос на прерывание INT2 - Таким образом наивысший приоритет (прерывание происходит по изменению входного сигнала с «0» на «1») для обработки данных, вводимых с клавиатуры. Микроконтроллер программным путем приступает к нахождению нажатой клавиши. Для этого сначала на первую линию столбцов подается логический "0", остальные столбцы в "1" (011), и опрашиваются строки первого столбца. Если какая либо клавиша этого столбца будет нажата, на соответствующей линии-строки так же будет низкий логический уровень (замкнутая кнопка подтянет строку к потенциалу столбца, то есть к земле).Таким образом, последовательно подавая сканирующий бегущий лог. «0» на линии столбцов и считывая соответствующие линии строк (PINА), находятся нажатые клавиши. Зная номер столбца и номер строки, на которых установлен логический "0", формируется код нажатой клавиши. Диоды VD2 – VD4 служат для защиты от замыкания двух столбцов между собой (через линию строк при нажатии двух и более ключей одновременно). Возьмем диоды КД513А. 20 PD4 +5V PD3 PD2 VD4 R5 R6 R7 R28 1k 1k 1k 1k VD2 VD3 0 7 E 1 8 F 2 2 9 Xmin 3 8 INT2 4 3 A Xmax GND +5V 4 B Y 5 6 7 14 5 C Xcp 11 6 D K DD6 1 PA0 PA1 PA2 PA3 PA4 PA5 PA6 12 К155ЛА2 PA7 R29 1k R30 R31 1k 1k +5V R32 1k Рисунок 5.2– Схема подключения клавиатуры 5.4 Организация индикации Блок индикации предназначен для отображения вводимой в МК и выводимой из МК информации (константы К и значений Хmax, Хmin, Хср, Y). Блок индикации подключен к выводам МК РС0-РС6; PG0,PG1 используются для ''защелкивания'' данных. Данные и константы по заданию представлены в шестнадцатеричном виде, поэтому удобнее отображать их так же. Индикация должна состоять из 2-х цифр (максимально число FF) ,что подразумевает использование семисегментных индикаторах. Для увеличения нагрузочной способности порта МК, индикаторы подключаем через буферные регистры (регистр на каждый индикатор). В блоке индикации мы применяем совместное использование порта, где 7 линий клавиатуры совмещаются с 7 линиями индикации и 2 вывода порта C (PC5-PC6) для сигналов LE1, LE2. В качестве буферного регистра возьмем микросхему 21 КР1533ИР22 [11]. Микросхема КР1533ИР22 представляет собой восьмиразрядный регистр хранения информации с хорошей нагрузочной способностью. Расположение выводов и основные параметры микросхемы приведены в Приложении Д. Запись информации в регистр на входы D0-D7 происходит при подаче логической «1» на вход LE, в этом случае информация (код высвечиваемой цифры) на выходах Q0-Q7 повторяет входную информацию. При подаче на вход LE низкого уровня (лог. «0») регистр переходит в режим хранения информации – происходит «защелкивание» входной информации. Сигнал OE управляет выходными буферами – низкий уровень разрешает выходы, высокий уровень переводит выходные буферы в состояние «выключено». Чтобы обеспечить постоянный вывод информации с регистров на индикаторы, входы OE заземляем. Таблица 5 - Семисегментные индикаторы Максимальн Максим Максима ый альная Минимал льный импульсный сила ьная сила прямой прямой ток света Iv света Iv ток ,мА ,мА макс., мин.,мКд Высота знака,м м Цена, руб мКд SA0511EWA SA0411SRWA SA0811EWA SA391GWA 30 160 8 3 12.7 30 30 155 18 8 10.16 40 30 160 6.4 1.9 20.32 50 25 140 6.4 1.9 9.9 32 22 Рассмотрев несколько типов индикаторов, выбираем индикатор SA0511EWA . Это индикатор с размером цифры 12,7 мм, цвет свечения – красный, сила света 3-8 мКд, имеет приемлемую цену. Выбор обоснован тем, что пульт оператора, на котором будут располагаться данные индикаторы, находится недалеко от оператора и ему будет хорошо видна высвечиваемая информация. Технические характеристики приведены в Приложении Е. Для установки номинального тока через светодиоды индикаторов, между выходами регистров и входами индикаторов включаются резисторы. Через светодиод будет протекать ток Iпр = (Ucc – Uпрд – U0вых)/R, следовательно для его задания требуется сопротивление, которое вычисляется по формуле: 𝑅= 𝑈𝑐𝑐 − 𝑈прд − 𝑈0 𝐼пр ;где Uсс – напряжение питания (5В), U0 - выходное напряжение лог. «0» резистора (0,4В), Uпрд – прямое напряжение на сегменте индикатора (2,5В), Iпр – прямой ток через светодиод (10мА)[12]. R = (5-2.5-0.4)/(10*10-3) =210 Oм. 23 R9 210 DD3 PC0 3 PC1 4 PC2 PC3 7 PC4 13 PC5 D4 Q4 14 PC6 D5 Q5 17 D6 Q6 D7 Q7 8 18 D0 RG Q0 D1 Q1 D2 D3 Q2 Q3 PG0 11 LE GND 1 OE Vcc 2 5 6 9 12 15 16 19 4 7 8 13 D0 RG Q0 D1 Q1 D2 D3 Q2 Q3 D4 Q4 D5 Q5 17 D6 Q6 D7 Q7 PG0 11 LE GND 1 OE b R11 210 c R12 210 e R13 210 f g R14 210 Vcc d 20 +5V R16 210 14 18 R10 210 R15 210 DD4 3 DD5 a Vcc DD7 a 2 5 6 9 12 15 16 19 R17 210 b R18 210 c R19 210 e R20 210 f g R21 210 Vcc d R21 210 +5V 20 3 Рисунок 5.3 – Схема подключения блока индикации 5.4 Устройство обмена по RS232 Для последовательной микроконтроллером используется связи между интерфейс компьютером RS-232. и Основными достоинствами RS-232 является возможность обмена данными на больших расстояниях (15–20м). Микроконтроллер ATmega169 имеет в своем составе полнодуплексный универсальный синхронный/асинхронный 24 приемопередатчик USART, поддерживающий протоколы обмена RS232. Выводы микроконтроллера, используемые модулем USART, являются линиями порта PE. В качестве входа приемника (RXD) используется вывод PE0, а в качестве выхода передатчика (TXD) – вывод PE1. Передача данных по интерфейсу RS-232 представляет собой совокупность кадров. Каждый кадр содержит стартовый бит, от 5 до 8 битов данных и стоповый бит. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в другую сторону Особенностью подключения компьютера через канал RS232 к микропроцессорной системы является не соответствие уровней напряжения. RS232 работает с напряжением питания ±12V, а разрабатываемая МПС с 5V. Необходимо использовать развязку порта компьютера и МПС. Для согласования напряжений и логических уровней порта ПК и USART МК используем оптическую развязку на паре светодиод- фототранзистор. Для гальванической развязки применяем 2 микросхемы TLP521-1, это дороже, чем применение одной микросхемы TLP521-2, но удобнее для построения схем и разводки. Уровни -12 и +12 В берутся с линий RTS и DTR, так, что на подключаемом к микроконтроллеру ПК необходимо установить на линию RTS -12В, а на линию DTR +12В. 25 Рисунок 5.4 - Схема соединения с интерфейсом RS-232 При передаче информации от ПК к контроллеру надо преобразовать уровни RS-232 в уровни микроконтроллера. Резистор R28 задаёт рабочий ток для фотодиода. Получаем R 28 5В 100 Ом 50mA Сопротивление резистора R29 и R30 являются типовыми для данной схемы и равны 3 кОм. Диод VD6 служит для предохранения светодиода от пробоя при подаче напряжения +12 В на линию RxD. Резистор R31 задаёт рабочий ток фотодиода (50 мА) и равен 12В/20мА=600 Ом. 26 5.5 Устройство аварийного оповещения Устройство аварийного оповещения, согласно техническому заданию, представляет собой мигание специального светового индикатора (лампы накаливания, питающейся от осветительной сети) с частотой 2 Гц. Лампа накаливания питается от сети ~220В. Необходима гальваническая развязка, поскольку микроконтроллер не может напрямую управлять сетью 220В. Гальваническая развязка может обеспечиваться разными способами, применимость их зависит от требований к напряжению изоляции и особенностей интерфейсных сигналов. Существует несколько способов гальванической развязки с использованием: электромагнитного или твердотельного реле, симистора и тиристора, оптосимистора. Самым простым для разработки является использование реле, этот способ развязки выбран из-за простоты, так как устройство не для массового производства, что позволяет сократить время разработки и создания . Возьмём реле CX240D5-C3 фирмы National Semiconductors, стоимость которого 411 рублей в отличие от фирмы Crydom International, где цена составляет 659 рублей Рисунок 5.5 - Схема подключения аварийного оповещения 27 5.6 Прерывания Подсистема прерываний должна обеспечить реакцию на четыре запроса: запрос с клавиатуры; запрос от ПК на обмен по последовательному каналу; запрос от ОУ на ввод Хi; запрос от ОУ на вывод Y. Запрос от клавиатуры обладает высшим приоритетом и должен удовлетворяться всегда, запрос от ПК также удовлетворяется всегда, запросы на ввод с ОУ и вывод на ОУ данных от могут обслуживаться на определенных участках программы управления. Микроконтроллер ATmega169 согласно даташит имеет три внешних прерывания - INT0, INT1 и INT2. Рисунок 5.6 - Управляющий регистр GICR (General Interrupt Control Register) Наивысший приоритет имеет прерывание INT0, вектор прерывания которого располагается в таблице векторов прерываний по самому меньшему адресу (чем меньше адрес вектора прерывания, тем приоритет у прерывания выше). INT0 используем для запроса от клавиатуры, INT1 и INT2 для запросов от ОУ. Эти прерывания «привязаны» к выводам PE2, PE3 и PE6 Выводы конфигурируются на вход. Для разрешения или запрещения внешних прерываний предназначен управляющий регистр GICR (General Interrupt Control Register). Каждому прерыванию соответствует определенный «бит активации прерывания». Таким образом, чтобы использовать определенное прерывание (INT1, INT0 или INT2), следует записать в его «бит активации прерывания» – логическую «1» - разрешить прерывание, а логический «0» - запретить прерывание. Например: при возникновении на выводе INT0 запроса на прерывание, в регистре флагов внешних прерываний GIFR бит INTF0 устанавливается в "1". 28 Рисунок 5.7 - Регистр флагов - General Interrupt Flag Register – GIFR Микроконтроллер не начнет обработку прерывания, пока в «бит всеобщего разрешения прерываний» (Bit-7 I в регистре состояния SREG) не будет записана логическая единица, чтобы запретить все прерывания в «бит всеобщего разрешения прерываний» следует записать – логический нуль Рисунок 5.8 - Регистр состояния – SREG Если INTF0 «1» и установлены бит I регистра SREG) и бит INT0 в GICR, происходит переход на вектор прерывания, и на подпрограмму обработки прерывания (когда срабатывает прерывание, то сразу очищается флаг I (Global Interrupt Enable), и автоматически запрещаются все прерывания, пока не произойдет выход из обработчика прерывания. Флаг INTF0 очищается после выполнения процедуры обработчики прерывания. Выше указанное справедливо для INT1 и INT2. Для приема и передачи данных с ПК через RS232 используется интерфейс USART, который имеет три источника прерывания. Как приемник USART использует всего один флаг, который индицирует его состояние. Флаг «Прием завершен» (RXC) в регистре UCSRA позволяет определить, есть ли непрочитанные данные в буфере приема. Этот флаг устанавливается в единицу, если в буфере приема существуют непрочитанные данные, и равен нулю, если буфер приема пуст . 29 Рисунок 5.9 - Регистр «А» статуса и управления USART- UCSRA Если прерывание по событию «Прием завершен» разрешено (бит RXCIE регистра UCSRB установлен), оно будет вызываться все время, пока флаг RXC установлен (при условии глобального разрешения прерываний). Рисунок 5.10 - Регистр «В» статуса и управления USART — UCSRB Существует два флага, индицирующие состояние передатчика USART; - флаг «Регистр данных пуст» (UDRE); - флаг «Передача окончена» (ТХС). Оба флага используются для генерации прерываний. Прерывания по событиям «Регистр данных пуст» и «Передача окончена» будут сгенерированы, если биты UDRE и ТХС в регистре UCSRA и биты TXCIE и UDRIE в регистре UCSRB будут установлены в единицу. Самый высокий приоритет из всех прерываний у клавиатуры, прерывание от USART тоже имеет высокий приоритет, но только после клавиатуры. Здесь большая роль отводится оператору. 6 Разработка алгоритма ПО Программное обеспечение состоит из основной (фоновой программы) и подпрограмм (Приложение Ж). Сначала фоновая программа осуществляет инициализацию микроконтроллера (конфигурируются порты ввода/вывода, устанавливаются начальные состояния флагов и констант и т.д.) и запрещает все прерывания. Затем загружаются константы из внешней памяти EEPROM 30 в ОЗУ. Загрузка констант из EEPROM происходит один раз при включении МК. Затем программа разрешает прерывание на чтение от ОУ и принимает 16 входных значений от ОУ, сохраняет их в кольцевом буфере, состоящем из 16 регистров общего назначения (РОН). Согласно техническому заданию кольцевом буфере состоит из 17 регистров. При приёме 16 значений - 17-ый остается пустой, каждое новое значение, записывается в 17 регистр и помещается в кольцевой буфер вместо самого старого значения. Затем разрешает все прерывания. Микроконтроллер проверяет наличие событие прерывания от внешнего устройства и установку флага данного прерывания, и передает управление обработчику прерывания. Подпрограмма «Расчет» анализирует, если первый расчет, то осуществляет передачу управления подпрограммам: «Нахождение Хср», «Нахождение Хmin, Xmax»,«ФормированиеY», иначе меняет в кольцевом буфере самое старое значение на новое и возвращается к вызову подпрограмм. Подпрограмма «Y» в зависимости от Xср формирует управляющее воздействие. В случае аварийных условий включается мигание лампы накаливания, пока оператор его не отключит. Подпрограмма «INT1» осуществляет обработку прерывания от ОУ (чтение с ОУ), считывает очередной байт с шины данных и сохраняет его в памяти. Подпрограмма «INT2» (запись в ОУ) осуществляет вывод управляющего воздействия в ОУ. Подпрограмма «RS232» разрешает прием и передачу данных, затем проверяет наличие данных в буфере приема или передачи UDR. Если флаг UDRE установлен в «1», значит буфер готов к приему/передаче байта. Для передачи данных в буфер-передатчик помещаются данные, которые необходимо передать в ПК. По завершении передачи флаг ТХС устанавливается в «1». Если флаг RXС установлен - значит в буфереприемнике есть непрочитанные данные. Данные считываются программой из буфера-приемника. 31 Прерывание от клавиатуры (подпрограмма INT0) Сохраняем все данные текущей операции, запрещаем прерывания, кроме прерывания по времени. Переходим к подпрограмме чтения данных с клавиатуры. Это подпрограмма осуществляет повторную проверку нажатой клавиши, сканирование клавиатуры и формирование кода клавиши. При нажатии клавиши К выводим текущее значение константы и вновь обращаемся к чтению данных с клавиатуры. Если новое значение поступит и нажата клавиша К, выполняем подпрограмму «Ввод данных», которая новое значение константы формирует в порядке старшего и младшего разрядов, дешифрирует в семисегментный код и выводит на индикацию. Если нажаты клавиши Xmin, Xmax, Xср, Y выводим соответствующее значения на индикацию. 32 Список используемой литературы 1. http://www.getchip.net/posts/047-drajjver-matrichnojj-klaviatury-3kh4-naattiny13-s-uart-vykhodom/ 2. Тавернье К. PIC-микроконтроллеры. Практика применения: Пер. с фр.М.: ДМК Пресс, 2004- 272с. 3. Бондарь О.Г. Аналогово-цифровая электроника .Учебно-методический комплекс. 4. http://www.datasheetarchive.com/dlmain/Datasheets-32/DSA-620479.pdf SP232E 5. http://easyelectronics.ru/avr-uchebnyj-kurs-peredacha-dannyx-cherez-uart.html 6. http://forums.airbase.ru/2007/12/t58973,17--mikrokontrollery-avr-primenenie-ikratkij-kurs-chast-10.html 7. http://myrobot.ru/stepbystep/mc_architecture.php 8. http://mainloop.ru/avr-atmega/avr-usart-setting.html 9. http://www.atmel.com/Images/doc8018.pdf 10. http://www.atmel.com/images/doc0958.pdf 11. Богданович М.И. Цифровые интегральные микросхемы . Справочник .Мн.: Беларусь, 1991.- 493 с. 12. Угрюмов Е.П. Цифровая техника : Учеб. Пособие для вузов. 2-е изд., перераб. и доп.-СПб.: БХВ – Петербург, 2005.- 800с. 33 ПРИЛОЖЕНИЕ А Таблица А.1 - Сводная таблица микроконтроллеров семейства AVR Flash EEPR МОДЕЛЬ ROM OM (Кб) (Кб) ATmega8 8 RAM Fmax Vcc (байт) (МГц)(В) I/O SPI USARTI2C ISP 0.512 1024 16 4.5-5.5 23 1 1 ATmega85158 0.512 512 16 4.5-5.5 35 1 1 ATmega85358 0.512 512 16 4.5-5.5 32 1 1 ATmega16 16 0.512 1024 16 4.5-5.5 32 1 1 ATmega162 16 0.512 1024 16 2.7-5.5 35 1 ATmega162L16 0.512 1024 8 2.7-5.5 35 ATmega165 16 0.512 1024 16 ATmega168 16 0.512 1024 ATmega169 16 (руб) + 125 + 98 + + 130 + + 155 2 + 220 1 2 + 180 4.5-5.5 53 1 1 + 280 16 1.8-5.5 23 1 1 + + 140 0.512 1024 16 1.8-5.5 54 1 1 + + 190 ATmega32 32 1 2048 16 4.5-5.5 32 1 1 + + 285 ATmega64 64 2 4096 16 4.5-5.5 53 1 2 + + 180 ATmega128 128 4 4096 16 4.5-5.5 53 1 2 + + 300 ATtiny12 0.0625 8 1.8-5.5 6 + 61 ATtiny2313 2 0.128 128 20 1.8-5.5 18 USI 1 + 85 ATXmega256A3- 256 16 4096 32 1.6-3.6 64 3 7 2 + 250 ATXmega192A3 192 16 4096 32 1.6-3.6 64 3 7 2 + 230 1 + Стоимость 34 ПРИЛОЖЕНИЕ Б: Микроконтроллер ATmega169 Рисунок Б.1 - Схема расположения контактов микроконтроллер ATmega169 Таблица Б.1 - Основные параметры ЦПУ: Ядро ЦПУ: F,МГц Память: Flash,КБайт Память: RAM,КБайт Память: EEPROM,КБайт I/O (макс.),шт. Таймеры: 8-бит,шт AVR от 0 до 16 16 1 0.5 54 2 35 Таймеры: 16-бит,шт 1 Интерфейсы: UART,шт 1 Интерфейсы: SPI,шт 2 Интерфейсы: I2C,шт 1 Аналоговые входы: Аналоговый компаратор,шт 2 VCC,В от 1.8 до 5.5 ICC,мА 16 Таблица Б.2 – Распределение выводов Номер вывода Наименование вывода Назначение вывода Символьное имя вывода в УПМС 2 PE0 3 PC1 4 PE2 Прерывание от клавиатуры INT2 5 PE3 Прерывание от ОУ INT3 6 PE4 7 PE5 Выводы чтения и записи по I2C 8 PE6 Прерывание от ОУ INT6 12 PB2 Чтение из ОУ RD 13 PB3 Запись в ОУ WR 19 PG4 Выводы сигнала «Авария» Avar 20 RESET Вывод под кнопку RESET RESET 21 VCC Выводы для обмена данными через RS232 RXD TXD SCL SDA VCC Выводы питания 22 GND GND 36 23 XTAL2 XTAL2 Вводы тактирования 24 XTAL1 XTAL1 27 PD2 PD2 28 PD3 29 PD4 PD4 33 PG0 PG0 Опрос клавиатуры PD3 Выбор индикатора 34 PG4 PG4 35 PC0 PC0 36 PC1 PC1 37 PC2 PC2 38 PC3 39 PC4 PC4 40 PC5 PC5 41 PC6 PC6 44 PA7 PA7 45 PA6 PA6 46 PA5 PA5 Шина для считывания клавиатуры и индикация PC3 Считывание клавиатуры 47 PA4 PA4 48 PA3 PA3 49 PA2 PA2 37 50 PA1 PA1 51 PA0 PA0 54 PF7 PF7 55 PF6 PF6 56 PF5 PF5 57 PF4 58 PF3 PF4 Шина данных для связи с ОУ PF3 59 PF2 PF2 60 PF1 PF1 61 PF0 PF0 63 GND GND 64 AVCC Выводы питания АЦП AVCC 38 ПРИЛОЖЕНИЕ В: Керамический резонатор ZTT Технические параметры Серия - ztt Резонансная частота, кГц 12000 Точность настройки (при 25 С) ,% 0.3 Температурный коэффициент (в диапазоне -20… 80С) ,% 0.3 Максимальное резонансное сопротивление, Ом Встроенный конденсатор, пФ Рабочая температура, С Длина корпуса L, мм 25 30 -20…80 10 Ширина корпуса W, мм 10 39 ПРИЛОЖЕНИЕ Г: Память AT34C02 Рисунок Г.1 – Микросхема AT34C02 Таблица Г.1 - Параметр микросхемы: Объем памяти (Кбайт) 2 (256х8) Vcc, В 1.5 – 5.5 tWR( мс) 5 Интерфейс I2C F (макс.) (МГц) 0.4 ICC,мА 0.4 TA,°C от -40 до 85 Таблица Г.2 - Распределение выводов EEPROM AT34C02 A0 - A2 Address Inputs Адрес входов SDA SerialData Последовательная передача данных SCL SerialClockInput Последовательная синхронизация ввода WP WriteProtect Защита от записи NC No Connect Нет соединения GND Ground Земля 40 ПРИЛОЖЕНИЕ Д: Микросхема КР1533ИР22 Рисунок Д.1 - Условное графическое обозначение МС КР1533ИР22 Основные параметры КР1533ИР22 Напряжение питания (Vсс) +5В ±10% Входной ток (0/1), не более 20мкА/200мкА Ток потребления (статический), max 27мА Выходной ток лог. "0", не менее 30мА Типовая задержка 12-40нс Входной уровень "0" < 0,8В Входной уровень "1" > 2,0В Выходной уровень "0" < 0,4В Выходной уровень "1" > 2,4В Рабочий диапазон температур -10oC..+70oC 41 ПРИЛОЖЕНИЕ Е: Индикатор SA05-11EWA Рисунок Е.1 - Номера контактов и их расположение Технические характеристики Цвет свечения красный Минимальная сила света Iv мин.,мКд 3 Максимальная сила света Iv макс.,мКд 8 Iпр.,мА 10 Количество сегментов 7 Количество разрядов 1 Схема включения. общ. анод Высота знака,мм 12.7 Максимальное прямое напряжение,В 2.5 Максимальное обратное напряжение,В 5 Максимальный прямой ток ,мА 30 Максимальный импульсный прямой ток ,мА 160 Рабочая температура, С -40…85 42 ПРИЛОЖЕНИЕ Ж: Алгоритм основной программы Начало Инициализация Есть запрос на прерывание? нет п/п Расчет да Запрос от клавиатуры да п/п INT0 нет Прерывание от USART да п/п RS232 нет Запрос от ОУ на ввод да п/п INT1 нет нет Запрос от ОУ на вывод да п/п INT2 КПКС.11.03.03 Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. Реценз. Н. Контр. Утверд. Подпись Дата Алгоритм основной программы Лит. Лис т Масса 1 Листов Масштаб 8 43 ЮЗГУ ВТ КС-21б Нахождение Xmax,Xmin Xmax:=0 n:=1 Xmax:=Xn Xmin:=Xn n=n+1 нет да n=16 да Сохранить Xmin,Xmax нет Xn > Xmax да Xmax:=Xn возврат нет Xn < Xmin Xmin:=Xn КПКС.11.03.03 Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. Ре енз. Н. Контр. Утверд. Подпись Дата Нахождение Xmax, Xmin Лит. Масса Мас таб Лис тт 2 Листов 8 44 ЮЗГУ ВТ КС-21б формирование Y нет Xcp ≥ 23H да да Xcp < 5FH Y = 00H нет Xcp ≤ 99Н нет Y=X2,X3,X4,X5,X6, X7,X0,X1 да Y = 0FFH X+K Авария Сохранить Y возврат КПКС.11.03.03 Масса Лит. Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. еценз. Н. Контр. Утверд. Подпись Дата Масштаб Формирование Y Лис т 3 Листов 8 45 ЮЗГУ ВТ КС-21б п/п INT1 п/п INT2 Авария Сохранение результатов текущей операции Сохранение результатов текущей операции Настройка порта А на ввод данных Настройка порта А на вывод данных Ввод данных (Xi) с ОУ Вывод управляющего воздействия (Y) в ОУ Восстановление результатов сохраненной операции Возврат Восстановление результатов сохраненной операции Остановить выполнение всех операций Настроить бит порта на вывод Выдать сигнал ‘’Авария’’ Ожидание отклика оператора возврат Возврат КПКС.11.03.03 Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. Реценз. Н. Контр. Утверд. Подпись Дата Подпрограммы обмена данными с ОУ и авария Лит. Лис т Масса 4 Листов Масштаб 8 46 ЮЗГУ ВТ КС-21б п/п RS232 Сохранение результатов текущей операции Прием данных от RS232 да Прием значений нет да Передача данных от RS232 Передача значений нет восстановление результатов сохраненной операции Возврат КПКС.11.03.03 Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. Н. Контр. Утверд. ценз. Подпись Дата Прерывание от RS232 Лит. Лис т Масса 5 Листов Масштаб 8 47 ЮЗГУ ВТ КС-21б п/п INT0 Сохранение результатов текущей операции Чтение данных с клавиатуры Нажата клавиша К Вывод константы К на индикацию да нет Вывод Xmin на индикацию да Нажата Xmin нет Вывод Xmax на индикацию да Чтение данных с клавиатуры Нажата Xmax нет Вывод Xcp на индикацию да Нажата Xcp нет Вывод Y на индикацию да Нажата Y нет Восстановление результатов сохраненной операции возврат КПКС.11.03.03 Изм. Лист Разраб. Провер. Т. Контр. Реценз. Н. Контр. Утверд. № докум. Cвиридов А.А. Cвиридов А.А. Бондарь О.Г. .С. Подпись Дата Прерывание от клавиатуры Лит. Лис т Масса 6 Листов Масштаб 8 48 ЮЗГУ ВТ КС-21б Чтение данных с клавиатуры Нахождение Хср Чтение данных Хср:=0 Хсум:=0 n:=1 нет да да Данные равны? Хср:= Хсум/16 n>16 Формирование кода клавиши нет Сохранить Хср Хсум:=Хсум+Хn возврат возврат n=n+1 КПКС.11.03.03 Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. Реценз. Н. Контр. Утверд. Подпись Дата Чтение данных с клавиатур Нахождение Хср Лит. Лис т Масса 7 Листов Масштаб 8 49 ЮЗГУ ВТ КС-21б -11б п/п Расчет нет Первый расчет? i = i+1 i=0 Xi = Хнов Нахождение Хср Нахождение Хmin,Xmax Формирование Y да Есть Хнов возврат КПКС.11.03.03 Изм. Лист № докум. Разраб. Cвиридов А.А. Провер. Бондарь О.Г. Т. Контр. Реценз. Н. Контр. Утверд. Подпись Дата Подпрограмма расчет Лит. Лис т Масса 8 Листов Масштаб 8 50 ЮЗГУ ВТ КС-21б