Tutorial Microcontroller MCS-51 ATMEL ISP

Pelatihan Mikrokontroller

 

Microcontroller Kits

Programmer and Target 89s51

Simple Mikrokontroller 89s51 Trainer


Standart
Mikrokontroller 89s51 Trainer

Super Mikrokontroller Trainer 89s51

All Kits

+
Programmer
Serial

 

 

 

 

 

PERCOBAAN 11
I N T E R U P S I


TUJUAN
1. Mahasiswa memahami sistem interupsi pada mikrokontroller
2. Mahasiswa dapat menerapkan sistem interupsi pada pembuatan jam digital
3. Mahasiswa dapat memahami penggunakan bahasa assembly untuk penggunakan sistem interupsi

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.

Source
Vector Address
IE0
0003H
TF0
000BH
IE1
0013H
TF1
001BH
RI + TI
0023H

 

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.

 


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

Pada percobaan akan dibangkitkan clock untuk jam digital, hanya bagian detik puluhan (display 1) dan detik satuan (display 2) pada 7 segmen
Pada mode ini, dengan kristal 12MHz maka timer akan overflow setiap 65.536 udetik. Pada percobaan ini, untuk membangkitkan interupsi setiap 50000 udetik maka data yang harus diisikan pada register TL1 dan TH1 adalah sebagai berikut:
65536 - 50000 = 15536 d or 3CB0h
Maka interupsi TF1 akan segera dibangkitkan setiap 50000 x 1 udetik = 0,05 detik
pada pemrograman ini, RO diimplementasikan sebagai counter software, Register R0 akan increment setiap Timer 1 overflow. Jika register R7 telah mendeteksi nilai 50 maka port P0.0 ( LED D0 ) akan nyala selama = 0,05 x 20 detik = 1 detik

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 prog111a.asm)

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
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 detik yang ditampilkan apakah sesuai dengan jam konvensional.

Display Detik (:DD)
Jam Konvensional (Detik)
1
 
2
 
3
 
4
 
5
 
:
 
60
 

NEXT

Komentar, pertanyaan dan diskusi tentang topik tersebut. Klik disini

 

 
HARDWARE
1.Target
2.Programmer

a. Parallel
b. Serial

DASAR TEORI
1.Organisasi Mem.
1.1. Mem.Data
1.2. Mem.Prog
1.4. SFR 2.Pengalamatan 3.Set Instruksi
3.1.Copy Data
3.2.Aritmatika
3.3.Logika
3.4.Lompatan 4.Interupsi 5.Timer Counter 6.Serial Kom. 7.Bahasa Assemb. 8.Perangkat Lunak MIDE dan ISP Soft.

PERCOBAAN 1
LED

PERCOBAAN 2
SAKLAR

PERCOBAAN 3
7 Segmen

PERCOBAAN 4
LCD Character

PERCOBAAN 5
ADC 0804

PERCOBAAN 6
DAC0808

PERCOBAAN 7
Keypad 4x4

PERCOBAAN 8
Motor Stepper

PERCOBAAN 9
Timer Counter

PERCOBAAN 10
Komunikasi Serial

PERCOBAAN 11
Interupsi

PERCOBAAN 12
Keyboard PC

PERCOBAAN 13
Printer Dot Matr.

PERCOBAAN 14
RTC12C887

PERCOBAAN 15
P W M

PERCOBAAN 16
Motor DC

PERCOBAAN 17
EEPROM 2408

APLIKASI