Membuat Program 4 Digit 7Segmen Atmega16

Kali ini saya ingin membagikan tutorial pemrograman 4 digit 7Segmen, dimana hanya 2 port pada mikrokontroler Atemga16 yang digunakan, hal ini sangat menguntungkan jika agan banyak membutuhkan I/O untuk rangkaian yang laen, cara kerjanya yaitu, memunculkan angka tiap 7Segmen secara bergantian, karena kecepatan mikrokontroler untuk memunculkan 7Segmen secara bergantian sangat cepat. jadi, 4 digit 7Segmen terlihat utuh,

so lagsung saja, berikut gambar rangkaian simulasi :



dan berikut coding program 4 digit 7Segmen dengan bascom-Avr :

$regfile = "m16def.dat"
$crystal = 8000000

Config Portc = Output
Config Portd = Output

Dim N As Integer
Dim O(4) As Integer
Dim M(4) As Byte
Dim U As Byte , W As Byte

M(1) = 1
M(2) = 2
M(3) = 4
M(4) = 8

N = 2013

Do
O(1) = N / 1000

O(2) = N Mod 1000
O(2) = O(2) / 100

O(3) = N Mod 100
O(3) = O(3) / 10

O(4) = N Mod 10

For W = 1 To 20
For U = 1 To 4
Portd = M(u)
Portc = Lookup(o(u) , Segmen)
Waitms 1
Next U
Next W
Loop

Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90

keterangan:
N = merupakan variabel untuk menampilkan angka yang diinginkan  "agan dapat merubah-ubah valuenya secara pengurangan(decr), penambahan(incr), dll
W = merupakan variabel untuk delay dengan manual, anda bisa merubahnya jika ingin membuat delaynya lebih lama / sebentar.
O(4) = merupakan variabel index output
M(4) = merupakan varibel untuk mengaktifkan 7Segmen secara bergantian

download http://adf.ly/1ZKzvK
Password Rar: ganyang-angkara.blogspot.com

moga bermanfaat bagi agan-agan yang ingin mencobanya,
moga berhasil mencobanya..

*..sesama blogger harus saling menghargai, jika agan-agan ingin mengcopas harap cantumkan alamat urlnya, Terimakasih..*