Program untuk menjalankan 7Segment
Kali ini kita akan belajar pemrograman mikro untuk menjalankan
7segmet, tapi sebelumnya apa itu 7Segment….?? 7Segment merupakan sebuah
display yang dapat menampilkan angka maupun huruf(tapi terbatas) dan isi
dari 7Segment ini tidak lain adalah LED, ya pada dasarnya merupakan LED
yang disusun menjadi sebuah display dan diletakkan didalam casing.
Seperti artikel yang lalu dalam perograman 7Segment kita juga harus menghitung nilai biner ataupun hexa nya dengan cara bagaimana???
ini saya berikan tabel untuk menghitungnya dan sudah saya beri penjelasan disampingnya mengapa harus diberlakukan seperti itu.
Oh iya 7Segment memiliki 2 tipe yaitu common katoda(-) dan common anoda(+) nah dalam kasus ini karena mikro aktif low maka kita menggunakan 7 segment common anoda(+) jadi mikro akan memberikan logika (0) atau Low untuk menghidupkan LED yang terdapat didalam 7Segment tersebut nah gambar rangkaian nya seperti berikut ini
nah ini saya berikan contoh programnya:
$MOD51
;Program ini untuk menghidupkan display LED 7SEGMENT, untuk menampilkan
;angka 0 s/d 9
;===============================================================================
ORG 0H
MULAI:
MOV P0,#0C0H ;KELUARKAN KODE ANGKA 0 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0F9H ;KELUARKAN KODE ANGKA 1 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0A4H ;KELUARKAN KODE ANGKA 2 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0B0H ;KELUARKAN KODE ANGKA 3 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#99H ;KELUARKAN KODE ANGKA 4 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#92H ;KELUARKAN KODE ANGKA 5 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#82H ;KELUARKAN KODE ANGKA 6 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0F8H ;KELUARKAN KODE ANGKA 7 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#80H ;KELUARKAN KODE ANGKA 8 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#90H ;KELUARKAN KODE ANGKA 9 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
SJMP MULAI
;===================
;SUBRUTIN DELAY
;——————-
DELAY: MOV R0,#0FH ;ISI REGISTER R0 DENGAN 15
DELAY1: MOV R1,#0FFH ;ISI REGISTER R1 DENGAN FF (HEX)
DELAY2: MOV R2,#0
DJNZ R2,$
DJNZ R1,DELAY2 ;KURANGI R1 DENGAN 1,BILA HASIL BELUM
;SAMA DENGAN 0 MAKA LOMPAT KE DELAY2
DJNZ R0,DELAY1 ;KURANGI R0 DENGAN 1,BILA HASIL
;BELUM SAMA DENGAN 0 MAKA LOMPAT KE DELAY1
RET ;KEMBALI KEALAMAT SETELAH PERINTAH
;”ACALL DELAY”
END
oke selamat mencoba
Seperti artikel yang lalu dalam perograman 7Segment kita juga harus menghitung nilai biner ataupun hexa nya dengan cara bagaimana???
ini saya berikan tabel untuk menghitungnya dan sudah saya beri penjelasan disampingnya mengapa harus diberlakukan seperti itu.
Oh iya 7Segment memiliki 2 tipe yaitu common katoda(-) dan common anoda(+) nah dalam kasus ini karena mikro aktif low maka kita menggunakan 7 segment common anoda(+) jadi mikro akan memberikan logika (0) atau Low untuk menghidupkan LED yang terdapat didalam 7Segment tersebut nah gambar rangkaian nya seperti berikut ini
nah ini saya berikan contoh programnya:
$MOD51
;Program ini untuk menghidupkan display LED 7SEGMENT, untuk menampilkan
;angka 0 s/d 9
;===============================================================================
ORG 0H
MULAI:
MOV P0,#0C0H ;KELUARKAN KODE ANGKA 0 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0F9H ;KELUARKAN KODE ANGKA 1 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0A4H ;KELUARKAN KODE ANGKA 2 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0B0H ;KELUARKAN KODE ANGKA 3 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#99H ;KELUARKAN KODE ANGKA 4 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#92H ;KELUARKAN KODE ANGKA 5 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#82H ;KELUARKAN KODE ANGKA 6 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#0F8H ;KELUARKAN KODE ANGKA 7 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#80H ;KELUARKAN KODE ANGKA 8 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
MOV P0,#90H ;KELUARKAN KODE ANGKA 9 PORT 0
ACALL DELAY ;PANGGIL SUBRUTIN DELAY
SJMP MULAI
;===================
;SUBRUTIN DELAY
;——————-
DELAY: MOV R0,#0FH ;ISI REGISTER R0 DENGAN 15
DELAY1: MOV R1,#0FFH ;ISI REGISTER R1 DENGAN FF (HEX)
DELAY2: MOV R2,#0
DJNZ R2,$
DJNZ R1,DELAY2 ;KURANGI R1 DENGAN 1,BILA HASIL BELUM
;SAMA DENGAN 0 MAKA LOMPAT KE DELAY2
DJNZ R0,DELAY1 ;KURANGI R0 DENGAN 1,BILA HASIL
;BELUM SAMA DENGAN 0 MAKA LOMPAT KE DELAY1
RET ;KEMBALI KEALAMAT SETELAH PERINTAH
;”ACALL DELAY”
END
oke selamat mencoba
Tidak ada komentar:
Posting Komentar