![]() |
||||||||||||||||||||||||||||||||
|
Microcontroller Kits Simple
Mikrokontroller 89s51 Trainer
Super
Mikrokontroller Trainer 89s51 All Kits +
|
PERCOBAAN 11
Pada mikrokontroller menyediakan 5 buah sumeber interupsi, 2 buah interupsi eksternal, 2 buah interupsi timer, dan 1 buah interupsi serial. Agar interupsi dapat dilayani maka instruksi assembly harus ditempatkan pada alamat vektor berikut, sesuai dengan sumber interupsi yang akan digunakan.
Org 0000h
Ljmp Start
Org 000bh
Ljmp Timer0Interupt
Start: ; Instruksi Rutinitas
; Instruksi Rutinitas
; Instruksi Rutinitas
Sjmp Start; { Looping Forever }
;
Timer0Interupt:
:
:
Reti
End
Pada contoh instruksi pemrograman tersebut tampak, apabila tidak ada interupsi maka program akan menuju ke start dan menjalankan rutinitas-rutinitas secara terus menerus, tetapi apabila suatu interupsi yang dibangkitkan oleh overflow timer 0 terjadi, maka program yang semula bersarang pada rutinitas akan melompat pada alamat vektor 0bh (alamat interupsi timer 0) dan melompat ke subrutine interupsi Timer0Interupt.
Pada percobaan akan dibangkitkan clock untuk jam digital,
hanya bagian detik puluhan (display 1) dan detik satuan (display 2)
pada 7 segmen Untuk melakukan percobaan ini lakukan beberapa langkah
sebagai berikut:
detik equ 30h
detikpuluhan equ 31h
detiksatuan equ 32h
counter20 equ 33h
;
Org 0h
sjmp Start
Org 0bh
Ljmp Interrupt_Timer0
;
Start:
mov detik,#0
call InitTimer
;
Forever:
call ClockDisplay
sjmp Forever ;
;
Interrupt_Timer0:
mov tl0,#0b0h
mov th0,#03ch
djnz Counter20, EndInterrupt
mov Counter20,#20
call DoClock
EndInterrupt:
reti
;
DoClock:
inc detik
mov A,detik
cjne A,#60,Update
mov detik,#0
Update:mov A,detik
mov B,#10
DIV AB
mov detikpuluhan,A
mov detiksatuan,B
ret
;
ClockDisplay:
Mov DPTR,#Decoder7Segmen
mov A,detiksatuan
Movc A,@A+DPTR
mov P0,A
clr P3.5 ;
Setb P3.6
Setb P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,detikpuluhan
Movc A,@A+DPTR
mov P0,A
;
Setb P3.5 ;
clr P3.6
Setb P3.7
call delay
ret
;
InitTimer:
mov TMOD,#00000001b
mov tl0,#0b0h
mov th0,#03ch
setb ET0 ;Enable Timer 0 Interrupt
setb EA ;Master Interrupt Enable
setb TR0 ;Clock start running
ret
;
;===============================
;subroutine delay time
;===============================
delay: mov R1,#2
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
;========================================
; L O O K U P T A B L E
; Decode to Seven Segmen -> g f e d c b a
;========================================
Decoder7Segmen:
DB 11000000b,11111001b,10100100b,10110000b,10011001b
DB 10010010b,10000010b,11111000b,10000000b,10010000b
;
End
6. Simpanlah program yang anda ketik dan beri nama
: prog111a.asm
Komentar, pertanyaan dan diskusi tentang topik tersebut. Klik disini
|
HARDWARE PERCOBAAN 1 PERCOBAAN 2 PERCOBAAN 3 PERCOBAAN 5 PERCOBAAN 6 PERCOBAAN 7 PERCOBAAN 8 PERCOBAAN 9 PERCOBAAN 10 PERCOBAAN 11 PERCOBAAN 12 PERCOBAAN 13 PERCOBAAN 14 PERCOBAAN 15 PERCOBAAN
16 PERCOBAAN
17
|
||||||||||||||||||||||||||||||