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

}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

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

Современные датчики температуры (отечественного производства)
Когда учёный думает над проблемой, он задаёт вопрос, - «Почему?» Когда инженер решает задачу, он спрашивает, - «А почему нет?» Большинство технологических процессов идёт сейч ...

Разработка управляющей микро-ЭВМ на базе микропроцессора Z80
Микропроцессор - процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде ), реализованный в виде одной микросхемы ил ...

Телекоммуникационные системы синхронной и плезиохронной цифровой иерархии
Одним из наиболее перспективных направлений развития многоканальных систем передачи является использование оптического диапазона частот. Длительное время практическая реализация опти ...

Разделы

© 2019 - www.frontinformatics.ru