Разработка микропроцессорного устройства - Курсовая работа

бесплатно 0
4.5 78
Взаимосвязь измеряемой высоты с электрическим эквивалентом . Измерение длительности импульса на основе микроконтроллера семейства PIC16F87x компании Microchip. Функциональная схема измерителя высоты. Принципиальная электрическая схема источника питания.


Аннотация к работе
Микроконтроллер (МК) - разновидность микропроцессорной системы, отличающийся тем, что содержит внутри постоянную оперативную память и многочисленные устройства ввода / вывода, аналоговые и цифровые преобразователи, последовательные и параллельные каналы передачи информации, широтно-импульсные модуляторы, генераторы программируемых импульсов, таймеры реального времени, модули обработки сигналов. Для реализации микропроцессорного устройства измерения высоты выбираем микроконтроллер (МК) семейства PICMICRO компании Microchip PIC16F873. Система команд позволяет использовать любой регистр в любой команде, используя необходимый режим адресации (прямой, косвенный, относительный). Измерение длительности импульса легко реализовать на основе любого микроконтроллера семейства PIC16F87x компании Microchip. Микроконтроллер осуществляет измерение длительности импульса и преобразование полученного числового эквивалента, который после преобразования выдается на индикацию.В результате выполнения курсовой работы был разработан микропроцессорный измеритель высоты с выводом результатов на ЖК индикатор, удовлетворяющий заданным техническим характеристикам.;********************************** main call init_mk; инициализация микроконтроллера call init_lcd; инициализация ЖКИ start call measure; измерение длительности импульса call ekv; вычисление числового эквивалента call bcd; преобразование числового эквивалента в 2-10 код movwf Nsot, w; определение достижения 20 км xorlw 0x02; bcf PORTA, 4; размыкание контакта на землю call 25ms; пауза 25 мс. call indicate; индикация результатов измерения goto start end.

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

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

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

МК классифицируются по разрядности данных: 4-х, 8-ми, 16-ти, 32-х разрядные.

Общие тенденции современных МК - это уменьшение числа внешних элементов, т.е. на кристалле микросхемы размещают всевозможные нагрузочные («подтягивающие») резисторы, конденсаторы, цепи логики и т.п.

Для реализации микропроцессорного устройства измерения высоты выбираем микроконтроллер (МК) семейства PICMICRO компании Microchip PIC16F873.

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

Под одним циклом понимается четыре такта тактового генератора. Частота тактового генератора Fosc/4 (максимальная частота 20 МГЦ).

В микроконтроллере (МК) PIC16F873 память программ и данные расположены в отдельных блоках и для обращения к ним используются отдельные шины.

По шине данных передаются восьмиразрядные слова данных, а по шине команд (программ) четырнадцатиразрядные коды операций.

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

Система команд позволяет использовать любой регистр в любой команде, используя необходимый режим адресации (прямой, косвенный, относительный). Регистром косвенной адресации является FSR. Его содержимое используется как четыре младших разряда адреса (индекса).

1. Анализ технического задания

Взаимосвязь измеряемой высоты с электрическим эквивалентом имеет вид: T=k*H [мс], где H - высота, км, k=2 мс/км.

Таким образом, измерение высоты сводиться к измерению длительности прямоугольного импульса.

Определим длительность импульса: Hmin=0.1 км, Tmin=0.1 км*2 мс/км=0,2 мс.

Hmax=20 км, Tmax=20 км*2 мс/км=40 мс.

Погрешность измерения ?Н=±0.1 км или ?Т=±0,2 мс.

Измерение длительности импульса легко реализовать на основе любого микроконтроллера семейства PIC16F87x компании Microchip.

2. Описание выбранного метода измерения

Основным методом измерения длительности импульса является метод непосредственного счета, суть которого заключается в том, что берется некая квантующая частота fk и определяется, сколько периодов ТК квантующей частоты укладывается в длительность измеряемого импульса. То есть числовой эквивалент будет иметь вид

.

В нашем случае при квантовании микроконтроллера частотой 4 МГЦ, частота квантования таймера составит 1 МГЦ, погрешность квантования 1 мкс.

Для измерения длительности прямоугольного импульса с помощью микроконтроллера необходимо отслеживать появление его переднего и заднего фронтов. Для этого нужно настроить любой порт МК как цифровой вход и отслеживать момент, когда на нем появится логический «0», а затем логическая «1» т.е. передний фронт импульса. Как только на входе появится логическая «1», необходимо запустить таймер, который будет считать количество отсчетов постоянной частотой тактирования fk. Далее необходимо постоянно отслеживать появление логического «0» на входе, т.е. приход заднего фронта импульса. При появлении логического «0» на входе надо остановить таймер. Затем, зная количество отсчетов можно вычислить длительность прямоугольного импульса.

Рис. 1. Измерение длительности импульса

Функциональная схема измерителя высоты представлена на рис. 2.

Рис. 2. Функциональная схема

Измеряемый импульс поступает в микроконтроллер (МК) с датчика, кварцевый резонатор (КР) задает тактовую частоту микроконтроллера. Микроконтроллер осуществляет измерение длительности импульса и преобразование полученного числового эквивалента, который после преобразования выдается на индикацию. Питание микроконтроллера осуществляется от блока питания (БП).

3. Разработка блока питания

Источник питания необходим преобразования переменного напряжения 115В, 400 Гц в постоянное напряжение 5В для питания микроконтроллера и средств индикации. Источник питания состоит из следующих основных элементов: трансформатора, выпрямителя, стабилизатора напряжения. Принципиальная электрическая схема источника питания представлена на рис. 3.

Рис. 3. Принципиальная электрическая схема источника питания импульс электрический микроконтроллер измеритель

Определим токи потребления: Максимальный ток потребления микроконтроллера - 15 МА.

Максимальный ток потребления ЖК индикатора МТ-10S1-3Y - 1 МА.

Таким образом, общий ток потребления равен Іпотр=16 МА.

По необходимому выходному напряжению ( 5 В) и току (2*Іпотр=32 МА) источника питания выбираем стабилизатор напряжения.

В качестве стабилизатора на 5 В выбираем микросхему MC78L05AB со следующими характеристиками: Выходное напряжение - 5±0,2 В.

Выходной ток - до 0,1 А.

Рис. 4. Зависимость выходного напряжения от входного микросхемы MC78L05AB

Для выпрямителя выбираем диодный мост DB156 со следующими характеристиками: Максимальное постоянное обратное напряжение: 800 В;

Максимальное импульсное обратное напряжение: 960 В;

Максимальный прямой (выпрямленный за полупериод) ток: 1,5 А;

Максимальный допустимый прямой импульсный ток: 60 А;

Максимальный обратный ток: 10 МКА;

Рабочая частота: 10 КГЦ;

Максимальное прямое напряжение: 1,1 В при токе Іпр.: 1,5 А;

Рабочая температура: -55…125 ?С.

Выходное напряжение выпрямителя определяется по формуле:

(3.1)

Для получения напряжения 5 В на выходе стабилизатора, его входное напряжение, после выпрямления переменного напряжения со вторичной обмотки трансформатора, должно быть порядка 7-7,5 В (рис. 4). Таким образом, необходимое напряжение вторичной обмотки трансформатора определится из формулы (3.1) как: =7 В/1,4?5 В.

С учетом падения напряжения на диодах выпрямительного моста выберем трансформатор с выходным напряжением 6 В.

Выбираем трансформатор типа ТПК - 0,7-6В со следующими характеристиками: Напряжение вторичных обмоток в режиме номинальной нагрузки - 6 В.

Ток номинальной нагрузки - 0,12 А.

Максимальная выходная мощность - 0,7 Вт.

5. Описание используемых модулей

Для решения поставленной задачи - измерения длительности прямоугольного импульса напряжения будет использоваться модуль таймера TMR1 и порт ввода RA1 для получения от датчика измеряемого импульса.

Таймер-счетчик TMR1. 16-ти разрядный, доступный для чтения и записи. Состоит из двух 8-ми разрядных регистров TMR1H (0Fh) и TMR1L(0Eh). Счет выполняется в спаренном регистре TMR1, инкрементируя его значение от 0000h до FFFFH, далее считает сначала.

За работу TMR1 отвечает управляющий регистр Т1CON (регистр специального назначения, доступен для чтения и записи), который содержит биты: - выбора коэффициента деления предделителя;

- включения тактового генератора;

- синхронизации внешнего тактового сигнала;

- выбора источника тактовых сигналов;

- включения модуля TMR1.

TMR1 может работать в одном из 3-х режимов: - таймера;

- синхронного счетчика;

- асинхронного счетчика.

PORTA - 6-ти разрядный двунаправленный порт ввода-вывода. Все каналы его имеют соответствующие биты направления в регистре TRISA, позволяющие настраивать канал на вход или на выход. Запись «1» в TRISA переводит соответствующий буфер в 3-е состояние и определяет канал как вход, а запись «0» определяет соответствующий канал как выход.

PORTB - 8-ми разрядный двунаправленный порт ввода-вывода. Все каналы его имеют соответствующие биты направления в регистре TRISB, позволяющие настраивать канал на вход или на выход. Запись «1» в TRISB переводит соответствующий буфер в 3-е состояние и определяет канал как вход, а запись «0» определяет соответствующий канал как выход.

Регистр ADCON1 устанавливает режим работы портов (цифровой или аналоговый) PORTA. Содержит следующие биты: Бит 7: ADFM, необходим для формата сохранения 10 - разрядного результата.

Биты 6-4: не используются.

Биты 3-0: PCFG3: PCFG0 - управляющие биты настройки каналов АЦП.

Регистр состояния STATUS доступен для чтения / записи, содержит флаги (признаки) состояния АЛУ, флаги сброса МК и биты управления банками памяти. Регистр STATUS может быть адресован любой командой, как и любой другой регистр памяти данных.. Разработка и описание электрической принципиальной схемы устройства

Электрическая принципиальная схема устройства приведена на рис. 6. С помощью данного микропроцессорного устройства производится измерение длительности импульса 0,2…40 мс. Сигнал с датчика подается на вывод 3 PORTA RA1 микроконтроллера PIC16F873. Результаты измерения от МК поступают по 8-разрядной шине на выводы DB0-DB7 ЖК-индикатора MT-10S1-3Y c выводов канала PORTB микроконтроллера.

Микроконтроллер тактируется генератором, состоящим из кварцевого резонатора ZQ1 и конденсаторов С5, С6 частотой 4 МГЦ.

Питание устройства осуществляется от блока питания напряжением 5В. Включение и выключение питания производится кнопкой S1.

Рис. 5. Принципиальная электрическая схема измерителя высоты

7. Разработка блок-схем алгоритмов работы устройства и подпрограмм

Блок-схема алгоритма работы устройства

Основной алгоритм работы устройства измерения высоты содержит подпрограммы: инициализации МК, инициализации ЖКИ модуля, измерения высоты, вычисления числового эквивалента, перевода числа из двоичного кода в двоично-десятичный код, выдачи результатов измерения на индикацию.

Рис. 6. Блок-схема алгоритма работы устройства

Блок-схема алгоритма инициализации микроконтроллера

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

Блок-схема алгоритма инициализации ЖК индикатора

В подпрограмме инициализации ЖКИ осуществляется установка разрядности интерфейса обмена данными между ЖКИ и МК, включение и очистка индикатора, перевод в рабочий режим.

Блок-схема алгоритма паузы 25 мс

Пауза 25 мс осуществляется программно, с учетом того что частота квантования микроконтроллера составляет Fosc=4 МГЦ, время выполнения одной команды составляет Fosc/4, т.е. 1 мкс. Таким образом, для получения паузы 25 мс выполняется 100 циклов по 250 команд.

Блок-схема алгоритма паузы 50 мкс

Пауза 50 мкс осуществляется программно, аналогично паузе 50 мс. Таким образом, для получения паузы 50 мкс выполняется 50 команд.

Блок-схема алгоритма паузы 100 мкс

Пауза 100 мкс осуществляется программно, аналогично паузе 50 мс. Таким образом, для получения паузы 100 мкс выполняется 100 команд.

Блок-схема алгоритма выдача байта в ЖКИ

В данной подпрограмме осуществляется передача необходимых сигналов на шину управления ЖК индикатором для записи в него байта данных, согласно временной диаграмме с учетом динамических характеристик.

Блок-схема алгоритма измерения длительности импульса

Так как взаимосвязь измеряемой высоты с электрическим эквивалентом осуществляется через длительность импульса напряжения, в данной подпрограмме осуществляется преобразование длительности импульса напряжения в числовой код. Для измерения длительности прямоугольного импульса необходимо отследить момент, когда на входе RA0 PORTA появится логическая «1», т.е. передний фронт импульса. После этого запускается таймер TMR1, который будет считать количество отсчетов с постоянной частотой тактирования f=1 МГЦ. Далее необходимо постоянно отслеживать появление логического «0» на входе RA0, т.е. приход заднего фронта импульса. При появлении логического «0» на входе RA0, таймер останавливается.

Блок-схема алгоритма вычисления числового эквивалента

Так как числовой эквивалент измеренной длительности импульса находится в пределах 200…40000, а измеряемая высота в пределах 0,1…20 км, то для упрощения индикации, вычисление числового эквивалента измеренной высоты осуществляется делением измеренной длительности импульса на 200.

Блок-схема алгоритма перевода в 2-10 код

В данной подпрограмме осуществляется преобразование двоичного числового эквивалента измеренной высоты в три разряда двоично-десятичного кода - «сотни», «десятки» и «единицы». Преобразования проводим, используя операции вычитания чисел 100, а затем 10 с подсчетом количества положительных вычитаний.

Блок-схема алгоритма выдачи результатов на индикацию

В этой подпрограмме необходимо содержимое регистров Nsot, Ndes и Ned, полученное в подпрограмме десятичной коррекции, отправить сначала в регистр w, далее подпрограммой определяется код символа.

Затем, содержимое регистра w, передается в PORTB МК, а затем происходит обмен данными между МК и ЖКИ.

Блок-схема алгоритма определения кода символа

В данной подпрограмме содержимое регистра w складывается с содержимым регистра PCL, и при выходе из подпрограммы код индикации записывается в w.

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

Список литературы
1. http://www.microchip.ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?