Разработка программы для ПК

}WriteEXTRAM(unsigned char xdata *adr,unsigned char val)

{char oldDPP=DPP;=MyData;// третья страница памяти

*adr=val;

DPP=oldDPP;// возвращаем старое значение

}

// передача данных на ПК

/*

описание:

передает, через UART, массив(conv_val) с сохраненными, в нем до этого, значениями

входные данные:

отсутствуют

возвращаемый результат:

отсутствует

*/WriteToUART(unsigned short count)

{short i;// счетчикshort tmp=0;("ADC Channel: %d\nData start:\n", NumChanel);// номер канала и служебное слово(i=0;i<=count;i++)

{=ReadEXTRAM(i);

//val=conv_val[i]; ("%d\n", tmp);// передача данных

}

printf ("Data stop\n");// конец вывода данных

}

// запись значения во внешенее ОЗУ

/*

описание:

записывает входное значение в массив,хранящейся во внешнем ОЗУ

входные данные:

Value - записываемое значение

Channel - номер канала с которого было получено значение,

необходимо для вывода сохраненных до этого значений при смене канала оцифровки

возвращаемый результат:

отсутствует

*/WriteValue(unsigned short Value,unsigned short Channel)

{

if (Channel!=OldChanel)// если был сменен канал нужно вывести данные

{

WriteToUART(--IndexMas);// вывод

IndexMas=0;// данные выведены можно заполнять массив сначала

}

WriteEXTRAM(IndexMas,Value);// пишем во внешнее ОЗУ

//conv_val[IndexMas]=Value;// пишем данные во внешнее ОЗУ

IndexMas++;// увеличиваем индекс

if (IndexMas>=CountMas)// Проверяем не конец ли это массива

{

WriteToUART(--IndexMas);// если массив заполнен выведем данные

IndexMas=0;// данные выведены можно заполнять массив сначала

}

}

//******************************************************************************************************************//

/*

описание:

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

входные данные:

отсутствуют

возвращаемый результат:

отсутствует

*/main(void)

{grad = 0;char c=0;char svet = 0;short tmpVal = 0;

//-------Инициализация UART-----------1 = 0xFD;// Скорость 9600 бит/с

TMOD = 0x20;// Таймер 1 в режиме autoreload

TCON = 0x40;// Запуск таймера 1

SCON = 0x50;// 8 bit UART, разрешение приема

PCON &=0x7F;// Отключение удвоения скорости

TI = 1; // Флаги UART

RI = 1; // Transmit & Recive

// инициализация таймера Т0

TCON &=0xC0; //T0 stop.

TMOD &=0xF0; //сброс настроек T0.

TMOD |=0x01; //установка T0 в режим T 16-bit

TL0 = 0xFE; //задержка

TH0 = 0x32; //

IE = 0x9A; //UART enable

// Настроить A/D to sequentially convert each input channel.= 0x7C;|=0x10; //запуск T0

{(!TF0);&=0xC0; //остановим T0

//*******************************************************************//(ScanKBOnce(&c))=chrtoint(c);

/*

зажигаем светодиот соответствующий номеру канала

который в данный момент оцифровываем

*/

if (NumChanel<9)

/*

для объединения бит в одно число использована операция

Перейти на страницу: 1 2 3 4 5 6 7 8

Похожые стьтьи по экономике

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

Сетевое приложение по обслуживанию лифтов
netcracker моделирование лифт приложение Данная курсовая работа направлена на выполнение двух основных задач: моделирование компьютерной сети и создание сетевой информационной системы «Се ...

Функциональный генератор квадратурных напряжений
Уже более 30 лет компания National Instruments (NI) является лидером в области разработки и производства аппаратно-программных средств автоматизации измерений, диагностики, управления и моде ...

Разделы

© 2020 - www.frontinformatics.ru