Разработка программы для микроконтроллера

RI = 1; // Transmit & Recive=0x0;// UART interrupts only

// Настроить A/D to sequentially convert each input channel.

ADCCON1 = 0x7C; // 0111 1100

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

do

{

…// здесь будет расположена большая часть кода

}

While(1)

В основном цикле программы будут выполняться следующие действия:

1. чтение состояния клавиатуры;

. проверка нажатия цифровой клавиши;

. проверка ошибки выбора канала;

. задание номера канала для оцифровки;

. запуск АЦП и ожидание от него данных;

. запись данных в память;

. передача данных и номера канала на ПК;

. изменение состояния светодиодов в соответствии с оцифрованным каналом.

Это минимально необходимые действия для нормального функционирования системы:

unsigned int conv_val = 0;char channel = 0;char c=0;(ScanKBOnce(&c))

NumChanel=chrtoint(c);(NumChanel>8)// каналы больше 8го не обрабатываем=255;(NumChanel!=255)// 255 - ошибка выбора канала

{

// начать преобразование и дождаться завершения

ADCCON2 = (ADCCON2 & 0xF0) | NumChanel;= 1;(ADCCON3 & 0x80);

// Чтение A/D данных= ADCDATAH >> 4;_val = ADCDATAL | ((ADCDATAH & 0x0F) << 8);

// вывод на терминал(NumChanel==8)

{= (675-conv_val*0.61)/3;("ADC Channel %d = %f C\n", NumChanel,value2);

}else

{("ADC Channel %d = 0x%X\n", NumChanel,conv_val);

}

}else

{

printf("Error selection channel\n");

}

// выведем оцифрованное значение

/*

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

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

*/

svet=convert(NumChanel,0);(0x7,svet);//вывод на светодиды

for(pause=0;pause<=64000;pause++);// задержка

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

Перейти на страницу: 1 2 

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

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

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

Проектировка структурной схемы устройства сбора данных
Курсовая работа по дисциплине «Цифровые устройства и микропроцессоры» предназначена главным образом для того чтобы студент получил навыки схемотехники, организации и программирования ми ...

Разделы

© 2019 - www.frontinformatics.ru