Anda di halaman 1dari 13

PERANCANGAN KALKULATOR DIGITAL DENGAN MENGGUNAKAN

MIKROKONTROLER ATMEGA32
1 Indah

Sari Lumbanraja 2 Herna Rosianna Napitupulu

3 Wirdatun

Thoyyibah 4 Rizky Hakim Lubis

Program Studi S1 Ilmu Komputer Universitas Sumatera Utara


2017

Abstrak

Kalkulator adalah alat untuk menghitung dari perhitungan sederhana seperti


penjumlahan, pengurangan, perkalian dan pembagian sampai kepada kalkulator sains yang
dapat menghitung rumus matematika tertentu. Unit masukan dari kalkulator adalah matriks
keypad yang terdiri dari tombol-tombol angka dan tombol-tombol operasi. Masukan ini akan
di proses oleh unit pengolah data. Pada bagian ini data masukan akan di simpan untuk
kemudian dihitung sesuai dengan operasi yang di pilih dan hasilnya akan di tampilkan.Tujuan
dari project ini adalah untuk merancang sebuah kalkulator digital dengan menggunakan
mikrokontroller Atmega 32 yang dapat melakukan operasi penjumlahan, pengurangan,
perkalian dan pembagian dan untuk menyelesaikan Tugas dari Matakuliah Mikrocontroller
dan Assembly. Perancangan pembuatan kalkulator digital ini menggunakan perangkat lunak
seperti CodeVisionAVR V2.05.3 dan Proteus (ISIS 7 Profesional) . Komponen - komponen
lain yang digunakan adalah mikrokontroler ATmega32, LM016L/LCD 16 X 2 sebagai output
dan keypad sebagai input.
Kata Kunci : Kalkulator digital, CodeVision AVR, Atmega32, LM016L/LCD 16 X 2, Keypad

I.

microkontroller.

PENDAHULUAN

Kemajuan ilmu pengetahuan dan


teknologi dai waktu ke waktu mengalami
perkembangan

yang

besar

pembelajaran.

begitu

dalam

pembangunan

di

II.

berbagai

bidang.

budaya dll. Teknologi sendiri adalah suatu


atau upaya

untuk mendapatkan

produk yang di lakukan oleh manusia


untuk memanfaatkan peralatan, proses,dan
sumberdaya. Kemajuan teknologi juga
membawa

perubahan

pada

peralatan-

peralatan yang dahulu bekerja secara


analog mulai di kembangkan dengan
teknik digital dan bahkan yang bekerja
secara manual sekarang mulai banyak
dikembangkan secara otomatis seperti
pada project ini yaitu Kalkulator Digital.
Teknologi dalam pendidikan bukan
lagi

suatu

isu

yang

LANDASAN TEORI

mendorong

Misalnya bidang ekonomi , politik, sosial

cara

sering

digunakan dalam proses pengajaran dan

pesat.Teknologi memberikan kontribusi


yang

Kalkulator

baru

untuk

dibincangkan. Manusia selalu berusaha


untuk menciptakan sesuatu yang dapat
mempermudah aktifitas nya. Hal inilah

2.1 MIKROKONTROLER ATMEGA


32
Mikrokontroler adalah salah satu dari
bagian

dasar

dari

suatu

sistem

komputer.ATMEGA32

adalah

mikrikontroller 8 bit dari keluarga AVR


dengan

kapasitas

programmble

flash

penyimpanan
sebesar

32KB.

ATMEGA32 merupakan salah satu produk


IC

mikrokontroler

dari

perusahaan

mikrokontroller

terkemuka,

Mikrokontroller

ATMEGA32

mikrokontroler

yang

ATMEL.
adalah

diproduksi

oleh

Atmel. mikrokontroler ini memiliki clock


dan kerjanya tinggi sampai 16 MHz,
ukuran flash memorinya cukup besar,
kapasistas SRAM sebesar 2 KiloByte, 32
buah port I/O yang sangat memadai untuk
berinteraksi dengan LCD dan keypad.

yang mendorong perkembangan teknologi

Mikrokontroler ini memiliki karakteristik

yang telah banyak menghasilkan alat

sebagai berikut.

sebagai

piranti

untuk

mempermudah

kegiatan manusia bahkan menggantikan


peran
tertentu.

manusia
Salah

dalam
satu

suatu

fungsi

pengajaran

berdasarkan teknologi yang akan penulis


rancang adalah kalkulator digital berbasis

Menggunakan

arsitektur

AVR

RISC
131 perintah dengan satu
clock cycle
32 x 8 register umum
Data dan program memori

32

Kb

In-System

Programmable
Flash
2 Kb SRAM
1 Kb In- System
EEPROM

8 Channel 10-bit ADC

Two Wire Interface

USART Serial Communication

Master/Slave SPI Serial Interface

On-Chip Oscillator

Watch-dog Timer

32 Bi-directional I/O

Tegangan operasi 2,7 5,5 V

32 K byte ISP flash program


memory

Gambar 1 ATMEGA32

2.2 ARSITEKTUR ATMEGA 32


a. Arsitektur CPU ATMEGA32
Fungsi utama CPU adalah

2 K byte SRAM

memastikan pengeksekusian instruksi

1 K byte EEPROM

dilakukan dengan benar. Oleh karena itu

Frekuensi osilator max. 16 MHz

32 pin Input/ Output

8 channel 10 bit ADC, analog


comparator

CPU harus dapat mengakses memori,


melakukan kalkulasi, mengontrol
peripheral, dan menangani interupsi.
Ada 32 buah General Purpose

Satu 16 bit timer/ counter dan dua

Register yang membantu ALU bekerja.

8 bit timer/ counter

Untuk operasi aritmatika dan logika,

Watchdog timer, RTC, 4 channel

operand berasal dari dua buah general

PWM, master/ slave SPI, TWI

register dan hasil operasi ditulis kembali

Programmable USART

ke register. Status and Control berfungsi

Package 40 PDIP

untuk menyimpan instruksi aritmatika

yang baru saja dieksekusi. Informasi ini


berguna untuk mengubah alur program
saat mengeksekusi operasi kondisional.
Instruksi di jemput dari flash memory.
Setiap byte flash memory memiliki alamat

masing-masing. Alamat instruksi yang


akan dieksekusi senantiasa disimpan
Program Counter. Ketika terjadi interupsi
atau pemanggilan rutin biasa, alamat di
Program Counter disimpan terlebih dahulu
di stack. Alamat interupsi atau rutin
kemudian ditulis ke Program Counter,
instruksi kemudian dijemput dan
dieksekusi. Ketika CPU telah selesai
mengeksekusi rutin interupsi atau rutin
biasa, alamat yang ada di stack dibaca dan
ditulis kembali ke Program Counter.
b.Program Memori
ATMEGA 32 memiliki 32
KiloByte flash memori untuk menyimpan
program.Karena lebar intruksi 16 bit atau
32 bit maka flash memori dibuat berukuran
16K x 16. Artinya ada 16K alamat di flash
memori yang bisa dipakai dimulai dari
alamat 0 heksa sampai alamat 3FFF heksa
dan setiap alamatnya menyimpan 16 bit
instruksi.
c. SRAM Data Memori
ATMEGA32 memiliki 2 KiloByte
SRAM. Memori ini dipakai untuk
menyimpan variabel. Tempat khusus di
SRAM yang senantiasa ditunjuk register
SP disebut stack. Stack berfungsi untuk
menyimpan nilai yang dipush.

d. EEPROM Data Memori


ATMEGA32 memiliki 1024 byte
data EEPROM. Data di EEPROM tidak
akan hilang walaupun catuan daya ke
sistem mati. Parameter sistem yang
penting disimpan di EEPROM. Saat sistem
pertama kali menyala paramater tersebut
dibaca dan system diinisialisasi sesuai
dengan nilai parameter tersebut.
e. Interupsi
Sumber interupsi ATMEGA32 ada
21 buah. Tabel 2 hanya menunjukkan 10
buah interupsi pertama. Saat interupsi
diaktifkan dan interupsi terjadi maka CPU
menunda instruksi sekarang dan melompat
ke alamat rutin interupsi yang terjadi.
Setelah selesai mengeksekusi intruksiinstruksi yang ada di alamat rutin interupsi
CPU kembali melanjutkan instruksi yang
sempat tertunda.
f. I/O Port
ATMEGA32 memiliki 32 buah pin
I/O. Melalui pin I/O inilah ATMEGA32
berinteraksi dengan sistem lain. Masingmasing pin I/O dapat dikonfigurasi tanpa
mempengaruhi fungsi pin I/O yang lain.
Setiap pin I/O memiliki tiga register yakni:
DDxn, PORTxn, dan PINxn. Kombinasi
nilai DDxn dan PORTxn menentukan arah
pin I/O.

g. Clear Timer on Compare Match


(CTC)
CTC adalah salah satu mode
Timer/Counter1, selain itu ada Normal
mode, FastPWM mode, Phase Correct
PWM mode. Pada CTC mode maka nilai
TCNT1 menjadi nol jika nilai TCNT1
telah sama dengan OCR1A atau ICR1.
Jika nilai top ditentukan OCR1A dan
interupsi diaktifkan untuk Compare Match
A maka saat nilai TCNT1 sama dengan
nilai OCR1A interupsi terjadi. CPU
melayani interupsi ini dan nilai TCNT1
menjadi nol.
h. USART
Selain untuk general I/O, pin PD1
dan PD0 ATMEGA32 berfungsi untuk
mengirim dan menerima bit secara serial.
Pengubahan fungsi ini dibuat dengan
mengubah nilai beberapa register serial.
Untuk menekankan fungsi ini, pin PD1
disebut TxD dan pin PD0 disebut RxD.
Gambar diatas menunjukkan bentuk frame
yang dimiliki ATMEGA32. Nilai UBRR
dan clock sistem menentukan laju bit
pengirim dan penerima serial.

Gambar 2 Arsitektur ATMega32.

3.3 KONFIGURASI PIN DAN

Secara

fungsional

konfigurasi

PENJELASAN

ATMega32 adalah sebagai berikut:

pin

a. VCC
Tegangan sumber
b. GND (Ground)
Ground
c. Port A (PA7 PA0)
Port A adalah 8-bit port I/O yang
bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output
buffer port A dapat mengalirkan arus
sebesar 20 mA. Ketika port A digunakan
sebagai input dan di pull-up secara
langsung, maka port A akan mengeluarkan
arus jika internal pull-up resistor
diaktifkan. Pin-pin dari port A memiliki
fungsi khusus yaitu dapat berfungsi
sebagai channel ADC (Analog to Digital
Converter) sebesar 10 bit. Fungsi-fungsi
khusus pin-pin port A dapat ditabelkan
seperti yang tertera pada tabel .
Tabel 2.3 Fungsi khusus port A
Port
PA7

PA6

PA5
Gambar 3 Susunan Pin (kaki) MC
ATMega16

PA4

Alternate Function
ADC7 (ADC input
channel 7)
ADC6 (ADC input
channel 6)
ADC5 (ADC input
channel 5)
ADC4 (ADC input
channel 4)

PA3

PA2

PA1

PA0

ADC3 (ADC input


channel 3)
ADC2 (ADC input

Fungsi-fungsi khusus pin-pin port B dapat


ditabelkan seperti pada tabel :
Tabel 2.4 Fungsi khusus port B

channel 2)
ADC1 (ADC input
channel 1)

Port
PB7

ADC0 (ADC input


channel 0)

d. Port B (PB7 PB0)

Port B adalah 8-bit port I/O yang

PB6

PB6

PB5

Alternate Function
SCK (SPI Bus Serial
Clock)
MISO (SPI Bus Master
Input/Slave Output)
MOSI (SPI Bus Master
Output/Slave Input)
SS (SPI Slave Select

bersifat bi-directional dan setiap pin

Input)

mengandung internal pull-up resistor.

AIN1 (Analog

Output buffer port B dapat mengalirkan

Comparator Negative

arus sebesar 20 mA. Ketika port B


digunakan sebagai input dan di pull-down

PB3

Input)
OCO (Timer/Counter0

secara external, port B akan mengalirkan

Output Compare Match

arus jika internal pull-up resistor

Output)

diaktifkan.

AIN0 (Analog

Pin-pin port B memiliki fungsi-fungsi


khusus, diantaranya :

up/downloading memory.

memory.
MOSI port B, bit 5

Input)
INT2 (External Interrupt
2 Input)

PB1

MISO port B, bit 6


Pin output data untuk uploading

PB2

SCK port B, bit 7


Input pin clock untuk

Comparator Positive

T1 (Timer/Counter1
External Counter Input)
T0 (Timer/Counter

PB0

External Counter Input)


XCK (USART External
Clock Input/Output)

Pin input data untuk downloading


memory.

Adalah 8-bit port I/O yang


berfungsi bi-directional dan setiap pin

memiliki internal pull-up resistor. Output

buffer port D dapat mengalirkan arus

buffer port C dapat mengalirkan arus

sebesar 20 mA. Ketika port D digunakan

sebesar 20 mA. Ketika port C digunakan

sebagai input dan di pull-down secara

sebagai input dan di pull-down secara

langsung, maka port D akan mengeluarkan

langsung, maka port C akan mengeluarkan

arus jika internal pull-up resistor

arus jika internal pull-up resistor

diaktifkan. Fungsi-fungsi khusus pin-pin

diaktifkan. Fungsi-fungsi khusus pin-pin

port D dapat ditabelkan seperti yang tertera

port C dapat ditabelkan seperti yang tertera

pada tabel dibawah ini.

pada tabel dibawah ini.

Tabel 2.6 Fungsi khusus port D

Tabel 2.5 Fungsi khusus port C


Port
PC7

PC6

PC6

PC5

PC3

PC2

Alternate Function
TOSC2 (Timer

TOSC1 (Timer
Oscillator Pin 1)

Out)
TMS (JTAG Test
Mode Select)
TCK (JTAG Test
Clock)

Bus Data Input/Output

SCL (Two-wire Serial


Bus Clock Line)

Adalah 8-bit port I/O yang


berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor. Output

Output Compare Match


Output)

PD6

ICP1 (Timer/Counter1
Input Capture Pin)
OCIB (Timer/Counter1

PD6

Output Compare B
Match Output)

TD0 (JTAG Test Data

Line)
PC0

PD7

TD1 (JTAG Test Data


In)

Alternate Function
OC2 (Timer / Counter2

Oscillator Pin 2)

SDA (Two-wire Serial


PC1

Port

PD5

PD3

PD2

PD1

PD0

TD0 (JTAG Test Data


Out)
INT1 (External Interrupt
1 Input)
INT0 (External Interrupt
0 Input)
TXD (USART Output
Pin)
RXD (USART Input
Pin)

2.4 RANCANGAN SIMULASI

AVR. Program ini dapat berjalan dengan

KALKULATOR DIGITAL

menggunakan sistem operasi Windows

Untuk rancangan kalkulator digital


ini pertama-tama dirancang terlebih
dahulu dengan aplikasi Proteus (ISIS) dan

XP, Vista, Windows 7, dan Windows 8,


32-bit dan 64-bit.
CodeVision AVR Penggunaan

untuk pengcodingannya dibuat di

mikrokontroler sekarang ini telah umum.

CodeVision AVR dengan bahasa c dari

Mulai dari penggunaan untuk kontrol

simulasi yang dibuat dapat terlihat alat-alat

sederhana sampai kontrol yang cukup

yang akan digunakan untuk pembuatan

kompleks, mikrokontroler dapat berfungsi

kalkulator digital nantinya dapat dilihat

jika telah diisi sebuah program, pengisian

gambarnya sebagai berikut:

program ini dapat dilakukan menggunakan


compiler yang selanjutnya didownload ke
dalam mikrokontroler menggunakan
downloader.
CodeVision AVR mempunyai
suatu keunggulan dari compiler lain, yaitu
adanya codewizard, fasilitas ini
memudahkan kita dalam inisialisasi
mikrokontroler yang akan kita gunakan,
codevision telah menyediakan konfigurasi
yang bisa diatur pada masing-masing chip
mikrokontroler yang akan kita gunakan,
sehingga kita tidak perlu melihat datasheet

Gambar 4 tampilan simulasi kalkulator


digital
2.5 CODEVISION AVR
CodeVisionAVR adalah sebuah
compiler C yang telah dilengkapi dengan

untuk sekedar mengonfigurasi


mikrokontroler. Berikut ini langkahlangkah menggunakan codevision.
Ada tiga komponen penting yang telah
diintegrasikan dalam perangkat lunak ini:

fasilitas Integrated Development

Compiler

Environment (IDE) dan didesain agar

C, IDE dan

dapat menghasilkan kode program secara

Program generator.

otomatis untuk mikrokontroler Atmel

Untuk

mengingkatkan

kehandalan

program ini, maka pada CodeVisionAVR


juga terdapat kumpulan pustaka (library)
untuk:

Modul LCD Alphanumeric

Philips I2C bus

National

Semiconductor

Sensor

Temperatur LM75

Philips PCF8563, PCF8583, dan


Maxim/Dallas Semiconductor Real
Time Clock DS1302 dan DS1307

Maxim/Dallas

Semiconductor

wire protocol

Maxim/Dallas
Sensor

Semiconductor

Temperatur

DS1820,

DS18S20, dan DS18B20

Maxim/Dallas

Semiconductor

Termometer/Thermostat DS1621

2.6 PROTEUS (1SIS 7

Maxim/Dallas

PROFESIONAL)

Semiconductor

EEPROMs DS2430 dan DS2433

SPI

Power Management

Delays

Gray Code Conversion

MMC/SD/SD HC Flash memory


cards low level access

Akses FAT pada MMC/SD/SD HC


Flash memory card

Proteus adalah sebuah software


untuk mendesain PCB yang juga
dilengkapi dengan simulasi pspice pada
level skematik sebelum rangkaian
skematik diupgrade ke PCB shingga
sebelum PCBnya di cetak kita akan tahu
apakah PCB yang akan kita cetak sudah
benar atau tidak. Proteus
mengkombinasikan program ISIS untuk
membuat skematik desain rangkaian
dengan program ARES untuk membuat
layout PCB dari skematik yang kita buat.
Software ini bagus digunakan untuk
desain rangkaian mikrokontroller.

2.7 RANCANGAN FISIK

Sumber cahaya di dalam sebuah perangkat

KALKULATOR DIGITAL

LCD adalah lampu neon berwarna putih di

Untuk merancang kalkulator digital


ini dapat dilihat beberapa komponenkomponen pembentuknya yaitu LCD
kalkulator LM016L dimana LCD 16 x 2,
kemudian untuk mikrokontroler
menggunakan atmega32, kemudian
menggunakan Keypad sebagai tomboltombol di kalkulator digital.

bagian belakang susunan kristal cair tadi.


Titik cahaya yang jumlahnya puluhan ribu
bahkan jutaan inilah yang membentuk
tampilan citra. Kutub kristal cair yang
dilewati arus listrik akan berubah karena
pengaruh polarisasi medan magnetik yang
timbul dan oleh karenanya akan hanya
membiarkan beberapa warna diteruskan
sedangkan warna lainnya tersaring.
Dalam menampilkan karakter
untuk membantu menginformasikan proses
dan control yang terjadi dalam suatu
program robot kita sering menggunakan
LCD juga. Yang sering digunakan dan
paling murah (kira2 50rb kalo beli di
glodog) adalah LCD dengan banyak

Gambar 5 Tampilan Fisik Keypad

karakter 16x2. Maksudnya semacam


fungsi tabel di ms office. 16 menyatakan

2.8 LM016L/LCD 16 X 2
LCD (Liquid Crystal Display atau

kolom dan 2 menyatakan baris. Bila kita


beli di pasaran, LCD 16x2 masih

dapat di bahasa Indonesia-kan sebagai

kosongan, maksudnya kosongan yaitu

tampilan Kristal Cair )adalah suatu jenis

butuh driver lagi supaya bisa dikoneksikan

media tampilan yang menggunakan kristal

dengan system minimum dalam suatu

cair sebagai penampil utama. LCD bisa

mikrokontroler. Driver yang disebutkan

memunculkan gambar atau tulisan

berisi rangkaian pengaman, pengatur

(berwarna juga bisa dong) dikarenakan

tingkat kecerahan backligt maupun data,

terdapat banyak sekali titik cahaya (piksel)

serta untuk mempermudah pemasangan di

yang terdiri dari satu buah kristal cair

mikrokontroler (portable-red).

sebagai sebuah titik cahaya. Walau disebut


sebagai titik cahaya, namun kristal cair ini
tidak memancarkan cahaya sendiri.

Modul LCD memiliki karakteristik


sebagai berikut:
a) Terdapat 16 x 2 karakter huruf
yang bisa ditampilkan.
b) Setiap huruf terdiri dari 5x7 dotmatrix cursor.
c) Terdapat 192 macam karakter.
d) Terdapat 80 x 8 bit display RAM
(maksimal 80 karakter).
e) Memiliki kemampuan penulisan
dengan 8 bit maupun dengan 4 bit.
f) Dibangun dengan osilator lokal.
g) Satu sumber tegangan 5 volt.
h) Otomatis reset saat tegangan
dihidupkan.
i) Bekerja pada suhu 0oC sampai
55oC.

Gambar 6 Fungsi Dari Pin Atmega32

2.9 KINERJA KALKULATOR


DIGITAL
Kalkulator digital yang dibuat dengan
menggunakan atmega 32 ini yang alatalatnya berfungsi:
1. LCD 16 x 2 digunakan untuk
tampilan output
2. Keypad digunakan untuk sebagaai
inputan
3. Mikrokontroler atmega32 sebagai
otak dalam penyimpanan program,
atau tempat dimana program
ditanamkan
4. Kalkulator digital hanya dapat
melakukan perhitungan + , - , * , /
saja

III.

KESIMPULAN

DAFTAR PUSTAKA

Berdasarkan penjelasan diatas, dapat

https://id.wikipedia.org/wiki/Mesin_hitung

disimpulkan bahwa:

http://daytronika.blogspot.co.id/2015/01/n

1. LCD yang digunakan adalah


LM016L/LCD 16 X 2. Dengan
menggunakan LCD 16 x 2 maka
karakter yang akan ditampilkan

ormal-0-false-false-false-en-us-xnone_17.html
http://fmpunya.blogspot.co.id/2012/06/das
ar-teori-mikrokontroller-atmega-32.html

hanya sebatas 16 kolom dan 2 baris

http://www.nulis-

saja.

ilmu.com/2015/09/mikrokontroler-avr-

2. Operasi matematika yang dapat

atmega32.html

dioperasikan oleh kalkulator digital

http://blog.unnes.ac.id/antosupri/tentang-

sebatas + , - , * , /

mikrokontroler-atmega32/

3. Untuk mendesign rangkaian dapat

http://fmpunya.blogspot.co.id/2012/06/das

menggunakan Proteus dan

ar-teori-mikrokontroller-atmega-

pengkodingan di CodeVision

32.html?m=1

AVR.

http://reehokstyle.blogspot.co.id/2010/03/a

4. Mikrokontroller yang digunakan


adalah ATMEGA32

kses-lcd-16x2.html
http://www.immersa-lab.com/pengenalancodevision-avr.htm
http://dom2ngelmu.blogspot.co.id/2011/12
/pemrograman-mikrokontroleratmega16.html
https://dunovteck.wordpress.com/2010/02/
23/pengenalan-proteus-software-simulasidesain-pcb-2/
http://reehokstyle.blogspot.co.id/2010/03/a
kses-lcd-16x2.html

Anda mungkin juga menyukai