Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


Цифровой осциллограф

Содержание

Стр.

TOC o "1-3" h z u Введение. 3

ктуальность темы.. 4

Постановка задачи. 5

1 Разработка структурной схемы устройства. 6

2 Выбор МК и АЦП.. 8

3 Разработка принципиальной схемы и выбор электронных компонентов. 10

4. Описание работы стройства. 21

5 Описание программы для микроконтроллера. 22

ПРИЛОЖЕНИЕ A Программа для МК цифрового осциллографа. 30

Заключение. 42

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


Dallas Semiconductor

DS87C550

33

55

1280

2 UARTs

Silicon Laboratories

C8051F120

100

64

8448

2 UARTs, SMBus, SPI

Microchip

PIC18F4455

48

34

2048

USB 2.0, I2C, SPI, USART

Отличительной особенностью МК DS87C550 является перепроектированное ядро процессора, позволяющее исключить холостые такты и циклы памяти. В результате, каждая команда системы команд 8051 выполняется в три раза быстрее, чем стандартным МК, работающем на той же тактовой частоте. DS87C550 имеет максимальную тактовую частоту 33MHz, что эквивалентно работе стандартного МК с тактовой частотой до 99MHz.

МК C8051F120 выполняет 70% команд за 1 или 2 такта и обладает производительность до 100 MIPS на тактовой частоте 10Гц. Кроме того, он подходит по всем остальным параметрам для разрабатываемого стройства. Поэтому остановим свой выбор на нём.

ЦП должен быть сдвоенный и иметь частоту дискретизации 20 Гц. Такие АЦП выпускают многие производители. Так как Analog Devices выпускает качественные АЦП, то выберем из её продукции микросхему AD9288а c частотой преобразования 40 Гц.

Заключение

После выполнения работы была разработана цифрового осциллографа, придумана программа для МК.

В ходе проделанной работы были изучены:

Ц       принципы построения цифровых осциллографов

Ц       документация на выбранные микросхемы

Ц       принцип работы ЖКД

Цифровой осциллограф позволяёт наблюдать на ЖКД переменное напряжение любо частоты до 10 Гц. Также можно исследовать два сигнала одновременно.

Частот дискретизации и коэффициент ослабленияусиления сигнала задаются кнопками.

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

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

1.     Б.П. Хромой, Ю.Г. Моисеев. Электрорадиоизмерения. учебник для техникумов. - M: Издательство "Радио и связь", 1985г.

2.     ADG211- Документация. Режим доступа: [ссылка более недоступнаUploadedFiles/Data_Sheets/74187780adg211a2.pdf].

3.     AD8008 - Документация. Режим доступа: [ссылка более недоступнаUploadedFiles/Data_Sheets/3836143348442092336AD8007_8_d.pdf].

4.     AD9288 - Документация. Режим доступа: [ссылка более недоступнаUploadedFiles/Data_Sheets/54479363AD9288_c.pdf].

5.     C8051F120 - Документация. Режим доступа: [ссылка более недоступнаpublic/documents/tpub_doc/dsheet/Microcontrollers/Precision_Mixed-Signal/en/C8051F12x-13x.pdf].

6.     SED1335 - Перевод документации. Режим доступа: [ссылка более недоступнаhtml.cgi/txt/lcd/chips/sed1335/index.htm].

Доработка цифрового осциллографа

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

По умолчанию осциллограф работает в автоколебательном режиме. При ждущем режиме сигнал отображается не непрерывно, а только с приходом сигнала. При этом происходит отображение сигнала полностью. В однократном режиме сигнал оцифровывается и отображается при нажатии кнопки СТАРТ.

Также обычно имеется возможность выбирать источник синхронизации внешний или внутренний. При внутренней синхронизации сигнала при рисовании графика функции U(t), момент времени t=0 делают совпадающим с моментом начала следующего периода исследуемого аналогового сигнала на входе осциллографа, а при внешней - с моментом начала внешнего сигнала синхронизации.

В автоколебательном режиме для получения чёткого изображения на панель прибора выводится регулятор уровня запуска (LEVEL) и переключатель выбора запускающего перепада положительного или отрицательного (SLOPE).

Переключатель SLOPE определяет на фронте или на спаде импульса будет находиться точка запуска развертки (Рисунок 1). а

Рисунок 1 - Регулировка наклона и уровня

В нажатом состоянии ручки запуск развертки осуществляется по фронту, в вытянутом - по спаду. Регулятор LEVEL определяет точку на выбранном фронте, при пересечении которой запускается развертка.

Дле регулировки уровня подключим ко входу Ain0.0 потенциометр. Напряжение на Ain0.0 может меняться от 0 до 1 В. Ain0.0 подключим при программировании к 10 - ти разрядному ADC0.

Рисунок 2 - потенциометр для регулировки уровня

Для настройки АЦП0 загружаются регистры AMX0CF, AMX0SL, ADC0CF, ADC0CN значениями приведёнными в таблице 1.1.

Таблица 1.1 - Регистры для настройки и правления АЦП0

Название регистра

Значение

Описание

AMX0CF


Регистр настройки AMUX0

AMX0SL


Регистр выбора канала AMUX0

ADC0CF


Регистр конфигурации АЦП0

ADC0CN

1

Регистр правления АЦП0

ADC0H


Регистр старшего байта слова данных АЦП0

ADC0L


Регистр младшего байта слова данных АЦП0

В результате настройки Ain0.0 - Ain0.7 Ц независимые одиночные входы.

Выбран канал Ain0.0 мультиплексора.

Частот дискретизации вычисляется из формулы:

а,

где - системная тактовая частот (100 Гц);

а- число, задаваемое битами 3 - 7 регистра ADC0CF.

Коэффициент усиления встроенного силителя равен 1.

Более подробно опишем назначения битов регистра ADC0CN:

Бит 7: AD0EN: Бит включения АЦП0.

0: АЦП0 отключен. АЦП0 находится в режиме пониженного энергопотребления.

1: АЦП0 включен. АЦП0 находится в активном режиме и готов к преобразованию данных.

Бит 6: AD0TM: Бит становки режима слежения АЦП0.

0: Нормальный режим слежения: Когда АЦП0 включен, слежение осуществляется всегда, за исключением момента преобразования.

1: Энергосберегающий режим слежения: Режим слежения определяется битами AD0CM1-0 (см. ниже).

Бит 5: AD0INT: Флаг прерывания от АЦП0 (устанавливается при завершении преобразования).

Этот флаг должен быть сброшен программно.

0: АЦП0 не закончил преобразование данных (с момента последнего обнуления этого флага).

1: АЦП0 закончил преобразование данных.

Бит 4: AD0BUSY: Бит занятости АЦП0.

Чтение:

0: Преобразование данных завершено или в данный момент преобразование не осуществляется.

При аппаратном обнулении этого бита флаг AD2INT станавливается в 1.

1: Идет процесс преобразования данных АЦП0.

Запись:

0: Не оказывает никакого влияния.

1: Инициирует запуск преобразования АЦП0, если биты AD2CM1-0 = 00b.

Биты 3-2: AD0CM1-0: Биты выбора режима запуска преобразования АЦП0.

Если AD2TM = 0:

00: Запуск преобразования осуществляется установкой в 1 бита AD2BUSY.

01: Запуск преобразования осуществляется при переполнении Таймера 3.

10: Запуск преобразования осуществляется нарастающим фронтом внешнего сигнала CNVSTR2.

11: Запуск преобразования осуществляется при переполнении Таймера 2.

Если AD2TM = 1:

00: слежение (выборка) начинается в момент становки в 1 бита AD2BUSY и длится 3 периода сигнала дискретизации АЦП0; затем начинается преобразование данных.

01: слежение (выборка) начинается при переполнении Таймера 3 и длится 3 периода сигнала дискретизации АЦП0; затем начинается преобразование данных.

10: слежение (выборка) происходит лишь при низком уровне сигнала на входе CNVSTR2; преобразование запускается нарастающим фронтом сигнала на входе CNVSTR2.

11: слежение (выборка) начинается при переполнении Таймера 2 и длится 3 периода сигнала дискретизации АЦП0; затем начинается преобразование данных.

Бит 1: AD2WINT: Флаг прерывания от детектора диапазона АЦП0 (сбрасывается программно)

0: Преобразованные данные не соответствуют заданному диапазону (с момента последнего обнуления этого флага).

1: Преобразованные данные соответствуют заданному диапазону

Бит 0: AD2LJST: Бит выравнивания результата преобразования

0: Данные в регистровой паре ADC0H:ADC0L выровнены вправо

1: Данные в регистровой паре ADC0H:ADC0L выровнены влево


SHAPEа * MERGEFORMAT

Начало

Загрузка числа, с которого считает таймер 3

Загрузка ав XRAM байта по адресу addr; DPTR++

Запуск таймера

1

1

Загрузка числа, с которого считает таймер 3

Fд = 10 аили 5 Гц?

нет

да

Загрузка в DPTR адреса ячейки памяти addr

Загрузка в Acc значения регистра порта P4

Загрузка из Acc в XRAM байта по адресу addr

Addr=0;

Synchronization=0

Задержка 10 или 70 нс;

Addr++

Addr=240 ?

Выход

да

нет

Таймер переполнен?

нет

да

Addr=240 ?

2

2

нет

Выход

3

4

3

4

Рисунок 3 - Блок - схема алгоритма подпрограммы InputADC1

SHAPEа * MERGEFORMAT

3

R1=Acc ?

да

4

2

нет

Synchronization =1

да

4

нет

Synchronization =1

Загрузка ADC0L в R1

Продолжение рисунка 3

Ниже приведены фрагмент текста программы для настройки АЦП (фрагмент нужно разместить после фрагмента для настройки прерываний):

;----------------------------------------------------------------

; Настройка АЦП0

;---------------------------------------------------------------mov SFRPAGE, #h

mov AMX0CF, #h

mov AMX0SL, #h

mov ADC0CF, #0F8h

mov ADC0CN, #080h

Дальше приведён фрагмент текста программы подпрограммы InputADC1, который соответствует частоте дискретизации 500 Гц (для остальных частот аналогично):

;-----------------------------

;Частот дискретизации 500 Гц

;-----------------------------

_500KHz1:

cjne kf1, #004h, _250KHz1

; Задание числа c которого считает таймер

mov SFRPAGE, #001h

mov RCAP3H,#0FFh

mov RCAP3L,#05Ch

mov R4, #h ;переменная synchronization

mov DPTR, #h

Input1_4:

mov SFRPAGE, #00Fhа ;3

mov A, Padc1 ;2

movx @DPTR, A ;3 а

inc DPTR ;1

а

cjne R3,#h, L0

clr AD0INT

setb AD0BUSY ; запуск АЦП

jz AD0INT,&

mov A, ADC0L

mov R0, A

clr C

subb A,R0

cjne A, #h, Input1_4

mov R4, #001h

mov A, #0F0h ;2

L0: mov SFRPAGE, #001hа ;3

mov TMR3CN, #004h ;3

а

;задержка 1690 нс

jnb TMR3CN.7,$ ;4

nop

nop

mov TMR3CN,#h ;3

mov TMR3H,#0FFh ;3

mov TMR3L,#05Ch ;3

cjne A, DPL, Input1_4а ;5