[pic16f88] Этап 13. Управление МК с компьютера через COM-порт

Дмитрий Филатов
Отправим в микроконтроллер байт с компьютера через COM-порт. В схему, представленную на предыдущем этапе, нужно внести только одно изменение: к ножке #1 микроконтроллера подсоединить анод светодиода, а катод его повесить на землю.Теперь модифицируем код прошивки. После
TXEN = 1; //Передача включена
вставить
CREN = 1; //Приём включен
После
while(1){
вставить
        while(!RCIF){ //Ожидание данных. Пока их нет - будем измерять напряжение и отправлять полученное значение в компьютер
После
                SendByte(ADRESH); //Отправить старший байт
SendByte(ADRESL); //Отправить младший байт
__delay_ms(50); //Дать компьютеру 50 мкс на вычисления

__delay_ms(4);
вставить
        }
if((RCREG >> 2) & 1 ){ //Если флаг RCIF установлен, читаем присланный байт RCREG и проверяем, установлен ли бит 2 этого байта в единицу
RA2 = 1; //Если установлен - включаем светодиод на ножке #1
}else{
RA2 = 0; //Если не установлен - выключаем светодиод
}
} //while(1)
В компьютерной программе нужно добавить на форму компонент CheckBox и для события Click написать такой код:
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
DWORD dwSize;
char buffer[1];
if(CheckBox1->Checked){ //Если чекбокс включен
memset(buffer,0,sizeof(buffer));
buffer[0] = 0x04; //0b00000100 - установили бит 2 в единицу
WriteFile(handle,buffer,sizeof(buffer),&dwSize, &overlap); //Отправили этот байт в COM-порт
}else{
memset(buffer,0,sizeof(buffer));
buffer[0] = 0x00; //0b00000000 - установили бит 2 в ноль
WriteFile(handle,buffer,sizeof(buffer),&dwSize, &overlap); //Отправили этот байт в COM-порт
}
}
Теперь нужно подключить наше устройство к COM-порту компьютера, запустить компьютерную программу, нажать кнопки "Соединить", а затем "Читать" - это функционал, описанный на предыдущем этапе. Если сейчас кликнуть по чекбоксу - светодиод должен загореться. Если чекбокс выключить, светодиод погаснет.
2013-12-07