MEMBANGKITKAN CLOCK PADA JAM DIGITAL MM:DD (INTERUPSI TIMER)

Membangkitkan clock pada jam digital MM:DD dengan memanfaatkan interupsi timer 0.

Pada percobaan akan dibangkitkan clock untuk jam digital untuk detik dan menit pada 7 segmen
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini: (download file prog112a.asm)

detik equ 30h detikpuluhan equ 31h detiksatuan equ 32h menit equ 33h menitpuluhan equ 34h menitsatuan equ 35h counter20 equ 36h ;
Org 0h sjmp Start Org 0bh Ljmp Interrupt_Timer0 ; 
Start: mov detik,#0 mov menit,#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 satumenit: inc menit mov A,#60 cjne A,menit,Update mov menit,#0
Update:mov A,detik mov B,#10 DIV AB mov detikpuluhan,A mov detiksatuan,B ; 
mov a,menit mov b,#10 div ab mov menitpuluhan,A mov menitsatuan,B ret ; 
ClockDisplay: Mov DPTR,#Decoder7Segmen mov A,menitpuluhan Movc A,@A+DPTR mov P0,A clr P3.5 ; 
clr P3.6 clr P3.7 call delay ; 
Mov DPTR,#Decoder7Segmen mov A,menitsatuan Movc A,@A+DPTR mov P0,A setb P3.5 ; 
clr P3.6 clr P3.7 call delay ; 
Mov DPTR,#Decoder7Segmen mov A,detikpuluhan Movc A,@A+DPTR mov P0,A clr P3.5 ; 
setb P3.6 clr P3.7 call delay ; 
Mov DPTR,#Decoder7Segmen mov A,detiksatuan Movc A,@A+DPTR mov P0,A setb P3.5 ; 
Setb P3.6 clr 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 : prog112a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan untuk data waktu yang ditampilkan.

Display Detik (:DD)
Jam Konvensional (Detik)
00:01
00:02
00:03
00:04
:
01:59

Percobaan 11.3. Membangkitkan clock down MM:DD dengan memanfaatkan interupsi timer 0.

Pada percobaan akan dibangkitkan clock dengan hitungan mundur dari menit 60 detik 60 untuk detik dan menit pada 7 segmen
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini: (download file prog113a.asm)

detik equ 30h detikpuluhan equ 31h detiksatuan equ 32h menit equ 33h menitpuluhan equ 34h menitsatuan equ 35h counter20 equ 36h ;
Org 0h sjmp Start Org 0bh Ljmp Interrupt_Timer0 ; Start: mov detik,#60 mov menit,#59 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: dec detik mov A,detik cjne A,#0,Update mov detik,#60 satumenit: dec menit mov A,#0 cjne A,menit,Update mov menit,#60
Update:mov A,detik mov B,#10 DIV AB mov detikpuluhan,A mov detiksatuan,B ; 
mov a,menit mov b,#10 div ab mov menitpuluhan,A mov menitsatuan,B ret ; 
ClockDisplay: Mov DPTR,#Decoder7Segmen mov A,menitpuluhan Movc A,@A+DPTR mov P0,A clr P3.5 ; 
clr P3.6 clr P3.7 call delay ; 
Mov DPTR,#Decoder7Segmen mov A,menitsatuan Movc A,@A+DPTR mov P0,A setb P3.5 ; 
clr P3.6 clr P3.7 call delay ; 
Mov DPTR,#Decoder7Segmen mov A,detikpuluhan Movc A,@A+DPTR mov P0,A clr P3.5 ; 
setb P3.6 clr P3.7 call delay ; 
Mov DPTR,#Decoder7Segmen mov A,detiksatuan Movc A,@A+DPTR mov P0,A setb P3.5 ; 
Setb P3.6 clr 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

10. Simpanlah program yang anda ketik dan beri nama : prog113a.asm
11. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
12. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
13. Lakukan pengamatan untuk data waktu yang ditampilkan.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s