Реферат по предмету "Программирование"


Проектирование прибора измеряющего длительность импульса

Проектирование прибора измеряющего длительность импульса ВВЕДЕНИЕ В настоящее время микропроцессорная техника делает большие успехи в применении, в различных отраслях производства. Сейчас микропроцессоры стали применяться не только в бытовой технике и в автомобилях, но и даже в производстве управляя сложнейшими технологическими процессами. Цель курсового проекта послужила создание измерительного прибора на базе микропроцессора

AVR90S8515 Микропроцессоры американской фирмы ATMEL, в последние годы делают значительные успехи в освоении новых областей в сфере своего применения. Микропроцессорное ядро, используемое в микроконтроллерах AVR, похоже на большинство процессоров с RISC архитектурой, пожалуй, за исключением 8-разрядных регистров. Разработано двумя разработчиками из Норвегии, в городе Trondheim. Позже, в 1995 году, разработка была приобретена фирмой

Atmel. До сих пор развитие ядра происходит в Норвегии, в то время как периферия и память разрабатываются в отделении Atmel в Калифорнии. С помощью проектируемого прибора можно будет измерять длину импульсов в диапазоне от 10 мСек до 10 Сек измеренная величена будет отображаться на четырех разрядном светодиодном индикаторе 1.ТЕХНИЧЕСКОЕ ЗАДАНИЕ Необходимо спроектировать прибор для измерения длительности импульса. Мин.Макс.Диапазон измерения10 мС10сПогрешность измерения 1Количество гальванически развязанных каналов

Входное напряжение логической единицы Входное напряжение логического нуля1 уровень ТТЛШ уровень ТТЛШКоличество режимов измерения 2 Из-ие высоко уровня длительности импульса Из-ие низкого уровня длительности импульсаВозможность индикации измеренной длительности Количество режимов отображения измеренной длительности Есть Светодиодные индикаторы 4 шт 2 отображение в секундах отображение в мили секундахВыходное напряжение

источника питания 5 В 2. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ. ОБОБЩЕННЫЙ АЛГОРИТМ РАБОТЫ Структурная схема измерительного прибора приведена на рис.1 Структурная схема измерительного прибора мСек кнопка выбора отображения измеренной длительности импульса в мили Секундах. Сек - кнопка выбора отображения измеренной длительности импульса в Секундах Инверсия кнопка выбора первого или второго режима измерения см

ТЗ. Св.Д1. светодиод индицирующий включение второго режима измерения Св.Д2. светодиод индицирующий включение режима отображения измеренной длительности импульса в секундах. Св.Д3. светодиод индицирующий включение режима отображения измеренной длительности импульса в мили секундах. AVR90S8515 однокристальная микро-ЭВМ AVR90S8515 Рисунок 1. Дешифраторы производят дешифрацию двоично-десятичного кода, а индикаторы отображают результаты

измерения. При включении питания микро-ЭВМ производит выполнение подпрограммы инициализации инициализация стека, настройка используемых портов ВВОДАВЫВОДА, загружается в компаратор А таймерсчетчика число 80000, выбирается нужный режим работы таймерсчетчика 1 бит CTC1 регистра управления таймеромсчетчиком 1TCCR1B, устанавливается в единицу, что означает сброс таймерсчетчика 1 при срабатывании компаратора А, также бит CS10, находящийся в этом же регистре, устанавливается в единицу,

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

IIMPULSOTRICHATELNAY - подпрограмма измерения низкого уровня длительности импульса . Алгоритм работы этих двух подпрограмм практический одинаковый, для примера рассмотрим работу подпрограммы IMPULSPOLOGITELNAY. При переходе на эту подпрограмму МП начинает опрос линии PA0 и в случае обнаружения на ней логической единицы запускает таймерсчетчик 1.

При срабатывании компаратора А происходит сброс таймерсчетчика 1 в компаратор А загружено число 8000, при частоте синхронизации МП равной 8Мгц срабатывание компаратора произойдет ровно через 1мС1 , что говорит о прошествии 1мСек. Отчет мили секунд в соответствии с ТЗ начнется после прошедшей девятой мили секунды. Индикация измеряемой длительности импульса происходит каждые 50 мСек.

Вмести с этим МП продолжает сканировать линию PA0 и после того как он обнаружит на ней состояние логического нуля, что говорит о конце измерения длительности импульса, произойдет остановка таймерасчетчика 1 и произведется переход на подпрограмму перевода двоичного шестнадцати разрядного числа в двоично-десятичное - bin16BCD5 детальный алгоритм перевода двоичного шестнадцати разрядного числа в двоично-десятичное рассмотрен ниже. После выполнения подпрограммы bin16BCD5,

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

D и C МП возвращается в основную программу. На этом цикл работы программы заканчивается . Алгоритм подпрограмма перевода двоичного шестнадцати разрядного числа в двоично-десятичное Арифметико-логическое устройство AVR-микроконтроллеров как и других микропроцессоров выполняет элементарные арифметические и логические операции над числами, представленными в двоичном коде. В двоичном коде считываются результаты преобразования

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

BCD-Binary-Coded Decimal. Упакованный BCD-код - это такое представление десятичного числа, когда каждая десятичная цифра представляется 4-х битным двоичным позиционным кодом 8-4-2-1. При этом байт содержит две десятичные цифры. Младшая десятичная цифра занимает правую тетраду биты 3 0, старшая - левую тетраду биты 7 4. Многоразрядные BCD-числа занимают несколько смежных байт. Если число является знаковым, то для представления знака в

BCD-формате отводится старшая тетрада старшего байта Алгоритм подпрограммы bin16bcd5 заключается в следующем. Предположим, что имеется целое беззнаковое 16-битное число диапазон от 0 до 65535. Очевидно, что необходимо найти 5 десятичных цифр. Способ преобразования заключается в том, чтобы, вычитая из исходного числа число 10000, сначала определить десятичную цифру десятков тысяч.

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

РАЗРАБОТКА И РАСЧЕТ ЭЛЕМЕНТОВ ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ 3.1 Выбор микропроцессорного комплекта В соответствии с ТЗ ядром измерительного прибора послужила однокристальная микро-ЭВМ AVR90S8515 фирмы Atmel. Основные характеристики однокристальной микро-ЭВМ AVR90S8515 AVR RISC архитектура - архитектура высокой производительности и малого потребления 120

команд, большинство которых выполняется за один машинный цикл 8 Кбайта Flash ПЗУ программ, с возможностью внутрисистемного перепрограммирования и загрузки через SPI последовательный канал, 1000 циклов стираниезапись 512 байтов ЭСППЗУ данных, с возможностью внутрисистемной загрузки через SPI последовательный канал, 10 циклов стираниезапись 512 байтов встроенного

СОЗУ 32 x 8 бит регистра общего назначения 32 программируемых линий вводавывода 16-разрядный и 32-разрядный формат команд Диапазон напряжений питания от 2,7 В до 6,0 В Полностью статический прибор - работает при тактовой частоте от 0 Гц до 8 МГц Длительность командного цикла 125 нс, при тактовой частоте 8 МГц 8-разрядный и 16-разрядный с режимами сравнения и захвата таймерысчетчики

Сдвоенный ШИМ с 8, 9 или 10-разрядным разрешением Программируемый полный дуплексный UART Два внешних и десять внутренних источников сигнала прерывания Программируемый сторожевой таймер с собственным встроенным генератором Встроенный аналоговый компаратор Режимы энергосбережения пассивный idle и стоповый power down Блокировка режима программирования Промышленный -40C 85C и коммерческий 0C 70C диапазоны температур 40-выводной

корпус PDIP и 44-выводные корпуса TQFP и PLCC КМОП микроконтроллер AT90S8515 реализован по AVR RISC архитектуре Гарвардская архитектура с раздельной памятью и раздельными шинами для памяти программ и данных и совместим по исходным кодам и тактированию с 8-разрядными микроконтроллерами семейства AVR AT90SXXX. Выполняя команды за один тактовый цикл, прибор обеспечивает производительность, приближающуюся к 1 MIPSМГц. AVR ядро объединяет мощную систему команд с 32 8-разрядными регистрами

общего назначения и конвейерное обращение к памяти программ. Шесть из 32 регистров могут использоваться как три 16-разрядных регистра-указателя при косвенной адресации пространства памяти. Выполнение относительных переходов и команд вызова реализуется с прямой адресацией всех 4К адресного пространства. Адреса периферийных функций содержатся в пространстве памяти вводавывода. Архитектура эффективно поддерживает как языки высокого уровня, так и программы на языках ассемблера.

Встроенная загружаемая Flash память обеспечивает внутрисистемное перепрограммирование с использованием интерфейса SPI в последовательном Встроенная загружаемая Flash память обеспечивает внутрисистемное перепрограммирование с использованием интерфейса SPI в последовательном низко вольтовом режиме или с использованием стандартных программаторов энергонезависимой памяти в 12-вольтовом параллельном режиме. Потребление прибора в активном режиме составляет 3,5 мА и

в пассивном режиме 1 мА при VCC 3 В и f4 МГц. В стоповом режиме, при работающем сторожевом таймере, микроконтроллер потребляет 50 мкА. низко вольтовом режиме или с использованием стандартных программаторов энергонезависимой памяти в 12-вольтовом параллельном режиме. Потребление прибора в активном режиме составляет 3,5 мА и в пассивном режиме 1 мА при VCC 3 В и f4 МГц. В стоповом режиме, при работающем сторожевом таймере, микроконтроллер потребляет 50

мкА. 3.1.1 Выбор кварцевого резонатора Для работы МП необходим кварцевый резонатор который подключается к выводам XTAL1 и XTAL2 см. графическую часть курсового проекта Рабочая частота кварцевого резонатора непосредственно связана с точностью измерения длительности импульса из рис. 2 видно, что чем больше частота синхронизации тем точнее измерение длительности для заданной погрешности измерения достаточно, чтобы частота резонатора была равна fрез8

МГц Рисунок 2 3.1.1.1 Определение погрешности от источника синхронизации Погрешность от кварцевого резонатора возникает в следствии нестабильности его частоты во время работы. Нестабильность частоты кварцевого резонатора МА406 примерно равно 0.00001 от частоты синхронизации, исходя из этого погрешность возникающая в следствии нестабильности частоты можно определить по формуле где К - нестабильность частоты кварцевого резонатора

К0.000018080 Гц fBQ частота кварцевого резонатора 3.2 Выбор интегральной микросхемы дешифратора В дешифратора будет использоваться интегральная микросхема КР514ИД2 3.3 Выбор средств индикации В качестве средств индикации будут использоваться светодиодные индикаторы ААС3224А 3.4 Выбор внешних элементов гальванической развязки В качестве элементов гальванической развязки используется цифровая микросхема 249ЛП5 - оптоэлектронный

переключатель на основе диодных оптопар выполненных в металлостеклянном корпусе. основные характеристики цифровой микросхемы 249ЛП5 приведены в табл. 1. Таблица 1 Основные характеристики цифровой микросхемы 249ЛП5 Электрические параметрыВходное напряжение при IВХ15 мА не более 1.7 ВВыходное напряжение в состоянии логического нуля0.4

ВВыходное напряжение в состоянии логической единицы2.4Предельные эксплутационные данныеВходной постоянный ток 12 мАВходной импульсный ток15 мАНапряжение питания 50.5 ВДиапазон рабочих температур-6085 С 4 .Определение погрешности измерения длительности импульса Погрешность измерения длительности импульса, как уже говорилось выше, непосредственно связана непосредственно связана со скоростью работы МП, в свою очередь скорость которого задается тактовой частотой кварцевого

резонатора . Величина временного кванта d в нашем случае, равна периоду следования импульсов кварцевого резонатора т.е. d. Измеренное значение одной мили секунды равно в соответствии с ТЗ дискретность измерения длительности равна 1мСек TN Где N число импульсов, поступивших на таймерсчетчик1. Следовательно измеренное значение отличается от истинного на величину погрешности квантования

КtК tКT-TxN-Tx где Tx истинное значение. Погрешность квантования зависит от величены кванта и от моментов начала и окончания циклов измерения см. рис.2 по отношения к импульсам кварцевого резонатора. Очевидно, что как начало и конец измерения длительности могут располагаться в любой точке между двумя соседними импульсами. В результате возникают две составляющих погрешности tК Первая из них t1 см. рис.2 положительная, так как измеренный временной интервал больше истинного его

значения, а вторая t2 отрицательная, так как из за нее измеренный временной интервал получается больше фактического. Следовательно истинное значение временного интервала будет ТхN-t1-t2 N-t1t2 Pзакон распределения ошибок t1 и t2 с учетом их разных знаков представляет собой распределение Симпсона, а средне квадратическая погрешность квантования следуя указаниям 2, стр. 20 будет равна 5 Листинг программы расчета длительности импульса на языке ассемблер

Отладка программы была произведена с помощью отладчика-симулятора AVRSTUDIO 3.0 Код программы .include 8515def.inc.def fbinLr22 двоичное значение, младший байт байт.def fbinH r23 двоичное значение, старший байт.def tBCD0 r23 BCD значение, цифры 1 и .def tBCD1 r24 BCD значение, цифры 3 и2 .def tBCD2 r25 BCD значение, цифры 4 Назначение выводов порта А bit 0 - поступает импульс длительность которого необходимо

измерить bit 1 - подключается кнопка режима измерения 0 - измерение длительности отрицательного импульса 1 - измерение длительности положительного импульса bit 2 - индикация режима измерения 0 - светодиод погашен индикация режима измерения отрицательного импульса 1 - светодиод светится индикация режима измерения положительного импульса bit 3 - подключается кнопка режима измерения длительности импульса в мС bit 4 - подключается кнопка режима измерения длительности импульса в

С bit 5 - подключается светодиод режима измерения длительности импульса в мС bit 6 - подключается светодиод режима измерения длительности импульса в С .ORG 0 RJMP MET1 RJMP IMPULS RJMP MET1 RJMP MET1 1RJMP Prog RJMP Prog RJMP MET1 RJMP MET1 MET1LDI R16,0x02 OUT SPH,R16Инициализация LDI R16,0X10стека OUT SPL,R16 LDI R16,0B11100100 OUT

DDRA,r16 НАСТРАИВАЕМ ЛИНИ b 0,1,3,4 ПОРТА А НА ВВОД, а линии 2,5,6,7 на вывод LDI R16,0B1 НАСТРАИВАЕМ ВСЕ ЛИНИИ OUT DDRC,R16 ПОРТА C НА ВЫВОД LDI R16,0B1 НАСТРАИВАЕМ ВСЕ ЛИНИИ OUT DDRD,R16 ПОРТ D НА ВЫВОД LDI R16,0B010 Разрешение прерывания OUT TIMSK,R16 по переполнению TC1 LDI R16,0B0ЗАПРЕТ прерывания

OUT GIMSK,R16 по INT0 LDI R16,0X1F Загружаем в OUT OCR1AH,R16 компататор А - 8000 LDI R16,0X40 OUT OCR1AL,R16 LDI R16,0B0 OUT TCNT1L,R16 LDI R16,0B00001000 TC1 будет обнуляться при каждом совпадении OUT TCCR1B,R16 со значением компаратора А LDI R16,0B10 Глобальное разрешение прерываний OUT SREG,R16 LDI R16,0X9

LDI R19,0X9 R19 регистр переназначенный для сравнения с R16 если они равны, то тогда измерение длительности импульса не начиналось CLR R17 clr r22 OPROSKEYOFINVERT Опрос состояния кнопки SBIC PORTA,1 режима измерения длительности импульса RCALL IMPULSPOLOGITELNAY режим из-ия длительности сигнала высокого уровня

RCALL IMPULSOTRICHATELNAY режим из-ия длительности сигнала низкого уровня M2 IMPULSPOLOGITELNAY SBI PORTA,2 Включаем светодиод SBIC PORTA,0 Идет сканирование линии PA0 RCALL IMPULS SBIS PORTA,0 Происходит проверка на наличие 1 RCALL IMPILS1TO0 на PA1, если ее нет, тогда переход M5CPI

R17,0xFF BRCS M2 если R17 переполнится, то LDI R17,0XA тогда занесем в R17 10 RJMP M2 ProgINC R17 CPI R17,0XA Отчет длительности импульса начнется BRCS M3 тогда когда в R17 будет 10DEXпройдет 10 мС INC R16 инкремент R17счетчик прошедших мСекунд срабатывает при R17 10 BRBC 1,M3 если R16 переполнится INC R18 тогда инкрементируем

R18Длительность импульса Прошло десять мС далее идет счет каждой мС M3RETI находится в R18ст. разряд,R16мл. разряд IMPULS LDI R20, 0B00001001 если приходит импульс то тогда запускается TC1 OUT TCCR1B,R20 RET IMPILS1TO0 LDI R20,0B0 если импульс закончился TC1 останавливается OUT TCCR1B,R20 CPSE R16,R19 проверка на начало цикла измерения если он начился

RCALL TESTOFSTOPTC1 то тогда переход на TESTOFSTOPTC1 SBIC PORTA,1 Опрос состояния кнопки режима измерения длительности импульса RCALL IMPULSPOLOGITELNAY режим из-ия высокого уровня длительности RCALL IMPULSOTRICHATELNAY режим из-ия низкого уровня длительности RET TESTOFSTOPTC1 подпрограмма проверки действительно ли

TC1 остановился IN R21,TCCR1B во время режима измерения длительности ANDI R21,0B0 если все в порядке, то тогда переходим на bin16BCD5 BRNE ENDTESTOF RCALL bin16BCD5 ENDTESTOF RET M2OTR IMPULSOTRICHATELNAY CBI PORTA,2 Выключаем светодиод SBIS PORTA,0 Происходит проверка на наличие 0 RCALL

IMPULSOTR SBIC PORTA,0 RCALL IMPILS0TO1 на PA1, если его нет, тогда переход M5OTRCPI R17,0xFF BRCS M2OTR LDI R17,0XA RJMP M2OTR IMPULSOTR LDI R16,0X9 LDI R17,0X0 LDI R20, 0B00001001 то тогда запускается TC1 OUT TCCR1B,R20 RET IMPILS0TO1 LDI R20,0B0 TC1 остановлен OUT TCCR1B,R20 CPSE R16,R19 RCALL TESTOFSTOPTC1OTR

SBIC PORTA,1 RCALL IMPULSPOLOGITELNAY RCALL IMPULSOTRICHATELNAY RET TESTOFSTOPTC1OTR IN R21,TCCR1B ANDI R21,0B0 BRNE ENDTESTOFOTR RCALL bin16BCD5 ENDTESTOFOTR RET bin16BCD5 Подпрограмма перевода двоичного числа в двоично-десятичное MOV R22,R16 MOV R23,R18 ldi tBCD2, -1 bin16BCD5loop1 inc tBCD2 определение subi fbinL, low10000 количества

sbci fbinH, high10000 десятков тысяч brsh bin16BCD5loop1в числе которое переводится subi fbinL, low-10000 sbci fbinH, high-10000 ldi tBCD1, -0x11 bin16BCD5loop2 subi tBCD1, -0x10определение subi fbinL, low1000 количества sbci fbinH, high1000 тысяч brsh bin16BCD5loop2в числе которое переводится subi fbinL, low-1000 sbci fbinH, high-1000 bin16BCD5loop3 inc tBCD1определение subi fbinL, low100 количества sbci fbinH, high100 десятков brsh bin16BCD5loop3в числе которое переводится subi fbinL, -100 ldi tBCD0, -0x10 bin16BCD5loop4

subi tBCD0, -0x10 определение subi fbinL, 10 количества brsh bin16BCD5loop4 единиц subi fbinL, -10в числе которое переводится add tBCD0, fbinL LDI R16,0X9 LDI R17,0X0 ldi r18,0x0 LDI R27,0X0 WAITPRESSKEY Подпрограмма проверки, в чем отображать индикацию в мСекундах или Секутдах Примечание если ни одна из кнопок режима отображения не нажата или нажаты все, индикация отображаться не БУДЕТ SBRC R27,0 RJMP EXIT

SBIC PORTA,3 Если нажата кнопка мСекунды RCALL FLASHmC то тогда переход на FLASHmC SBIC PORTA,4 если нажата кнопка Секунды RCALL FLASHC то тогда переход на FLASHC RJMP WAITPRESSKEY если ни одна из кнопок не нажата то тогда ожидаем нажатия SBIS PORTA,3 в противном случае выход из подпрограммы RJMP EXIT SBIC PORTA,4 если нажаты все две кнопки, то тогда ожидаем пока одну кнопку не отключат

RJMP WAITPRESSKEY OUT PORTD,R23 вывод на порт D двоично-десятичного числа OUT PORTC,R24 вывод на порт C двоично-десятичного числа OUT TCNT1H,R18 обнуление регистра NCNT1H ст. регистр TC1 OUT TCNT1L,R18 обнуление регистра NCNT1L мл. регистр TC1 EXITRET FLASHmC SBI PORTA,5 Включаем светодиод режим мСекунды

CBI PORTA,6 Выключаем светодиод режим Секунды CBI PORTA,7 и выключаем разделительную точку INC R27 RET FLASHC CBI PORTA,5 Включаем светодиод режим Секунды SBI PORTA,6 Выключаем светодиод режим мСекунды SBI PORTA,7 и включаем разделительную точку INC R27 RET



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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.