Mikrokontroler
adalah suatu keping IC dimana terdapat mikroprosesor dan memori program
(ROM) serta memori serbaguna (RAM), bahkan ada beberapa jenis
mikrokontroler yang memiliki fasilitas ADC, PLL, EEPROM dalam satu
kemasan. Penggunaan mikrokontroler dalam bidang kontrol sangat luas dan
populer.
Mikrokontroler merupakan komputer didalam chip yang digunakan untuk
mengontrol peralatan elektronik, yang menekankan efisiensi dan
efektifitas biaya. Secara harfiahnya bisa disebut "pengendali kecil"
dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan
komponen-komponen pendukung seperti IC TTL dan CMOS dapat
direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh
mikrokontroler ini.
Secara
teknis hanya ada 2 jenis mikrokontroler yaitu RISC dan CISC dan
masing-masing mempunyai keturunan/keluarga sendiri-sendiri. RISC
kependekan dari Reduced Instruction Set Computer : instruksi terbatas tapi memiliki fasilitas yang lebih banyak. CISC kependekan dari Complex Instruction Set Computer : instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya.
Ada
beberapa vendor yang membuat mikrokontroler diantaranya Intel,
Microchip, Winbond, Atmel, Philips, Xemics dan lain - lain. Dari
beberapa vendor tersebut, yang paling populer digunakan adalah
mikrokontroler buatan Atmel.
Mikrokontroler AVR (Alf and Vegard’s Risc prosesor)
memiliki arsitektur RISC 8 bit, di mana semua instruksi dikemas dalam
kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam
1 (satu) siklus clock, berbeda dengan instruksi MCS 51 yang membutuhkan
12 siklus clock. Tentu saja itu terjadi karena kedua jenis
mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR
berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri
MCS 51 berteknologi CISC (Complex Instruction Set Computing).
Secara
umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny,
keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang
membedakan masing–masing kelas adalah memori, peripheral, dan fungsinya.
Dari segi arsitektur dan instruksi yang digunakan, mereka bisa
dikatakan hampir sama. Oleh karena itu, dipergunakan salah satu AVR
produk Atmel, yaitu ATMega8535/16/32.
Konfigurasi Pin ATMega8535
Dari gambar di atas dapat dijelaskan secara fungsional konfigurasi pin ATMega8535 sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
2. GND merupakan pin ground.
3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC.
4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter,komparator analog,dan SPI.
5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,komparator analog dan Timer Oscillator.
6. Port
D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
komparator analog,interupsi eksternal,dan komunikasi serial.
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
8. XTAL1 dan XTAL2 merupakan pin masukan clock ekstenal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREF merupakan pin masukan tegangan referensi ADC.
Untuk memprogram mikrokontroler dapat menggunakan bahasa assembler atau bahasa tingkat tinggi yaitu bahasa C.
Port Sebagai Input / Output Digital
Atmega 8535 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan pilihan internal pull-up.
Tiap
port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn.
Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili
nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1, maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0.
Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Maka harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.
Tabel Konfigurasi Pin Port
Tabel diatas menunjukkan konfigurasi pin pada port-port mikrokontroler. Bit 2 – PUD = Pull-up Disable, bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).
Sumber : micro club dte(itk fpik ipb)
No comments:
Post a Comment