Sunteți pe pagina 1din 1

#include<pic16f877a.

h>

void main(void) {
// La portul D este conectat un led =>
// Configureaza pinul 0 al portului D ca iesire (output) =>
// scrie valoarea 0 (pentru output) la bitul 0
TRISD &= ~0x01; // valoare complementata, cu operatorul "~"
TRISD &= ~0x08;
//0000 1000

// La portul B, pinul 1, este conectat un buton =>


// Configureaza pinul 1 al portului B ca intrare (input) =>
// scrie valoarea 1 (pentru input) la bitul 1
TRISB |= 0x02;
TRISB |= 0x01;
// bucla infinita
while (1)
{
// daca pinul 1 al portului B este 0 (buton apasat)
if ((PORTB & 0x02) == 0)
{
// pune pinul 0 al portului D pe HIGH,
// adica seteaza bitul 0
PORTD |= 0x01;
}
// altfel (buton eliberat)
else if ((PORTB & 0x02) != 0)
{
// pune pinul 0 al portului D pe LOW,
// adica reseteaza bitul 0
PORTD &= ~0x01;
}// daca pinul 1 al portului B este 0 (buton apasat)
if ((PORTB & 0x01) == 0)
{
// pune pinul 0 al portului D pe HIGH,
// adica seteaza bitul 0
PORTD |= 0x08;
}
// altfel (buton eliberat)
else if ((PORTB & 0x01) != 0)
{
// pune pinul 0 al portului D pe LOW,
// adica reseteaza bitul 0
PORTD &= ~0x08;
}
}
}

S-ar putea să vă placă și