You are on page 1of 7

Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT ...

Lainnya

http://elektro-kontrol.blogspot.co.id/2011/06/program-mengakses-seve...

Blog Berikut»

hakim.haerul@gmail.com

Dasbor

Keluar

AVR for Dummies...

Home

AVR Tutorials

AVR Projects

Miscellaneous

AVR Downloader

Free Ebooks

Free Softwares

Senin, 27 Juni 2011

Informasi

PROGRAM MENGAKSES SEVEN SEGMENT
MENGGUNAKAN CODEVISION AVR

Jika ada link file program yang
sudah rusak dan ada pertanyaan
atau saran.
Silakan menghubungi saya lewat
email kontrol.elektro@gmail.com

Sebelumnya teman-teman harus mengerti terlebih dahulu tentang dasar-dasar dari
seven segment. Sebenarnya seven segment tersusun dari 8 buah led yang dibentuk
menyerupai angka 8 yang terdiri dari 7 segmen dan ditambah 1 segmen berupa titik
(dot). Untuk mendapatkan datasheet penampil seven segment silakan download
disini.

Pencarian di Blog ini

Seven segment terdiri dari 2 jenis konfigurasi yaitu katoda bersama atau common
cathoda (CC) dan anoda bersama atau common anoda (CA) .

Translate this Blog
Translate
this
blog
from
Indonesian to the following
language!

Edited by Elektro-Kontrol

Dari gambar diatas teman-teman tentu sudah dapat langsung bisa membedakannya.
Jika common cathoda, dimana sisi katoda pada LED tiap segmennya digabungkan
(common) sehingga sering disebut katoda bersama. Sedangkan jika common anoda,
pada sisi anoda pada LED tiap segmennya digabungkan sehingga sering disebut
katoda bersama.
Antara CC (common cathoda) dan CA (common anoda) mempunyai perbedaan
yang mendasar yaitu cara untuk mengaktifkan/menyalakan tiap segmennya.
Untuk CC agar segmennya dapat menyala harus diberi logika HIGH (misalnya 5V),
sedangkan untuk CA agar segmennya dapat menyala harus diberi logila LOW
(GND).
Berikut adalah cara untuk menampilkan angka pada CA dan CC, disini saya akan
menampilkan angka 7 (tujuh).

Ada kesalahan di dalam gadget ini

Entri Terpopuler
CARA MELAKUKAN SIMULASI
MENGGUNAKAN SOFTWARE
PROTEUS
TIMER DAN COUNTER AVR
USB DOWNLOADER AVR USBasp
SUPPORT CODEVISION AVR
MEMBUAT SINYAL PWM
MENGGUNAKAN TIMER AVR
PENGHITUNG KECEPATAN

1 dari 7

14/04/2016 20.34

b (bit1) dan c (bit2) dengan memberikan logika LOW (GND). digit3 dan digit4. dengan melakukan scanning secara cepat (biasanya 25x dalam 1 detik). Sekarang saya akan menjelaskan bagaimana cara kerja seven segment jika di-interface-kan dengan mikrokontroler.34 .com Follow by Email Follower with Google Friend Connect Members (58) More » TABEL 1 Sekarang teman-teman sudah tahu bagaimana cara membentuk tampilan angka pada seven segment. dimana untuk menampilkan angka 7 harus menyalakan segment a (bit0). Metode inilah yang dinamakan scanning.Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT . Dan pada prinsipnya cara kerja seven segment dilakukan secara scanning yaitu “jika ingin menampilkan 2163. teman-teman hanya tinggal menyesuaikannya sesuai keinginan dengan menyalakan segment yang diinginkan. digit3 dan digit4 dan seterusnya sampai menampilkan angka 3 pada digit4″. b (bit1) dan c (bit2) dengan memberikan logika HIGH (5V atau VCC). Sedangkan untuk CC merupakan kebalikan dari CA. Dimisalkan saya ingin menampilkan angka 2163 pada seven segment. http://elektro-kontrol. Selain dari itu seven segment dapat pula dibentuk karakter selain angka.blogspot.. digit2=1. Kemudian saya akan menampilkan angka 1 pada seven segment digit2 dengan mematikan digit1. maka mata kita tidak akan bisa mengikuti scanning 2 dari 7 Already a member? Sign in Jam Digital Hits 14/04/2016 20... Arsip Blog ► 2012 (2) ▼ 2011 (36) Oktober (2) Juli (1) Juni (33) Contact Us kontrol.elektro@gmail..co.id/2011/06/program-mengakses-seve. maka saya akan menampilkan angka 2 terlebih dahulu pada seven segment digit1 (digit ke1) dengan mematikan digit2. MOTOR DC MENGGUNAKAN OPTOCOUPLER DENGAN CODEVISION AVR ANALOG TO DIGITAL CONVERTER (ADC) USB DOWNLOADER AVRISP MK II SUPPORT CODEVISION AVR Kategori AVR Downloaders (3) AVR Projects (19) AVR Tutorials (9) miscellaneous (7) Dari gambar diatas terlihat jelas bahwa untuk menampilkan angka 7 pada CA harus menyalakan segment a (bit0). digit3=6 dan digit4=3). Dari penjelasan diatas dapat dibuat tabel untuk menampilkan angka dari 0-9. maka saya akan membutuhkan 4 buah seven segment (digit1=2.

seven segment tersebut sehingga seolah-olah mata kita akan melihat bahwa semua seven segmen (digit1-digit4) menyala secara bersamaan. DDRD=0x0f. mengapa kita menggunakan metode scanning? Jawabannya dikarenakan metode scanning dapat mengurangi konsumsi daya listrik dibandingkan dengan menyalakan semua seven segment.//mengirimkan data untuk angka 1 PORTD=0b11111011. Saya sarankan untuk menggunakan seven segment tipe CA karena nantinya mikrokontroler bersifat sebagai sinking.//menyalakan digit1 delay_ms(5). digit2. // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0×80...blogspot.h> #include <delay. 573675 Pertanyaaannya.h> char digit1. digit1=0xa4. digit3. Berikut adalah schematic dan listing program lengkapnya: #include <mega16.//hexa untuk angka 6 digit4=0xb0.//mengirimkan data untuk angka 6 PORTD=0b11111101. Untuk lebih jelasnya baca pada postingan Sinking Vs Sourching output.//mengirimkan data untuk angka 2 PORTD=0b11110111. PORTC=digit3. SFIOR=0×00.//hexa untuk angka 2 digit2=0xf9.co.//hexa untuk angka 1 digit3=0×82.//menyalakan digit2 delay_ms(5). PORTC=digit2.Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT .34 . void main(void) { PORTC=0xff. sehingga tidak banyak input/output yang terpakai untuk mengakses seven segment.//menyalakan digit3 3 dari 7 14/04/2016 20.//hexa untuk angka 3 while (1) { PORTC=digit1. DDRC=0xff. Baiklah berikut adalah aplikasi menampilkan angka 2163 menggunakan mikrokontroler dengan seven segment tipe common anoda (CA).. Dan yang paling penting yaitu dapat menghemat pemakaian pin-pin mikrokontroler. PORTD=0x0f.. http://elektro-kontrol.id/2011/06/program-mengakses-seve. digit4.

jika kita menggunakan LCD 2×16 maka akan sangat mudah sekali menampilkannya. Caranya adalah: Dengan melakukan pembagian dengan angka 10 sebanyak 4 kali. http://elektro-kontrol. hasilnya adalah 2 dan menghasilkan sisa pembagian yaitu 1. dengan cara yang sama.Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT .. ratusan. data dibagi 10 lagi. Pertanyaannya. void tampil_7segment() { PORTC=ribuan. Rangkaiannya masih sama seperti gambar diatas. //lamanya waktu scanning ditentukan oleh intruksi delay }. hasilnya adalah 0 dan menghasilkan sisa pembagian yaitu 2. data dibagi 10.//mengirimkan data untuk angka 3 PORTD=0b11111110. data=2163.//menyalakan digit4 delay_ms(5). Tetapi tenang saja. PORTC=digit4.h> #include <delay.//mengirimkan data ribuan PORTD=0b11110111. ratusan dan ribuan.blogspot. disini saya akan menjelaskan tentang kesulitan yang akan dihadapi jika menggunakan penampil seven segment. satuan. angka 6 tersebut kemudian disimpan kedalam variabel puluhan. Sekarang saya akan memberikan sebuah solusi dari permasalahan diatas untuk menampilkan isi dari sebuah variabel ke dalam seven segment. int data.. Pada program diatas kita membuat aplikasi untuk menampilkan angka 2163 pada keempat buah seven segment dengan mengirimkan datanya secara langsung ke setiap seven segment. angka 2 tersebut kemudian disimpan kedalam variabel ribuan. angka 1 tersebut kemudian disimpan kedalam variabel ratusan. Berikut adalah listing program lengkapnya untuk mengatasi masalah diatas. ubah. delay_ms(5).h> int data.co. dimana sisa dari pembagian tersebut akan ditampilkan berupa satuan. puluhan. } Mudah bukan untuk mengakses seven segment? Tapi jangan senang dulu.id/2011/06/program-mengakses-seve. bagaimana jika kita ingin menampilkan isi dari sebuah variabel ke dalam seven segment? Misalnya saya punya sebuah variabel dengan nama data yang bernilai 2163.//menyalakan digit1 4 dari 7 14/04/2016 20. hasilnya adalah 21 dan menghasilkan sisa pembagian yaitu 6.34 . Jika dalam program menjadi seperti ini. sekarang data=216 (karena sudah bagi 10 sebelumnya). char ribuan. hasilnya adalah 216 dan menghasilkan sisa pembagian yaitu 3. Untuk dapat mengimplementasikannya keprogram dibutuhkan sebuah intruksi % (dalam bahasa C adalah operator untuk operasi sisa pembagian). puluhan. #include <mega16.//variabel nilai berisi 2163 Cukup sulit bukan jika ditampilkan kedalam seven segment. data_temp. sekarang data=21 data dibagi 10 lagi. sekarang data=2 data dibagi 10 lagi.. angka 3 tersebut kemudian disimpan kedalam variabel satuan.//mendeklarasikan tipe data data=2163.. disini saya akan menjelaskan cara mengatasi permasalahan diatas dengan menggunakan beberapa tambahan algoritma pemrograman.

// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0×80. http://elektro-kontrol.//menyalakan digit4 delay_ms(5). ratusan=ubah.//mengirimkan data satuan PORTD=0b11111110.} if (ubah==7){ubah=0xf8.//panggil fungsi mengubah kedalam format 7segment satuan=ubah.} if (ubah==5){ubah=0×92. data_temp=data_temp/10.} if (ubah==6){ubah=0×82.} if (ubah==3){ubah=0xb0. while (1) { data_temp=data. SFIOR=0×00. puluhan=data_temp%10. data=2163. PORTC=satuan. PORTC=puluhan. PORTC=ratusan. ubah_ke_format7segment().co.//menyalakan digit2 delay_ms(5). satuan=data_temp%10. DDRD=0x0f. delay_ms(5).. //lamanya waktu scanning ditentukan oleh intruksi delay } void ubah_ke_format7segment()//fungsi untuk mengubah kedalam format 7segment { if (ubah==0){ubah=0xc0.Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT . ubah=ratusan. data_temp=data_temp/10. puluhan=ubah.//mengirimkan data puluhan PORTD=0b11111101.} if (ubah==1){ubah=0xf9. ubah=puluhan..//mengirimkan data ratusan PORTD=0b11111011.id/2011/06/program-mengakses-seve. PORTD=0x0f..} if (ubah==2){ubah=0xa4. ratusan=data_temp%10.} if (ubah==8){ubah=0×80. DDRC=0xff.34 .//menyalakan digit3 delay_ms(5).} if (ubah==4){ubah=0×99. ubah_ke_format7segment().} } void main(void) { PORTC=0xff.//sisa dari pembagian disimpan di variabel satuan ubah=satuan. 5 dari 7 14/04/2016 20.blogspot.} if (ubah==9){ubah=0×90.. ubah_ke_format7segment().

Terima kasih Balas Akabri_udara 19 April 2012 08..co.. Balas erick 16 Februari 2012 10.. Balas Anonim 6 Januari 2012 11. ribuan=data_temp%10....ditunggu posting berikutnya.08 boleh belajar seven segmen dsini g? Balas Anonim 4 Desember 2011 18.. } Diterbitkan oleh Elektro Kontrol pada 6/27/2011 05:12:00 PM Tanggapan: kategori: AVR Tutorials 8 komentar: joebae 10 November 2011 16.19 makasih. tampil_7segment()... ubah_ke_format7segment(). ubah=ribuan...35.. http://elektro-kontrol. Kita gunakan 4 digit seven segment. ribuan=ubah. bagaimana caranya nampilin di seven segment jika datanya berupa data float.//fungsi untuk menampilkan ke 7segment }.39 mau tanya mas.id/2011/06/program-mengakses-seve..34 .15 thanks gan.trus q pake clear ru bisa nyala sesuai dg angka yg d tampilkan.. Misal datanya 10. data_temp=data_temp/10.16 bang q coba malah ada sebagian segmen(sell)yg g nyala.39 MANTAPS. tambah referensi nih..Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT ...blogspot. hehehe di tunggu posting barunya Sip! Balas Darryl ganb 25 September 2013 01. mantap.. Balas Anonim 3 Januari 2013 19.12 thank You infonya gan. mantab 6 dari 7 14/04/2016 20.

Diberdayakan oleh Blogger. 7 dari 7 14/04/2016 20.com. http://elektro-kontrol.id/2011/06/program-mengakses-seve.. All Rights Reserved.co.. Balas Beri komentar sebagai: Beri tahu saya Publikasikan Posting Lebih Baru Beranda Posting Lama Langganan: Poskan Komentar (Atom) Copyright © Elektro-Kontrol 2011. Balas Anonim 3 Juli 2014 01.elektro@gmail. Template Ethereal.. Contact Us: kontrol.blogspot.34 .58 Nyimak gan.Elektro-Kontrol: PROGRAM MENGAKSES SEVEN SEGMENT ..