logo

Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.
[email protected]
+1234567890
 

Tutorial Microcontroller MCS-51 ATMEL ISP

Tutorial Microcontroller MCS-51 ATMEL ISP


image

Microcontroller Kits

Programmer and Target 89s51
image

Simple Mikrokontroller 89s51 Trainer
image

Standart
Mikrokontroller 89s51 Trainer
image

Super Mikrokontroller Trainer 89s51
image

Dot matrix Trainer
ATMEGA8

image

All Kits

Programmer via USB Port

image

 

PERCOBAAN 10
PORT SERIAL

TUJUAN
1. Mahasiswa memahami rangkaian interface port serial
2. Mahasiswa memahami mengkonfigurasikan komunikasi serial pada port serial PC
3. Mahasiswa memahami penulisan bahasa assembly untuk konfigurasi port serial
4. Mahasiswa memahami penulisan pemrograman delphi untuk komunikasi dengan mikrokontroller.

Salah satu komunikasi yang paling ampuh untuk diimplementasikan dalam sistem komunikasi digital adalah komunikasi dengan memanfaatkan jalur serial RS232. Mikrokontroller 89s51 telah memiliki fasilitas UART, sehingga dapat melakukan komunikasi secara serial dengan level RS2322 antar peralatan atau dengan komputer. MAX232 merupakan IC yang difungsikan untuk merubah format TTL ke RS232 atau sebaliknya.

Gambar 10.1 Sistem komunikasi serial mikrokontroller dengan PC

Gambar 10.2. Rangkaian skematik MAX232

Konfigurasi komunikasi serial dengan Hyperterminal
Pengujian sistem komunikasi antara mikrokontroller dengan port serial computer dapat dilakukan dengan memanfaatkan program hyperterminal pada sistem yang berbasis under windows ( 98, ME dan XP ). Kelebihan penggunakan program ini, tidak diperlukan suatu bahasa pemrograman dan kelemahannya, terbatas hanya pada proses pengujian.. Adapan cara mengkonfigurasikannya adalah sebagai berikut:

Gambar 10.1 Pemilihan menu communication pada Accessories

Gambar 10.2 Pemilihan menu HyperTerminal pada communication

Gambar 10.3. (a) Pemberian nama koneksi (b) Pemilihan koneksi pada COM1

Gambar 10.4. (a) Properties serial komunikasi (b) windows HyperTerminal

 

Percobaan 10.1. Mengambil Data Karakter dari ROM dan Display ke Monitor dengan Hyperterminal.

Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan kabel serial dari board Trainer ke Port Comm PC
2. Buat komunikasi dengan Hyperterminal
3. Ketik program asembly berikut ini:

    org 0h           nop           call initserial           mov dptr,#MyCharactergets: clr A           Movc A,@A+dptr           cjne A,#0,Next           sjmp getoutNext: call sendout           inc dptr           sjmp getsgetout: sjmp getout           ;initserial:           mov scon,#52h ; Konfigurasi komunikasi serial mode 1           mov tmod,#20h ; Baud rate 2400 BPS           mov th1,#0F3H           setb tr1           ret           ;inchar:detecti: jnb ri,detecti ; Deteksi bit RI apakah data sudah diterima  atau belum            clr ri           mov a,sbuf           Subb A,#30h           Mov R0,A           ret           ;Sendout:detecto: jnb ti,detecto;            clr ti ;            mov sbuf,a ;            ret
MyCharacter:           DB ' Selamat Datang Di Pelatihan Mikrokontroller',13,10,0           End

4. Simpanlah program yang anda ketik dan beri nama : hiper1a.asm
5. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
6. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
7. Lakukan pengamatan pada Layar Hyper Terminal

Gambar 10.4. Tampilan data pembacaan dari ROM

Percobaan 10.2. Pengendalian LED dengan menggunakan Hyperterminal

Pada percobaan ini LED dihidupkan sesuai dengan karakter (1 –2 – 4 ) yang diterima dari keyboard PC.
Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan jumper konektor ke LED_EN
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program Hyperterminal dan inputkan angka 0 s/d 9
5. Ketik program asembly berikut ini:

org 0h           nop           call initserial           mov dptr,#MyCharactergets: clr A           Movc A,@A+dptr           cjne A,#0,Next           sjmp getinNext: call sendout           inc dptr           sjmp getsgetin: call inchar           cjne A,#'1',next1           mov P0,#11111110bnext1: cjne A,#'2',next2           mov P0,#11111101bnext2: cjne A,#'4',next3           mov P0,#11111011bnext3: sjmp getin           ;initserial:           mov scon,#52h ; Konfigurasi komunikasi serial mode 1           mov tmod,#20h ; Baud rate 2400 BPS           mov th1,#0F3H           setb tr1           ret           ;inchar:detecti: jnb ri,detecti ; Deteksi bit RI apakah data sudah diterima  atau belum            clr ri           mov a,sbuf           ret           ;Sendout:detecto: jnb ti,detecto;            clr ti ;            mov sbuf,a ;            ret           ;MyCharacter:           DB ' Tekan Tombol 1, 2 atau 4',13,10,0           End       

Gambar 10.5. Menu pilihan tombol

6. Lakukan penekanan tombol 1, 2 atau 4

Percobaan 10.3 Pengiriman data secara serial dari PC ke mikrokontroller dengan output LED ( pemrograman delphi )

Pada percobaan ini, data dikirimkan melalui port communication serial PC secara serial dan ditangkap oleh mikrokontroller untuk dioutputkan ke LED

Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan jumper konektor ke LED_EN
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 asembly berikut ini: (download file prog101a.asm

org 0h           nop           call initserialgets: call inchar           mov P0,a           sjmp gets           ;initserial:           mov scon,#52h ; Konfigurasi komunikasi serial mode 1           mov tmod,#20h ; Baud rate 2400 BPS           mov th1,#-13           setb tr1           ret           ;inchar:detect: jnb ri,detect ; Deteksi bit RI apakah data sudah diterima atau            belum            clr ri           mov a,sbuf           ret           ;           End

6. Buka Program Delphi
7. Ketik Program Delphi berikut ini, untuk menjalankan komunikasi melalui port serila dengan base address 3F8h. (download file Ledserial.asm

image

var           Form1: TForm1;           data,status:byte;           const           base = $3f8;{base address port serial}           lcr = 3; {line control register}           dll = 0; {divisor lacht low byte}           dlh = 1; {divisor lacht high byte}           lsr = 5; {line status register}
implementation           {$R *.DFM}
Procedure            Initserial;           begin           asm           mov dx,base+lcr; {address line control register}           mov al,$80 ; {10000000b = access bit divisor lacht}           out dx,al           ;           mov dx,base+dll; {address divisor lacht low byte}           mov al,$30 ; {DLLB = 30h}           out dx,al           ;           mov dx,base+dlh; {address divisor lacht high byte}           mov al,$00 ; {DLLH = 00h}           out dx,al           ; {Pada saat ini Port serial}           ; {memp.baud rate = 2400 bps}           mov dx,base+lcr; {address line control register}           mov al,$03 ; {00000011b =}           out dx,al ; {bit 7=0, access to Rx buffer & Tx           ; {bit 6=0, set break disable           ; {bit 5-4-3=000, no parity           ; {bit 2=0, one stop bit           ; {bit 1-0=11,data lenght 8 bit}           end;           end;
Procedure            Send_Data_Serial;begin           asm           mov dx,base           mov al,data           out dx,al           endend;
procedure TForm1.FormCreate(Sender: TObject); begin           Initserial;end;
procedure            TForm1.Button1Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=1;           Send_Data_Serial;end;
procedure            TForm1.Button2Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=2;           Send_Data_Serial;end;
procedure            TForm1.Button3Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=4;           Send_Data_Serial;end;
procedure            TForm1.Button4Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=8;           Send_Data_Serial;end;
procedure            TForm1.Button5Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=16;           Send_Data_Serial;end;
procedure            TForm1.Button6Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=32;           Send_Data_Serial;end;
procedure            TForm1.Button7Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=64;           Send_Data_Serial; end;
procedure            TForm1.Button8Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=128;           Send_Data_Serial;end;
procedure            TForm1.Button9Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=0;           Send_Data_Serial;end;
procedure            TForm1.Button10Click(Sender: TObject);begin           repeat           asm           mov dx,base+lsr ; {address line status register }           in al,dx           and al,$20 ; {00100000b =not masking bit 5}           mov status,al ; {bit5=Empty Transmitting holding reg}           end;           until status = $20; { If ETHR = 1 then data ready tobe send }           data:=255;           Send_Data_Serial;end;end.

8. Simpanlah program yang anda ketik dan beri nama : prog101a.asm
9. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
10. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
11. Jalankan program delphi dengan menekan tombol F9 atau RUN
12. Lakukan penekanan pada tiap-tiap button dan lakukan pengamatan.

Button

Keadaan LED ( Nyala/ Padam )

 
 
 
 

16

 

32

 

64

 

128

 

255

 

NEXT

Komentar, pertanyaan dan diskusi tentang topik tersebut. Klik disini

 

HARDWARE
1.Target
2.Programmer


DASAR TEORI
1.Organisasi Mem
1.1. Mem.Data
1.2. Mem.Prog
1.4. SFR2.Pengalamatan3.Set Instruksi
3.1.Copy Data
3.2.Aritmatika
3.3.Logika
3.4.Lompatan4.Interupsi5.Timer Counter6.Serial Kom.7.Bahasa Assemb.8.Perangkat LunakMIDE dan ISP Soft.

PERCOBAAN 1
LED

PERCOBAAN 2
SAKLAR

PERCOBAAN 3
7 Segmen

PERCOBAAN 4
LCD Character

PERCOBAAN 5
ADC

PERCOBAAN 6
DAC

PERCOBAAN 7
Keypad

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

APLIKASI

 

 

imageimageimageimage