Dasar MIkrokontroler AT90S2313 (AVR)

Dalam bab ini akan dibahas fitur-fitur dan arsitektur mikrokontroler AVR seri AT90S2313. Seri AT90S2313 dipilih karena mikrokontroler ini dapat mewakili beberapa seri yang lain, baik dari segi instruksi yang digunakan, maupun peripheralnya yang relative lengkap. Dengan mempelajari tipe AVR yang lain, yang pada dasarnya memiliki konsep dan arsitektur yang hampir sama. Bagi Anda yang ingin mendapatkan informasi lengkap mengenai jenis mikrokontroler ini, Anda juga dapat membacanya pada datasheet AT90S2313.

2.1 Fitur-fitur AT90S2313
    Fitur-fitur utama antara lain sebagai berikut:
1.    118 macam instruksi
2.    32 x 8 bit General Purpose Register,
3.    Memori program Flash pada ROM 2 K word (1Kx16),
4.    Memori data SRAM 128 byte,
5.    Memori EEPROM 128 byte,
6.    Jalur I/O 15 pin,
7.    Timer/counter 2 buah,
8.    Output PWM 1 kanal,
9.    Serial I/O menggunakan USART,
10.    Komparator analog.

2.2 Hardware

    AT90S2313 beredar dalam dua jenis kemasan, yaitu 20 DIP dan 20 SOIC. Kemasannya yang cukup sederhana memudahkan kita yang hendak mempelajari cara-cara pemrograman mikrokontroler AVR tanpa harus dipusingkan oleh instalansi kabel yang melibatkan banyak jalur sebagaimana pada mokrokontroler dengan jumlah pin di atas 40 buah.
Deskripsi Pin

VCC     Power supply.
GND    Ground.
Port B (PB7 . .Pb0)    port B merupakan Port I/O 8-bit bi-direktional. Pin-pin pada port ini dapat diberi resistor pull-up internal secara individual. PB0 dan PBI juga dapat digunakan untuk melayani input sebagai komparator analog. Buffer port B dapat mencatu arus hingga 20 mA dan dapat secara langsung men-drive LED.
Port D (PD6 . .PD0)    Port D memiliki tujuh buah pin I/O bi directional, yakni PD6 . .PD0. Seperti halnya port B, pin-pin pada port ini juga mampu men-drive LED karena dapat mencatu arus hingga 20 mA.
RESET    Reset input. Kondisi logika rendah “0” lebih dari 50 ns pada pin ini akan membuat mikrokontroler masuk ke dalam kondisi reset.
XTA11    Input bagi inverting oscillator amplifier dan input bagi clock internal.
XTAL2    Output inverting oscillator amplifier.

Instalasi software PLC (Cara Instalasi Syswin 3.4)

Instalasi program Syswin v3.4 dapat dilakukan dengan mudah, berikut langkah-langkah yang harus dilalui pastikan Anda menjalankan file bernama setup.exe pada file atau CDROM instalasi Anda. Setelah menjalankan program tersebut, maka selanjutnya akan tampil menu Welcome sebagaimana ditunjukan gambar 1 dibawah ini .
 
Gambar 1. Tampilan Welcome

Kemudian klik tombol Next untuk melanjutkan, sehingga ditampilkan jendela Choose Destination Location , dalam hal ini Anda diberikan pilihan untuk menentukan didirektori mana Anda akan menempatkan Syswin v3.4 ini, sebagaimana ditunjukkan gambar 2 dibawah ini. Anda bisa mrubah dengan mengklik tombol Browse, setelah itu klik tombol Next untuk melanjutkan ke jendela Choose Operation Mode sebagaimana ditunjukkan pada gambar 3 dibawah ini.

Gambar 2. Tampilan Chosee Destination Location
 
Gambar 3. Tampilan Chosee Operation Mode

Pada jendela Choose Operation Mode ini , pilih tombol teratas yaitu Full Activate all feature for all PLC types. Masukan serial number yang terdapat pada folder Syswin v3.4 lalu tekan Next maka akan tampil proses instalasi seperti gambar 4 dibawah ini tunggu sampai instalasi selesai lalu akan muncul tampilan Setup Complete seperti seperti gambar 5 dibawah ini klik Finish maka proses instalasi selesai.

Gambar 4. Tampilan proses instalasi

 Gambar 4. Tampilan Setup Finish

Pengantar Dasar PLC

Programmable Logic Controller atau sering disebut dengan PLC, sering kita dengar dalam istilah system control. Kata control dapat diartikan “ mengatur “ atau kata control dalam teknik listrik adalah suatu peralatan atau kelompok peralatan yang digunakan untuk mengatur fungsi suatu mesin untuk menetapkan tingkah laku mesin tersebut sesuai dengan yang diinginkan.

Sistem yang mempunyai kemampuan untuk melakukan start, mengatur dan memberhentikan suatu proses untuk mendapatkan output sesuai dengan yang diinginkan disebut system control. Pada umumnya system control adalah merupakan suatu kumpulan peralatan elektrik/elektronik, peralatan mekanik, atau peralatan listrik lainnya yang digunakan untuk menjamin stabilitas, transisi yang halus serta akurasi sebuah proses.

Setiap system control memilki tiga elemen pokok, yaitu input, proses, dan output. Pada umumnya input berasal dari tranduser ( suatu alat yang dapat merubah kuantitas fisik menjadi sinyal listrik ). Beberapa contoh tranduser diantaranya dapat berupa tombol tekan, sakelar batas, thermostat, foto elektrik dan lain sebagainya.
Sehingga PLC dapat diartikan  sebuah alat kontrol yang bekerja berdasarkan pada pemrograman dan eksekusi instruksi logika. PLC mempunyai fungsi internal seperti timer, counter dan shift register. PLC beroperasi dengan cara memeriksa input dari sebuah proses guna mengetahui statusnya kemudian sinyal input ini diproses berdasarkan instruksi logika yang telah diprogram dalam memori. Dan sebagai hasilnya adalah berupa sinyal output. Sinyal output inilah yang dipakai untuk mengendalikan peralatan atau mesin. Antarmuka (interface) yang terpasang di PLC memungkinkan PLC dihubungkan secara langsung ke actuator atau transducer tanpa memerlukan relay.

Pada prinsipnya PLC mempunyai tiga bagian pokok yang masing-masing mempunyai tugas yang berbeda, tiga bagian tersebut adalah:
·    Input/Output
·    Memori
·    Pemroses
Input yang diberikan ke PLC disimpan dalam memori, kemudian diproses oleh PLC berdasarkan instruksi logika yang telah diprogram sebelumnya. Hasil proses adalah berupa output, output inilah yang dipakai untuk mengontrolperalatan. Kerja dari PLC ini sepenuhnya tergantung dari program yang terdapat di memori ini.
Tugas dari bagian pemroses adalah memproses data yang berasal dari input dan kemudian sebagai hasilnya adalah berupa respon (output). Sinyal yang berasal dari bagaian proses ini, berupa sinyal listrik yang kemudian dipakai untuk mengaktifkan peralatan output seperti : motor, solenoid, lampu, katup dan lain sebagainya. Dengan menggunakan peralatan output ini kita dapat merubah besaran / kuantitas listrik menjadi kuantitas fisik.

Sinyal output PLC dikondisikan dan disesuaikan dengan peralatan dari luar PLC. Sebab kadang-kadang PLC dihubungkan secara langsung dengan actuator atau transducer yang terdapat di sistem kontrol. Di pasaran kita temui ada dua macam PLC yaitu PLC jenis Compact dan Modular. Pada PLC jenis Compact antarmuka (interface) I/O sudah menyatu dengan CPU-nya, sedangkan jenis modular antarmuka (interface) berupa modul I/O yang terpisah dengan modul CPU.

PLC dalam system kerjanya didukung oleh memori ( RAM, ROM, EPROM ), saluran-saluran ( Bus ), data, alamat dan control. Dalam pemrogramannya, PLC selain dapat menyimpan data, menghapus tetapi juga dapat diprogram secara berulang. Pemrograman ini dapat dilakukan dengan menggunakan computer, Hand Held Programmer atau Light Pen Programmer. Hubungan antara PLC dan Pemrograman dilakukan secara serial. Kapasitas yang dapat disimpan dalam memori tergantung pada jenis dan tipe PLC.
Dalam melaksankan instalasi PLC, penting sekali mengikuti petunjuk instalasi pengkabelan dan koneksi diterminal masukan dan terminal keluaran, hal ini untuk menghindari kesalahan dan kerusakan akibat kesalahan instalasi.

Struktur PLC dapat dibagi ke dalam empat komponen utama :
1.    Antarmuka ( interface ) input
2.    Antarmuka ( interface ) output
3.    Prosessing Unit ( CPU- Central Prosessing Unit )
4.    Unit memori
Arus informasinya dalam PLC akan mengikuti jalur yang sederhana seperti dibawah ini :


1.    CPU akan membaca “ unit memori “
2.    Memeriksa status “ Antarmuka input “
3.    Memperbaharui status “ CPU “
4.    Memperbaharui status “ Antarmuka output “

PLC dalam aplikasinya banyak dipakai diindustri-industri seperti : industri makanan, industri manufacturing, industri otomotif, industri elektronik, bahkan pada industri perminyakan dan gas bumi. Beberapa keuntungan yang dapat kita peroleh jika menggunakan PLC dalam aplikasi control di industri.Dapat kita lihat dari beberapa segi, diantaranya :

1.    Ditinjau dari segi biaya,
Jika sebuah aplikasi control yang komplek dan menggunakan banyak relai, maka akan lebih murah apabila kita menggunakan satu buah PLC sebagai alat control. Salah satu masalah apabila aplikasi control  menggunakan relai adalah sama saja dengan mengeluarkan biaya untuk membuat satu rangkaian control yang digunakan untuk satu buah aplikasi control. Ini berarti jika kita akan membuat satu atau lebih rangkaian control yang sejenis akan memerlukan biaya tambahan. Tetapi dengan menggunakan PLC kita dapat membuat rangkaian control yang sejenis tanpa memerlukan biaya tambahan untuk membeli komponen control, sebab komponen control yang diperlukan dalam system control tersebut dapat disimulasikan oleh PLC, seperti timer, counter, register dan sebagainya.

2.    Ditinjau dari segi fleksibilitas
PLC dapat dengan mudah diubah-ubah dari satu aplikasi ke aplikasi lain dengan cara memprogram ulang sesuai yang diinginkan, tidak seperti pada control relai kita harus melakukan pengawatan ulang dan ini tentu saja akan memerlukan waktu dan biaya yang lebih mahal.

3.    Ditinjau dari segi kehandalan
PLC jauh lebih handal jika dibandingkan dengan control relai. PLC didesain untuk kerja dengan keandalan yang tinggidan jangka waktu pemakaian yang lama pada lingkungan industri dan ukurannya kecil. PLC ini juga diproteksi terhadap kemungkinan kerusakan akibat induksi pada bagian I/O nya, yaitu dengan cara menggunakan rangkaian isolasi opto ( cahaya ). Dengan menggunakan baterai cadangan ( back -up ) pada RAM atau EPROM untuk menyimpan dan menjaga program aplikasi, maka dapat dijamin pada waktu produksi yang vital tidak akan hilang yang dikarenakan program hilang atau penyimpangan setelah terjadi kesalahan dalam system control.

4.    Mempunyai kemampuan seperti komputer
Pada dasarnya PLC adalah computer juga, dan ini berarti dengan menggunakan PLC dapat mengumpulkan dan memproses data. PLC dapat pula melakukan diagnosa dan menunjukan kesalahan apabila terjadi gangguan, sehingga sangat membantu dalam melakukan pelacakan gangguan. PLC dapat pula berkomunikasi dengan PLC lain termasuk degan computer. Sehingga control dapat ditampilkan dilayar computer, didokumentasikan, serta gambar dapat dicetak pada printer.

5.    Mudah dalam pelacakan gangguan control
Pada layar monitor dapat ditampilkan gambar control, sehingga kita dapat dengan mudah mengamati apa yang terjadi pada system control. Hal ini memungkinkan orang untuk melakukan evaluasi terhadap control dan melakukan pengubahan atau perbaikan dengan memasukan perintah melalui papan ketik  ( Keyboard )       

Jam Digital Menggunakan AT89C2051 dengan Tampilan Seven Segmen

Mungkin bagi sebagian pembaca Jam Digital merupakan hal yang sangat sederhana atau sudah terlalu umum, tapi dari Jam Digital bisa dipelajari prinsip-prinsip dasar kontrol dengan microcontroller, antara lain  sistem tampilan 7 ruas dan pemakaian ti­mer.
Klik pada gambar untuk ukuran sebenarnya


Rangkaian lengkap Jam Digital ini terlihat pada Gambar 1, dilengkapi 4 buah tampilan 7 ruas LED untuk menampilkan waktu, terdiri atas angka-angka puluhan jam, satuan jam, puluhan menit dan satuan menit. Tombol SW1 dan SW2 dipakai untuk mengatur tampilan waktu, saat SW1 ditekan angka pada tampilan jam akan bertambah setiap detik, sedangkan SW2 dipakai untuk mengatur angka tampilan menit dengan cara yang sama.
Kristal 12 MHz dan kapasitor C1 dan C2 membentuk rangkaian oscilator pembangkit frekuensi kerja AT89C2051, rangkaian ini merupakan rangkaian baku, artinya bentuk rangkaian oscilator ini selalu seperti ini untuk semua rangkaian AT89C51, kecuali untuk keperluan yang lain nilai kristalnya saja yang mungkin berbeda.
Kombinasi kapasitor C3 dan tahanan R8 juga merupakan rangkaian baku, komponen ini dipakai untuk membentuk rangkaian ‘power on reset’, artinya rangkaian yang akan otomatis me-reset AT89C2051 setiap kali AT89C2051 mulai menerima sumber daya listrik.
Melihat rangkaian pada Gambar 1, memang tidak bisa dijelaskan bagaimana Jam Digital ini bekerja, karena rangkaian itu hanyalah bagian tampilan dan tombol pengatur waktu waktu saja, ‘Jam’ yang sesungguh­nya berupa program yang disimpan di dalam ROM yang ada di dalam IC AT89C2051.

Program lengkap Jam Digital ini, berikut dengan gambar skema dan gambar PCB dalam format OrCAD 9, bisa download disini

Pengukur Jarak Ultrasonik Menggunakan AT89C2051 dengan Tampilan Seven Segmen

   Meminjam teknik echo sounder yang dipakai untuk mengukur kedalaman laut, bisa dibuat alat pengukur jarak dengan ultra sonic. Pengukur jarak ini memakai rangkaian yang sama dengan Jam Digital dalam artikel yang lalu, ditambah dengan rangkaian pemancar dan penerima Ultra Sonic.

    Prinsip kerja echo sounder untuk pengukuran jarak digambarkan dalam Gambar 1. Pulsa Ultrasonic, yang merupakan sinyal ultrasonic dengan frekwensi lebih kurang 41 KHz sebanyak 12 periode, dikirimkan dari pemancar Ultrasonic. Ketika pulsa mengenai benda penghalang, pulsa ini dipantulkan, dan diterima kembali oleh penerima Ultrasonic. Dengan mengukur selang waktu antara saat pulsa dikirim dan pulsa pantul diterima, jarak antara alat pengukur dan benda penghalang bisa dihitung.

     Gambar 2 merupakan Rangkaian Jam Digital dalam artikel lalu yang direvisi untuk keperluan ini. Titik desimal pada tampilan satuan dinyalakan dengan tahanan R8. Setiap kali tombol Start ditekan, AT89C2051 membangkitkan pulsa ultrasonic pada Pin P3.4 yang dipancarkan dengan rangkaian Gambar 3, selanjutnya lewat pin P3.5 yang terhubung ke rangkaian penerima ultrasonic di Gambar 4, sambil mengukur selang waktu AT89C2051 memantau datangnya pulsa pantul.
    Hasil pengukuran waktu itu, dengan sedikit perhitungan matematis ditampilkan di sistem penampil 7 ruas sebagai besaran jarak, dengan satuan centimeter dan 1 angka dibelakang titik desimal.
Klik pada gambar untuk melihat ukuran sebenarnya
 

Rangkaian Kontrol & Tampilan




Rangkaian Pemancar Ultra Sonic



Rangkaian Penerima Ultra Sonic


Potongan Program 2 - Mengukur waktu pantulan ultra sonic

      1   SET   TR1                                        Hidupkan untaian pencacah
      2   SampaiNol:    
      3    JNB   TF1,SampaiNol                   Tunggu selama TF1 masih =1
      4   ACALL PulsaUltraSonic                Bangkitkan pulsa Ultrasonic   
      5   TungguPantulan:     
      6   JB    TF1,Selesai                             TL1/TH1 melimpah? Ya, stop
      7   JB    P3.5,TungguPantulan           Tunggu selama P3.5 =1
      8   Selesai:
      9   CLR   TR1                                        Matikan untaian pencacah


Potongan Program 3 - Menghitung jarak

      1      CLR   A
      2      MOV   Operand,TL1
      3      MOV   Operand+1,TH1
      4      MOV   Operand+2,A
      5      MOV   Pengali,#10
      6      MOV   Pengali+1,A
      7      MOV   Pengali+2,A
      8      ACALL Perkalian                HasilKali := 10 * TL1_TH1
      9   ;
  10      MOV   R0,#HasilKali
  11      MOV   R1,#Operand
  12      ACALL Copy                     Copy-kan isi HasilKali ke Operand
  13      MOV   Pembagi,#58
  14      MOV   Pembagi+1,#0
  15      MOV   Pembagi+2,#0
  16      ACALL Pembagian                HasilBagi := (10*TL1_TH1) / 58

Potongan Program 4 - Jarak dalam bentuk biner dirubah ke desimal untuk ditampilkan

      1   MenampilkanHasil:
      2      ACALL HapusTampilan
      3   ;
      4      MOV   DPTR,#AngkaPembagi      Mulai dengan 1000
      5      MOV   R7,#4                   Maksimum 4 digit
      6      MOV   R4,#RuasRatusan
      7      CLR   F0                      Belum pernah simpan
      8           
      9      MOV   R0,#HasilBagi
  10      MOV   R1,#SisaBagi
  11      ACALL Copy
  12   DigitBerikutnya:
  13      MOV   R0,#SisaBagi
  14      MOV   R1,#Operand
  15      ACALL Copy
  16     
  17   * Ambil AngkaPembagi dari Tabel
  18    
  19      CLR   A
  20      MOV   Pembagi+2,A
  21      MOVC  A,@A+DPTR
  22      INC   DPTR
  23      MOV   Pembagi,A
  24    
  25      CLR   A
  26      MOVC  A,@A+DPTR
  27      INC   DPTR
  28      MOV   Pembagi+1,A
  29     
  30      ACALL Pembagian         SisaBagi dibagi 1000; 100; 10 dan 1
  31     
  32      MOV   A,HasilBagi HasilBagi=0?
  33      JNZ   SimpanRuas        Tidak, jadikan simpan ruas
  34      JNB   F0,Berikutnya     Belum pernah simpan dan 0
  35   SimpanRuas:
  36      SETB   F0               Sudah pernah simpan angka
  37      ACALL JadikanRuas
  38      MOV   R0,$04            R0 <- R4
  39      MOV   @R0,A             Simpan
  40   Berikutnya:
  41      INC   R4
  42      DJNZ  R7,DigitBerikutnya
  43      RET
  44    
  45   AngkaPembagi:
  46      DW    1000
  47      DW    100
  48      DW    10
  49      DW    1

 P          Program untuk mengendalikan AT89C2051 harus diisikan ke dalam IC microcontroller itu, untuk itu diperlukan alat yang dinamakan sebagai AT89C2051 Flash PEROM Programmer.
Program Lengkap Pengukur Jarak Ultrasonik menggunakan AT89C2051 dapat anda download disini