Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_po_C.pdf
Скачиваний:
37
Добавлен:
07.03.2015
Размер:
2.9 Mб
Скачать

№ варианта

N min

U min ,

N max

U max ,

t1 ,

U 1 ,

t2 ,

U 2 ,

N input

toutput ,

 

В

 

В

°C

В

°C

В

 

°C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

0

0.37

1023

14.5

-12

0.55

73

13

430

27.3205

 

 

 

 

 

 

 

 

 

 

 

19

0

0.24

2047

14.6

48

0.34

95

13.7

376

56.9275

 

 

 

 

 

 

 

 

 

 

 

20

0

0.15

4095

3.3

72

0.57

148

2.9

3529

146.846

 

 

 

 

 

 

 

 

 

 

 

В качестве выходного кода АЦП используется смещенный код.

Создайте приложение, запустите его, продемонстрируйте работу приложения преподавателю. При этом, целью обеспечения простоты изменения параметров преобразования, все значения, приведенные в таблице 6, должны быть представлены в исходном тексте в виде переменных с модификатором const следующих типов (не в виде чисел непосредственно в

уравнениях):

U max

,

U min

,

t1 , t2 -

const

float

N max

,

N min

 

-

const

unsigned int

5.2. Методические указания по выполнению лабораторной работы

5.2.1. Создание проекта приложения

Создание консольного приложения уже рассматривалось в предыдущих лабораторных работах (см. разделы 3.2.1., 3.2.2.).

5.2.2.Ввод с клавиатуры сигнала, имитирующего выходной сигнал аналогоцифрового преобразователя

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

Вывод на экран строковой константы и ввод значения переменной с клавиатуры уже рассматривался ранее (см. раздел 4.2.1.2.).

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

1.Создать целочисленную переменную, в которую будет вводится входное значение - выходной код АЦП.

2.Ввести с клавиатуры значение в данную переменную.

Создание переменных, используемых в приложении, уже рассматривалось в предыдущих работах. Предлагается добавить в область, где уже существуют ранее созданные переменные (в начале функции main либо в начале исходного текста программы) строку создания переменной.

Поскольку код, получаемый от АЦП в данной работе - всегда целое положительное число размером не более 2 байтов, для его хранения предлагается использовать переменную типа unsigned int. Ниже показан фрагмент исходного текста, в котором определяется переменная

36

SignalADC, используемая для ввода и хранения кода АЦП.

Ввод кода АЦП в данную переменную можно выполнить с помощью помощью стандартных потоков ввода/вывода, как это делалось в предыдущей работе. Ниже показан фрагмент примера исходного текста, где выполняется вывод на экран строки - приглашения, и ввод с клавиатуры значения в ту же переменную SignalADC:

Операция вывода строки - приглашения и ввода сигнала занимает две последние строки данного примера. Первые несколько строк примера приведены для облегчения ориентации в исходном тексте и понимания, где должна располагаться операция ввода (по аналогии с предыдущими программами).

5.2.3.Преобразование сигнала АЦП из целочисленного формата в формат с плавающей десятичной точкой и его масштабирование

Входное значение кода АЦП (помещенное в предыдущем примере в переменную SignalADC), представляет собой значение напряжения в целочисленном смещенном коде, то есть

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

В большинстве случаев (и в данной работе) аналого-цифровые преобразователи имеют линейную (или максимально приближенную к линейной) зависимость между входным сигналом и выходным кодом. Линейная зависимость в общем определяется следующим выражением:

Y =A X + B ;

( 1)

где:

Xвходная переменная (аргумент линейной функции), в данном случае - код АЦП из

37

переменной SignalADC;

Yрезультат вычисления (значение линейной функции), в данном случае - отмасштабированное значение напряжения;

A коэффициент пропорциональности (коэффициент наклона);

Bсмещение относительно нулевого уровня.

Коэффициент пропорциональности в общем случае может быть определен по любым двум точкам линейной зависимости:

A=

Y 2Y 1

;

( 2)

X 2X 1

 

 

 

 

Коэффициент пропорциональности для вычисления сигнала АЦП может быть определен по максимальному и минимальному значению входного напряжения АЦП и соответствующим им кодам (см. таблицу 6):

K u=

U maxU min

;

( 3)

N maxN min

 

 

 

 

В этом случае выражение для вычисления напряжения по значению кода АЦП принимает

вид:

U ADC=K u (SignalADCN min)+U min ;

( 4)

Уравнения (3) и (4) можно использовать для реализации масштабирования напряжения АЦП

в системе. При этом значения U max , U min , N max и

N min являются постоянными,

выбираемыми из таблицы 6 в соответствии с Вашим вариантом. Можно подставить их в виде числовых значений непосредственно в строки, реализующие данные уравнения в исходном тексте. Однако с точки зрения наглядности исходного текста, простоты дальнейшей настройки, а также в соответствии с заданием, для этих значений необходимо создать переменные с модификатором const. Данные переменные можно создать в том же месте, что и остальные переменные

программы (в данном случае - в начале функции main).

Следующий пример фрагмента исходного текста показывает, как это сделать:

38

Обратите внимание, что значения, присваиваемые переменным с модификатором const, должны соответствовать Вашему варианту задания.

Помимо перечисленных выше переменных здесь также создаются переменные с именами U_ADC и Ku, используемые в уравнениях (3) и (4).

Пример строк, реализующие уравнения (3) и (4) в исходном тексте, показан в следующем примере:

В данном примере строки уравнений (3) и (4) помещены сразу после строк ввода кода АЦП, рассмотренных в разделе 5.2.2. В строках, реализующих данные уравнения, используются операции явного преобразования типа. В общем виде данная операция имеет следующий формат записи:

(тип) значение

где:

39

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