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.

mikrokontroler diskonKeypad 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

mikrokontroler murahDo
   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

diskon robot

 

Kita coba hasilnya ya. Perkalian 25×68. 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,,,

 

20 thoughts on “Membuat Calculator dengan Mikrokontroler ATmega8535

  • August 2, 2013 at 6:47 pm
    Permalink

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

    Reply
    • December 23, 2013 at 6:45 pm
      Permalink

      mas softwarenya baxk yang eror klo mnggunakan aplikasi mide u simulasinya

      Reply
      • December 30, 2013 at 8:34 am
        Permalink

        Maaf mas Saleh, saya belum pernah pakai mide

        Reply
  • January 10, 2014 at 4:16 pm
    Permalink

    mas … kalau yang pakai bahasa C itu seperti apa algoritmanya

    Reply
    • February 1, 2014 at 10:39 am
      Permalink

      Maaf mas belum sempat bikin kalau dengan bahasa C

      Reply
      • April 16, 2014 at 5:24 pm
        Permalink

        mas, kenapa kodingnya ketika di compile di cvavr terdeteksi eror di bagian $regfile = “m8535.dat”
        $crystal = 1000000

        Reply
        • April 21, 2014 at 2:49 pm
          Permalink

          perhatikan lagi script/program yang mas Nur buat, mungkin ada salah tulis/ketik

          Reply
        • August 16, 2014 at 1:52 pm
          Permalink

          jelas error, program ini bukan type compile menggunakan cvavr

          Reply
          • November 11, 2014 at 4:43 am
            Permalink

            Code yang diatas sepertinya Bahasa VB.

          • November 12, 2014 at 8:16 am
            Permalink

            Betul mas Rio, itu pakai BASCOM-AVR, platform sama dengan VB, bahasa Basic.

  • December 8, 2014 at 5:07 pm
    Permalink

    om kalau pake bahasa asembly bisa ga ya ? makasih

    Reply
    • December 10, 2014 at 9:11 am
      Permalink

      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

      Reply
    • March 12, 2015 at 1:26 pm
      Permalink

      Ada teman2 yang mau bantu mas Mulia ?

      Reply
  • May 19, 2015 at 7:21 pm
    Permalink

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

    Reply
    • May 22, 2015 at 8:39 am
      Permalink

      Kalau riil pakai downloader mas. Kalau simulasi ya langsung di simulatornya.

      Reply
    • October 20, 2015 at 7:44 am
      Permalink

      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

      Reply
  • December 1, 2015 at 11:39 am
    Permalink

    carany buat rangkaian iru harus pake avr atau tidak mas?

    Reply
    • December 15, 2015 at 10:08 am
      Permalink

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

      Reply

Leave a Reply

WhatsApp chat
%d bloggers like this: