Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_5.2.docx
Скачиваний:
1
Добавлен:
16.07.2019
Размер:
1.34 Mб
Скачать
    1. Аналого-цифровое преобразование

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

Преобразование аналогового сигнала и вывод данных на экран должен осуществляться в три этапа (три подпрограммы):

  1. непосредственно само аналого-цифровое преобразование;

  2. преобразование двоичного кода, полученного на выходе АЦП, в HEX-коды;

  3. вывод HEX-кодов на ЖКИ.

Схема программы:

Рис.14. Схема программ

Текст программы:

adc_mai.asm

org 8400h

include asms\adc.asm ;подключение подпрограммы adc.asm

include asms\to_int.asm ;подключение подпрограммы to_int.asm

include asms\indic.asm ;подключение подпрограммы indic.asm

ret

adc.asm

;регистры АЦП

ADCON: equ D8h

ADDAT: equ D9h

DAPR: equ Dah

U: equ 40h

mov a, #00000011 ;задание режима работы и номера канала (для потенциометра – 3, для интегратора – 4)

anl ADCON, #E0h ;настройка АЦП

orl ADCON, A

mov DAPR, #0h ;задание опорных напряжений и запуск преобразования

mov r7, #15 ;формирование задержки

r1: djnz R7, r1

mov U, ADDAT ;запись результата в ячейку 40h

to_int.asm

B: equ F0h

mov a, 40h

mov B, #10 ;основание системы счисления

div ab ;деление

mov r1, a

mov a, b

add a, #30h ;в аккумуляторе HEX-код

mov dptr, #FFD2h

movx @dptr, a ;запись третьего символа в видеобуфер

mov a, r1

mov B, #10 ;основание системы счисления

div ab ;деление

mov r1, a

mov a, b

add a, #30h ;в аккумуляторе HEX-код

mov dptr, #FFD1h

movx @dptr, a ;запись второго символа в видеобуфер

mov a, r1

mov B, #10 ;основание системы счисления

div ab ;деление

mov r1, a

mov a, b

add a, #30h ;в аккумуляторе ASCII-код

mov dptr, #FFD0h

movx @dptr, a ;запись первого символа в видеобуфер

mov a, r1

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

Подпрограмма adc.asm управляет АЦП. В ней указывается номер входа, на который поступает аналоговый сигнал, так что для преобразования сигналов от потенциометра и от интегратора она будет отличаться.

Преобразование двоичного кода в HEX -коды выполняется программой to_int.asm. Она считывает из ячейки памяти двоичное число и три раза делит это число на 1010. Остатки от деления будут разрядами десятичного числа. Чтобы из них получить HEX-коды, нужно добавить код 30h. Так же подпрограмма to_int.asm записывает получившиеся коды в видеобуфер.

Вывод HEX-кодов на ЖКИ осуществляется с помощью подпрограммы из первого задания.

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

При испытаниях был использован осциллограф, позволяющий определять реальные значения аналоговых сигналов.

Испытания с потенциометром проводились следующим образом. По осциллографу определялось реальное значение на выходе с потенциометра, затем этот сигнал был дважды преобразован сначала при диапазоне 5 В, затем при диапазоне 1,25 В. Таких значений аналоговых сигналов было использовано 5 штук.

В ходе испытаний с интегратором, сначала по осциллографу измерялось среднее значение сигнала с выхода интегратора. Затем этот сигнал несколько раз преобразовывался при диапазоне 5 В, а после при диапазоне 1,25 В.

Результаты измерений наблюдались на осциллографе и на ЖКИ. Они представлены в таблицах №4-5

Результаты:

Таблица 4. Результаты преобразования аналогового сигнала с потенциометра.

Диапазон

U осц.

Цифровой эквивалент

Результат преобразования

Погрешность

Абсолютная погрешность (мВ)

0-5 В (DAPR = 0)

1

51

55

4

80

2

103

106

3

60

3

154

160

6

120

4

205

211

6

120

5

256

255

1

20

0-1,25 (40)

1

204

214

10

50

1,25-2,5 (84)

2

153

167

14

70

2,5-3,75 (C8)

3

102

112

10

50

3,125-4,375 (EA)

4

179

184

5

25

3,75-5 (0C)

5

255

255

0

0

Видно, что АЦП выполняет преобразование с заметной ошибкой, причем, чем дальше реальное значение сигнала от границ диапазона преобразований, тем больше погрешность. Однако уменьшение диапазона преобразований довольно сильно уменьшает погрешность.

Таблица 5. Результаты преобразования аналогового сигнала с интегратора.

Диапазон

U осц.

Цифровой эквивалент

Результат преобразования

Погрешность

Абсолютная погрешность (мВ)

0-5 В (DAPR = 0)

2.4

123

124

1

20

125

2

40

128

5

100

125

2

40

130

7

140

131

8

160

1,875-3,125 (A6)

2.4

107

110

3

15

98

9

45

112

5

25

97

10

50

107

0

0

124

17

85

94

13

65

Видно, что из-за пульсации сигнала на выходе интегратора, значения на выходе АЦП меняются, даже не смотря на то, что среднее значение сигнала остается неизменным.

Так же как и при потенциометре, после уменьшения диапазона преобразования, уменьшилась погрешность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]