Цифровой осцилограф
Курсовая работа, 03 Ноября 2012, автор: пользователь скрыл имя
Краткое описание
В работе ставится задача придумать функциональную схему устройства, разработать в графическом редакторе OrCAD Capture принципиальную схему. В ходе разработки схем подобрать подходящие микросхемы для обеспечения нужных характеристик осциллографа. Написать программу для микроконтроллера.
Прикрепленные файлы: 1 файл
kursovik.doc
— 663.00 Кб (Скачать документ); Задание числа c которого считает таймер
mov SFRPAGE, #001h
mov RCAP3H,#0FEh
mov RCAP3L,#094h
mov DPTR, #000h
Input1_5:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 3690 нс
jnb TMR3CN.7,$
nop
nop
mov TMR3CN,#000h
mov TMR3H,#0FEh ;3
mov TMR3L,#094h ;3
cjne A, DPL, Input1_5
;-----------------------------
;Частота дискретизации 50 КГц
;-----------------------------
_50KHz1:
cjne kf1, #006h, _25KHz1
;Задание числа c которого считает таймер
mov SFRPAGE, #001h
mov RCAP3H,#0F8h
mov RCAP3L,#054h
mov DPTR, #000h
Input1_6:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 19690 нс
jnb TMR3CN.7,$
nop
nop
mov TMR3CN,#000h
mov TMR3H,#0F8h
mov TMR3L,#054h
cjne A, DPL, Input1_6
;-----------------------------
;Частота дискретизации 25 КГц
;-----------------------------
_25KHz1:
cjne kf1, #007h, _5KHz1
mov SFRPAGE, #001h
mov RCAP3H,#0F0h
mov RCAP3L,#084h
mov DPTR, #000h
Input1_7:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 39 690 нс
jnb TMR3CN.7,$
nop
nop
mov TMR3CN,#000h
mov TMR3H,#0F0h
mov TMR3L,#084h
cjne A, DPL, Input1_7
;-----------------------------
;Частота дискретизации 5 КГц
;-----------------------------
_5KHz1:
cjne kf1, #008h, _2_5KHz1
mov SFRPAGE, #001h
mov RCAP3H,#0B2h
mov RCAP3L,#004h
mov DPTR, #000h
Input1_8:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 199690 нс
jnb TMR3CN.7,$
nop
nop
mov TMR3CN,#000h
mov TMR3H,#0B2h
mov TMR3L,#004h
cjne A, DPL, Input1_8
;-----------------------------
;Частота дискретизации 2.5 КГц
;-----------------------------
_2_5KHz1:
cjne kf1, #009h, _500Hz1
mov SFRPAGE, #001h
mov RCAP3H,#063h
mov RCAP3L,#0E4h
mov DPTR, #000h
Input1_9:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 399 690 нс
jnb TMR3CN.7,$
nop
nop
mov TMR3CN,#000h
mov TMR3H,#063h
mov TMR3L,#0E4h
cjne A, DPL, Input1_9
;-----------------------------
;Частота дискретизации 500 Гц
;-----------------------------
_500Hz1:
cjne kf, #010h, _250Hz1
; Задание числа c которого считает таймер
mov SFRPAGE, #001h
mov RCAP3L,#000h
mov RCAP3H,#000h
mov DPTR, #000h
Input1_10:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 1 999 690 нс
mov i,#3
M1_10:
mov TMR3CN, #004h
jnb TMR3CN.7,$
mov TMR3CN,#000h
mov TMR3H,#000h
mov TMR3L,#000h
djnz i, M1_10
cjne A, DPL, Input1_10
;-----------------------------
;Частота дискретизации 250 Гц
;-----------------------------
_250Hz1:
cjne kf1, #011h, ExitInputADC
; Задание числа c которого считает таймер
mov SFRPAGE, #001h
mov RCAP3L,#000h
mov RCAP3H,#000h
mov DPTR, #000h
Input1_11:
mov SFRPAGE, #00Fh
mov A, Padc1
movx @DPTR, A
inc DPTR
mov A, #0F0h
mov SFRPAGE, #001h
mov TMR3CN, #004h
;задержка 3 999 690 нс
mov i,#006d
M1_11:
mov TMR3CN, #004h
jnb TMR3CN.7,$
mov TMR3CN,#000h
mov TMR3H,#000h
mov TMR3L,#000h
djnz i, M1_11
cjne A, DPL, Input1_11
ExitInputADC:
ret
;-----------------------------
; Подпрограмма заполняет память XRAM данными,
; которые записываются в память дисплея
;-----------------------------
Converting:
mov DPTR, #200h
L1: ;Смещение адреса на 240 байтов назад
mov A, DPH
clr C
subb A, #02h
mov DPH,A
movx A, @DPTR
mov R1, A ;в R1 номер пикселя в строке
;вычисление адреса байта на дисплее
mov B, #08h
div AB
mov R3, A ; в R3 адрес байта
;вычисление номера пикселя в байте
inc A
mov B, #08h
mul AB
clr C
subb A, R1
;установка бита в байте
mov R7, A
inc R7
mov A, #01h
L0: RLC A
dec R7
cjne R7, #00h, L0
mov R7, A ; в R7 содержимое байта
;запись в XRAM байта с установленным битом
mov DPH, #02h
mov DPL, R3
mov A,R7
movx @DPTR, A
mov A, DPH
cjne A, #1Fh, L1
;Запись метки конца массива данных
mov DPTR, #2000h
mov A, #0A1h
movx @DPTR, A
ret
;-----------------------------
; Таблицы и данные
;-----------------------------
; Инициализация параметров SED1335.
;установка системы
msg1: db 30h, 87h, 07h, 27h, 39h, 0EFh, 28h, 0h, 0A1h
;прокрутка
msg2: db 0, 0, 0EFh, 0B0h, 04h, 0EFh, 0, 0, 0, 0, 0A1h
msg3: db 04h, 86h, 0A1h; форма курсора
msg4: db 01h, 0A1h; параметр наложения
msg5: db 16h, 0A1h; включение/выключение дисплея
msg6: db 0B0h, 04h, 0A1h; установка курсора на графическую страницу
msg11: db' ', 01Ah
msg18: db 0, 01Ah; параметр прокрутки по горизонтали
END
Заключение
После выполнения работы была разработана цифрового осциллографа, придумана программа для МК.
В ходе проделанной работы были изучены:
- принципы построения цифровых осциллографов
- документация на выбранные микросхемы
- принцип работы ЖКД
Цифровой осциллограф позволяёт наблюдать на ЖКД переменное напряжение любо частоты до 10 МГц. Также можно исследовать два сигнала одновременно.
Частота дискретизации и коэффициент ослабления\усиления сигнала задаются кнопками.
Для измерения постоянных
напряжений можно трансформаторы заменить
на операционные усилители или воспользоваться
встроенными АЦП доработав
Список использованных источников
- Б.П. Хромой, Ю.Г. Моисеев. Электрорадиоизмерения. Учебник для техникумов. – M: Издательство "Радио и связь", 1985г.
- ADG211- Документация. Режим доступа: [http://www.analog.com/Uploade
dFiles/Data_Sheets/74187780adg 211a2.pdf]. - AD8008 – Документация. Режим доступа: [http://www.analog.com/
UploadedFiles/Data_Sheets/ 3836143348442092336AD8007_8_d. pdf]. - AD9288 – Документация. Режим доступа: [http://www.analog.com/Uploade
dFiles/Data_Sheets/54479363AD9 288_c.pdf]. - C8051F120 – Документация. Режим доступа: [http://www2.silabs.com/
public/documents/tpub_doc/ dsheet/Microcontrollers/ Precision_Mixed-Signal/en/ C8051F12x-13x.pdf]. - SED1335 – Перевод документации. Режим доступа: [http://www.ineltek.ru/html.cg
i/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 |
xxxx0000 |
Регистр настройки AMUX0 |
AMX0SL |
xxxx0000 |
Регистр выбора канала AMUX0 |
ADC0CF |
11111000 |
Регистр конфигурации АЦП0 |
ADC0CN |
10000000 |
Регистр управления АЦП0 |
ADC0H |
11111111 |
Регистр старшего байта слова данных АЦП0 |
ADC0L |
11111111 |
Регистр младшего байта слова данных АЦП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: Запуск преобразования
осуществляется при
10: Запуск преобразования осуществляется нарастающим фронтом внешнего сигнала CNVSTR2.
11: Запуск преобразования
осуществляется при
Если AD2TM = 1:
00: слежение (выборка)
начинается в момент установки
в 1 бита AD2BUSY и длится 3 периода
сигнала дискретизации АЦП0; затем
начинается преобразование
01: слежение (выборка) начинается при переполнении Таймера 3 и длится 3 периода сигнала дискретизации АЦП0; затем начинается преобразование данных.
10: слежение (выборка)
происходит лишь при низком
уровне сигнала на входе
11: слежение (выборка) начинается при переполнении Таймера 2 и длится 3 периода сигнала дискретизации АЦП0; затем начинается преобразование данных.
Бит 1: AD2WINT: Флаг прерывания от детектора диапазона АЦП0 (сбрасывается программно)
0: Преобразованные данные
не соответствуют заданному
1: Преобразованные данные
соответствуют заданному
Бит 0: AD2LJST: Бит выравнивания результата преобразования
0: Данные в регистровой паре ADC0H:ADC0L выровнены вправо
1: Данные в регистровой паре ADC0H:ADC0L выровнены влево
Рисунок 3 – Блок – схема алгоритма подпрограммы InputADC1