Tutorial Microcontroller MCS-51 ATMEL ISP

Pelatihan Mikrokontroller
89S51
15 Januari 2011
Surabaya

Microcontroller Kits

Programmer and Target 89s51

Simple Mikrokontroller 89s51 Trainer


Standart
Mikrokontroller 89s51 Trainer

Super Mikrokontroller Trainer 89s51

All Kits
+
Programmer via USB Port

 

 

Percobaan 10.4 Pengiriman data secara serial dari ADC ke Mikrokontroller ke PC. ( dengan pemrograman delphi )

Pada percobaan ini, data ADC0804 diambil menggunakan port 1 mikrokontroller dan dikirimkan melalui port serial ke PC


Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
4. Ketik program asembly berikut ini: (download file prog102a.asm)

org 0h
           call initserial
           ;
start: call ADC; ambil data dari adc
           call Sendout
           sjmp start
           ;
ADC: clr P3.3
           nop
           setb P3.3
           eoc: jb P3.2,eoc
           clr P3.4
           mov A,P1
           setb P3.4
           ret 
           ;
Sendout:
           detect: jnb ti,detect; 
           clr ti ; 
           mov sbuf,a ; 
           ret
           ;
initserial:
           mov scon,#52h;initialize serial mode 1
           mov tmod,#20h;timer1 mode 2
           mov th1,#0F3h;Reload value for baud rate 2400
           setb tr1
           ret
           end

5. Buka Program Delphi
6. Ketik Program Delphi berikut ini, untuk menjalankan komunikasi melalui port serial dengan base address 3F8h. (download file ADCserial)

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            Receive_Data_Serial;
           begin
           asm
           mov dx,base
           in al,dx
           mov data,al
           end
           end;
procedure            TForm1.Timer1Timer(Sender: TObject);
           begin
           Repeat
           asm
           mov dx,base+lsr ; { address line status register }
           in al,dx
           and al,$01 ; {LSR = 00000001b, detects bit 0}
           mov status,al ; {bit 0 = data ready}
           end;
           until status = $01;{ jika bit 0 = 1 then data ready}
           Receive_Data_Serial;
           edit1.text:=inttostr(data);
           end;
procedure            TForm1.Button1Click(Sender: TObject);
           begin
           initserial;
           timer1.enabled:=true;
           end;
end.

7. Simpanlah program yang anda ketik dan beri nama : prog102a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
10. Jalankan program delphi dengan menekan tombol F9 atau RUN
11. Lakukan pengamatan untuk data ADC yang ditampilkan.

 

BACK

Komentar, pertanyaan dan diskusi tentang topik tersebut. Klik disini

 

 

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