Проектирование прибора измеряемого длительность импульсаРефераты >> Программирование и компьютеры >> Проектирование прибора измеряемого длительность импульса
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 мА |
Напряжение питания |
5(±0.5) В |
Диапазон рабочих температур |
-60…+85 °С |
4 .Определение погрешности измерения длительности импульса
Погрешность измерения длительности импульса, как уже говорилось выше, непосредственно связана непосредственно связана со скоростью работы МП, в свою очередь скорость которого задается тактовой частотой кварцевого резонатора .
Величина временного кванта (d) в нашем случае, равна периоду следования импульсов кварцевого резонатора(t) т.е. d=t. Измеренное значение одной мили секунды равно (в соответствии с ТЗ дискретность измерения длительности равна 1мСек):
T=t*N
Где N – число импульсов, поступивших на таймер/счетчик1.
Следовательно измеренное значение отличается от истинного на величину погрешности квантования DК=DtК:
DtК=T-Tx=N*t-Tx
где Tx – истинное значение.
Погрешность квантования зависит от величены кванта t и от моментов начала и окончания циклов измерения (см. рис.2) по отношения к импульсам кварцевого резонатора. Очевидно, что как начало и конец измерения длительности могут располагаться в любой точке между двумя соседними импульсами. В результате возникают две составляющих погрешности DtК Первая из них (Dt1 см. рис.2) положительная, так как измеренный временной интервал больше истинного его значения, а вторая Dt2 отрицательная, так как из за нее измеренный временной интервал получается больше фактического. Следовательно истинное значение временного интервала будет:
Тх=N*t-(Dt1-Dt2)= N*t-Dt1+Dt2
Pзакон распределения ошибок Dt1 и Dt2 с учетом их разных знаков представляет собой распределение Симпсона, а средне квадратическая погрешность квантования следуя указаниям [2, стр. 20] будет равна
5 Листинг программы расчета длительности импульса на языке ассемблер
Отладка программы была произведена с помощью отладчика-симулятора AVRSTUDIO 3.0
Код программы:
.include "8515def.inc"
.def fbinL =r22 ;двоичное значение, младший байт байт
.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
1: RJMP Prog
RJMP Prog
RJMP MET1
RJMP MET1
MET1: LDI 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,0B11111111; НАСТРАИВАЕМ ВСЕ ЛИНИИ
OUT DDRC,R16 ; ПОРТА C НА ВЫВОД
LDI R16,0B11111111; НАСТРАИВАЕМ ВСЕ ЛИНИИ
OUT DDRD,R16 ; ПОРТ D НА ВЫВОД
LDI R16,0B01000000 ;Разрешение прерывания
OUT TIMSK,R16 ; по переполнению T/C1
LDI R16,0B00000000;ЗАПРЕТ прерывания
OUT GIMSK,R16 ; по INT0
LDI R16,0X1F ;Загружаем в
OUT OCR1AH,R16 ; компататор А - 8000
LDI R16,0X40
OUT OCR1AL,R16
LDI R16,0B00000000
OUT TCNT1L,R16
LDI R16,0B00001000 ;T/C1 будет обнуляться при каждом совпадении
OUT TCCR1B,R16 ;со значением компаратора А
LDI R16,0B10000000 ;Глобальное разрешение прерываний
OUT SREG,R16
LDI R16,0X9
LDI R19,0X9 ;R19 регистр переназначенный для сравнения
; с R16 если они равны, то тогда измерение
; длительности импульса не начиналось
CLR R17
clr r22
OPROS_KEY_OF_INVERT: ; Опрос состояния кнопки
SBIC PORTA,1 ; режима измерения длительности импульса
RCALL IMPULS_POLOGITELNAY ; режим из-ия длительности сигнала высокого уровня
RCALL IMPULS_OTRICHATELNAY ; режим из-ия длительности сигнала низкого уровня
M2:
IMPULS_POLOGITELNAY:
SBI PORTA,2 ;Включаем светодиод
SBIC PORTA,0 ;Идет сканирование линии PA0
RCALL IMPULS
SBIS PORTA,0 ; Происходит проверка на наличие 1
RCALL IMPILS_1_TO_0; на PA1, если ее нет, тогда переход
M5: CPI R17,0xFF
BRCS M2 ; если R17 переполнится, то
LDI R17,0XA ; тогда занесем в R17 10
RJMP M2;
Prog: INC R17 ;
CPI R17,0XA ; Отчет длительности импульса начнется
BRCS M3 ; тогда когда в R17 будет 10(DEX)(пройдет 10 мС)