MIKROKONTROLER Atmega8535

 

 

B

 

 

Mikrokontroler ATmega8535 merupakan salah satu varian atau jenis dari keluaraga mikrokontroler 8-bit AVR (Advanced RISC Architecture). Beberapa fitur yang dimiliki Mikrokontroler ATmega 8535 adalah memiliki memori In-System Selt-Programmable Flash 8K Bytes, 512 Bytes EEPROM, dan 512 Bytes Internal SRAM. Mikrokontroler ATmega8535 memiliki 2 8-bit Timer/Counter, RTC (Real Time Counter), 4 PWM chanel, 8-chanel 10-bit ADC, 1 programable serial USART, master/slave SPI serial interface, dan memiliki 32 programmable I/O. Sedangkan untuk power, ATmega 8535 dapat dicatu menggunakan tegangan 2.7 – 5.5V (untuk ATmega8535L) dan 4.5 – 5.5V (untuk ATmega8535) dengan frekuensi clock maksimum adalah 16MHz.

Sistem minimum Mikrokontroler ATmega8535 merupakan rangkaian minimum yang dibuat agar sistem ini (mikrokontroler ini) dapat bekerja dan berfungsi dengan semestinya. Sistem minimum ini meliputi catu daya mikrokontroller (vcc) yang berkisar antara 2,7 V – 5,5 V, kristal oscillator (opsional) yang berfungsi sebagai referensi kecepatan akses mikrokontroller (kristal oscillator diperlukan jika menginginkan referensi clock yang tinggi, tapi tanpa kristal oscillator pun mikrokontroler masih dapat bekerja, karena sudah memiliki referensi clock internal), referensi ADC (Analog to digital konverter), tombol reset, serta port-port I/O.

Berikut Komponen-komponen dan fitur  yang terdapat di dalam Mikrokontroler Atmega8535 :
  1. Saluran I/O sebanyak 32 buah, yang terdiri atas PortA, B, C dan D
  • Dimana setiap port berfungsi untuk saluran input dan output suatu komponen /sensor dan port A dan port C terletak di Bagian sisi Atas mikrokontroler dan port B dan port D terletak di sisi bawah mikrokontroler, dan di setiap port memiliki buffers/driver. Satu  portparalel terdiri dari 8 pin, sehingga jumlah port pada mikrokontroler adalah 4port, yaitu port A, port B, port C dan port  Sebagai contoh adalah port A memiliki  pin antara portA.0 sampai dengan port A.7, demikian selanjutnya untuk port B, port C, port D.

  1. ADC (Analog to Digital Converter)
Dimana Mikrokontroler Atmega8535 telah memiliki fitur mengubah sinyal input analog menjadi sinyal digital secara otomatis.
  1. Tiga buah Timer/Counterdengan kemampuan perbandingan
Komponen utama Timer/Counter adalah sebuah register  yg tugasnya hanya berhitung dari 0 sampai batas maximumnya, register ini pada AVR disebut  register TCNT .  Misalnya  sebuah register TCNT    pada AVR adalah 8 bit,  maka nilai maksimunya adalah 255. Melaksanakan tugas tertentu secara ber ulang  (mode normal).dan berfungsi Menghitung panjang pulsa (input capture),Menghitung banyaknya event ( sebagai counter).,Mengendalikan kecepatan motor DC (pulsa wide modulation /PWM), Membuat penundaan waktu (delay). Sinyal generator .
  1. SRAM sebesar 512byte
Static Random Access Memory. Statik menandakan bahwa memori memegang isinya selama listrik tetap berjalan, tidak seperti RAM dinamik (DRAM) yang membutuhkan untuk disegarkan secara periodik. Hal ini dikarenakan SRAM didesain menggunakan transistor tanpa kapasitor. Tidak adanya kapasitor membuat tidak ada daya yang bocor sehingga SRAM tidak membutuhkan refresh periodik. SRAM juga didesain menggunakan desain cluster enam transistor untuk menyimpan setiap bit informasi.


  1. Memori Flashsebesar 8kb dengan kemampuan read while write
Dimana kita sebagai programmer dapat membuat suatu program dan disimpan di memori flash
  1. Portantarmuka SPI untuk men-download program ke flash
Port SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial synchronous
  1. Unit Interupsi Internaldan External
  2. Portantarmuka SPI untuk men-download program ke flash
  3. EEPROM sebesar 512 byteyang dapat diprogram saat operasi
  4. Antarmuka komparator analog
  5. PortUSART untuk komunikasi serial.
Dan port dan register apa saja yang difasilitasi sebai input/output  untuk membuat suatu program

memory-register

2.a   General Purpose Register (GPR)

AVR mempunya  32 register   untuk menyimpan data sementara  register  tersebut adalah R0 sampai R31 berada di lokasi memory terendah (00H~1FH). Register ini berlaku seperti register Accumulator pada microprosessor lain. Register ini digunakan untuk operasi logika dan aritmetik

2.b   IO register    (SFR)

Dialokasikan untuk register2 fungsi khusus spt register untuk  Timer, ADC ,IO port,UART, dll.  contoh register dilokasi ini: DDRA,DDRB,PORTA,PINA,UCSRA dll

2.c General Purpose RAM

RAM adalah tempat menyimpan data umum yang tidak bisa langsung diakses oleh CPU , tapi harus melalui register.




Mesti diingat! kita tdk bisa mencopy sebuah nilai langsung ke I/O register atau RAM harus melalui registers

sram1

sram




Perpindahan  data  di antara  Data memori (GPR-SFR-SRAM) dan Instruksinya antara lain:

– SRAM ke GPR       : LDS

– GPR ke SRAM       : STS

– SR ke SRAM        :  none

– SRAM ke SFR        :  none  

– SRAM ke SRAM    :  none

– GPR ke GPR          :  MOV

– SFR ke GPR           :  IN

– GPR ke SFR           :  OUT

 EEPROM Data Memory




ATMega8535 memiliki EEPROM sebesar 512 byte untuk menyimpan data Nonvolatile artinya jika power off data tidak hilang.  Lokasinya terpisah dengan system address register.




Register-register  khusus untuk mengakses EEPROM yaitu :




EEADRH dan EEADRL = register  menyimpan alamat EEPROM tujuan

EEDR  = data yang akan disimpan ke EEPROM di copy ke register ini.

EECR  =  register untuk  pengontrolan  menulis dan membaca. yang digunakan cuma  bit 3~ bit 0 :

Bit 3– EERIE: EEPROM Ready Interrupt Enable

Bit 2 – EEMWE: EEPROM Master Write Enable

Bit 1 – EEWE: EEPROM Write Enable

Bit 0 – EERE: EEPROM Read Enable

waktu penulisan ke EEPROM lebih lama dari pada ke RAM.




Contoh  Code  untuk menulis data yg ada di register R16 ke EEPROM:




; tunggu penulisan sebelumnya komplit




sbic EECR,EEWE




rjmp EEPROM_write




; simpan alamat EEPROM  tujuan (misal ada di R17 dan R18) ke register EEARH (MSB) dan EEARL (LSB)




out EEARH, r18




out EEARL, r17




out EEDR,r16                            ; data di r16  di copy ke  Data Register EEPROM




sbi EECR,EEMWE                     ; Write logical one to EEMWE




; Start eeprom write by setting EEWE




sbi EECR,EEWE










Register Status

Status Register adalah register yang memberikan informasi yang dihasilkan dari eksekusi instuksi aritmatika.Informasi ini berguna untuk mencari alternatif alur program sesuai dengan kondisi yang dihadapi

sreg




Register Status

Bit 7 – I : Global Interrupt Enable

Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit ini akan clear ketika ada interrupt

yang dipicu dari hardware, setelah program interrupt dieksekusi, maka bit ini harus di set kembali dengan instruksi SEI.

Bit 6 – T : Bit Copy Storage

Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalam operasi bit.

Bit 5 – H : Half Carry Flag

Bit 4 – S : Sign Bit

Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’s Complement Overflow Flag V.

Bit 3 – V : Two’s Complement Overflow Flag




Digunakan dalam operasi aritmatika

Bit 2 – N : Negative Flag

Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.




Bit 1 – Z : Zero Flag

Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.




Kita ambil sebuah contoh program assembler untuk menghidupkan LED sesuai dengan pernyataan dibawah ini dengan menggunakan 8 bit pada port a,b dan  c.




Soal :

Hidupkan LED dari D7-D0

Hidupkan LED dari tengah ke kiri dan ke kanan 2-2 bit

Hidupkan LED 5 dan 8.

Jawab :

Konsep kita harus mempunyai simulasi LED contoh seperti dibawah ini.




LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1

128    64   32     16    8      4     2      1

D7     D6   D5     D4    D3    D2   D1    D0










128  +  64   +  32   +  16   +   8     +   4   +    2   +     1     =255

 D7      D6      D5       D4       D3        D2        D1        D0




128  +  64     32   +  16        8     +   4       2   +     1   

 D7      D6     D5       D4       D3        D2      D1        D0




128+64+2+1= 195

32+16+8+4  = 60







LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1

128   64   32     16     8     4      2      1   

 D7    D6  D5     D4     D3   D2    D1    D0




128 + 16 =144







Contoh Program :




Mulai




mov al,80h

mov dx,cw

out dx,al




Putar

mov al,255

mov dx,port a

out dx,al

call delay




mov al,255

mov dx, port b

out dx,al

call delay




mov al,255

mov dx,port c

out dx,al

call delay




mov al,195

mov dx,port a

out dx,al

call delay







mov al,195

mov dx,port b

out dx,al

call delay




mov al,195

mov dx,port c

out dx,al

call delay




mov al,60

mov dx,port a

out dx,al

call delay




mov al,60

mov dx,port b

out dx,al

call delay




mov al,60

mov dx,port c

out dx,al

call delay




mov al,144

mov dx,port a

out dx,al

call delay







mov al,144

mov dx,port b

out dx,al

call delay







mov al,144

mov dx,port c

out dx,al

call delay




jmp putar




Jadi LED akan hidup dari kiri ke kanan ( D7-D0 ) kemudian hidupkan LED dari kiri ke kanan dengan 2bit-2bit dilanjutkan lagi menghidupkan LED pada LED5 dan LED8