Report Abuse

Stats

Comment

Membuat Kegiatan Lampu Kemudian Lintas Dengan Mikroc Compiler Pada Pic16f877a

Post a Comment





Pada kali ini kita kan memakai mikrokontroler PIC16F877A yang termasuk mikrokontroler keluarga PICmicro buatan Microchip.Inc dimana dalam memprogramnya memakai bahasa tingkat tinggi yaitu bahasa C lebih tepatnya disini kita akan memakai software  MikroC Compiler.
        Kita akan menciptakan aktivitas lampu kemudian lintas tepatnya traffic light / lampu kemudian lintas 3 simpang dimana algoritma pemrogramannya sama ibarat kita memprogram dengan bascom avr, Tasm51 dan codevisionavr hanya saja disini mikroC compiler memakai bahasa c. Disini kita tidak perlu menginisialisasikan mikrokontroler apa yang kita pakai ataupun crystal yang kita gunakan alasannya ialah kita tinggal mengatur pada project settingnya.
Contoh TRISB = 0x00; yang artinya menset Port B sebagai output, ini berbeda dengan codevisionavr dimana code DDRB=0xFF yang kita gunakan untuk mengatur port B sebagai output. Dan kebaliknnya TRISB = 0xFF; artinya mengatur portB sebagai input. Di mikroC compiler sama ibarat pada program-program lainnya dimana dikala kita mengcompile aktivitas yang kita buat kalau terjadi kesalahan maka mikroC compiler akan memberitahu bahwa terjadi kesalahan/error.
        Setelah itu aktivitas di compile dan disini kita akan memakai PIC simulator sebagai pengompile programnya kemudian ekstensi .HEX yang didownloadkan pada PIC simulator dan di PIC simulator sudah tersedia visualisasi untuk led, seven segment, LCD, Osiloskope, function generator sehingga kita tinggal memanggil dan mensetnya dan jangan lupa untuk mengatur kembali crystal yang kita gunakan pada PIC simulator ini serta mengubah warna led sesuai dengan lampu merah yaitu merah,  kuning dan hijau. Dan sesudah silahkan dirun dan lihat hasilnya.
Berikut Program Lampu kemudian lintas dengan MikroC compiler pada PIC16F877A :
void main() {
  TRISB = 0x00;            //PortB sebagai Output
  TRISC = 0x00;            //PortC sebagai Output
  TRISD = 0x00;            //PortD sebagai Output
  do {
   
    PORTB = 0x04;
    PORTC = 0x01;
    PORTD = 0x01;
    Delay_ms(2000);

    PORTB = 0x02;
    PORTC = 0x02;
    PORTD = 0x01;
    Delay_ms(1000);
   
    PORTB = 0x01;
    PORTC = 0x04;
    PORTD = 0x01;
    Delay_ms(2000);
   
    PORTB = 0x01;
    PORTC = 0x02;
    PORTD = 0x02;
    Delay_ms(1000);
   
    PORTB = 0x01;
    PORTC = 0x01;
    PORTD = 0x04;
    Delay_ms(2000);
   

    PORTB = 0x02;
    PORTC = 0x01;
    PORTD = 0x02;
    Delay_ms(1000);

  } while(1);

Related Posts

Post a Comment