Особенности аппаратной реализации ADAM5510M, актуальные при разработке его ПО.

Отличительные особенности

Микроконтроллер ADAM5510 состоит из двух основных частей: базового блока и модулей

вводавывода. Базовый блок имеет в своем составе процессорный модуль,

преобразователь напряжения, 4слотовую пассивную объединительную панель, два

последовательных коммуникационных порта и порт программирования.

Ниже приведены основные особенности микроконтроллера.

Открытая IBM PC совместимая архитектура

Микроконтроллер ADAM5510 выполнен на базе микропроцессора 80188 и имеет

встроенную операционную систему ROMDOS, которая совместима с MSDOS на уровне

базовых функций, за исключением BIOS, что обеспечивает возможность исполнения

стандартного для IBM PC программного обеспечения или прикладных программ,

написанных на языках высокого уровня.

Встроенные электронные диски

Микроконтроллер ADAM5510 имеет в своем составе флэшПЗУ и статическое ОЗУ для

хранения прикладной программы, ее исполнения и хранения данных. Для хранения

прикладных программ в микроконтроллере отведено 170 кбайт флэшПЗУ. Кроме того, для

исполнения прикладной программы и пересылки файлов доступно 192 кбайт оперативной

памяти.

Встроенные последовательные порты с интерфейсом RSC232/485

Микроконтроллер ADAM5510 имеет в своем составе два последовательных

коммуникационных порта, которые обеспечивают возможность организации

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

СОМ1 поддерживает работу в режиме интерфейса RS232, а порт СОМ2 работу в режиме

интерфейса RS485. Такая конфигурация портов позволяет реализовывать различные

приложения с интенсивным обменом данными для широкого класса прикладных задач.

Трехуровневая гальваническая развязка и сторожевой таймер

Микроконтроллер ADAM5510 имеет трехуровневую гальваническую изоляцию, в том

числе: по цепям питания и для модулей вводавывода с напряжением изоляции 3000 В

постоянного тока, а для портов последовательной связи с напряжением изоляции 2500 В

постоянного тока. Наличие гальванической развязки позволяет снизить влияние на систему

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

контролируемого объекта, а также предотвратить неисправности, которые могут быть

вызваны случайными выбросами напряжения в цепях питания, а также переходными

процессами при коммутации силового оборудования. Наличие в составе микроконтроллера

сторожевого таймера обеспечивает контроль его функционирования и автоматический

сброс микропроцессора в случае непредвиденного сбоя в работе управляющей программы.__

 

 

8. Функции ввода/вывода языка Turbo C++: scanf(), printf(), getch(). Примеры использования в программах для ADAM5510M.

Основные функции ввода/вывода:

§ int scanf (const char* format, …)// ввод

§ int printf (const char* format, …)//вывод

Они выполняют форматированный ввод/вывод произвольного количества величин в соответствии со строкой format.

Строка формата содержит:

§ символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе;

§ спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами.

#include <stdio.h>/* в текст программы включается заголовочный файл, содержащий описание использованных в программе функций ввода-вывода*/

int main()

{

int i; // описание целочисленной переменной

printf("Vvedite celoe chislo\n");//вывод приглашения на экран

scanf("%d", &i); /*функция scanf заносит введенное с клавиатуры число в переменную i (знак & - взятие адреса) */

printf("Vu vveli chislo %d, spasibo!\n", i); /*функция printf выводит на экран указанную строку, заменяя спецификацию преобразования на значение этого числа*/

return 0;

}

 

Printf( )

Синтаксис:

#include <stdio.h>

/*int printf (строка символов [ , список параметров вывода]); */

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

Содержимое строки выводится целиком, за исключением символов, перед которыми стоит знак %.

Со знака «%»начинается спецификация формата для представления величин из списка параметров вывода.

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

% [флаг][ширина][.точность][размер]символы формата

Элементы спецификации, заключенные в квадратные скобки необязательны.

Самая простая спецификация формата содержит только знак процента и символ формата: % символы формата

Например, %d .

Значения символа формата приведены в таблице ниже. Итак, каждая спецификация заставляет функцию printf() искать в списке вывода аргумент, который затем преобразуется и выводится в соответствии с заданным преобразованием.

Таблица 1. Значения символа формата

Символы формата Тип выводимого объекта
s строка
d Число типаint( в десятичной форме)
o Число типаint( в восьмиричной форме)
u Число типаunsigned int ( в десятичной форме)
x Число типаint ( в шестнадцатеричной форме)
f float, double ( с фиксированной точкой)

Параметр «[ширина][.точность]» имеет вид десятичного значения с плавающей запятой, где символы слева от запятой устанавливают общее число знаков в выводимых значениях, а символы справа – число знаков после запятой.

Например, спецификатор %5d задает вывод целочисленного значения длиной пять знаков, а %15.5f – вывод числа с плавающей запятой общей длиной в 15 знаков, пять из которых составляют дробную часть.

Пример использования функции.

#include <stdio.h>

#define square(x) ((x) * (x))

#define pi 3.1415926

void main()

{

float x = 2.5;

int i = 11;

int j = 119;

printf ( "\n Значение квадрата 2.5 = %10.4f", square(x) ); /*вывод

значения функции square(x) */

printf ( "\n Значение Пи=%10.4f", pi );

printf ( "\n\n Шестнадцатеричный код числа 11=%x", i ); /*вывод значения переменной i в шестнадцатеричном представлении*/

printf ( "\n\n Шестнадцатеричный код числа 119=%x", j );

printf ( "\n\n Восьмеричный код числа 119=%o \n", j );

}

Результат работы:

Значение квадрата 2.5 = 6.2500

Значение Пи= 3.1416

Шестнадцатеричный код числа 11= b

Шестнадцатеричный код числа 119= 77

Восьмеричный код числа 119=167

Getch( )

Синтаксис:

#include <conio.h>

int getch(void);

 

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

Пример

#include <conio.h>

#include <stdio.h>

#define ESC 27

 

void main(void)

{

clrscr();

 

if(getch()!=ESC)

printf("Simvol vveden\n"); /* нажата любая клавиша кроме ESC*/

else

printf("Simvol ne vveden \n");/* нажата клавиша ESC*/

return 0;

}