- •Отчет по практике по профилю специальности в рамках профессионального модуля пм.02 Применение микропроцессорных систем, установка и настройка периферийного оборудования
- •Глава 1. Характеристика предприятие 5
- •Глава 2. Разработка программ для микропроцессорных систем 18
- •Глава 3. Выявление и устранение причин неисправностей и сбоев периферийного оборудования 29
- •Введение
- •Глава 1. Характеристика предприятие
- •Краткое описание предприятия «Принцип Компани сц Сигма»
- •Техническое обеспечение предприятия
- •Программное обеспечение предприятия
- •Должностные инструкции инженерно-технических работников среднего звена в соответствии с подразделением предприятия
- •Глава 2. Разработка программ для микропроцессорных систем
- •2.1 Анализ технического задания
- •2.2 Описание микропроцессорной системы
- •2.3 Разработка электрических схем микропроцессорной системы
- •Разработка структурной электрической схемы
- •Разработка функциональной электрической схемы
- •Расчет дискретных электрорадиоэлементов
- •2.5 Тестирование и отладка микропроцессорной системы
- •Глава 3. Выявление и устранение причин неисправностей и сбоев периферийного оборудования
- •Техническое описание лазерного принтера hp LaserJet1020
- •Анализ состояния и выявление неисправностей принтера.
- •Устранение причин неисправностей и сбоев принтера.
- •Список использованных источников
- •Заключение
- •Приложение a Техническое задание
- •Приложения b Руководство пользователя
2.3 Разработка электрических схем микропроцессорной системы
При разработке аппаратного обеспечения устройства необходимо разработать все электрические схемы: структурную, функциональную и принципиальные, а также выполнить расчет используемых в них дискретных электрорадиоэлементов.
Для разработки электрических схем, прежде всего, выбирается элементная база для построения устройства: основная и интерфейсная.
Основная элементная база используется для построения всей вычислительной среды устройства и практически полностью определяется типом МП. Поскольку тип МП указан, то здесь остается лишь сказать, что в качестве основной элементной базы будет использована плата ArduinoUNOR3 на основе микроконтроллераATmega32.
Основная элементная база используется и для построения стандартной части интерфейса, т. е. портов ввода/вывода.
Интерфейсная элементная база применяется для реализации нестандартной части интерфейса.
Разработка структурной электрической схемы
Для того чтобы выполнить демонстрационный вариант, демонстрирующий работу системы, в качестве основы системы мы будем использовать микроконтроллер, резистор, термистор сподключённый к персональному компьютеру.
Arduino
UNO
Микроконтроллер B
Резистор 10 кОм
Термистор
ПК
Рисунок 3 – Структурная схема для задания 1,2
Таким образом, задействованы 3 порта микроконтроллера.
Назначение выводов:
GND – земля.
+5V – питание.
A0 – аналоговый пин.
Разработка функциональной электрической схемы
Рисунок 4 – Функциональная схема для задания 1,2
На рисунке 4 представлена функциональная схема устройства.
Термистор подключается к микроконтроллеру.
На плату загружается скетч и передаются данные об измерениях температуры на персональный компьютер.
Расчет дискретных электрорадиоэлементов
Для реализации системы будут использованы следующие радиодетали:
Термистор.
Резистор 10 кОм.
Характеристики Термистора:
Цвет символов: черный T8M.
Рабочий ток постоянный: 0,5 мА .
Максимальный ток (импульсный): 2 мА.
Падение напряжения: 1.6...3 В.
Интенсивность света на сегмент: 100...200.
Размеры: 12.5х19х8 мм.
Рабочая температура: -200°C..+350°C.
Характеристики Резистора:
Мощность: 10 кОм
Точность: ±5 %
Максимальное рабочее напряжение: 350 В
2.4 Создание программы на языке С++ для микропроцессорной системы
Задание 1
include<math.h>
int minute = 1;
intmil;
// Параметр конкретного типа термистора (из datasheet):
#define TERMIST_B 4300
#define VIN 5.0
voidsetup()
{
// мы хотим передавать информацию на компьютер через USB, а
// точнее через последовательный (англ. serial) порт.
// Для этого необходимо начать (англ. begin) передачу, указав
// скорость. 9600 бит в секунду — традиционная скорость.
// Функция «begin» не является глобальной, она принадлежит
// объекту с именем «Serial». Объекты — это «продвинутые»
// переменные, которые обладают собственными функциями,
// к которым обращаются через символ точки.
Serial.begin(9600);
// передаём заголовок нашей таблицы в текстовом виде, иначе
// говоря печатаем строку (англ. printline). Символы «\t» —
// это специальная последовательность, которая заменяется на
// знак табуляции (англ. tab): 8-кратный выровненный пробел
Serial.println("Minute\tMeteostantion\tTemperature\tMillis");
}
voidloop()
{
// вычисляем температуру в °Сс помощью магической формулы.
// Используем при этом не целые числа, а вещественные. Их ещё
// называют числами с плавающей (англ. float) точкой. В
// выражениях с вещественными числами обязательно нужно явно
// указывать дробную часть у всех констант. Иначе дробная
// часть результата будет отброшена
mil=millis();
float voltage = analogRead(A0) * VIN / 1024.0;
float r1 = voltage / (VIN - voltage);
float temperature = 1./( 1./(TERMIST_B)*log(r1)+1./(25. + 273.) ) - 273;
// печатаем текущую минуту и температуру, разделяя их табом.
// println переводит курсор на новую строку, а print — нет
Serial.print(minute);
Serial.print("\t");
Serial.print("\t");
Serial.print("\t");
Serial.print(temperature);
Serial.print("\t");
Serial.print("\t");
Serial.println(mil);
delay(5000); // засыпаем на минуту
++minute; // увеличиваем значение минуты на 1
// откройте окно SerialMonitor в среде Arduino, оставьте на
// сутки, скопируйте данные в Excel, чтобы построить графики
}
Задание 2
include<math.h>
int minute = 1;
intmil;
// Параметр конкретного типа термистора (из datasheet):
#define TERMIST_B 4300
#define VIN 5.0
voidsetup()
{
// мы хотим передавать информацию на компьютер через USB, а
// точнее через последовательный (англ. serial) порт.
// Для этого необходимо начать (англ. begin) передачу, указав
// скорость. 9600 бит в секунду — традиционная скорость.
// Функция «begin» не является глобальной, она принадлежит
// объекту с именем «Serial». Объекты — это «продвинутые»
// переменные, которые обладают собственными функциями,
// к которым обращаются через символ точки.
Serial.begin(9600);
// передаём заголовок нашей таблицы в текстовом виде, иначе
// говоря печатаем строку (англ. printline). Символы «\t» —
// это специальная последовательность, которая заменяется на
// знак табуляции (англ. tab): 8-кратный выровненный пробел
Serial.println("Minute\tMeteostantion\tTemperature\tMillis");
}
voidloop()
{
// вычисляем температуру в °Сс помощью магической формулы.
// Используем при этом не целые числа, а вещественные. Их ещё
// называют числами с плавающей (англ. float) точкой. В
// выражениях с вещественными числами обязательно нужно явно
// указывать дробную часть у всех констант. Иначе дробная
// часть результата будет отброшена
mil=millis();
float voltage = analogRead(A0) * VIN / 1024.0;
float r1 = voltage / (VIN - voltage);
float temperature = 1./( 1./(TERMIST_B)*log(r1)+1./(25. + 273.) ) - 273;
// печатаем текущую минуту и температуру, разделяя их табом.
// println переводит курсор на новую строку, а print — нет
Serial.print(minute);
Serial.print("\t");
Serial.print("\t");
Serial.print("\t");
Serial.print(temperature);
Serial.print("\t");
Serial.print("\t");
Serial.println(mil);
delay(5000); // засыпаем на минуту
++minute; // увеличиваем значение минуты на 1
// откройте окно SerialMonitor в среде Arduino, оставьте на
// сутки, скопируйте данные в Excel, чтобы построить график}
Начало
Объявление
макроопределений и переменных
Объявлениепттап
Инициализация
Рабочий
цикл
Датчик
передает значение на микроконтроллер
Микроконтроллер
отправляет данные температуры в
компьютер
Рисунок 5 - Алгоритм работы программы для задания 1,2
