на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Устройство ультразвукового измерения дальности
p align="left">- Uкбои=50В - максимально допустимое импульсное напряжение коллектор-база;

- Uкэои=50В - максимально допустимое импульсное напряжение коллектор-эмиттер;

- Iкmaxи=200мА - максимально допустимый импульсный ток коллектора;

- Pкmaxт=0,25Вт - максимально допустимая постоянная рассеиваемая мощность коллектора с теплоотводом;

- h21э?200 - статический коэффициент передачи тока биполярного транзистора в схеме с общим эмиттером;

- Iкбо?0,05мкА - обратный ток коллектора;

- fгр?150МГц - граничная частота коэффициента передачи тока в схеме с общим эмиттером;

Таблица 3. Основные электрические параметры КЛЦ202В

Наименование параметров, режим измерения,единица измерения

Буквенное

обозначение

Не менее

Не более

Средняя сила света элемента отображения при Iпр=20 мА , мкд

I?

0,5

.

Средняя сила света точки при Iпр=20 мА , мкд

I?

0,07

.

Постоянное прямое напряжение для элемента при Iпр=20 мА , В

Uпр

.

2,5

Постоянное прямое напряжение для точки при Iпр=20 мА , В

Uпр

.

2,5

Рис. 6. Схема электрическая принципиальная КЛЦ202В.

Рис.7. Блок цифрового управления.

Блок цифрового управления представлен на рис. 7. Блок цифрового управления представляет собой однокристальный микроконтроллер PIC16C84 имеющий подключения согласно технической документации производителя. Между входами питания микроконтроллера 14 и 5 ставится керамический конденсатор С9 обеспечивающий сглаживание пульсаций напряжения вызванных работой схемы. Ко входам OSC1 и OSC2 микроконтроллера подключен керамический резонатор QZ1 после которого установлены конденсаторы С5 и С6 необходимые для обеспечения правильного функционирования, согласно требованию производителя. Вход 1 микроконтроллера подтянут к земле через резистор R12 номиналом 1кОм, что является типовой защитой от помех в том случае, когда кнопка S2 разомкнута. Цепочка из резистора R21 и конденсатора С10 является типичной схемой подключения входа MCLR микроконтроллера (сброс памяти при включении питания) и обеспечивают необходимую задержку по времени для стабильного запуска микроконтроллера. Керамический резонатор QZ1 на 4.0 МГц имеет следующие параметры:

- резонансная частота,кГц: 4000;

- точность настройки (при 25 С) ,%: 0.3;

- температурный коэффициент (в диапазоне -20…+80С) ,%: 0.3;

- максимальное резонансное сопротивление ,Ом: 30;

- встроеный конденсатор,пФ: 30;

- рабочая температура,С: -20…+80.

Описание программы

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

Обобщенная блок-схема

2

Рис. 8. Обобщенная блок-схема.

Более подробно рассмотрим каждый блок приведенной на рис. 8. обобщенной блок схемы.

Список директив, файл, слово CPU

Данный блок соответствует приведенной ниже части программы.

;==============================================================

; программа для ультразвукового дальномера

;==============================================================

;список директив

list P=16C84 ;директива определяющая тип процессора

#include <P16C84.INC> ;файл, описывающий специфические переменные, соответствующие процессору

_config b'00000000000001' ;слово конфигурации CPU

;==============================================================

С помощью директивы list указываем ассемблеру тип процессора. Подключаем соответствующий файл описания. Затем следует слово конфигурации CPU, которое при программировании микроконтроллера будет размещено по адресу расположенному за пределами пользовательской памяти программ. Слово конфигурации CPU содержит 14 бит. Биты 13-8 CP - защита программного кода (1=защита отключена, 0=защита установлена). Выбираем 0. Бит 7 DP - защита памяти данных EEPROM (1=защита отключена, 0=защита установлена). Выбираем 0. Биты 6-4 CP - защита программного кода (1=защита отключена, 0=защита установлена). Выбираем 0. Бит 3 PWRTE - разрешение задержки при включении питания (1=задержка отключена, 0=задержка установлена). Выбираем 0. Бит 2 WDTE - разрешение включения сторожевого таймера (1=сторожевой таймер включен, 0=сторожевой таймер отключен). Выбираем 0. Биты 1-0 FOSC1-FOSC0 - выбор режима тактового генератора (11=RC-генератор, 10=HS-резонатор, 01=XT-резонатор, 00=LP-резонатор). Выбираем 01 т.к. используем стандартный керамический резонатор 4МГц.

Описание переменных

Данный блок соответствует приведенной ниже части программы.

;==============================================================

;описание используемых переменных ;(назначение адресов ячеек для хранения переменных)

NUMIMP equ 0x0C ;рабочая переменная для подсчета числа импульсов

TIMER1 equ 0x0D ;рабочая переменная для подсчета времени 1

TIMER2 equ 0x0E ;рабочая переменная для подсчета времени 2

LAPSE equ 0x0F ;рабочая переменная для подсчета погрешности перевода времени

DIGIT1 equ 0x10 ;рабочая переменная индикатора дециметров

DIGIT2 equ 0x11 ;рабочая переменная индикатора метров

DIGIT3 equ 0x12 ;рабочая переменная индикатора декаметров

;==============================================================

В этом блоке описывается в каких ячейках ОЗУ (регистрах общего применения) будут хранится значения наших переменных. Назначение переменных понятно из комментариев приведенной выше части листинга программы.

Исполняемая программа

Данный блок соответствует приведенной ниже части программы.

;==============================================================

;исполняемая программа

org 0х000 ;вектор сброса процессора, начальный адрес

clrf PORTA ;очистили выходные защелки порта А

clrf PORTB ;и порта В

clrf TMR0 ;очистка таймера TMR0

bsf STATUS, RP0 ;включили банк 1

movlw b'00011110' ;настроили на вывод линию RA0,

movwf PORTA ;остальные линии порта A на ввод

movlw b'00000000' ;настроили на вывод все линии порта B

movwf PORTB ;RB0…RB7

bcf OPTION_REG, 7 ;включили подтягивающие резисторы

bcf OPTION_REG, 5 ;включили режим таймера для TMR0

bcf STATUS, RP0 ;включили банк 0

;==============================================================

Указываем адрес начала программ, вектор сброса процессора. Обнуляем значения в выходных защелках обеих портов. Обнуляем значение таймера. Затем установив в 1 бит RP0 регистра STATUS, мы получаем доступ к регистровому банку 1. Теперь обращаясь к регистрам PORTA и PORTB, мы обращаемся не к выходным защелкам, а к регистрам состояния этих портов, и настраиваем часть линий на ввод, а часть линий на вывод, что соответствует схеме приведенной в приложении. Используя бит 7 RBPU регистра OPTION_REG включаем встроенную нагрузку порта B, для чего устанавливаем бит в 0. С помощью бита 5 T0CS выбираем источник тактирования для таймера TMR0. Для использования внутренней тактовой частоты CLKOUT, устанавливаем в 0 этот бит. В конце установив в 0 бит RP0 регистра STATUS, мы получаем доступ к регистровому банку 0.

Основная программа main

Данный блок соответствует приведенной ниже части программы.

;==============================================================

main ;основная программа

call initialization ;вызываем подпрограмму инициализации

main1 call indication ;вызываем подпрограмму индикации

goto pressing ;вызываем подпрограмму обработки нажатия кнопки

main2 call transfer ;вызываем подпрограмму передачи импульсов

main3 goto waiting ;вызываем подпрограмму ожидания отраженного сигнала

main4 goto reception ;вызываем подпрограмму приема отраженного сигнала

main5 call calculation ;вызываем подпрограмму вычисления расстояния

;==============================================================

В данной части используются всего два оператора перехода: оператор вызова подпрограммы call и оператор безусловного перехода goto. Для наглядности приведем блок-схему основной программы main, в которую добавлены условия и порядок взаимодействия рассматриваемых далее подпрограмм.

Блок-схема приведена на рис. 9.

2

Рис. 9. Блок-схема основной программы main.

Подпрограмма инициализации initialization

Данный блок соответствует приведенной ниже части программы.

;==============================================================

initialization ;подпрограмма инициализации и начальных условий

обнуляем значения используемых переменных

clrf PORTA ;очистили выходные защелки порта A

clrf NUMIMP ;обнуляем значение NUMIMP

clrf TIMER1 ;обнуляем значение TIMER1

clrf NUMCH ;обнуляем значение NUMCH

clrf TIMER2 ;обнуляем значение TIMER2

clrf LAPSE ;обнуляем значение LAPSE

clrf DIGIT1 ;обнуляем значение DIGIT1

clrf DIGIT2 ;обнуляем значение DIGIT2

clrf DIGIT3 ;обнуляем значение DIGIT3

;устанавливаем значения используемых переменных

movlw d'5' ;помещаем значение "5" для NUMIMP в аккумулятор

movwf NUMIMP ;помещаем значение из аккумулятора в NUMIMP

movlw d'100' ;помещаем значение "100" для TIMER1 в аккумулятор

movwf TIMER1 ;помещаем значение из аккумулятора в TIMER1

movlw d'100' ;помещаем значение "100" для TIMER2 в аккумулятор

movwf TIMER2 ;помещаем значение из аккумулятора в TIMER2

movlw d'57' ;помещаем значение "57" для LAPSE в аккумулятор

movwf LAPSE ;помещаем значение из аккумулятора в LAPSE

return ;возврат из подпрограммы

;==============================================================

Здесь мы обнуляем используемые переменные, и устанавливаем для них необходимые значения. Количество передаваемых импульсов NUMIMP в сигнале принимаем равным 5 (согласовано с преподавателем). И т.д.

Подпрограмма индикации indication

Данный блок соответствует приведенной ниже части программы.

;==============================================================

indication ;подпрограмма индикации измеренного расстояния

;-----------------------------------------------------устанавливаем биты подключения индикаторов

bsf DIGIT1, 6 ;устанавливаем бит 6 переменной DIGIT1 в 1

bsf DIGIT2, 7 ;устанавливаем бит 7 (точка) переменной DIGIT2 в 1

bsf DIGIT2, 5 ;устанавливаем бит 5 переменной DIGIT2 в 1

bsf DIGIT3, 4 ;устанавливаем бит 4 переменной DIGIT3 в 1

;-----------------------------------------------------выводим значение DIGIT1 на индикатор

movf DIGIT1, 0 ;помещаем значение переменной DIGIT1 в аккумулятор

movwf PORTB ;выводим значение в порт В

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

clrf TMR0 ;обнуляем таймер и

bcf INTCON, TOIF ;устанавливаем в 0 флаг прерывания по его переполнению

indc1 btfss INTCON, TOIF ;проверяем флаг прерывания по переполнению таймера

goto indc1 ;если флаг равен 0 (счетчик не переполнен)-выполняем проверку

;если флаг равен 1 (счетчик переполнен) - переходим к следующему

;индикатору

;-----------------------------------------------------выводим значение DIGIT2 на индикатор

movf DIGIT2, 0 ;помещаем значение переменной DIGIT1 в аккумулятор

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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.