Top Banner
1 MAKALAH MIKROPROSESOR JAM DIGITAL DENGAN LCD 16X2 SHERLY MELISA SEMBIRING 131421086 YOHANA BR SITEPU 131421087 LELY DAHLYANA 131421090 ABNER SORITUA SIDAURUK 131421096 KOM C EKSTENSI PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2014
31

MAKALAH MIKROPROSESOR

Nov 27, 2015

Download

Documents

Lê Lý

Makalah Microprocessor JAM DIGITAL dengan LCD 16X2
Disusun Oleh:
SHERLY MELISA SEMBIRING ( 131421086)
YOHANA BR SITEPU ( 131421087)
LELY DAHLYANA ( 131421090)
ABNER SORITUA SIDAURUK( 131421096)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MAKALAH MIKROPROSESOR

1

MAKALAH MIKROPROSESOR

JAM DIGITAL DENGAN LCD 16X2

SHERLY MELISA SEMBIRING 131421086

YOHANA BR SITEPU 131421087

LELY DAHLYANA 131421090

ABNER SORITUA SIDAURUK 131421096

KOM C EKSTENSI

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS

SUMATERA UTARA

MEDAN

2014

Page 2: MAKALAH MIKROPROSESOR

2

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Jam digital merupakan salah satu aplikasi dari mikrokontroler ATMega8, hal ini sangat

masuk akal karena harga dari mirokontroler cukup ekonomis apabila dijadikan sebuah jam

digital, masalah utama dalam pembuatannya adalah pada penyinkronan waktu dan bagaimana

mengendalikan display yang dalam hal ini digunakan lcd 16x2 melalui port serial yang

terdapat pada mikrokontroler, disini juga digunakan Shif Register untuk mengeser data pada

lcd 16x2, adapun pemogramannya disini digunakan bahasa pemograman assembly yang

sesuai dengan mata kuliah yang diajarkan.

1.2 Batasan Masalah

Pembuatan jam digital ini hanya sebatas menampilkan jam, menit dan detik.

1.3 Tujuan

Tujuan dari pembuatan makalah ini adalah untuk memenuhi tugas microprosesor serta untuk

menambah pengetahuan tentang microcontroler.

Page 3: MAKALAH MIKROPROSESOR

3

BAB 2

TINJAUAN PUSTAKA

2.1 Mikrokontroler AVR Atmega8

AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam

fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah

pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat

internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu

tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka

secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beberapa

fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.

AVR ATmega8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR RISC yang

memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan konsumsi daya

rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada

frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada

besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini

dapat bekerja dengan tegangan antara 2,7 - 5,5 V sedangkan untuk ATmega8 hanya dapat

bekerja pada tegangan antara 4,5 – 5,5 V.

Gambar 2.1 Mikrokontroler ATMega8

Page 4: MAKALAH MIKROPROSESOR

4

2.1.1 Arsitektur ATMega8

Blok diagram dari mikrokontroler ATMega8 diperlihatkan pada gambar di bawah ini.

Gambar 2.2 Blok Diagram Mikrokontroler ATMega8

Page 5: MAKALAH MIKROPROSESOR

5

2.1.1.1 Peta Memori

ATmega8 memiliki dua ruang memori utama, yaitu memori data dan memori

program.Selain dua memori utama, ATmega8 juga memiliki fitur EEPROM yang dapat

digunakan sebagai penyimpan data.

2.1.1.2 Flash Memory

ATmega8 memiliki flash memory sebesar 8 Kbytes untuk memori program. Karena

semua instruksi AVR menggunakan 16 atau 32 bit, maka AVR memiliki organisasi memori 4

Kbyte x 16 bit dengan alamat dari $000 hingga $FFF. Untuk keamanan software, memori

flash dibagi mejadi dua bagian, yaitu Boot Program dan bagian Application program. AVR

tersebut memiliki 12 bit Program Counter (PC) sehingga mampu mengalamati isi flash

memori.

2.1.1.3 SRAM

ATmega8 memiliki 608 alamat memori data yang terbagi menjadi 3 bagian, yaitu 32

buah register file, 64 buah IO register dan 512 byte internal SRAM.

2.1.1.4 EEPROM

ATmega8 juga memiliki memori data berupa EEPROM 8 bit sebesar 512 byte.

2.1.1.5 Register (SREG)

Register SREG digunakan untuk menyimpan informasi dari hasil operasi aritmatika

yang terakhir. Informasi-informasi dari register SREG dapat digunakan untuk mengubah alur

program yang sedang dijalankan dengan menggunakan instruksi percabangan. Data SREG

akan selalu akan berubah setiap instruksi atau operasi pada ALU dan datanya tidak otomatis

tersimpan apabila terjadi instruksi percabangan baik karena interupsi maupun lompatan.

Page 6: MAKALAH MIKROPROSESOR

6

2.1.1.6 Status Register

Status register adalah register berisi status yang dihasilkan pada setiap operasi yang

dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU

mikrokontroler.

2.1.2 Konfigurasi Pin Atmega8

Gambar 2.3 Konfigurasi Pin Atmega8

ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi yang berbeda-beda

baik sebagai port maupun fungsi yang lainnya. Berikut akan dijelaskan fungsi dari masing-

masing kaki ATmega8 :

1. VCC

Merupakan supply tegangan digital.

2. GND

Merupakan ground untuk semua komponen yang membutuhkan grounding.

3. Port B (PB7...PB0)

Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B adalah 8

buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat digunakan sebagai

input maupun output. Port B merupakan sebuah 8-bit bi-directional I/O dengan

internal pull-up resistor. Sebagai input, pin-pin yang terdapat pada port B yang secara

Page 7: MAKALAH MIKROPROSESOR

7

eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan.

Khusus PB6 dapat digunakan sebagai input Kristal (inverting oscillator amplifier) dan

input ke rangkaian clock internal, bergantung pada pengaturan Fuse bit yang

digunakan untuk memilih sumber clock. Sedangkan untuk PB7 dapat digunakan

sebagai output Kristal (output oscillator amplifier) bergantung pada pengaturan Fuse

bit yang digunakan untuk memilih sumber clock. Jika sumber clock yang dipilih dari

oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunakan

Asyncronous Timer/Counter2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan

untuk saluran input

timer.

4. Port C (PC5…PC0)

Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam masing-masing

pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah mulai dari pin C.0 sampai

dengan pin C.6. Sebagai keluaran/output port C memiliki karakteristik yang sama

dalam hal menyerap arus (sink) ataupun mengeluarkan arus (source).

5. RESET/PC6

Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Pin ini

memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C

lainnya. Namun jika RSTDISBL Fuse tidak diprogram, maka pin ini akan berfungsi

sebagai input reset. Dan jika level tegangan yang masuk ke pin ini rendah dan pulsa

yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan suatu kondisi

reset meskipun clock-nya tidak bekerja.

6. Port D (PD7…PD0)

Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor. Fungsi dari

port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat

kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan

keluaran saja atau biasa disebut dengan I/O.

7. Avcc

Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini harus

dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja.

Page 8: MAKALAH MIKROPROSESOR

8

Bahkan jika ADC pada AVR tidak digunakan tetap saja disarankan untuk

menghubungkannya secara terpisah dengan VCC. Jika ADC digunakan, maka AVcc

harus dihubungkan ke VCC melalui low pass filter.

8. AREF

Merupakan pin referensi jika menggunakan ADC.

Gambar 2.4 Blok Diagram ATmega8

Pada AVR status register mengandung beberapa informasi mengenai hasil dari

kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk altering

arus program sebagai kegunaan untuk meningkatkan performa pengoperasian.

Register ini di-update setelah operasi ALU (Arithmetic Logic Unit) hal tersebut

seperti yang tertulis dalam datasheet khususnya pada bagian Instruction Set

Reference. Dalam hal ini untuk beberapa kasus dapat membuang 10 penggunaan

kebutuhan instrukasi perbandingan yang telah didedikasikan serta

dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana

dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah

rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari

interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut adalah

gambar status register.

9. Bit 7(I)

Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua perintah

interupsi dapat dijalankan. Untuk perintah interupsi individual akan di jelaskan pada

Page 9: MAKALAH MIKROPROSESOR

9

bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang

individual maupun yang secara umum akan di abaikan. Bit ini akan dibersihkan atau

cleared oleh hardware setelah sebuah interupsi di jalankan dan akan di-set kembali

oleh perintah RETI. Bit ini juga dapat diset dan di-reset melalui aplikasi dan intruksi

SEI dan CLL.

10. Bit 6(T)

Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) and

BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah

dioperasikan. Sebuah bit dari sebuah register dalam Register File dapat disalin ke

dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini

dapat disalin ke dalam bit di dalam register pada Register File dengan menggunakan

perintah BLD.

11. Bit 5(H)

Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam

beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.

12. Bit 4(S)

Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara Negative Flag

(N) dan two’s Complement Overflow Flag (V).

13. Bit 3(V)

Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi

aritmatika dua komplemen.

14. Bit 2(N)

Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative di dalam

sebuah fungsi logika atai aritmatika.

15. Bit 1(Z)

Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0” dalan sebuah

fungsi aritmatika atau logika.

Page 10: MAKALAH MIKROPROSESOR

10

16. Bit 0(C)

Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam

sebuah aritmatika atau logika.

2.2 Kristal

Kristal umumnya digunakan untuk rangkaian osilator yang menuntutstabilitas

frekuensi yang tinggi dalam jangka waktu yang panjang. Alasan utamanya adalah karena

perubahan nilai frekuensi kristal seiring dengan waktu, atau disebut juga dengan istilah faktor

frequency aging, jauh lebih kecil daripadaosilator-osilator lain. Faktor frequency aging untuk

kristal berkisar pada angka±5ppm/tahun, jauh lebih baikdaripada faktor frequency aging

osilator RC ataupunosilator LC yang biasanya berada diatas±1%/tahun.

Kristal juga mempunyai stabilitas suhu yang sangat bagus. Padaumumnya, nilai

koefisien suhu kristal berada dikisaran ±50ppm direntangan suhuoperasi normal dari -20°C

sampai dengan +70°C. Untuk aplikasi yangmenuntut stabilitas suhu yang lebih tinggi, kristal

dapat dioperasikan didalamsebuah oven kecil yang dijaga agar suhunya selalu konstan.

Fungsi Kristal pada Sistem Minimum (Sismin) adalah sebagai pembangkit/pemompa

data yaitu bersifat timer (semacam clock)/pulsa digital. Oleh karena itu, kristal memiliki

sebuah frekuensi.

Kristal terbuat dari bahan alam yang menunjukkan efek piezoelektrik,sehingga sering

disebut Kristal Piezoelektrik. Bahan utama kristal yang dapatmenimbulkan efek piezoelektrik

adalah garam rachelle,tourmaline dan quarte.

Frekuensi, resonansi dan nilai Q – nya (Qualityfactor) tergantung pada dimensi

kristal, orientasi permukaan pada sumbu-sumbu kristal dan bagaimana komponen tersebut

dipasang ( Mounted) jangkauan frekuensinya dari beberapa KHz sampai beberapa MHz. Pada

hakikatnya, frekuensi dari suatu osilator kristal hanya ditentukan oleh kristal itu sendiri dan

tidak oleh komponen lainnya. Lambang kristal dapat dilihat pada gambar 2.6.

(a) (b)

Gambar 2.5 (a) Simbol Kristal dan (b) Bentuk Fisik Kristal

Page 11: MAKALAH MIKROPROSESOR

11

Sesuai dengan simbolnya kristal dipasang diantara 2 buah elektroda logam dimana

elektroda tersebut merupakan kapasitas dan kristalnya sebagai dielektrik. Konstruksi kristal

digenggam dengan kuat oleh kedua elektroda tersebut, namun tidak menghalangi kristal

dalam getarannya.

Dalam beresonansi kristal mempunyai cara kerja yang sama dengan rangkaian LC,

karena mempunyai frekuensi resonansi (fs).

Gambar 2.6 Rangkaian Ekuivalen Kristal

L,R,C adalah ekuivalen listrik kristal, apabila sedang bergetar. Adapun bentuk

lengkung resonansi kristal dapat dilihat pada gambar 2.7.

Gambar 2.7 Lengkung Resonansi Kristal

Frekuensi resonansi deret (fs) dan frekuensi resonansi jajar (fp) sangat berdekatan,

jaraknya kira-kira 100Hz. Dari lengkungan fs dan fp bahwa rangkaian LC mempunyai faktor

Q yang sangat tinggi hingga mencapai 1.000.000. Karenanilai Q yang sangat tinggi tersebut

maka kristal dapat dipakai sebagai rangkaianLC konvensional.

Page 12: MAKALAH MIKROPROSESOR

12

2.3 Power Supply DC (Direct Current)

Catu daya merupakan sesuatu yang sangat penting untuk semua

rangkaianelektronika.Catu daya yang baik adalah catu daya yang dapat menyuplai

keseluruhan sistem dengan tegangan yang stabil terhadap konsumsi arus yang dibutuhkan

sistem.

2.3.1 Rangkaian Regulator

Regulator ini dimaksudkan untuk memberi kemampuan catu yang stabilpada

keseluruhan sistem dengan menggunakan sebuah integrasi regulatortegangan tetap yakni IC

Regulator.Dimana memiliki internal current limiting,thermal shutdown dan safe operation

area protection.Gambar rangkaian catudaya ini dapat dilihat pada gambar 2.8.

Gambar 2.8 Rangkaian Fixed Voltage Regulator Power Supply DC

Arus keluaran dari IC78XXdapatditambah (boosted)dengan adanya eksternal

transistor PNP pass. IC Regulatorakan menyuplai semua kebutuhanarus. Pada saat tegangan

jatuh tersebut berlangsung, maka transistor akan aktif.Dengan aktifnya transistor maka akan

menambah arus bagi beban.

Adapun blok rangkaian dalam IC Regulator 78XX dapat dilihat padagambar 2.9.

Page 13: MAKALAH MIKROPROSESOR

13

Gambar 2.9 Blok Rangkaian Dalam IC Regulator 78XX

Pada blok diagram dapat dilihat bahwa IC Regulator 78XX telah mempunyai sebuah

sistem regulasi tegangan yang lengkap dansistem pengamanan terhadap beban berlebih. Serta

pengamanan dari suhu yang melebihi jangkauan temperatur pada saat pengoperasian. Namun

idealnya sebuah regulator harus dipasangheat sink untuk pencegahan panas pada kemasaan

IC.

2.4 LCD ( Liquid Crystal Display )

LCD (Liquid Crystal Display) skrin adalah modul paparan elektronik yang digunakan secara

meluas dalam pelbagai aplikasi. Skrin LCD merupakan modul asas yang digunakan bersama

dengan peranti masukan atau keluaran elektronik yang lain. LCD skrin lebih diminati ramai

berbanding paparan 7 ruas (7 segment) kerana fungsinya yang pelbaai, mudah untuk

diprogramkan, tidak memiliki batasan untuk memaparkan aksara dan ianya juga boleh

diprogramkan untuk memaparkan animasi yang dikehendaki serta paparan yang lebih jelas.

LCD 16x2 seperti diatas boleh memaparkan 16 aksara per baris dan mempunyai 2 baris

paparan. Setiap aksara akan dipaparkan dalam 5x7 pixel matrix. LCD jenis ini mempunyai

dua register, iaitu arahan(command) dan data.

Page 14: MAKALAH MIKROPROSESOR

14

Register arahan berfugnsi menyimpan arahan yang diberikan kepada LCD. Command

adalah arahan yang diberikan untuk LCD bagi melakukan tugas yang telah ditetapkan seperti

manganalisis arahan, menulis dan memadam aksara, mengubah kedudukan cursor dan

pelbagai arahan lagi. kawalan paparan dll data register menyimpan data yang akan

dipaparkan pada LCD.Data register pula berfungsi untuk menyimpan data yang akan

dipaparkan pada paparan LCD. Data adalah nilai aksara bagi ASCII yang akan dipaparkan

pada LCD.

Gambar 2.10 LCD (Liquid Crystal Display)

2.5 Real Time Clock (RTC) DS1307

Real Time Clock merupakan suatu chip (IC) yang memiliki fungsi sebagai penyimpan waktu

dan tanggal. RTC DS1307 merupakan Real-time clock (RTC) yang dapat meyimpan data-

data detik, menit, jam, tanggal, bulan, hari dalam seminggu, dan tahun valid hingga 2100. 56-

byte, battery-backed, RAM nonvolatile (NV) RAM untuk penyimpanan. RTC DS1307

merupakan Real-time clock (RTC) dengan jalur data parallel yang memiliki Antarmuka serial

Two-wire (I2C), Sinyal luaran gelombang-kotak terprogram (Programmable squarewave),

Deteksi otomatis kegagalan-daya (power-fail) dan rangkaian switch, Konsumsi daya kurang

dari 500nA menggunakan mode baterai cadangan dengan operasional osilator. Tersedia fitur

industri dengan ketahana suhu: -40°C hingga +85°C. Tersedia dalam kemasa 8-pin DIP atau

SOIC.

Page 15: MAKALAH MIKROPROSESOR

15

Gambar 2.11 RTC DS1307

Berikut Penjelasan Pin-Pin Pada IC RTC DS1307

1. X1

Merupakan pin yang digunakan untuk dihubungkan dengan kristal sebagai pembangkit clock.

2. X2

Berfungsi sebagai keluaran / output dari crystal yang digunakan. Trhubung juga dengan X1.

3. VBAT

Merupakan backup supply untuk RTC DS1307 dalam menjalankan fungsi waktu dan tanggal.

Besarnya adalah 3V dengan menggunakan jenis Lithium Cell atau sumber energy lain. Jika

pin ini tidak di gunakan maka harus terhubung dengan Ground. Sumber teganggan dengan

48mAH atau lebih besar dapat digunakan sebagai cadangan energy sampai lebih dar 10

tahun, namun dengan persyaratan untuk pengoprasian dalam suhu 25°C.

4. GND

Berfungsi sebagai Ground.

5. SDA

Barfungsi sebagai masukan / keluaran (I/O) untuk I2C serial interface. Pin ini bersifat open

drain, oleh sebab itu membutuhkan eksternal pull up resistor.

Page 16: MAKALAH MIKROPROSESOR

16

6. SCL

Berfungsi sebagai clock untuk input ke I2C dan digunakan untuk mensinkronisasi pergerakan

data dalam serial interface. bersifat open drain, oleh sebab itu membutuhkan eksternal pull up

resistor.

7. SWQ/OUT

Sebagai square wafe / Output Driver . jika di aktifkan, maka akan menjadi 4 frekuensi

gelombang kotak yaitu 1 Hz, 4kHz, 8kHz, 32kHz sifat dari pin ini sama dengan sifat pin

SDA dan SCL sehingga membutuhkan eksternal pull up resistor. Dapat dioprasikan dengan

VCC maupun dengan VBAT.

8. VCC

Merupakan sumber tegangan utama. Jika sumber tegangan terhubung dengan baik, maka

pengaksesan data dan pembacaan data dapat dilakukan dengan baik. Namun jika backup

supply terhubung juga dengan VCC, namun besar VCC di bawah VTP, maka pengaksesan

data tidak dapat dilakukan.

2.6 Sensor Suhu IC LM35

Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat

dikalibrasikan langsung dalam satuan derajat Celcius.LM35 ini difungsikan sebagai basic

temperature sensor seperti pada gambar di bawah.

Gambar 2.12 LM35 basic temperature sensor

Page 17: MAKALAH MIKROPROSESOR

17

IC LM35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated

Circuit (IC), dimana output tegangan keluaran sangat linear berpadanan dengan perubahan

suhu. Sensor ini berfungsi sebagai pengubah dari besaran fisis suhu ke besaran tegangan yang

memiliki koefisien sebesar 10 mV /°C yang berarti bahwakenaikan suhu 1° C maka akan

terjadi kenaikan tegangan sebesar 10 mV. IC LM35 ini tidak memerlukan pengkalibrasian

atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius

pada temperatureuang.Jangka sensor mulai dari – 55°C sampai dengan 150°C.IC

LM35penggunaannya sangat mudah, difungsikan sebagai kontrol dari indikator tampilan catu

daya terbelah.IC LM35 dapat dialiri arus 60 mA dari supply sehingga panas yang

ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan.

Gambar 2.13 Rangkaian Pengukur Suhu

LM35 ialah sensor temperatur paling banyak digunakan untuk praktikum, karena

selain harganya cukup murah, linearitasnya juga lumayan bagus. LM35 tidak membutuhkan

kalibrasi eksternal serta menyediakan akurasi ± ¼ °C pada temperatur ruangan dan ± ¾ °C

pada kisaran -55 °C to +150 °C. LM35 dimaksudkan untuk beroperasi pada -55 °C hingga

+150 °C, sedangkan LM35C pada -40 °C hingga +110 °C, dan LM35D pada kisran 0-100°C.

LM35D juga tersedia pada paket 8 kaki dan paket TO-220. Sensor LM35 umumnya akan

naik sebesar 10mV setiap kenaikan 1°C (300mV pada 30 °C).

Gambar 2.14 Bentuk Fisik LM35

Page 18: MAKALAH MIKROPROSESOR

18

Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa suhu menjadi

besaran elektri tegangan. Sensor ini memiliki parameter bahwa setiap kenaikan 1°C tegangan

keluarannya naik sebesar 10mV dengan batas maksimal keluaran sensor adalah 1,5V pada

suhu 150°C. Pada perancangan kita tentukan keluaran ADC mencapai full scale pada saat

suhu 100°C, sehingga tegangan keluaran tranduser (10mV/°C x 100°C) = 1V. Pengukuran

secara langsung saat suhu ruang, keluaran LM35 adalah 0,3V (300mV). Tengan ini diolah

dengan mengunakan rangkaian pengkondisi sinyal agar sesuai dangan tahapan masukan

ADC.

LM35 memiliki karakteristik sebagai berikut:

1. Di kalibrasi langsung dalam Celsius.

2. Memiliki faktor skala linear + 10.0 mV/°C.

3. Memiliki ketetapan 0,5°C pada suhu 25°C.

4. Jangkauan maksimal suhu antara -55°C sampai 150°C.

5. Cocok untuk applikasi jarak jauh.

6. Harganya cukup murah.

7. Bekerja pada tegangan catu daya 4 sampai 30Volt.

8. Memiliki arus drain kurang dari 60 uA.

9. Pemanasan sendiri yang lambat ( low self-heating)0,08˚C diudara diam.

10. Ketidak linearanya hanya sekitar ±¼°C.

11. Memiliki Impedansi keluaran yang kecil yaitu 0,1 watt untuk beban 1 mA.

Sensor suhu tipe LM35 merupakan IC sensor temperatur yang akurat yang tegangan

keluarannya linear dalam satuan celcius. Jadi LM35 memilik kelebihan dibandingkan sensor

temperatur linear dalam satuan kelvin, karena tidak memerlukan pembagian dengan

konstanta tegangan yang besar dan keluarannya untuk mendapatkan nilai dalam satuan

celcius yang tepat. LM35 memiliki impedansi keluaran yang rendah, keluaran yang linear,

dan sifat ketepatan dalam pengujian membuat proses interface untuk membaca atau

mengotrol sirkuit lebuh mudah. Pin V+ dari LM35 dihubungkan kecatu daya, pin GND

dihubungkan ke Ground dan pin Vout- yang menghasilkan tegangan analog hasil pengindera

suhu dihubungkan ke vin (+) dan ADC 0840.

Page 19: MAKALAH MIKROPROSESOR

19

BAB 3

PERANCANGAN JAM DIGITAL DENGAN LCD 16X2

3.1 Komponen rangkaian jam digital dengan lcd 16x2

1. capacitor 10uf / 16 volt 2 Buah

2. Xtall 16 Khz 1 Buah

3. Xtall 32 Khz 1 Buah

4. Baterai CMOS dan Soket 1 Buah

5. RTC DS1307+socket 1 Buah

6. ATmega8 + socket 1 Buah

7. Push button (tombol) 3 Buah

8. Regulator 7805 1 Buah

9. LCD 16x2 1 Buah

10. LM35 1 Buah

11. resistor 1 K 1 Buah

12. resistor 10 K 2 Buah

Page 20: MAKALAH MIKROPROSESOR

20

3.2 Skematik Segment Jam Digital Dengan LCD 16X2

Page 21: MAKALAH MIKROPROSESOR

21

3.3 Tampilan Layout Jam Digital Dengan LCD 16x2

Page 22: MAKALAH MIKROPROSESOR

22

BAB 4

PENUTUP

4.1 Kesimpulan

Mikrokontroler ATMega8 dapat dirancang menjadi sebuah jam digital, Dengan rangkaian

sederhana dalam membuat sebuah rangkaian kita tentunya dituntut untuk paham dari dari

sebuah microcontroler yang kita gunakan. Pada program, waktu pertama dimulai jam

00.00.00, maka dalam awal pengoperasiannya perlu menunggu waktu tengah malam supaya

jam ini sesuai dengan waktu yang sebenarnya. Hai ni merupakan salah satu kelemahan jam

ini, namun jika kita tidak ingin menunggu waktu sampai tengah malam maka perlu ada

sedikit modifikasi pada awal program

Page 23: MAKALAH MIKROPROSESOR

23

LISTING PROGRAM

Jam.c

/***************************************************** Chip type : ATmega8

Program type : Application

Clock frequency : 12.000000 MHz

Memory model : Small

External SRAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega8.h>

#include <delay.h>

#include <stdio.h>

// I2C Bus functions

#include <i2c.h>

// DS1307 Real Time Clock functions

#include <ds1307.h>

// Alphanumeric LCD functions

#include <alcd.h>

#define ADC_VREF_TYPE 0x40

#define UP PINC.4

#define MENU PINC.5

#define DOWN PINC.3

unsigned char jam,menit,detik,ii,i,flag_detik;

int data_suhu;

int suhu;

Page 24: MAKALAH MIKROPROSESOR

24

unsigned char

suhup,suhus,jamp,jams,menitp,menits,detikp,detiks;

char lcd_buffer[33];

unsigned int read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// Start the AD conversion

ADCSRA|=0x40;

// Wait for the AD conversion to complete

while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;

return ADCW;

}

void konversi_suhu()

{suhup=data_suhu/10;

suhus=data_suhu%10;}

void konversi()

{jamp=jam/10;

jams=jam%10;

menitp=menit/10;

menits=menit%10;

detikp=detik/10;

detiks=detik%10;

}

void setting_menit()

{

lcd_clear();

while(i==1)

{

Page 25: MAKALAH MIKROPROSESOR

25

rtc_get_time(&jam,&menit,&detik);

konversi();

lcd_gotoxy(0,0);

lcd_putsf("Setting menit");

lcd_gotoxy(0,1);

sprintf(lcd_buffer,"Jam:

%d%d:%d%d:%d%d",jamp,jams,menitp,menits,detikp,detiks);

lcd_puts(lcd_buffer);

//UP=read_adc(4);

if(UP==0)

{delay_ms(500);

menit+=1;

if(menit==60)

{menit=0;}

rtc_set_time(jam,menit,detik);}

//DOWN=read_adc(3);

if(DOWN==0)

{delay_ms(500);

menit-=1;

if(menit==0xff)

{menit=59;}

rtc_set_time(jam,menit,detik);}

//MENU=read_adc(5);

if(MENU==0)

{delay_ms(500);

i=0;}}}

void setting_jam()

{i=1;

lcd_clear();

while(i==1)

{rtc_get_time(&jam,&menit,&detik);

konversi();

lcd_gotoxy(0,0);

Page 26: MAKALAH MIKROPROSESOR

26

lcd_putsf("Setting jam");

lcd_gotoxy(0,1);

sprintf(lcd_buffer,"Jam:

%d%d:%d%d:%d%d",jamp,jams,menitp,menits,detikp,detiks);

lcd_puts(lcd_buffer);

//UP=read_adc(4);

if(UP==0)

{delay_ms(500);

jam+=1;

if(jam==24)

{jam=0;}

rtc_set_time(jam,menit,detik);}

//DOWN=read_adc(3);

if(DOWN==0)

{delay_ms(500);

jam-=1;

if(jam==0xff)

{jam=23;}

rtc_set_time(jam,menit,detik);}

//MENU=read_adc(5);

if(MENU==0)

{delay_ms(500);

setting_menit();}}}

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In

Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T

State1=T State0=T

Page 27: MAKALAH MIKROPROSESOR

27

PORTB=0x00;

DDRB=0x00;

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In

Func0=In

// State6=T State5=T State4=T State3=T State2=T State1=T

State0=T

PORTC=0x38;

DDRC=0x00;

// Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out

Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0

State1=0 State0=0

PORTD=0x00;

DDRD=0xFF;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

// Mode: Normal top=0xFFFF

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

Page 28: MAKALAH MIKROPROSESOR

28

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x00;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// USART disabled

Page 29: MAKALAH MIKROPROSESOR

29

UCSRB=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 500,000 kHz

// ADC Voltage Reference: AVCC pin

ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0x81;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

// TWI disabled

TWCR=0x00;

// I2C Bus initialization

// I2C Port: PORTB

// I2C SDA bit: 2

// I2C SCL bit: 1

// Bit Rate: 100 kHz

// Note: I2C settings are specified in the

// Project|Configure|C Compiler|Libraries|I2C menu.

i2c_init();

// DS1307 Real Time Clock initialization

// Square wave output on pin SQW/OUT: On

// Square wave frequency: 1Hz

Page 30: MAKALAH MIKROPROSESOR

30

rtc_init(0,1,0);

// Alphanumeric LCD initialization

// Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD

menu:

// RS - PORTD Bit 7

// RD - PORTD Bit 5

// EN - PORTD Bit 6

// D4 - PORTD Bit 3

// D5 - PORTD Bit 2

// D6 - PORTD Bit 1

// D7 - PORTD Bit 0

// Characters/line: 16

lcd_init(16);

rtc_get_time(&jam,&menit,&detik);

if(detik>59)

{rtc_set_time(jam,menit,0);}

ii=0;

suhu=read_adc(2);

while (1)

{

//program tapil suhu

if(detik==flag_detik)

{};

if(detik!=flag_detik)

{

ii+=1;

flag_detik=detik;

}

if(ii==3)

{

suhu=read_adc(2);

ii=0;

Page 31: MAKALAH MIKROPROSESOR

31

}

data_suhu=(suhu*5)/1.024;

data_suhu=(data_suhu/10);

konversi_suhu();

lcd_gotoxy(0,0);

sprintf(lcd_buffer,"Suhu Ruangan: %d%d C",suhup,suhus);

lcd_puts(lcd_buffer);

//program tampil jam

rtc_get_time(&jam,&menit,&detik);

konversi();

lcd_gotoxy(0,1);

sprintf(lcd_buffer,"Jam:

%d%d:%d%d:%d%d",jamp,jams,menitp,menits,detikp,detiks);

lcd_puts(lcd_buffer);

//program cek tombol

//MENU=read_adc(5);

if (MENU==0)

{

delay_ms(500);

setting_jam();

}

}

}