Membuat Calculator dengan Mikrokontroler ATmega8535

Kali ini kita akan membuat aplikasi mikrokontroler berupa kalkulator. Jadi secara prinsip mikrokontroler membaca data (nilai) yang dikenakan operasi matematika. Hasilnya tampil di LCD. Operasinya sederhana dulu saja, perkalian, pembagian, pengurangan dan penjumlahan.

Aplikasi Mikrokontroler
Keypad tipe kalkulator dapat diambil di Proteus. Atmega8535 dengan frekuensi osilator internal sudah lebih dari cukup. Silahkan kalau mau pakai tipe yang lain, Atmega16/32 mungkin.
Schematics langsung dari Proteus ya. Ntar sekalian untuk simulasi mikrokontroler.



$regfile = “m8535.dat”

$crystal = 1000000
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2
Config Lcdpin = Pin , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Lcd = 16 * 2
Cursor Off
Cls
Lcd “mega Calculator”
Dim Angka As Long , Tombol As Long , Nilai As Long , C As Byte
Dim Var1 As Long , Var2 As Long , Hasil As Long , U As Byte
Dim Op As String * 1
Ddra = &B00001111
Porta = &B11111111
C = 1
Lowerline
99 proyek arduino
Do
   Gosub Scan_keypad
Loop
End

‘———————————————
Entri:
   Incr U
   If Op = “=” Then
      Lowerline
      Lcd ”                “
      Lowerline
      Op = “”
   End If

   Lcd Tombol

   If C = 1 Then
      If U = 1 Then
         Var1 = Tombol
      Elseif U > 1 Then
          Var1 = Var1 * 10
         Var1 = Var1 + Tombol
      End If
   Else
      If U = 1 Then
         Var2 = Tombol
      Elseif U > 1 Then
          Var2 = Var2 * 10
         Var2 = Var2 + Tombol
      End If
   End If
   Incr U
   Waitms 250
Return

‘——————————————
Proses:
   Select Case Op
      Case “+” : Hasil = Var1 + Var2
      Case “-” : Hasil = Var1 – Var2
      Case “x” : Hasil = Var1 * Var2
      Case “/” : Hasil = Var1 / Var2
   End Select
Return
‘——————————————
Scan_keypad:
Do
   Porta = &B11111110
   If Pina.4 = 0 Then
         Tombol = 7
         Gosub Entri
      Elseif Pina.5 = 0 Then
         Tombol = 8
         Gosub Entri
      Elseif Pina.6 = 0 Then
         Tombol = 9
         Gosub Entri
      Elseif Pina.7 = 0 Then
         Lcd “/”
         Op = “/”
         C = 2
         U = 0
      Waitms 250
      End If
      ‘—————————
      Porta = &B11111101
      If Pina.4 = 0 Then
         Tombol = 4
         Gosub Entri
      Elseif Pina.5 = 0 Then
         Tombol = 5
         Gosub Entri
      Elseif Pina.6 = 0 Then
         Tombol = 6
         Gosub Entri
      Elseif Pina.7 = 0 Then
         Lcd “x”
         Op = “x”
         C = 2
         U = 0
      Waitms 200
      End If

      Porta = &B11111011
      If Pina.4 = 0 Then
         Tombol = 1
         Gosub Entri
      Elseif Pina.5 = 0 Then
         Tombol = 2
         Gosub Entri
      Elseif Pina.6 = 0 Then
         Tombol = 3
         Gosub Entri
      Elseif Pina.7 = 0 Then
         Lcd “-“
         Op = “-“
         C = 2
         U = 0
      Waitms 250
      End If

      Porta = &B11110111
      If Pina.4 = 0 Then     
         Lowerline
         Lcd ”                “
         Lowerline
         Var1 = 0
         Var2 = 0
         C = 1
         U = 0
         Waitms 250
      Elseif Pina.5 = 0 Then
         Tombol = 0
         Gosub Entri
         Waitms 250
      Elseif Pina.6 = 0 Then
         Lcd “= “
         Gosub Proses
         Lcd Hasil
         Var1 = 0
         Var2 = 0
         C = 1
         U = 0
         Op = “=”
         Waitms 250
      Elseif Pina.7 = 0 Then
         Lcd “+”
         Op = “+”
         C = 2
         U = 0
      Waitms 250
      End If
Loop
End

Master Mikrokontroler

Kita coba hasilnya ya. Perkalian 2568. Tekan angka 2 trus 5 dst gak usah diajarin ya, hehe…
Terakhir tekan “=”. Nih hasilnya :

Ok, selamat mencoba aplikasi mikrokontroler AVR ini ya…
Mugo – mugo lancar,,,

This entry was posted in Mikrokontroler AVR. Bookmark the permalink.

20 Responses to Membuat Calculator dengan Mikrokontroler ATmega8535

  1. iradat says:

    Mas, kalo operand nya (var1 dan var2) bilangan pecahan bgm skripnya Mas?

  2. joko says:

    mas … kalau yang pakai bahasa C itu seperti apa algoritmanya

  3. adytia lukman says:

    om kalau pake bahasa asembly bisa ga ya ? makasih

    • admin says:

      Wah assembly sudah kita tinggalkan 10 th yll mas Lukman, habis ribet banget mas. Mending pakai yang enak dilihat, cepet dikembangkan seperti bahasa C atau Bascom.
      Trims

  4. mas kasih penjelasan di setiap baris scriptnya la

  5. ilul says:

    Mas ini Software masukin sourcenya pake apa ? cvavr ? atau ada lagi ? tolong bantuannya mas makasi 🙂

  6. Alfin Trio says:

    mas, kaiau outputnya pake 7segmen bagaimana??

    • admin says:

      Bisa saja mas, nanti pas bagian LCD itu diganti dengan program tampilan 7 segment, kalau modem scanning agak susah, kalau mau lebih mudah pakai design 7 segment yang pakai serial. Kalau program detail lum sempat bikin mas.
      Trims

  7. gatot says:

    carany buat rangkaian iru harus pake avr atau tidak mas?

    • admin says:

      Kalau rangkaian yang dimaksud adalah elektroniknya maka bisa pakai AVR atau PIC atau tipe mikrokontroler yang lain, yang penting bisa diprogram

Leave a Reply