menuju akhir
a. Mempelajari aplikasi output pada mikrokontroller PIC 16F877A
b. Mempelajari aplikasi input pada mikrokontroller PIC 16F877A
c. Mempelajari aplikasi I/O pada mikrokontroller PIC 16F877A
a. Module PIC 16F877A
b. Motor DC
> Dasar Teori Mikrokontroler
Mikrokontroler
PIC16F877A merupakan salah satu mikrokontroler dari keluarga PICmicro
yang popular digunakan sekarang ini, mulai dari pemula hingga para
profesional. Hal tersebut karena PIC16F877A sangat praktis dan
menggunakan teknologi FLASH memori sehingga dapat di program-hapus
hingga seribu kali. Keunggulan mikrokontroler jenis RISC ini dibanding
dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada
kecepatan dan kompresi kodenya. Selain itu, PIC116F877A juga tergolong
praktis dan ringkas karena memiliki kemasan 40 pin dengan 33 jalur I/O.
Anggota
keluarga PICmicro buatan Microchip Inc. cukup banyak. Ada yang
menggunakan FLASH memori dan ada pula yang jenis OTP (One Time
Programmable). Mikrontroler dari keluarga PICmicro yang popular, antara
lain PIC2C08, PIC16C54, PIC16F84. Agar lebih mengenal PIC16F877A,
berikut ini diberikan fitur-fitur penting yang terdapat pada PIC16F877A.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnTcbNc9YZf4JFusk26xFr69Mg78u6pWVQcyJ0mF5Yhnr-4bTco5KcNRk3sZpmsTfgJy5CjRqgQa_v6Lh34ExojvNz_LWDpME1MlQ0kUroT7Ddmbk2xRb_ZqfDueIr7jGgsA-wwa7vD3s/s1600/pic1.jpg)
MIkrokontroller PIC16F877A
fitur fitur PIC RISC CPU yang mempunyai performance tinggi
- Hanya 35 jenis instruksi yang perlu dipelajari
- Semua instrujsi mempunyai siklus tunggal kecuali untuk instruksi percabangan.
- Kecepatan Instruksi: DC – 20 MHz clock input DC – 200 ns instruction cycle
- 8K x 14 words of FLASH Program Memory, 368 x 8 bytes of Data Memory (RAM) , 256 x 8 bytes of EEPROM Data Memory
- Pinout compatible dengan PIC16C73B/74B/76/77
- Interrupt (14 sumber interrupt)
- Delapan level hardware stack
- Direct, indirect dan relative addressing modes
- Power-on Reset (POR)
- Power-up Timer (PWRT) dan Oscillator Start-up Timer (OST)
- Watchdog Timer (WDT) dengan on-chip RC oscillator
- Programmable code protection dan Fully static design
- Power saving SLEEP mode
- Selectable oscillator options
- Low power, high speed CMOS FLASH/EEPROM technology
- In-Circuit Serial Programming (ICSP) hanya dengan dua pin
- Single 5V In-Circuit Serial Programming capability
- Processor read/write access to program memory
- Wide operating voltage range: 2.0V to 5.5V
- High Sink/Source Current: 25 mA
- Commercial, Industrial and Extended temperature ranges
Deskripsi pin pin
Mikrokontroler
PIC16F877A di produksi dalam kemasan 40 pin PDIP (Plastik Dual In Line)
maupun 40 pin SO (Small Outline). Namun yang banyak terdapat dipasaran
adalah kemasan PDIP. Pin-pin untuk I/O sebanyak 33 pin, yang terdiri
atas 6 pada Port A, 8 pada Port B, 8 pada Port C, 8 pada Port D, 3 pada
Port E. Ada pula beberapa Pin pada mikrokontroler yang memiliki fungsi
ganda.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK9pA8EUk03tNQIww34W2W_myFY9spMqkRbzUO25k7R9wi70fknK56MyqlGFGL-5zMv5E6L4nMbWXrlfNiRUMSTXTjOAMk3GzmxfEFDemHakQ82753sHWcQpzktCqagoO0P81jkkm_ZR0/s320/pic.jpg)
Organisasi Memori
Memori
pada PIC16F877A dapat dipisahkan menjadi dua blok memori, satu untuk
memori program dan satu untuk memori data. Memori EEPROM dan register
GPR didalam RAM merupakan memori data, sedangkan memori FLASH merupakan
memori program.
Pembangkit Clock-Oscilator
Nilai kristal yang dapat dipakai maksimum adalah 4 MHz atau 10 MHz, hal ini karena mikrokontroler PIC16F84 dibuat dalam 2 versi frekuensi kerja. Untuk menentukan frekuensi maksimumnya dapat dilihat pada badan mikrokontroler. Jika terdapat tulisan PIC16F84-04/P berarti frekuensi maksimum yang diijinkan adalah 4 MHz.
Prinsip kerja rangakaian :
Jika diinginkan sebuah motor dc yang dapat diatur arah putarnya maka gunakan rangkaian H-brigde dengn menggunakan 4 buat transistor
Dari gambar diatas jika diinginkan motor DC berputar searah jarum jam maka harus mengaktifkan transistor 1dan transistor 4 dengan memberikan logika high pada kaki basis transistor .Sedangkan jika diinginkan berputar berlawanan arah jarum jam maka harus mengaktifkan transistor 2 dan transistor 3 dalam keadaan high pada kaki basis transistor tersebut seperti gambar dibawah ini.
Dari gambar diatas terlihat jelas bahwa dengan mengaktifkan
transistor 1 dan transistor 4akan mengakibatkan arah motor searah jarum
jam. Dimana arah arus listrik akan mengalir dari poer supply (12V)
melalui transistor 1,lalu kemotor DC,lalu ke transis.tor 4 kemudian baru
ke ground. Begitu pula dengan arah berlawanan arah jarum jam.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZCi8E4p-H8p4WS_hn_ej2vf0UZn1rHJ1F9woyyQRzqnN3Htamu3jldXI05tP0J5n7Mzz-PIHyXqXNtoSnXFl5pecayf7aYTipxGVE46G7akhyth08ik2zYmESIhaYBAx2XYboFJfKz9W/s400/PIC.jpg)
Mikroprosesor PIC16F877A
short duty = 0; // initial value for duty
TRISD = 0xFF; // PORTD as input
TRISC = 0X00; // PORTC as output
TRISB = 0x00; // PORTB as output
PORTB = 0x02; // run motor in anticlock vise
//LCD_INIT();
PWM1_Init(1000); // initialisasi PWM1 library
PWM1_Start(); // start PWM1
PWM1_Set_Duty(duty); // set current duty for PWM1
/*
lcd_cmd(_lcd_cursor_off);
lcd_cmd(_lcd_clear);
lcd_out(1,1,"School Zone");
lcd_out(2,1,"Speed Control");
*/
while (1) // endless loop
{
if (!RD0_bit && duty<250) // if button on RD0 pressed
{
Delay_ms(40);
duty = duty + 50; // incresent current_duty
PWM1_Set_Duty(duty); // change the duty cycle
}
if (!RD1_bit && duty >0) // button on RD1 pressed
{
Delay_ms(40);
duty = duty - 10; // decresment duty
PWM1_Set_Duty(duty);
}
Delay_ms(10); // slov dovn change pace a little
}
}
4.8 Video Rangkaian [kembali]
4.9 Link Download [kembali]
simulasi rangkaian klik : https://youtu.be/3cZ1ff5nB24
Tidak ada komentar:
Posting Komentar