Menuliskan angka atau huruf ke 7 Segmen
3.2. 7 Segmen
Seven segmen, merupakan sekumpulan LED yang dibangun sedemikian rupa sehingga menyerupai digit, seven segmen ada dua macam: common anoda dan common katoda.
Gambar 3.7. Rangkaian interface ke 7 segmen
Pada rangkaian tersebut dapat anda perhatikan bagian seven segmen, karena seven segmen yang digunakan adalah common anoda, maka segmen tersebut dapat nyala apabila mendapat logika '0' pada bagian katoda. Dengan kata lain untuk menghidupkan seven segmen yang terkoneksi ke mikrokontroler port paralel maka harus dioutputkan logika '0'.Sehingga pada contoh tersebut, agar dapat ditampilkan angka 3 pada seven segmen maka port P0 harus mengeluarkan data 00110000b
;Percobaan 3.5.1
;Program untuk menuliskan angka 3 pada seven segmen
Org 0h
Start: Mov P0,#00110000b ; tulis angka 3 pada 7 segmen
end
;Percobaan 3.5.2
;Program untuk menuliskan angka 8 pada seven segmen
Org 0h
Start: Mov P0,#00000000b ; tulis angkan 8 pada 7 segmen
end
;Percobaan 3.5.3
;Program untuk menuliskan angka 1,2,3,1,2,3..dst
;secara berturutan pada seven segmen
Org 0h
Start: Mov P0,#01111100b ; tulis angka 1 pada 7 segmen
Acall delay
Mov P0,#01000100b ; tulis angka 2 pada 7 segmen
Acall delay
Mov P0,#00110000b ; tulis angka 3 pada 7 segmen
Acall delay
Sjmp Start
;==============
;Subrutin Delay
;==============
Delay: Mov R0,#255 ; isi register R0 dengan 5
Delay1:Mov R1,#0FFh ; isi register R1 dengan FFh
Delay2:Mov R2,#0FFh ; isi register R2 dengan FFh
DJNZ R2,$ ; kurangi R2 dengan 1 dan loncat ke baris ini
DJNZ R0,Delay1 ; kurangi R0 dengan 1 dan loncat ke delay1 bila R0
Ret ; tidak nol
end
;Percobaan 3.5.4
;Program untuk menuliskan angka 1,2,3,1,2,3..dst pada sebuah 7 segmen
;secara berturutan pada seven segmen dengan menggunakan look up table
;bila anda bandingkan secara sekilas program 2.5.4. ini tidak ada perbedaan dari
;sisi tampilan, tetapi dari sisi program akan lebih memudahkan kita untuk
;mengganti data yang kita outputkan ke 7 segmen.
Org 0h
Start: Mov R1,#3 ; R1 = 3
Mov DPTR,#Angka ; DPTR = [ Angka ]
Next: CLR A ; A = 0
Movc A,@A+DPTR ; A = [A+ DPTR ]
Mov P0,A ; P0 = A
Inc DPTR ; DPTR = DPTR + 1
Acall delay ; Memanggil waktu tunda
DJNZ R1,Next ; R1 = R1-1, Jika R1 ≠ 0 maka lompat ke NEXT
Sjmp Start
;==============
;Subrutin Delay
;==============
Delay: Mov R0,#255 ; isi register R0 dengan 5
Delay1:Mov R1,#0FFh ; isi register R1 dengan FFh
Delay2:Mov R2,#0FFh ; isi register R2 dengan FFh
DJNZ R2,$ ; kurangi R2 dengan 1 dan loncat ke baris ini
DJNZ R0,Delay1 ; kurangi R0 dengan 1 dan loncat ke delay1 bila R0
Ret ; tidak nol
ANGKA:
DB 01111100b, 01000100b, 00110000b
end
;Percobaan 3.5.4b
;Program untuk menuliskan angka 1,2,3,4,5,6,7,8,9,0,1,2 dst pada sebuah 7 segmen
;seperti halnya pada percobaan 3.5.4 lakukan dengan menggunakan look up table
;Percobaan 3.5. 5
;Rencanakan program untuk menampilkan huruf pada sebuah 7 segmen
;A, b,C,d,E,F,g,h,i, A,b,...dst, dengan menggunakan look up table
;Percobaan 3.5.6
;Program menghidupkan 8 x 7 segmen untuk menampilkan tulisan -LAbCOn-
Org 0h
Start: Mov DPTR, #Tulisan ; DPTR = [ Tulisan ]
Mov R6, #8h ; R6 = 8
Mov R1,#01111111b ; R1 = 01111111b
Again: CLR A ; A = 0
Movc A,@A+DPTR ; A = [A+DPTR]
Inc DPTR ; DPTR = DPTR + 1
Mov P0,A ; P0 = A
Mov A, R1 ; A = R1
Mov P1,A ; P1 = A
RR A ; A = 10111111b ( putar kanan 1 bit )
Mov R1,A ; R1 = A
Acall Delay ; memanggil waktu tunda
Mov P0,#11111111b ; P0 = 11111111
Djnz R6, Again ; R6 = R6 - 1, lompat ke Again bila R6 ≠ 0
; bila R6 = 0 maka melanjutkan program selanjutnya
Sjmp Start
;
Delay: Mov R2, #0FFh
Delay1:DJNZ R2, Delay1
ret
Tulisan: DB 00111111b, 01000111b, 00001000b, 00000011b
DB 01000110b, 01000000b, 01001000b, 00111111b
End
;Percobaan 3.5.7
;Rencanakan program untuk tulisan yang bergerak
1 comment:
bagus sekali artikelnya pak.
Saya ingin tanya sedikit masalah 7Segment ini, bagai mana rangkaian dan program untuk menampilkan angka pada layar 15 x 7Segment dengan menggunakkan pararel port (LPT) atau serial (COM)?. sehingga jika kita menuliskan anggka di keyboard display tersebut akan menampilkannya secara langsung apa yang kita tuliskan (angka). apa bisa menggunakkan VB?
Post a Comment