Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
ВВЕДЕНИЕ..............................................................................................................5
ГЛАВА 1 ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ.........................................................8
1.1 Обзор задания курсового проекта....................................................................8
1.2 Разработка структурной схемы........................................................................8
1.3 Принцип работы симисторного управления...................................................9
ГЛАВА 2 ПОДБОР ЭЛЕМЕНТНОЙ БАЗЫ.......................................................12
2.1 Датчик положения...........................................................................................12
2.2 Датчик температуры.......................................................................................13
2.3 Концевой выключатель...................................................................................15
2.4 Энкодер............................................................................................................15
2.5 Часы реального времени.................................................................................16
2.6 Выбор и обоснование микроконтроллера.....................................................18
2.7 Выбор аналогово-цифрового преобразователя............................................19
2.8 Организация местного пульта управления. Цветовая и звуковая
сигнализация..........................................................................................................21
2.9 ЖКИ индикатор...............................................................................................22
ГЛАВА 3. РАЗРАБОТКА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ................25
3.1 Функциональная схема...................................................................................25
3.2 Расчет потребляемой мощности управляющей части системы..................27
3.3 Принципиальная схема...................................................................................27
3.4 Разработка алгоритма программы.................................................................29
ГЛАВА 4. МОДЕЛИРОВАНИЕ И ПРОВЕРКА ФУНКЦИОНИРОВАНИЯ...35
4.1 Общая схема в Proteus.....................................................................................35
4.2 Моделирование работы отдельных участков кода......................................37
ЗАКЛЮЧЕНИЕ.....................................................................................................43
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ............................................44
АБВГ.123456.000
Изм. Лист № докум. Подпись Дата
Разраб. Лит. Лист Листов
Провер. 1 2
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ВВЕДЕНИЕ
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
производстве в целом или каком-то его участке, выпускающем относительно
завершённое изделие.
Понятие «автоматизированный», в отличие от понятия
«автоматический», подчёркивает необходимость участия человека в
отдельных операциях, как в целях сохранения контроля над процессом, так и
в связи со сложностью или нецелесообразностью автоматизации отдельных
операций.
Составными частями АСУ ТП могут быть отдельные системы
автоматического управления (САУ) и автоматизированные устройства,
связанные в единый комплекс. Такие как системы диспетчерского
управления и сбора данных (SCADA), распределенные системы управления
(DCS), и другие более мелкие системы управления (например, системы на
программируемых логических контроллерах (PLC)). Как правило, АСУ ТП
имеет единую систему операторского управления технологическим
процессом в виде одного или нескольких пультов управления, средства
обработки и архивирования информации о ходе процесса, типовые элементы
автоматики: датчики, устройства управления, исполнительные устройства.
Одну из главных ролей в таких системах выполняет микроконтроллер.
Можно считать, что микроконтроллер (МК) – это компьютер,
разместившийся в одной микросхеме. Отсюда и его основные
привлекательные качества: малые габариты; высокие производительность,
надежность и способность быть адаптированным для выполнения самых
различных задач.
Конвейер (от англ. convey «передавать») — машина непрерывного
транспорта, предназначенная для перемещения сыпучих, кусковых или
штучных грузов.
Конвейеры широко применяются в современном производстве
благодаря важнейшей своей характеристике – непрерывности работы. Эта
система превратила процесс сборки сложных изделий, ранее требовавший
высокой квалификации от сборщика, в рутинный, монотонный,
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
низкоквалифицированный труд, значительно повысив его
производительность.
Ленточный конвейер – это транспортирующая машина для
перемещения в горизонтальном и наклонном направлениях насыпных и
штучных грузов непрерывным потоком без остановок на загрузку и
выгрузку. Тяговым (и одновременно грузонесущим) органом такого
конвейера является закольцованная вокруг концевых барабанов лента.
Ленточные конвейеры являются наиболее распространенным типом машин
конвейерного транспорта благодаря высокой производительности (до 30 000
т/ч), большой длине транспортирования (до 3-4 км в одном конвейере),
простоте конструкции, эксплуатации и высокой надежности.
В данном курсовом проекте рассмотрено применение ленточного
конвейера для постепенного нагрева и последующего охлаждения деталей
термоустановкой.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ГЛАВА 1. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 2 – Схематическое обозначение симистора
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
оптодрайвер MOC3021. Схема подключения МОС3021 показана на рисунке
2.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ГЛАВА 2. ПОДБОР ЭЛЕМЕНТНОЙ БАЗЫ
Источник: [3]
Рисунок 2 – Датчик положения BPS3M-TDT
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: [1]
Рисунок 3 – Схема подключения датчика BPS3M-TDT
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: [4]
Рисунок 4 – Схема подключения микросхемы AD595 к МК
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
2.3 Концевой выключатель
Источник: [6]
Рисунок 5 – Концевой выключатель AZ-8108
2.4 Энкодер
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: [8]
Рисунок 6 – Энкодер Siemens 1XP8001-2
Характеристики энкодера:
− напряжение питания – 5-30 В;
− предельная скорость вращения – 12000 об/мин;
− точность – 21024 импульсов/оборот.
– отдельный вывод, на который поступаем импульс после каждого
полного оборота.
Инкрементный энкодер Siemens 1XP8001-2 подходит для установки в
создаваемую систему. Его характеристики соответствуют требованиям.
Напряжение питания позволяет подключать устройство от источника
питания микроконтроллера. Предельная скорость вращения и точность тоже
нам подходят. Преимуществом энкодера Siemens 1XP8001-2 является то, что
он на отдельном выходе генерирует импульс после каждого оборота, что
очень удобно для его использования в системах не требующих высокой
точности определения скорости вращения вала энкодера.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
внешнего генератора между выводами OSC1 и OSC0 нужно подключить
кварцевый резонатор на частоту 32,768 кГц. Условное графическое
обозначение часов показано на рисунке 7.
Источник: [5]
Рисунок 7 – Условное графическое обозначение часов PCF8583
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: [1]
Рисунок 8 – Расположение выводов МК ATmega128
√
ε АЦП = ( ε 2Σ−N ε 2Д ),
❑ ❑
где ε Σ – значение приведенной погрешности, ε Д – погрешность датчика,
N – количество используемых датчиков.
Рассчитаем погрешность:
ε АЦП =√( 3 −8∗1 )=2 %.
2 2
m ≥(∫ lo g2 (ε )
1
АЦП
=∫ lo g2 ( 0,021 )=7),
где m значение разрядности АЦП.
Быстродействие АЦП характеризуется временем преобразования, т.е.
интервалом времени от момента изменения сигнала на входе до появления на
выходе установившегося кода. В данной системе быстродействие АЦП не так
важно, можно, например, взять АЦП среднего быстродействия с частотой
выборок около 4-15 кГц.
Так как к АЦП будет подключено 8 микросхем AD595, подойдет АЦП
последовательного приближения, позволяющее мультиплексировать их
входные сигналы. Оно обладает высоким быстродействием, так как весь
процесс преобразования выполняется за N последовательных шагов (N –
разрядность АЦП). Структурная схема АЦП последовательного
приближения изображена на рисунке 9.
Источник: [1]
Рисунок 9 – Структурная схема АЦП последовательного приближения
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ATmega128 содержит 10-разрядный АЦП последовательного
приближения. АЦП связан с 8-канальным аналоговым мультиплексором, 8
однополярных входов которого связаны с линиями порта F.
Так как для выполнения задания необходим 8-миканальный АЦП с
разрядность не менее 7, то встроенный в микроконтроллер АЦП может быть
использован в проекте.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: [1]
Рисунок 10 – Схема подключения МАЯК-24-КП
Его характеристики:
− напряжение питания – 24 В;
− уровень звукового сигнала – 105 дБ;
− потребляемый ток звукового оповещателя – 50±5,0 мА;
− потребляемый ток светового оповещателя – 25±2,5 мА.
МАЯК-24-КП подходит для установки в нашу систему, оповещатель
подходит под все требования к свето-звуковой сигнализации,
устанавливаемой в нашу систему.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
– Значение текущей температуры установки и разность текущей и
заданной температуры формата (Сt=xxx Rt=xxx);
– Значения текущей температуры установки в разных точках по
запросу от ПК формата (t=xxx t=xxx t=ххх).
Проанализировав требования к ЖКИ можно сделать выбор в пользу
HD44780, он имеет две строки по 16 знакомест, что позволяет разместить
выводимую в нашей системе информацию. Схема подключения ЖКИ
показана на рисунке 11.
Источник: [1]
Рисунок 11 – 4-х проводная схема подключение ЖКИ HD44780 к МК
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
− RS (RegisterSet) – линия определяет, с каким из регистров
производится текущая операция (0 – регистр команд (IR), 1 – регистр данных
(DR));
− E (Enable) – линия стробирования/синхронизации данных. Операция
чтения/записи стартует по заднему фронту на этой линии;
− DB0...DB7 (DataBus) – линии данных. В 8-битном режиме
используются все линии данных, при 4-битном – старшая тетрада.
ЖКИ HD44780 к МК подходит для установки в нашей системе, он
способен выводить всю необходимую нам информацию, также позволяет
расширение системы в будущем, есть возможность добавления вывода
информации строчками большей длинны, чем используется в нашей системе.
Также плюсом данного ЖКИ является возможность подключить его по 4-х
проводной схеме, что по сравнению с 8-ми проводной значительно
сокращает число используемых выводов микроконтроллера.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ГЛАВА 3. РАЗРАБОТКА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ
Источник: [1]
Рисунок 13 – Функциональная схема
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
3.3 Принципиальная схема
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 14 – Принципиальная схема
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
3.4 Разработка алгоритма программы
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 17 – Продолжение блок-схемы основного алгоритма
программы
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 19 – Продолжение блок-схемы основного алгоритма
программы
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
При втором срабатывании на выводе PE6 устанавливается высокое
напряжение для пропускания 50% полуволны, а при третьем высокое
напряжение устанавливается на выводе PE5 для пропускания 25%
полуволны. Затем счетчик обнуляется, напряжения выводов PE4-PE7
сбрасываются в 0, и таймер-счетчик 1 выключается.
Блок-схемы обработчиков прерываний показаны на рисунке 20.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ГЛАВА 4. МОДЕЛИРОВАНИЕ И ПРОВЕРКА
ФУНКЦИОНИРОВАНИЯ
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 21 – Схема системы в Proteus
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Из-за большого количества элементов данная схема работает
нестабильно. Для проверки работоспособности создадим упрощенную схему,
имеющую меньшее количество элементов.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
На рисунке 23.1 показан ввод первоначальных данных. Кнопка начала
работы отжата, на ЖКИ выведена заданная оператором температура.
Кнопками В0-В5 будем регулировать задаваемую температуру в следующей
последовательности:
– B0 +10 к температуре;
– B1 -10 к температуре;
– B2 +5 к температуре;
– B3 -5 к температуре;
– B4 +1 к температуре;
– B5 -1 к температуре.
При моделировании установим требуемую температуру равную 210 0С.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 23.2 – Демонстрация работы ручного пульта управления
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 23.4 – Демонстрация работы вывода данных во время работы
системы
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
на 75%. На 25(б) осциллограмме показаны синусоиды, сформированные на
50% (синяя) и 25% (сиреневая). Зеленым на 1 и синим и желтым на 2
осциллограмме показаны сигналы от микроконтроллера, открывающие
симисторы.
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Источник: Собственная разработка
Рисунок 25(б) – Демонстрация работы симисторного управления
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ЗАКЛЮЧЕНИЕ
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Специальная литература
1. Д.В. Васильковский, А.В. Руденко Лабораторный практикум по
курсу «МИКРОПРОЦЕССОРЫ И МИКРОКОНТРОЛЛЕРЫ», 2019. − 248 с.
2. Степаненко И.П. Основы микроэлектроники: Учебное пособие для
вузов. 2-е изд. – М.: Лаборатория базовых знаний, 2001. -100 экз
3. Норенков И.П. Основы автоматизированного проектирования: Учеб.
для вузов. 2-е изд., перераб. и дополн.- М.: Изд-во МГТУ им. Н.Э. Баумана,
2002.-336 с.-15 экз
4. Волович Г.И. Схемотехника аналоговых и аналого-цифровых
электронных устройств. 2-е издание - М.: Издательский дом «Додэка ХХ1»,
2007. -10 экз.
5. Data Sheet. ATmega 128 8-bit Microcontroller with 128K Bytes In-
System Programmable Flash, 2011 – 368 c.
6. Datasheet. PCF8583 Clock/calendar with 240×8-bit RAM, 2010 – 37 c.
Электронные ресурсы
7. Симисторы: принцип работы, проверка и включение, схемы.
[Электронный ресурс] Режим доступа: https://www.asutpp.ru/simistory.html
8. Датчик положения оптический BPS3M-TDT. [Электронный ресурс]
Режим доступа: https://rusautomation.ru/catalog/datchik_polozheniya
9. Усилитель сигналов термопары типа K с компенсацией холодного
спая. [Электронный ресурс] Режим доступа:
https://www.analog.com/ru/products/ad595.html
10. Энкодеры Siemens. [Электронный ресурс] Режим доступа:
https://www.sti-ug.ru/enkodery-simens
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
ПРИЛОЖЕНИЯ
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
Приложение А
Код созданной программы
#include <avr/io.h>
#define F_CPU 10000000UL
#include <util/delay.h>
#include <stdio.h>
#include <stdint.h>
#include <avr/interrupt.h>
int counter_detals=0;
int en_heat=0;
int IMPULS_FROM_ENKODER=0;
int IMPULS_FROM_ENKODER_ZAD=60;
int counter_for_compOCRA1=0;
void usart_1_init(void){
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
void usart_1_write_char(char c){
uint16_t usart_1_read(void){
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
{
char highc=0;
highc=c>>4;
if (rs==LCD_COMMAND) LCD_RS_CLR;
else LCD_RS_SET;
lcd_putnibble(highc);
lcd_putnibble(c);
}
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
/* Передача команды */
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
/* Получение байта */
unsigned char I2C_RecieveByte(void)
{
unsigned char dat;
/* Запуск процесса */
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWEA);
/* Считывание данных */
dat = TWDR;
return dat;
}
dat = TWDR;
return dat;
}
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
/* Считывание текущего времени из микросхемы I2C */
void get_time(void)
{
I2C_StartCondition();
I2C_SendByte(RTC_ADDR);
I2C_SendByte(0x02);
I2C_StartCondition();
I2C_SendByte(RTC_ADDR|1);
sec=I2C_RecieveByte();
min=I2C_RecieveByte();
hour=I2C_RecieveByte();
year_date=I2C_RecieveByte();
day_month=I2C_RecieveLastByte();
I2C_StopCondition();
}
void write_time(void)
{
I2C_StartCondition();
I2C_SendByte(RTC_ADDR);
I2C_SendByte(0x02);
I2C_SendByte(sec);
I2C_SendByte(min);
I2C_SendByte(hour);
I2C_StopCondition();
}
void write_time0(void)
{
I2C_StartCondition();
I2C_SendByte(RTC_ADDR);
I2C_SendByte(0x02);
I2C_SendByte(0b00000000);
I2C_SendByte(0b00000000);
I2C_SendByte(0b00000000);
I2C_SendByte(0b00000000);
I2C_SendByte(0b00000000);
I2C_StopCondition();
}
void timer_ini(void)
{
TCCR3B |= (1<<WGM32); // устанавливаем режим СТС (сброс по совпадению)
TIMSK |= (1<<OCIE3A); //устанавливаем бит разрешения прерывания 3ого счетчика
по совпадению с OCR1A(H и L)
OCR3AH = 0b00100110; //записываем в регистр число для сравнения
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
OCR3AL = 0b00100101; //записываем в регистр число для сравнения
TCCR3B |= (1<<CS30)| (1<<CS30);//установим делитель 1024/ 00100110 00100101
(1sek)
//----------------------------------------
void ADC_Init(void)
{
ADCSRA |= (1<<ADEN) // Разрешение использования АЦП
|(1<<ADSC)//Запуск преобразования
|(1<<ADFR)//Непрерывный режим работы АЦП
|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)//Делитель 128 = 64 кГц
|(1<<ADIE);//Разрешение прерывания от АЦП
//ADMUX |= (1<<REFS1)|(1<<REFS0); //Выбор первого входа преобразования ADCSRA|
=(1<<ADSC)//Запуск преобразования
ADMUX = 0b01000000; //Выбор НУЛЕВОГО входа преобразовани
}
//--------------------------------------------
ISR (INT4_vect)
{
TCNT1H = 0b00000000; //обнуление счетчика таймера, считаеющего чеетверть периода
нагревателей
TCNT1L = 0b00000000;
TCCR1B |= (1<<CS10);//ВКЛЮЧИМ СЧЕТЧИК установим делитель 0. 0110 0001
10101000 /25000(1/4 полупериода)
//PORTE |= 1<<PE0; // включаем самый теплый нагреватель
}
//-----------------------
ISR (TIMER1_COMPA_vect)
{
if (en_heat==1){
if(counter_for_compOCRA1==0){
PORTE |= 1<<PE1; // включаем самый 75%ный нагреватель
counter_for_compOCRA1=counter_for_compOCRA1+1;
}
if (counter_for_compOCRA1==1)
{
PORTE |= 1<<PE2; // включаем самый 50%ный нагреватель
counter_for_compOCRA1=counter_for_compOCRA1+1;
}
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
if (counter_for_compOCRA1==2)
{
PORTE |= 1<<PE3; // включаем самый 25%ный нагреватель
_delay_us(50);
TCCR1B &= 11111000 ;//выключаем таймер счетчик 1
PORTE &= 11110000; // выключаем все нагреватели
counter_for_compOCRA1=0;
}
}
//-----------------------
//-----------------------
ISR (TIMER3_COMPA_vect)
{
IMPULS_FROM_ENKODER=TCNT0;
//if () // СИГНАЛИЗАЦИЯ ОШИБКИ
//{
//}
}
//-----------------------
//----------------------------------------
ISR(ADC_vect)
{
low_adc = ADCL;
high_adc = ADCH;//Верхняя часть регистра ADC должна быть считана последней, иначе
не продолжится преобразование
adc_value = high_adc*256+low_adc;
temr = ((float)adc_value-53.67)/2;
//temp[y1]=temr;
if (y1==0)
{
ADMUX = 0b01000000; //Выбор НУЛЕВОГО входа преобразовани
}
if (y1==1)
{ temr1=temr;
ADMUX = 0b01000001; //Выбор первого входа преобразования
}
if (y1==2)
{ temr2=temr;
ADMUX = 0b01000010; //Выбор 2 входа преобразования
}
if (y1==3)
{temr3=temr;
ADMUX = 0b01000011; //Выбор 3 входа преобразования
}
if (y1==4)
{temr4=temr;
ADMUX = 0b01000100; //Выбор 4 входа преобразования
}
if (y1==5)
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
{temr5=temr;
ADMUX = 0b01000101; //Выбор 5 входа преобразования
}
if (y1==6)
{temr6=temr;
ADMUX = 0b01000110; //Выбор 6 входа преобразования
}
if (y1==7)
{
temr7=temr;
ADMUX = 0b01000111; //Выбор 7 входа преобразования
}
ADCSRA |= (1<<ADSC);//Запуск преобразования
y1=y1+1;
if (y1==8)
{
temr8=temr;y1=0; }
}
//----------------------------------------
int main()
{
init_port();
lcd_init();
lcd_clear();
int i = 0;
PORTA = 0x00;
DDRA = 0x00;
/* Инициализация обмена по TWI на 100 кГц */
TWBR=0x2A;
/* Инициализация адреса МК на шине I2C */
TWAR=0x00;
int knopka_start=0;
while (1) {
lcd_clear();
if(PIND&(1<<4)){ //KNOPKA START
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
if(PINA&(1<<4)){ // KONCEVOY VIKLUCHATEL
if(~(PINA&(1<<4))){ // KONCEVOY VIKLUCHATEL
if (((trebuemaya_temp<(temr1+10))&&(trebuemaya_temp>(temr1-10)))||(i5=1))
{ i5=1;i4=0;
if(trebuemaya_temp>(temr1+10)){
en_heat=0; //выключим 75 50 25
нагреватели
PORTE&=~(1<<0); //Выключим 100%
нагреватель
}
if(trebuemaya_temp<(temr1-10)){
en_heat=1; //включим 75 50 25 нагреватели
PORTE|=(1<<0); //Включим 100% нагреватель
}
if((IMPULS_FROM_ENKODER<(IMPULS_FROM_ENKODER_ZAD-5))||
(IMPULS_FROM_ENKODER>(IMPULS_FROM_ENKODER_ZAD+5))){
PORTA|=(1<<PA1); // ДВИГАТЕЛЬ РАБОТАЕТ НЕКОРРЕКТНО ВКЛЮЧАЕМ
БУЗЗЕР
}
if((IMPULS_FROM_ENKODER>(IMPULS_FROM_ENKODER_ZAD-
5))&&(IMPULS_FROM_ENKODER<(IMPULS_FROM_ENKODER_ZAD+5))){
// ДВИГАТЕЛЬ РАБОТАЕТ КОРРЕКТНО ВЫКЛЮЧАЕМ БУЗЗЕР
lcd_putc(1);
lcd_putc('Det=');
lcd_putc((unsigned char) (counter_detals/100)
+0x30);//Преобразуем число в код числа);
lcd_putc(((unsigned char)(counter_detals/10)%10 +0x30)); //
ВЫВОДИМ КОЛИЧЕСТВО ДЕТАЛЕЙ НА ЖКИ
lcd_putc(((unsigned char) (counter_detals))%10 +0x30);
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
if (chan==2)
{
lcd_clear();
_putc((unsigned char) (temr1/100) +0x30);//Преобразуем число в
код числа);
] lcd_putc(((unsigned char)(temr1/10)%10 +0x30)); // ВЫВОДИМ
ТЕМПЕРАТУРУ ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (temr1))%10 +0x30);
lcd_putc(1);
lcd_putc(1);
lcd_putc((unsigned char) (temr3/100) +0x30);//Преобразуем
число в код числа);
lcd_putc(((unsigned char)(temr3/10)%10 +0x30)); // ВЫВОДИМ
ТЕМПЕРАТУРУ ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (temr3))%10 +0x30);
lcd_putc(1);
lcd_putc(1);
if (chan==3)
{
lcd_clear();
lcd_putc((unsigned char) (temr4/100) +0x30);//Преобразуем число в код
числа);
lcd_putc(((unsigned char)(temr4/10)%10 +0x30)); // ВЫВОДИМ ТЕМПЕРАТУРУ
ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (temr4))%10 +0x30);
lcd_putc(1);
lcd_putc(1);
lcd_putc((unsigned char) (temr6/100) +0x30);//Преобразуем число в код
числа);
lcd_putc(((unsigned char)(temr6/10)%10 +0x30)); // ВЫВОДИМ ТЕМПЕРАТУРУ
ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (temr6))%10 +0x30);
lcd_putc(1);
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
lcd_putc((unsigned char) (temr7/100) +0x30);//Преобразуем число в код
числа);
lcd_putc(((unsigned char)(temr7/10)%10 +0x30)); // ВЫВОДИМ ТЕМПЕРАТУРУ
ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (temr7))%10 +0x30);
lcd_putc(1);
}
}
}
if(i4==100){
en_heat=0; //выключим 75 50 25 нагреватели
PORTE&=~(1<<0); //Выключим 100% нагреватель
i4=0;}
}
else // DATCHIK POLOZHENIA 1 else
{
}
}
while (PINA&(1<<7))
{
DDRF=0b10000000;
PORTF=0b10000000;
lcd_putc('Request t=');
if (PINB&(1<<0)) //B0 +10 К ТЕМПЕРАТУРЕ
{
trebuemaya_temp=trebuemaya_temp+10;
}
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата
}
lcd_clear();
lcd_putc('Ct=');
lcd_putc((unsigned char) (215/100) +0x30);//Преобразуем число
в код числа);
lcd_putc(((unsigned char)(temr1/10)%10 +0x30)); // ВЫВОДИМ
ТЕМПЕРАТУРУ ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (temr1))%10 +0x30);
lcd_putc(1);
lcd_putc('Rt=');
lcd_putc((unsigned char) (( trebuemaya_temp-temr1)/100)
+0x30);//Преобразуем число в код числа);
lcd_putc(((unsigned char)(( trebuemaya_temp-temr1)/10)%10
+0x30)); // ВЫВОДИМ ОТКЛОНЕНИЯ ТЕРМОУСТАНОВКИ НА ЖКИ
lcd_putc(((unsigned char) (( trebuemaya_temp-temr1)))%10
+0x30);
}
}
}
Лист
ОКПО.421411.006ПЗ 2
Изм. Лист № докум. Подпись Дата