Рефераты. Проектирование прибора измеряемого длительность импульса p> 3.1.1 Выбор кварцевого резонатора

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

[pic]

Рисунок 2

3.1.1.1 Определение погрешности от источника синхронизации

Погрешность от кварцевого резонатора возникает в следствии нестабильности его частоты во время работы.

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

[pic] где К - нестабильность частоты кварцевого резонатора

К=0.00001*8000000=80 Гц fBQ – частота кварцевого резонатора

[pic]

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) в нашем случае, равна периоду следования импульсов кварцевого резонатора(() т.е. d=(. Измеренное значение одной мили секунды равно (в соответствии с ТЗ дискретность измерения длительности равна 1мСек):

T=(*N

Где N – число импульсов, поступивших на таймер/счетчик1.
Следовательно измеренное значение отличается от истинного на величину погрешности квантования (К=(tК:

(tК=T-Tx=N*(-Tx где Tx – истинное значение.
Погрешность квантования зависит от величены кванта ( и от моментов начала и окончания циклов измерения (см. рис.2) по отношения к импульсам кварцевого резонатора. Очевидно, что как начало и конец измерения длительности могут располагаться в любой точке между двумя соседними импульсами. В результате возникают две составляющих погрешности (tК Первая из них ((t1 см. рис.2) положительная, так как измеренный временной интервал больше истинного его значения, а вторая (t2 отрицательная, так как из за нее измеренный временной интервал получается больше фактического. Следовательно истинное значение временного интервала будет:

Тх=N*(-((t1-(t2)= N*(-(t1+(t2
Pзакон распределения ошибок (t1 и (t2 с учетом их разных знаков представляет собой распределение Симпсона, а средне квадратическая погрешность квантования следуя указаниям [2, стр. 20] будет равна

[pic]

[pic]

[pic]

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 мС)

INC R16 ;инкремент R17(счетчик прошедших мСекунд срабатывает при
R17>10)

BRBC 1,M3 ; если R16 переполнится

INC R18 ; тогда инкрементируем R18(Длительность импульса

; Прошло десять мС далее идет счет каждой мС
M3: RETI ; находится в R18(ст. разряд),R16(мл. разряд)
IMPULS:

LDI R20, 0B00001001 ; если приходит импульс то тогда запускается T/C1

OUT TCCR1B,R20

RET
IMPILS_1_TO_0:

LDI R20,0B00000000 ; если импульс закончился T/C1 останавливается

OUT TCCR1B,R20

CPSE R16,R19 ;проверка на начало цикла измерения если он начился
RCALL TEST_OF_STOP_TC1 ; то тогда переход на TEST_OF_STOP_TC1

SBIC PORTA,1 ; Опрос состояния кнопки режима измерения длительности импульса

RCALL IMPULS_POLOGITELNAY; режим из-ия высокого уровня длительности

RCALL IMPULS_OTRICHATELNAY ; режим из-ия низкого уровня длительности

RET
TEST_OF_STOP_TC1: ; подпрограмма проверки (действительно ли T/C1 остановился

IN R21,TCCR1B ;во время режима измерения длительности)

ANDI R21,0B000000000 ;если все в порядке, то тогда переходим на bin16BCD5

BRNE ENDTEST_OF

RCALL bin16BCD5
ENDTEST_OF:

RET
M2OTR:
IMPULS_OTRICHATELNAY:

CBI PORTA,2 ;Выключаем светодиод

SBIS PORTA,0 ; Происходит проверка на наличие 0

RCALL IMPULS_OTR

SBIC PORTA,0

RCALL IMPILS_0_TO_1; на PA1, если его нет, тогда переход
M5OTR: CPI R17,0xFF

BRCS M2OTR

LDI R17,0XA

RJMP M2OTR;
IMPULS_OTR:

;LDI R16,0X9

;LDI R17,0X0

LDI R20, 0B00001001 ; то тогда запускается T/C1

OUT TCCR1B,R20

RET
IMPILS_0_TO_1:

LDI R20,0B00000000 ;T/C1 остановлен

OUT TCCR1B,R20

CPSE R16,R19

RCALL TEST_OF_STOP_TC1_OTR

SBIC PORTA,1

RCALL IMPULS_POLOGITELNAY

RCALL IMPULS_OTRICHATELNAY

RET
TEST_OF_STOP_TC1_OTR:

IN R21,TCCR1B

ANDI R21,0B000000000

BRNE ENDTEST_OF_OTR

RCALL bin16BCD5
ENDTEST_OF_OTR:

RET

bin16BCD5: Подпрограмма перевода двоичного числа в двоично-десятичное

MOV R22,R16

MOV R23,R18 ldi tBCD2, -1 bin16BCD5_loop_1: inc tBCD2 ; определение subi fbinL, low(10000) ; количества sbci fbinH, high(10000) ; десятков тысяч brsh bin16BCD5_loop_1 ;в числе которое переводится subi fbinL, low(-10000) sbci fbinH, high(-10000) ldi tBCD1, -0x11 bin16BCD5_loop_2: subi tBCD1, -0x10 ;определение subi fbinL, low(1000) ; количества sbci fbinH, high(1000) ; тысяч brsh bin16BCD5_loop_2 ;в числе которое переводится subi fbinL, low(-1000) sbci fbinH, high(-1000) bin16BCD5_loop_3: inc tBCD1 ;определение subi fbinL, low(100) ; количества sbci fbinH, high(100) ; десятков brsh bin16BCD5_loop_3 ;в числе которое переводится subi fbinL, -100 ldi tBCD0, -0x10 bin16BCD5_loop_4: subi tBCD0, -0x10 ;определение subi fbinL, 10 ; количества brsh bin16BCD5_loop_4 ; единиц subi fbinL, -10 ;в числе которое переводится add tBCD0, fbinL

LDI R16,0X9

LDI R17,0X0 ldi r18,0x0

LDI R27,0X0
WAIT_PRESS_KEY: ; Подпрограмма проверки, в чем отображать

; индикацию в мСекундах или Секутдах

; Примечание:

; если ни одна из кнопок режима отображения

; не нажата или нажаты все, индикация отображаться не БУДЕТ

SBRC R27,0

RJMP EXIT

SBIC PORTA,3 ; Если нажата кнопка мСекунды

RCALL FLASH_mC ; то тогда переход на FLASH_mC

SBIC PORTA,4 ; если нажата кнопка Секунды

RCALL FLASH_C ; то тогда переход на FLASH_C

RJMP WAIT_PRESS_KEY ; если ни одна из кнопок не нажата

; то тогда ожидаем нажатия

SBIS PORTA,3 ; в противном случае выход из подпрограммы

RJMP EXIT

SBIC PORTA,4 ; если нажаты все две кнопки, то тогда

; ожидаем пока одну кнопку не отключат

RJMP WAIT_PRESS_KEY

OUT PORTD,R23 ; вывод на порт D двоично-десятичного числа

OUT PORTC,R24 ; вывод на порт C двоично-десятичного числа

OUT TCNT1H,R18 ;обнуление регистра NCNT1H (ст. регистр T/C1)

OUT TCNT1L,R18 ;обнуление регистра NCNT1L (мл. регистр T/C1)

EXIT: RET
FLASH_mC:

SBI PORTA,5 ; Включаем светодиод (режим мСекунды)

CBI PORTA,6 ; Выключаем светодиод (режим Секунды)

CBI PORTA,7 ; и выключаем разделительную точку

INC R27

RET
FLASH_C:

CBI PORTA,5 ; Включаем светодиод (режим Секунды)

SBI PORTA,6 ;Выключаем светодиод (режим мСекунды)

SBI PORTA,7 ; и включаем разделительную точку

INC R27

RET

Список использованных источников

1. Описание однокристальной микро-ЭВМ AVR90S8515

2. Методическое указания и задания по курсовому проектированию

«Расчет и проектирование цифровых измерительных приборов»


Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.