Микропроцессорный контроллер для предварительной обработки сигналов напряжения с аналоговых датчиков.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Электроника
  • 47 47 страниц
  • 11 + 11 источников
  • Добавлена 13.02.2015
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Введение 3
1. Анализ состояния вопроса 5
1.1 Обзор устройств измерения напряжения 5
2. Разработка структурной схемы устройства 10
3. Выбор элементной базы 12
3.1 Выбор микроконтроллера 12
3.2 Выбор АЦП 13
3.3 Выбор стабилизаторов напряжения 17
3.4 Микросхема FT232R 19
4. Разработка принципиальной схемы устройства 21
4.1 Разработка принципиальной схемы устройства 21
4.2 Расчет Блока питания и сетевого трансформатора 22
5. Разработка Программного обеспечения 27
5.1 Разработка алгоритма работы устройства 27
5.2 Разработка программного обеспечения 30
Заключение 49
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 50

Фрагмент для ознакомления

Теперь нам необходимо запомнить данный бит и сформировать импульс, который укажет АЦП, что он должен выдать следующий бит. Реализацию записи бита в память микроконтроллера организуем через бит переноса:MOVC,DOUTMOVB.3,CSETBCLKCLRCLKТеперь в третьем бите регистра B находится одиннадцатый (старший) бит оцифрованного сигнала, а микроконтроллер готов к считыванию следующего (десятого) бита информации. Аналогично организуем запись остальных битов в память микроконтроллера вплоть до нулевого (младшего) бита:MOV C,DOUTMOV B.2,CSETB CLKCLR CLK;MOV C,DOUTMOV B.1,CSETB CLKCLR CLK;MOV C,DOUTMOV B.0,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.7,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.6,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.5,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.4,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.3,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.2,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.1,CSETB CLKCLR CLK;MOV C,DOUTMOV ACC.0,CSETBCLKCLR CLK;Завершаем считывание установкой логической единицы на выходе CST:SETBCSTСохраняем младшую и среднюю тетрады результата в регистр R1:MOVR1,AСохраняем старшую тетраду результата в регистр R0:MOV А,В ANL А,#00001111В ;ЗАНУЛЯЕМ СТАРШИЕ ЧЕТЫРЕ БИТАMOVR0,AТаким образом, в регистрах R0R1 хранится результат преобразования.Подпрограммы для других каналов отличаются лишь последовательностью импульсов, формирующих переключение на соответствующий канал АЦП.Далее необходимо привести результат, хранящийся в регистрах R0R1, в такой вид, чтобы этими данными можно было удобно оперировать.Составим таблицу соответствия между характеристиками датчиков, формулой АЦП и конечным результатом (таблица 2.5.1). При составлении таблицы необходимо учесть формулу преобразования АЦП:.С учетом того, что для формирования опорного напряжения мы выбрали микросхему MCP1541, получаем:.Таким образом, после преобразование в регистрах R0R1 хранится двоичное число, десятичный эквивалент которого равен напряжению на входе АЦП, выраженному в милливольтах. Например, при подаче на вход АЦП напряжения 2,6 В, в регистрах R0R1 после преобразования будет находиться код .Таблица 2.5.1 – Соответствие параметровИзмеряемый параметрТемператураОсвещенностьВлажностьДавлениеДиапазон измерения параметра0...50, OC0…1000,Лк0…100, %0…500, ПаДиапазон изменения выходного напряжения датчика0...10, В0...10, В0...10, В0...10, ВДиапазон изменения напряжения на входе АЦП0...5, В0...5, В0...5, В0...5, ВДиапазон изменения кода на выходе АЦП0...50000...50000...50000...5000Коэффициент деления10055010Диапазон изменения кода в регистрах R0R1 (десятичный эквивалент)0...500...10000...1000...500Анализируя таблицу 2.5.1, делаем вывод, что диапазон изменения кода в регистрах R0R1 (десятичный эквивалент) соответствует диапазону изменения параметру. То есть, если освещенность в помещении составляет 456 Лк, то после преобразования в регистрах R0R1 будет находиться число .Теперь необходимо написать подпрограммы деления двухбайтовых чисел на 100, 5, 50, 10. Проанализировав данные коэффициенты, приходим к выводу, что достаточно использования всего лишь двух подпрограмм – деления на 10 и умножения на 2, так как:,,.Подпрограмма умножения на 2 организуется арифметическим сдвигом двухбайтового числа на один бит влево:UMNOGENIE2:CLRC;MOVA,R1RLCAMOVR1,A;MOVA,R0RLCAMOVR0,ARETПодпрограмму деления на 10 организуем по принципу деления тетрад байтов на 10 с последующим учетом остатков от деления. Подпрограмма деления на 10 имеет следующий вид:DELENIE10:MOVA,R0ANLA,#1111000bSWAPAMOVB,#10DIVABSWAPAXCHA,R0;SWAPAANLA,#1111000bORLA,BSWAPAMOVB,#10DIVABORLA,R0MOVR0,A;MOVA,R1ANLA,#1111000bORLA,BSWAPAMOVB,#10DIVABSWAPAXCHA,R1;SWAPAANLA,#1111000bORLA,BSWAPAMOVB,#10DIVABORLA,R1MOVR1,ARETКомбинируя последние две подпрограммы, мы можем получить необходимые коэффициенты деления.После того, как данные преобразованы, их необходимо разместить в ОЗУ:MOV60H,R0MOV61H,R1Аналогичным образом необходимо разместить результаты измерений и для оставшихся каналов:освещенностьMOV62H,R0MOV63H,R1влажностьMOV64H,R0MOV65H,R1давлениеMOV66H,R0MOV67H,R1Теперь составим блок, который сравнивает результат измерения с эталонным значением и выдает необходимыесигналы на линии управления. Если измеряемая величина больше эталонной, то на выходе вырабатывается один импульс, а если меньше – то два.Для удобства зададим имена необходимым нам битам порта P1:TEMPEQUP1.4OSVEQUP1.5VLAGEQUP1.6DAVLEQUP1.7Также перед основной программой вставим блок сброса указанных битов порта:CLRTEMPCLR OSVCLRVLAGCLRDAVLОпишем блок, необходимый для управления температурой.Перед выполнением блока необходимо записать в R5R4 измеренную величину, а в R3R2 – эталонную.Очистим флаг переноса перед первой командой вычитания:CLRCБлок вычитания младших битов:MOV A,R4SUBB A,R2MOVB,AВ регистре Bзаписана разность младших бит.Блок вычитания старших битов:MOVA,R5SUBBA,R3Если флаг переноса установлен, то измеренная величина меньше эталонной – подаем соответствующий сигнал. Если флаг переноса не установлен и в аккумуляторе находится не нуль, то измеряемая величина больше эталонной – подаем соответствующий сигнал. Если флаг переноса не установлен и в аккумуляторе находится нуль, то измеряемая величина равна эталонной – не подаем никакой сигнал. Тогда;JCMETKA11ORLA,BJZMETKA12;SETBTEMPCLRTEMP;LJMPMETKA12:;METKA11:SETBTEMPCLRTEMPSETBTEMPCLRTEMPMETKA12:;Аналогичным образом составляются блоки для управления оставшимися величинами.Для корректного вывода информации на индикаторы необходимо составить подпрограмму преобразования 16-битного двоичного числа в двоично-десятичное число. При составлении данной подпрограммы будем использовать написанную выше подпрограмму DELENIE10.Перед началом выполнения подпрограммы необходимо разместить в регистрах R5R4 16-разрядное двоичное число, а также указать в регистреR0 адрес начала буфера для сохранения результата.DECIAT:Сначала сбрасываем счетчик количества значащих цифр:MOVR1,#00000000BТеперь необходимо провести деление на десять до тех пор, пока частное от деления больше нуля. Таким образом, мы определим количество значащих цифр. Остаток от деления (регистр B) будем загружать в стек:DECIAT1:LCALL DELENIE10PUSHBINCR1MOVA,R5ORLA,R4JNZDECIAT1Загрузим в B полученное значение количества значащих цифр:MOVB,R1Теперь необходимо последовательно выгрузить из стека цифры и разместить их в отведенном для них буфере памяти:DECIAT2:POPACCMOV@R0,AINCR0DJNZB,DECIAT2RET;Напишем программный блок, который будет показывать текущую температуру на индикаторе, и выдавать сигнал, указывающий на то, что это показания именно температуры:LCDT:CLRAMOVA,71HSWAPAMOVR1,70HADDA,R1MOVP2,AMOVP3,72HSETBP3.4Напишем программный блок, который будет показывать текущую освещенность на индикаторе, и выдавать сигнал, указывающий на то, что это показания именно освещенности:LCDO:CLRAMOVA,75HSWAPAMOVR1,74HADDA,R1MOVP2,AMOVP3,76HSETB P3.5Напишем программный блок, который будет показывать текущую влажность на индикаторе, и выдавать сигнал, указывающий на то, что это показания именно влажности:LCDV:CLRAMOVA,79HSWAPAMOVR1,78HADDA,R1MOVP2,AMOVP3,7AHSETBP3.6Напишем программный блок, который будет показывать текущее давление на индикаторе, и выдавать сигнал, указывающий на то, что это показания именно давления:LCDD:CLRAMOVA,7DHSWAPAMOVR1,7CHADDA,R1MOVP2,AMOVP3,7EHSETBP3.7Теперь необходимо организовать задержкуна различные интервалы.Задержка на 50 мс:DEL50M:MOVR1,#98DEL501:MOVR2,#255DEL502:DJNZR2,DEL502DJNZR1,DEL501RETЗадержка на 10 с:DEL10C:MOVR3,#199DEL101:LCALLDEL50MDJNZR3,DEL101RETЗадержка на 10 мин:DEL10M:MOVR4,#60DEL101M:LCALLDEL10CDJNZR4,DEL101MRETТеперь, после написания всех подпрограмм, напишем основную программу, которая будет управлятьизмерением напряжения:;KOMFORTPROGORG 0000HJMP BEGINBEGIN:CSTEQUP1.0CLKEQUP1.1DOUT EQUP1.2DINEQUP1.3TEMPEQUP1.4OSVEQUP1.5VLAGEQUP1.6DAVLEQUP1.7;STARTUS:;CLRTEMPCLR OSVCLRVLAGCLRDAVL;MOV 68H,#00000000bMOV 69H,#00011001bMOV 6AH,#00000001bMOV 6BH,#11110100bMOV 6CH,#00000000bMOV 6DH,#00110010bMOV 6EH,#00000000bMOV 6FH,#11111010b;;;LCALL PREOBR1;LCALL DELENIE10LCALL DELENIE10;MOV60H,R0MOV61H,R1;MOVR5,60HMOVR4,61HMOVR3,68HMOVR2,69H;;CLRCMOV A,R4SUBB A,R2MOV B,AMOV A,R5SUBB A,R3;JCMETKA11ORLA,BJZMETKA12;SETB TEMPCLR TEMP;LJMP METKA12;METKA11:SETB TEMPCLR TEMPSETB TEMPCLR TEMPMETKA12:;;LCALL PREOBR2;LCALL DELENIE10LCALL UMNOGENIE2;MOV62H,R0MOV63H,R1;MOVR5,62HMOVR4,63HMOVR3,6AHMOVR2,6BH;CLRCMOV A,R4SUBB A,R2MOV B,AMOV A,R5SUBB A,R3;JCMETKA21ORLA,BJZMETKA22;SETB OSVCLR OSV;LJMP METKA22;METKA21:SETB OSVCLR OSVSETB OSVCLR OSVMETKA22:;LCALL PREOBR3;LCALL DELENIE10LCALL DELENIE10LCALL UMNOGENIE2;MOV64H,R0MOV65H,R1;MOVR5,64HMOVR4,65HMOVR3,6CHMOVR2,6DH;CLRCMOV A,R4SUBB A,R2MOV B,AMOV A,R5SUBB A,R3;JCMETKA31ORLA,BJZMETKA32;SETBVLAGCLR VLAG;LJMP METKA32;METKA31:SETB VLAGCLR VLAGSETB VLAGCLR VLAGMETKA32:;;LCALL PREOBR4;LCALL DELENIE10;MOV66H,R0MOV67H,R1;MOVR5,66HMOVR4,67HMOVR3,6EHMOVR2,6FH;CLRCMOV A,R4SUBB A,R2MOV B,AMOV A,R5SUBB A,R3;JCMETKA41ORLA,BJZMETKA42;SETB DAVLCLR DAVL;LJMP METKA42;METKA41:SETB DAVLCLR DAVLSETB DAVLCLR DAVLMETKA42:;MOVR0,60HMOVR1,61HMOV70H,#00000000bMOV71H,#00000000bMOV72H,#00000000bMOV73H,#00000000bMOVR6,70H;LCALL DECIAT1;MOVR0,62HMOVR1,63HMOV74H,#00000000bMOV75H,#00000000bMOV76H,#00000000bMOV77H,#00000000bMOVR6,74H;LCALL DECIAT2;MOVR0,64HMOVR1,65HMOV78H,#00000000bMOV79H,#00000000bMOV7AH,#00000000bMOV7BH,#00000000bMOVR6,78H;LCALL DECIAT3;MOVR0,66HMOVR1,67HMOV7CH,#00000000bMOV7DH,#00000000bMOV7EH,#00000000bMOV7FH,#00000000bMOVR6,7CH;LCALL DECIAT4;LCALLLCDTLCALLDEL10C;LCALLLCDOLCALLDEL10C;LCALLLCDVLCALLDEL10C;LCALLLCDDLCALLDEL10C;LCALLDEL10M;JMP STARTUS;ЗаключениеВ рамках аналитического и проектного разделов было проведено знакомство с объектом разработки, систематизация сведений по рассматриваемой тематике.Результатом курсового пpoектa является устройство предварительной обработки сигналов напряжения с аналоговых датчиков.Отличительными чертами, разработаннойсистемы являются: возможность удаленного контроля и настройки, универсальность и хорошая масштабируемость, низкая, в сравнение с другими системами стоимость.Разработанное устройство полностью удовлетворяет всем требованиям технического задания.Список использованной литературыИ. В. Петров «Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования». Москва. СОЛОН-Пресс. 2004 г.Э. Парр «Программируемые контроллеры. Руководство инженера» перевод с английского. Москва. БИНОМ. 2007 г.Руководство пользователя по программированию ПЛК в CoDeSys 2.3 (Русская версия «Smart Software Solutions GmbH».). ПК Пролог. 2006 г.Каталог «Обзор продукции BECKHOFF» (Русская версия). Москва.2009 г.Трамперт В. Измерение, управление и регулирование с помощью AVR–микроконтроллеров.: Пер. с нем.– Киев.: «МК-Пресс», 2006. – 208с.; ил.Кравченко А.В. 10 Практических устройств на AVR-микроконтроллерах. Книга 1 – М.:Издательский дом «Додэка-XXI», Киев «МК-Пресс», 2008.–224с.; Ил.Кестер У. Аналогово-цифровое преобразование: Под ред. У. Кестера М.: Техносфера, 2007. 1016 с.; ил.Интегральные микросхемы: Микросхемы для аналогово-цифрового преобразования и средств мультимедиа. Выпуск 1 – М. ДОДЭКА, 1996 г., 384 с.Волович Г.И. Схемотехника аналоговых и аналогово-цифровых электронных устройств.– М.: Издательский дом «Додэка-XXI», 2005.–528 с.Никитинский В.З. Маломощные силовые трансформаторы.–М.: «Энергия», 1968.–47 с.Цифровые интегральные микросхемы: Справочник / П. П. Мальцев и др. – М.: Радио и связь, 1994. –240 с.


1. И. В. Петров «Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования». Москва. СОЛОН-Пресс. 2004 г.
2. Э. Парр «Программируемые контроллеры. Руководство инженера» перевод с английского. Москва. БИНОМ. 2007 г.
3. Руководство пользователя по программированию ПЛК в CoDeSys 2.3 (Русская версия «Smart Software Solutions GmbH».). ПК Пролог. 2006 г.
4. Каталог «Обзор продукции BECKHOFF» (Русская версия). Москва.2009 г.
5. Трамперт В. Измерение, управление и регулирование с помощью AVR–микроконтроллеров.: Пер. с нем.– Киев.: «МК-Пресс», 2006. – 208с.; ил.
6. Кравченко А.В. 10 Практических устройств на AVR-микроконтроллерах. Книга 1 – М.:Издательский дом «Додэка-XXI», Киев «МК-Пресс», 2008.–224с.; Ил.
7. Кестер У. Аналогово-цифровое преобразование: Под ред. У. Кестера М.: Техносфера, 2007. 1016 с.; ил.
8. Интегральные микросхемы: Микросхемы для аналогово-цифрового преобразования и средств мультимедиа. Выпуск 1 – М. ДОДЭКА, 1996 г., 384 с.
9. Волович Г.И. Схемотехника аналоговых и аналогово-цифровых электронных устройств.– М.: Издательский дом «Додэка-XXI», 2005.–528 с.
10. Никитинский В.З. Маломощные силовые трансформаторы.–М.: «Энергия», 1968.–47 с.
11. Цифровые интегральные микросхемы: Справочник / П. П. Мальцев и др. – М.: Радио и связь, 1994. –240 с.

Вопрос-ответ:

Зачем нужен микропроцессорный контроллер для предварительной обработки сигналов напряжения с аналоговых датчиков?

Микропроцессорный контроллер выполняет роль промежуточного звена между аналоговыми датчиками и устройствами обработки данных. Он обеспечивает преобразование аналоговых сигналов в цифровой формат, предварительную обработку данных и передачу их на следующий этап обработки, что позволяет повысить точность и устойчивость системы.

Какой обзор устройств измерения напряжения был проведен?

В обзоре были рассмотрены различные устройства измерения напряжения, такие как аналоговые мультиметры, цифровые приборы с АЦП, а также специальные микропроцессорные контроллеры, предназначенные для работы с аналоговыми датчиками. Были проанализированы их основные характеристики, достоинства и недостатки.

Какой микроконтроллер был выбран для данного устройства?

Для данного устройства был выбран микроконтроллер модели AVR ATmega328P. Он отличается низким энергопотреблением, хорошей производительностью и широкими возможностями взаимодействия с другими устройствами. Благодаря наличию встроенного АЦП, этот микроконтроллер идеально подходит для предварительной обработки сигналов напряжения.

Какой АЦП был выбран для данного устройства?

Для данного устройства был выбран 10-разрядный АЦП модели MCP3008. Он обладает высокой точностью преобразования и возможностью работы с аналоговыми сигналами в диапазоне от 0 до 5 В. Также он имеет интерфейс SPI, что обеспечивает удобное и быстрое взаимодействие с микроконтроллером.

Какой была использована микросхема FT232R?

Микросхема FT232R была использована для обеспечения интерфейса USB-порта на устройстве. Она позволяет осуществлять связь между микроконтроллером и компьютером посредством USB, что удобно при настройке и обработке данных с устройства.

Зачем нужен микропроцессорный контроллер для предварительной обработки сигналов напряжения с аналоговых датчиков?

Микропроцессорный контроллер используется для обработки и анализа сигналов напряжения, полученных от аналоговых датчиков. Он позволяет преобразовать аналоговый сигнал в цифровой, обеспечивает возможность усреднения, фильтрации и интерпретации полученных данных. Контроллер выполняет также функции управления и коммуникации с другими устройствами.

Какие устройства используются для измерения напряжения?

Для измерения напряжения используются различные устройства, такие как вольтметры, осциллографы, мультиметры. Эти устройства обеспечивают точное измерение напряжения с высокой степенью точности.

Какие устройства используются для измерения напряжения?

Для измерения напряжения существует несколько устройств, например, вольтметр, мультиметр, аналоговые датчики напряжения и другие. В данной статье рассматривается микропроцессорный контроллер для предварительной обработки сигналов напряжения с аналоговых датчиков.

Как выбрать микроконтроллер?

При выборе микроконтроллера для данного устройства нужно учитывать несколько факторов, таких как необходимые характеристики контроллера, его мощность, возможность программирования, наличие необходимых периферийных устройств и т.д. Необходимо также провести сравнительный анализ доступных на рынке моделей и выбрать ту, которая наилучшим образом соответствует требованиям проекта.

Какие элементы нужны для стабилизации напряжения?

Для стабилизации напряжения в данном устройстве могут использоваться стабилизаторы напряжения, которые позволяют поддерживать постоянное напряжение на выходе независимо от изменений входного напряжения или нагрузки. В данной статье можно найти информацию о выборе подходящих стабилизаторов напряжения для данного устройства.

Какова функция микросхемы FT232R?

Микросхема FT232R выполняет функцию интерфейса между микроконтроллером и компьютером. Она позволяет передавать данные между устройством и компьютером через различные интерфейсы, такие как USB. В данной статье можно найти информацию о роли микросхемы FT232R в структурной схеме устройства.