Помощь в написании студенческих работ
Антистрессовый сервис

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

Курсовая Купить готовую Узнать стоимостьмоей работы

Теперь нам необходимо запомнить данный бит и сформировать импульс, который укажет АЦП, что он должен выдать следующий бит. Реализацию записи бита в память микроконтроллера организуем через бит переноса: MOVC, DOUTMOVB.3,CSETBCLKCLRCLKТеперь в третьем бите регистра B находится одиннадцатый (старший) бит оцифрованного сигнала, а микроконтроллер готов к считыванию следующего (десятого) бита… Читать ещё >

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

Содержание

  • Введение
  • 1. Анализ состояния вопроса
    • 1. 1. Обзор устройств измерения напряжения
  • 2. Разработка структурной схемы устройства
  • 3. Выбор элементной базы
    • 3. 1. Выбор микроконтроллера
    • 3. 2. Выбор АЦП
    • 3. 3. Выбор стабилизаторов напряжения
    • 3. 4. Микросхема FT232R
  • 4. Разработка принципиальной схемы устройства
    • 4. 1. Разработка принципиальной схемы устройства
    • 4. 2. Расчет Блока питания и сетевого трансформатора
  • 5. Разработка Программного обеспечения
    • 5. 1. Разработка алгоритма работы устройства
    • 5. 2. Разработка программного обеспечения
  • Заключение
  • СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Теперь нам необходимо запомнить данный бит и сформировать импульс, который укажет АЦП, что он должен выдать следующий бит. Реализацию записи бита в память микроконтроллера организуем через бит переноса: 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 А,#1 111 В ;ЗАНУЛЯЕМ СТАРШИЕ ЧЕТЫРЕ БИТА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…

50 000…

50 000…

50 000…

Коэффициент деления10 055 010.

Диапазон изменения кода в регистрах R0R1 (десятичный эквивалент).

0…

500…

10 000…

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,#111 1000bSWAPAMOVB,#10DIVABSWAPAXCHA, R0;SWAPAANLA,#111 1000bORLA, BSWAPAMOVB,#10DIVABORLA, R0MOVR0, A;MOVA, R1ANLA,#111 1000bORLA, BSWAPAMOVB,#10DIVABSWAPAXCHA, R1;SWAPAANLA,#111 1000bORLA, 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,#00BТеперь необходимо провести деление на десять до тех пор, пока частное от деления больше нуля. Таким образом, мы определим количество значащих цифр. Остаток от деления (регистр 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,#00bMOV 69H,#1 1001bMOV 6AH,#01bMOV 6BH,#1 111 0100bMOV 6CH,#00bMOV 6DH,#11 0010bMOV 6EH,#00bMOV 6FH,#1 111 1010b;;;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,#00bMOV71H,#00bMOV72H,#00bMOV73H,#00bMOVR6,70H;LCALL DECIAT1;MOVR0,62HMOVR1,63HMOV74H,#00bMOV75H,#00bMOV76H,#00bMOV77H,#00bMOVR6,74H;LCALL DECIAT2;MOVR0,64HMOVR1,65HMOV78H,#00bMOV79H,#00bMOV7AH,#00bMOV7BH,#00bMOVR6,78H;LCALL DECIAT3;MOVR0,66HMOVR1,67HMOV7CH,#00bMOV7DH,#00bMOV7EH,#00bMOV7FH,#00bMOVR6,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 с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ