Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Схемы ввода цифровых и аналоговых сигналов




Ввод в MCS-51 аналоговых сигналов: виды АЦП, схемы подключения и программы опроса АЦП.

Подпрограмма OPROS производит переключение аналоговых каналов коммутатора DA1 (рис. 3.5).

;*********************************************************

;OPROS – подпрограмма ввода аналоговых сигналов U1-U4.

;*********************************************************

OPROS: MOV R0, #DATA_W ; Начальный адрес массива

;DATA_W

MOV R7, #4 ; Счетчик аналоговых сигналов

NEXT: MOV R2, #0001100B ; Регистр R2 - код для выбора

; канала коммутатора DA1

MOV P1, R2 ; Вывод в P3 - выбор канала коммутатора

CALL ADCONV ; Подпрограмма АЦ преобразования,

; в регистре B – МлБ, в регистре А – СтБ кода АЦП

MOV @R0, B ; Пересылка МлБ кода АЦП в ПД

INC R0

MOV @R0, A ; Пересылка СтБ кода АЦП в ПД

INC R0

INC R2

DJNZ R7, NEXT ; Цикл, если (R7) 0

RET

Схемы ввода цифровых и аналоговых сигналов

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

На рис. 3.5 приведена функциональная схема ввода цифровых и аналоговых сигналов при использовании АЦП типа К1113ПВ1. Микросхема DA1 КР590КН3 является коммутатором аналоговых входных сигналов U1-U4. Переключение входных каналов коммутатора выполняется цифровыми сигналами уровней ТТЛ, подаваемых на адресные входы А1 и А0. Таблица истинности коммутатора имеет вид:

А1 А0 Соединение
Y=X1
Y=X2
Y=X3
Y=X4

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

Особенностью микросхемы К1113ПВ1 является то, что в ней отсутствует возможность управления выходными буферами выдачи цифрового кода. После запуска АЦП выходы буферов будут в z-состоянии. Когда преобразование закончится (сигнал на выводе станет равным 0), выходы буферов переходят в активный режим и на выводах D0-D9 появится цифровой код, который будет неизменным до нового запуска АЦП. В схеме на рис. 3.5 разряды D0-D7 выходного кода АЦП подаются на входы буферного регистра DD2, а два старших разряда D8,D9 – на входы регистра DD3. Сигнал готовности данных АЦП и цифровые входные сигналы Х1-Х4 подаются на входы DD3. Выходы регистров DD2 и DD3 соединены с выводами порта Р0 МК. Управление выходными буферами регистров осуществляется от линий Р3.3 и Р3.4. При Р3.3=1, Р3.4=1 выходы регистров DD2, DD3 находятся в z-состоянии и они отключены от выводов порта Р0. Запуск АЦП выполняется сигналом от линии Р1.3. Переключение каналов коммутатора производят сигналы с линий Р1.0, Р1.1 микроконтр-а.

Рис. 3.5. Схема ввода цифровых и аналоговых сигналов с АЦП К1113ПВ1

 

 

13. Функции в языке С18: определение функции, прототип, библиотечные функции. Определение функции.Программа на языке Си состоит из одной или нескольких функций. Функция – это логически самостоятельная именованная часть программы, которой могут передаваться параметры и которая может возвращать какое-то значение. Современный стиль языка Си предполагает следующий формат определения функции: возвращаемый_тип имя_функции (тип параметр_1, …,тип параметр_n)

{

описание данных;

оператор_1;

……

оператор_m;

return (выражение);

}

Совокупность предложений в фигурных скобках часто называют телом функции. Встретив определение функции, компилятор создает самостоятельную секцию кода программы, которая на этапе компоновки объединяется с другими функциями. Синтаксис языка Си запрещает внутри определения функции помещать определение еще одной функции. Поле «возвращаемый_тип» задает тип возвращаемого функцией значения (char, int, float и т.д.). Если функция не возвращает никакого значения, то в поле «возвращаемый_тип» записывается ключевое слово void (пустой).

После имени функции в скобках помещаются аргументы (или по-другому параметры), передаваемые в функцию, они содержат любую комбинацию типов и имен. Это поле в определении функции называется списком формальных аргументов (или параметров). Поле «список аргументов» - не обязательная часть в определении функции. Если в функцию не передаются никакие аргументы. То это поле–пустое или содержит ключевое слово void.

Пример определения функции:

int mul(int a, int b)

{

int y;

y = a * b;

return y;

}

Определения функций могут размещаться в различных частях программы, в том числе и в различных файлах. Поэтому может возникнуть ситуация, когда вызывается функция, определение которой находится ниже (по тексту) в программе. Это вызывает сбой в работе компилятора. Прототип функции. Стандарт языка Си требует, чтобы функции были объявлены до первой ссылки на них. Это «предварительное» объявление называется прототипом функции. Оно извещает компилятор о типе возвращаемого значения, количестве и типе аргументов. Используя прототип, компилятор может выполнить тщательный контроль числа аргументов и соответствие их типов в вызовах функции и ее определении. Современный стиль записи прототипа имеет следующий формат: возвращаемый_тип имя_функции(тип параметр_1, …., тип параметр_n); Сравнивая формат прототипа с определением функции, можно сделать вывод о том, что прототип точно повторяет первую строку определения функции. Пример прототипа для рассмотренной ранее функции:

int mul(int a, int b);

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

Библиотечные функции.MPLAB C18 имеет обширные библиотеки, содержащие функции для решения часто встречающихся задач. Использование таких готовых функций избавляет пользователя от необходимости разработки соответствующих средств и предоставляет ему дополнительный сервис. Стандартные функции языка Си оформлены в соответс-щие программные модули, включены в библиотеки и поставляются с системой программирования. Их прототипы даны в файлах типа *.h. Поэтому в начале программы с библиотечными функциями должны быть строки вида #include<включаемый файл вида *.h>.


Поделиться:

Дата добавления: 2015-04-21; просмотров: 113; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты