• Tidak ada hasil yang ditemukan

BAB20 - MCS51 - Aplikasi ADC-LCD-RS232

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB20 - MCS51 - Aplikasi ADC-LCD-RS232"

Copied!
12
0
0

Teks penuh

(1)

20.Aplikasi ADC, LCD dan RS232

20.Aplikasi ADC, LCD dan RS232

gambar 13. Buffer RS232 gambar 13. Buffer RS232

RS 232 di komputer :

RS 232 di komputer :

1.

1.

‘Space’ logika 0 : 3 sampai dengan 25 volt

‘Space’ logika 0 : 3 sampai dengan 25 volt

2.

2.

‘Mark’

‘Mark’ logika

logika 1

1 ::-3 sampai dengan -25 volt

-3 sampai dengan -25 volt

3.

3.

Daerah antara 3 dan -3 tidak didefinisikan

Daerah antara 3 dan -3 tidak didefinisikan

4.

4.

Tegangan open circuit tidak boleh lebih dari 25 volt

Tegangan open circuit tidak boleh lebih dari 25 volt

5.

5.

Arus short circuit tidak boleh lebih dari 500 mA

Arus short circuit tidak boleh lebih dari 500 mA

Pin dari serial

Pin dari serial

Pin

Pin D25

D25

Pin

Pin D9

D9

Nama

Nama

Kepanjangan

Kepanjangan

2

2

3

3

TD

TD

Transmit

Transmit Data

Data

3

3

2

2

RD

RD

Receive

Receive Data

Data

4

4

7

7

RTS

RTS

Request

Request To

To Send

Send

5

5

8

8

CTS

CTS

Clear

Clear To

To Send

Send

6

6

6

6

DSR

DSR

Data

Data Set

Set Ready

Ready

7

7

5

5

SG

SG

Signal

Signal Ground

Ground

8

8

1

1

CD

CD

Carrier

Carrier Detect

Detect

20

20

4

4

DTR

DTR

Data

Data Termi

Terminal

nal Ready

Ready

22

22

9

9

RI

RI

Ring

Ring Indicator

Indicator

Null Modem

Null Modem

1.

1.

Cara paling gampang untuk mentransfer file antar komputer

Cara paling gampang untuk mentransfer file antar komputer

menggun

menggunakan protokol Z

akan protokol Z modem dan X modem

modem dan X modem

2.

2.

Dapat juga d

Dapat juga digunakan untuk komun

igunakan untuk komunikasi dengan uP

ikasi dengan uP

3.

(2)

D9

D9

D25

D25

D25

D25

D9

D9

3

2

TD

3

2

TD



RD

RD

3

3

2

2

2

3

RD

2

3

RD



TD

TD

2

2

3

3

5

7

SG

5

7

SG



SG

SG

7

7

5

5

4

4

20

20

DTR

DTR



DSR

DSR

6

6

6

6

6

6

DSR

6

6

DSR



DTR

DTR

20

20

4

4

1

8

CD

1

8

CD



CD

CD

8

8

1

1

7

4

RTS

7

4

RTS



CTS

CTS

5

5

8

8

8

5

CTS

8

5

CTS



RTS

RTS

4

4

7

7

Port Address dan IRQ

Port Address dan IRQ

Nama

Nama

Address

Address

IRQ

IRQ

COM

COM 1

1

3F8

3F8

4

4

COM

COM 2

2

2F8

2F8

3

3

COM

COM 3

3

3E8

3E8

4

4

COM

COM 4

4

2E8

2E8

3

3

PEMROGRAMAN UART

PEMROGRAMAN UART

Tabel address register UART INS 8250

Tabel address register UART INS 8250

N a N am a m a r e g i s t er e g i s t er r A d a p t o r A d a p t o r P r i m e r P r i m e r A d a p t o r A d a p t o r s e k u n d e rs e k u n d e r

TX Buffer

TX Buffer

RX Buffer

RX Buffer

Baud rate divisor Latch LSB

Baud rate divisor Latch LSB

Baud rate divisor Latch MSB

Baud rate divisor Latch MSB

Interrupt Enable Register

Interrupt Enable Register

Interrupt Identification Reg

Interrupt Identification Reg

Line Control Register

Line Control Register

Modem Control Register

Modem Control Register

Line Status Register

Line Status Register

Modem Status Register

Modem Status Register

03F8H

03F8H

03F8H

03F8H

03F8H

03F8H

03F9H

03F9H

03F9H

03F9H

03FAH

03FAH

03FBH

03FBH

03FCH

03FCH

03FDH

03FDH

03FEH

03FEH

02F8H

02F8H

02F8H

02F8H

02F8H

02F8H

02F9H

02F9H

02F9H

02F9H

02FAH

02FAH

02FBH

02FBH

02FCH

02FCH

02FDH

02FDH

02FEH

02FEH

RX Buffer

RX Buffer

:

:

3F8H

3F8H

Menampung dan meny

Menampung dan menyimpan data yang diterima dari l

impan data yang diterima dari luar.

uar.

Data itu harus dibaca oleh CPU 8088 setelah mengecek kepastian

Data itu harus dibaca oleh CPU 8088 setelah mengecek kepastian

tentang masuknya data.

(3)

TX Buffer

TX Buffer:

:

3F8H

3F8H

Menampung dan menyim

Menampung dan menyimpan data

pan data yang akan dikirim ke luar.

yang akan dikirim ke luar.

Data ini dikirim oleh CPU ke TX Buffer setelah mengecek kepastian

Data ini dikirim oleh CPU ke TX Buffer setelah mengecek kepastian

tentang diperbolehkannya melakukan pengiriman.

tentang diperbolehkannya melakukan pengiriman.

Baud

Baud Rate Divisor

Rate Divisor LSB:

LSB: 3F8H

3F8H

Menampung LSB untuk pembagi clock yang dimasukkan ke INS

Menampung LSB untuk pembagi clock yang dimasukkan ke INS

8250 agar didapat baud r

8250 agar didapat baud rate yang dipilih . Angka pembag

ate yang dipilih . Angka pembagi 01H

i 01H - FFH

- FFH

Baud Rate Divisor MSB

Baud Rate Divisor MSB: 3F9H

: 3F9H

Menampung MSB untuk pembagi clock yang dimasukkan ke INS

Menampung MSB untuk pembagi clock yang dimasukkan ke INS

8250 agar didapat baud rate yang dipilih . Angka pembagi 01H

8250 agar didapat baud rate yang dipilih . Angka pembagi 01H

-FFFFH

FFFFH

Tabel Baud rate:

Tabel Baud rate:

Bau

Bau

d

d

Rate

Rate

An

An

gka

gka

pe

pe

mbagi

mbagi

(H

(H

e

e

ks

ksa)

a)

An

An

gka

gka

pe

pembagi

mbagi

(D

(D

e

e

s

s

i

i

mal

mal

)

)

50

50

75

75

110

110

134.5

134.5

150

150

300

300

600

600

1200

1200

1800

1800

2000

2000

2400

2400

3600

3600

4800

4800

7200

7200

9600

9600

0900H

0900H

0600H

0600H

0417H

0417H

0359H

0359H

0300H

0300H

0180H

0180H

0C00H

0C00H

0060H

0060H

0040H

0040H

003AH

003AH

0030H

0030H

0020H

0020H

0018H

0018H

0010H

0010H

000CH

000CH

2300

2300

1536

1536

1047

1047

857

857

768

768

384

384

192

192

96

96

64

64

58

58

48

48

32

32

24

24

16

16

12

12

(4)

Interrupt Enable Register

Interrupt Enable Register:

:

3F9H

3F9H

Menampung pemrograman agar bilamana ada satu keadaan khusus

Menampung pemrograman agar bilamana ada satu keadaan khusus

dapat melangsungkan interupsi ke CPU.

dapat melangsungkan interupsi ke CPU.

Interrupt Identification Register

Interrupt Identification Register: 3FAH

: 3FAH

Menampung pemrograman agar dapat

Menampung pemrograman agar dapat menentukan bagian mana yang

menentukan bagian mana yang

diberi urutan prioritas khusus untuk dapat melangsungkan interupsi ke CPU

diberi urutan prioritas khusus untuk dapat melangsungkan interupsi ke CPU

Line Control Register

Line Control Register:

:

3FBH

3FBH

Menampung ketentuan yang dipilih untuk menentukan :

Menampung ketentuan yang dipilih untuk menentukan :

- jumlah bit bagi setiap data

- jumlah bit bagi setiap data

- jumlah stop bit

- jumlah stop bit

- memakai parity check atau tidak

- memakai parity check atau tidak

- menentukan/meng

- menentukan/mengubah baud rate

ubah baud rate divisor

divisor

Modem

Modem Control

Control Register:

Register:

3FCH

3FCH

Menampung pemrograman untuk mengatur modem, terutama

Menampung pemrograman untuk mengatur modem, terutama

menggunakan saluran DTR dan RTS dari INS 8250 ke modem. INS

menggunakan saluran DTR dan RTS dari INS 8250 ke modem. INS

8250 bisa diprogram untuk melakukan loop back, yaitu data yang

8250 bisa diprogram untuk melakukan loop back, yaitu data yang

dikirim dapat diterima sendiri oleh INS 8250. Hal ini digunakan

dikirim dapat diterima sendiri oleh INS 8250. Hal ini digunakan

untuk tes Tx dan

untuk tes Tx dan Rx.

Rx. INS 8250 memberi ek

INS 8250 memberi ekstra 2 saluran OU

stra 2 saluran OUT1 dan

T1 dan

OUT2 untuk disambungkan ke komponen lain sebagai pengatur

OUT2 untuk disambungkan ke komponen lain sebagai pengatur

enable / disable. Di IBM PC digunakan untuk mengatur saluran

enable / disable. Di IBM PC digunakan untuk mengatur saluran

interupsi INTRPT (pin 30). Saluran INTRPT diberi tri state buffer

interupsi INTRPT (pin 30). Saluran INTRPT diberi tri state buffer

yang diatur oleh OUT2. Oleh karena itu agar dapat beroperasi

yang diatur oleh OUT2. Oleh karena itu agar dapat beroperasi

(5)

 berdasar interupsi dari p

 berdasar interupsi dari peralatan lain di luar, maka bit

eralatan lain di luar, maka bit 3 (OUT2) pada

3 (OUT2) pada

Modem Control Register harus diberi 1.

Modem Control Register harus diberi 1.

Modem

Modem Status

Status Register:

Register: 3FEH

3FEH

Menampung bit-bit yang menyatakan keadaan tentang hubungan

Menampung bit-bit yang menyatakan keadaan tentang hubungan

dengan modem atau perangkat lain yang dihubungkan dengan INS 8250

dengan modem atau perangkat lain yang dihubungkan dengan INS 8250

Untuk melakukan percobaan ini, lakukan langkah-langkah sebagai berikut:

Untuk melakukan percobaan ini, lakukan langkah-langkah sebagai berikut:

1.

1.

Hubungkan modul MICROTRAINER dengan memasang kabel DB25

Hubungkan modul MICROTRAINER dengan memasang kabel DB25

dengan LPT1 pada PC. Mode printer adalah SPP atau

dengan LPT1 pada PC. Mode printer adalah SPP atau

output only

output only

..

2.

2.

Hubungkan kabel serial di modul dengan COM1

Hubungkan kabel serial di modul dengan COM1

3.

3. Ketikkan

Ketikkan di

di sembarang

sembarang editor

editor yang

yang anda

anda miliki

miliki

listing 

listing 

 program berikut:

 program berikut:

; PROG13.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI ADC

; PROG13.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI ADC ; DAN DITAMPILKAN KE LCD SERTA DIKIRIM KE KOMPUTER ; DAN DITAMPILKAN KE LCD SERTA DIKIRIM KE KOMPUTER ;

; JUMPER JUMPER OUTPUT OUTPUT : : LCD LCD POSISI POSISI '0''0' ORG 00H ORG 00H SJMP START SJMP START ;---; ; LCD LCD CONSTANTACONSTANTA ;---DISPCLR

DISPCLR EQU EQU 00000001B00000001B FUNCSET

FUNCSET EQU EQU 00111000B00111000B ENTRMOD

ENTRMOD EQU EQU 00000110B00000110B DISPON

DISPON EQU EQU 00001100B00001100B DATAADC

DATAADC EQU EQU 60H60H START:

START:

 ACALL

 ACALL INIT_SERINIT_SERIALIAL  ACALL

 ACALL INIT_LCINIT_LCDD MOV DPTR,#BARIS1 MOV DPTR,#BARIS1  ACALL

 ACALL PRINTSTRINPRINTSTRING1G1 MOV DPTR,#BARIS2 MOV DPTR,#BARIS2  ACALL

 ACALL PRINTSTRINPRINTSTRING2G2

;---;

; MAIN MAIN PROGRAMPROGRAM ;---MAIN:

MAIN:

 ACALL

(6)

 ACALL  ACALL RXRX  ACALL

 ACALL READ_ADCREAD_ADC  ACALL

 ACALL DISPDISP  ACALL

 ACALL TX TX ; KIRIM ; KIRIM KE PCKE PC SJMP MAIN SJMP MAIN CHANNEL_0: CHANNEL_0: CLR P0.5 CLR P0.5 CLR P0.6 CLR P0.6 CLR P0.7 CLR P0.7 RET RET CHANNEL_7: CHANNEL_7: SETB P0.5 SETB P0.5 SETB P0.6 SETB P0.6 SETB P0.7 SETB P0.7 RET RET ;---;

; PENAMBILAN PENAMBILAN DATA DATA DARI DARI ADCADC ; ; P0.5 P0.5 : A: A ; ; P0.6 P0.6 : B: B ; ; P0.7 P0.7 : C: C ; ; P3.6 P3.6 : WR: WR ; ; P3.7 P3.7 : RD: RD ;---READ_ADC: READ_ADC: SETB SETB P3.6 P3.6 ; ; WR WR = = 11 SETB SETB P3.7 P3.7 ; ; RD RD = = 11  ACALL

 ACALL DELAYDELAY CLR

CLR P3.6 P3.6 ; ; WR WR = = 00  ACALL

 ACALL DELAYDELAY SETB

SETB P3.6 P3.6 ; ; WR WR = = 11 JB P3.2,$

JB P3.2,$  ACALL

 ACALL DELAYDELAY CLR CLR P3.7 P3.7 ; ; RD RD = = 00 MOV A,P1 MOV A,P1 MOV DATAADC,A MOV DATAADC,A SETB SETB P3.7 P3.7 ; ; RD RD = = 11 RET RET ;---;

; MENAMPILKAN MENAMPILKAN DATA DATA KE KE LCDLCD ;---DISP: DISP: MOV A,DATAADC MOV A,DATAADC MOV B,#10 MOV B,#10 DIV AB DIV AB MOV

MOV R2,B R2,B ; ; R2 R2 : : SATUANSATUAN MOV B,#10

MOV B,#10 DIV AB DIV AB MOV

MOV R1,B R1,B ; ; R1 R1 : : PULUHANPULUHAN MOV

MOV R0,A R0,A ; ; R0 R0 : : RATUSANRATUSAN MOV

MOV A,#0CFH A,#0CFH ; ; PESAN PESAN TEMPAT TEMPAT DI DI KOLOM KOLOM 15 15 BARIS BARIS 22  ACALL

(7)

MOV A,R2 MOV A,R2  ADD

 ADD A,#30H A,#30H ; ASCII ; ASCII DARI SATUANDARI SATUAN  ACALL

 ACALL DATAOUTDATAOUT MOV

MOV A,#0CEH A,#0CEH ; ; PESAN PESAN TEMPAT TEMPAT DI DI KOLOM KOLOM 14 14 BARIS BARIS 22  ACALL

 ACALL CONTROLOUCONTROLOUTT MOV A,R1

MOV A,R1  ADD

 ADD A,#30H A,#30H ; ASCII ; ASCII DARI PULUDARI PULUHANHAN  ACALL

 ACALL DATAOUTDATAOUT MOV

MOV A,#0CDH A,#0CDH ; ; PESAN PESAN TEMPAT TEMPAT DI DI KOLOM KOLOM 13 13 BARIS BARIS 22  ACALL

 ACALL CONTROLOUCONTROLOUTT MOV A,R0

MOV A,R0  ADD

 ADD A,#30H A,#30H ; ASCII ; ASCII DARI RATUSANDARI RATUSAN  ACALL

 ACALL DATAOUTDATAOUT RET

RET

;---;

; PROSEDUR PROSEDUR MENGIRIM MENGIRIM DATA DATA DARI DARI UC UC KE KE PCPC ;---TX: TX: MOV A,DATAADC MOV A,DATAADC MOV SBUF,A MOV SBUF,A JNB TI,$ JNB TI,$ CLR TI CLR TI RET RET ;---;

; PROSEDUR PROSEDUR MENERIMA MENERIMA DATA DATA DARI DARI PCPC ;---RX: RX: CLR RI CLR RI JNB RI,$ JNB RI,$ MOV A,SBUF MOV A,SBUF MOV R3,A MOV R3,A MOV

MOV A,#08FH A,#08FH ; ; PESAN PESAN TEMPAT TEMPAT DI DI KOLOM KOLOM 15 15 BARIS BARIS 11  ACALL

 ACALL CONTROLOUCONTROLOUTT MOV A,R3

MOV A,R3  ADD

 ADD A,#30H A,#30H ; ASCII; ASCII  ACALL

 ACALL DATAOUTDATAOUT RET

RET

;---;

; PROSEDUR IPROSEDUR INISIALISASI NISIALISASI SERIALSERIAL ;---INIT_SERIAL:

INIT_SERIAL: MOV

MOV SCON,#01010000b SCON,#01010000b ;Set ;Set Mode Mode 11 MOV

MOV TMOD,#00100000b TMOD,#00100000b ;Set ;Set Timer Timer 8 8 bit bit auto auto reloadreload MOV

MOV TH1 TH1 ,#0FDh ,#0FDh ;Baud ;Baud Rate Rate 9600 9600 bps bps pada pada kristal kristal 11,0592 11,0592 MHzMHz MOV TCON,#40H

MOV TCON,#40H SETB

SETB TR1 TR1 ;Start ;Start Timer Timer 11 RET

(8)

;---;

; PROSEDUR PROSEDUR PEMESANAN PEMESANAN TEMPATTEMPAT ;---; ; RS RS : : 0 0 : : P3.5P3.5 ; ; E E : : 0 0 - - 1 1 - - 0 0 : : P3.4P3.4 ; ; DATA DATA : : P2P2 CONTROLOUT: CONTROLOUT: CLR CLR P3.5 P3.5 ; ; RS RS = = 00  ACALL

 ACALL DELAYDELAY CLR P3.4 CLR P3.4  ACALL

 ACALL DELAYDELAY SETB P3.4 SETB P3.4  ACALL

 ACALL DELAYDELAY MOV P2,A MOV P2,A CLR P3.4 CLR P3.4  ACALL

 ACALL DELAYDELAY RET

RET

;---;

; PROSEDUR PROSEDUR PENEMPATAN PENEMPATAN DATADATA ;---; ; RS RS : : 0 0 : : P3.5P3.5 ; ; E E : : 0 0 - - 1 1 - - 0 0 : : P3.4P3.4 DATAOUT: DATAOUT: SETB SETB P3.5 P3.5 ; ; RS RS = = 11  ACALL

 ACALL DELAYDELAY CLR

CLR P3.4 P3.4 ; ; E E = = 00  ACALL

 ACALL DELAYDELAY SETB

SETB P3.4 P3.4 ; ; E E = = 11  ACALL

 ACALL DELAYDELAY MOV P2,A MOV P2,A CLR

CLR P3.4 P3.4 ; ; E E = = 00  ACALL

 ACALL DELAYDELAY RET

RET

;---;

; PROSEDUR PROSEDUR DELAY DELAY LCDLCD ;---DELAY.INIT.LCD: DELAY.INIT.LCD: MOV R6,#20H MOV R6,#20H DLY.LCD.LP: DLY.LCD.LP: MOV R7,#10H MOV R7,#10H DJNZ R7,$ DJNZ R7,$ DJNZ R6,DLY.LCD.LP DJNZ R6,DLY.LCD.LP RET RET INIT_LCD: INIT_LCD: MOV A,#FUNCSET MOV A,#FUNCSET  ACALL

 ACALL CONTROLOUCONTROLOUTT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD MOV A,#DISPON MOV A,#DISPON  ACALL

 ACALL CONTROLOUCONTROLOUTT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD MOV A,#DISPCLR MOV A,#DISPCLR

(9)

 ACALL

 ACALL CONTROLOUCONTROLOUTT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD MOV A,#ENTRMOD MOV A,#ENTRMOD  ACALL

 ACALL CONTROLOUCONTROLOUTT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD RET

RET

;---; PROCEDURE LCD BARIS KOLOM LCD ; PROCEDURE LCD BARIS KOLOM LCD ;---POSISI2.1: POSISI2.1: MOV A,#1 MOV A,#1 POSISI2: POSISI2:  ADD

 ADD A,#110000A,#11000000B 00B ; BARIS KED; BARIS KEDUAUA DEC A

DEC A  ACALL

 ACALL CONTROLOUCONTROLOUTT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD RET RET POSISI1.1: POSISI1.1: MOV A,#1 MOV A,#1 POSISI1: POSISI1:  ADD

 ADD A,#100000A,#10000000B 00B ; BARIS PER; BARIS PERTAMATAMA DEC A

DEC A  ACALL

 ACALL CONTROLOUCONTROLOUTT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD RET

RET PRINTSTRING2: PRINTSTRING2:

 ACALL

 ACALL POSISI2POSISI2.1.1 CLR A CLR A MOVC A,@A+DPTR MOVC A,@A+DPTR JNZ PRINTSTRINGLOOP JNZ PRINTSTRINGLOOP PRINTSTRINGLOOP: PRINTSTRINGLOOP:  ACALL

 ACALL DATAOUTDATAOUT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD INC DPTR INC DPTR CLR A CLR A MOVC A,@A+DPTR MOVC A,@A+DPTR JNZ PRINTSTRINGLOOP JNZ PRINTSTRINGLOOP RET RET PRINTSTRING1: PRINTSTRING1:  ACALL

 ACALL POSISI1POSISI1.1.1 CLR A CLR A MOVC A,@A+DPTR MOVC A,@A+DPTR JNZ PRINTSTRINGLOOP2 JNZ PRINTSTRINGLOOP2 PRINTSTRINGLOOP2: PRINTSTRINGLOOP2: LCALL DATAOUT LCALL DATAOUT  ACALL

 ACALL DELAY.INDELAY.INIT.LCDIT.LCD INC DPTR INC DPTR CLR A CLR A MOVC A,@A+DPTR MOVC A,@A+DPTR JNZ PRINTSTRINGLOOP2 JNZ PRINTSTRINGLOOP2 RET RET

(10)

;---;

; PROCEDURE PROCEDURE DELAYDELAY ;---DELAY: DELAY: MOV R5,#0 MOV R5,#0 U1:

U1: MOV MOV R6,#0R6,#0 U2:

U2: MOV MOV R7,#0R7,#0

U3: INC R7 U3: INC R7 CJNE R7,#5,U3 CJNE R7,#5,U3 INC R6 INC R6 CJNE R6,#5,U2 CJNE R6,#5,U2 INC R5 INC R5 CJNE R5,#5,U1 CJNE R5,#5,U1 RET RET BARIS1: BARIS1: DB

DB 'DATA 'DATA DARI DARI PC: PC: ',0',0 BARIS2:

BARIS2:

DB

DB 'DATA 'DATA ADC ADC : : ',0',0

4. Simpanlah program yang anda ketik dan beri nama prog13.asm

4. Simpanlah program yang anda ketik dan beri nama prog13.asm

5. Kemudian keluarlah ke DOS prompt dan ketikkan

5. Kemudian keluarlah ke DOS prompt dan ketikkan

A PROG13 <ENTER>

A PROG13 <ENTER>

Jika tidak ada kesalahan, tekan <ENTER>

Jika tidak ada kesalahan, tekan <ENTER>

6. Anda akan langsung masuk ke program AEC_ISP, kem

6. Anda akan langsung masuk ke program AEC_ISP, kemudian pilihlah option

udian pilihlah option

A. Load HEX File to

A. Load HEX File to flash buffer,

flash buffer,

kemudian

kemudian ketik PRO

ketik PROG13.HEX

G13.HEX <ENTER> dan tekan

<ENTER> dan tekan

sebarang tombol

sebarang tombol

7.

7. Pilih

Pilih E.Program <ENTER>

E.Program <ENTER> dan tunggu

dan tunggu sebentar sampai

sebentar sampai ada indikator 100

ada indikator 100

% dan tekan sebarang tombol

% dan tekan sebarang tombol

8. Pilih I. Reset

8. Pilih I. Reset

9.

9. Kesimpulan

Kesimpulan apa yang

apa yang dapat anda

dapat anda tarik ?

tarik ?

...

(11)

Kemudian ketiklan program di Turbo Pascal :

Kemudian ketiklan program di Turbo Pascal :

{ SERIAL.PAS

{ SERIAL.PAS DIGUNAKAN UNTUK KOMUNIKASI SERIAL DENGAN MCS-51}

DIGUNAKAN UNTUK KOMUNIKASI SERIAL DENGAN MCS-51}

uses crt;

uses crt;

const

const

base_addre

base_address

ss

=

= $3F8;

$3F8;

DLL

DLL

=

= 0;

0;

DLM

DLM

=

= 1;

1;

LCR

LCR

=

= 3;

3;

MCR

MCR

=

= 4;

4;

LSR

LSR

=

= 5;

5;

LSR_0

LSR_0

=

= $01;

$01; {LSR(0)=1

{LSR(0)=1 berarti

berarti ada

ada data

data dari

dari luar

luar yang

yang dikirimkan}

dikirimkan}

LSR_5

LSR_5

=

= $20;

$20; {LSR(5)=1

{LSR(5)=1 berarti

berarti ada

ada data

data yang

yang siap

siap dikirimkan}

dikirimkan}

var

var

status, status1,

status, status1, status2, p

status2, pass

ass : byte;

: byte;

tekan

tekan

:

: char;

char;

data

data

:

: byte;

byte;

Procedure receive;

Procedure receive;

begin

begin

data:=port[base_address];

data:=port[base_address];

textcolor(red);w

textcolor(red);write(data,'

rite(data,' ');

');

end;

end;

procedure send;

procedure send;

begin

begin

port[base_address]:=ord(tekan);

port[base_address]:=ord(tekan);

end;

end;

procedure main;

procedure main;

begin

begin

repeat

repeat

if keypressed then

if keypressed then

begin

begin

tekan:=readkey;

tekan:=readkey;

textcolor(14);write(tekan);

textcolor(14);write(tekan);

status:=port[base_address+LSR];

status:=port[base_address+LSR];

status2:=status and LSR_5;

status2:=status and LSR_5;

if status2 = LSR_5 then

if status2 = LSR_5 then

begin

begin

send;

send;

end;

end;

end;

end;

status:=port[base_address+LSR];

status:=port[base_address+LSR];

status1:=status and LSR_0;

status1:=status and LSR_0;

(12)

if status1=LSR_0 then

if status1=LSR_0 then

begin

begin

receive;

receive;

end;

end;

until tekan=#27;

until tekan=#27;

end;

end;

Procedure init_UART;

Procedure init_UART;

begin

begin

port[base_add

port[base_address+LCR]

ress+LCR] :=

:= $83;

$83;

{format

{format data}

data}

port[base_add

port[base_address+DLL]

ress+DLL] :=

:= 12;

12;

{baud

{baud rate}

rate}

port[base_add

port[base_address+DLM]

ress+DLM] :=

:= 0;

0;

{baud

{baud rate}

rate}

port[base_add

port[base_address+LCR]

ress+LCR] :=

:= $03;

$03;

{siap

{siap untuk

untuk receive

receive dan

dan send

send data}

data}

end;

end;

{Program Utama}

{Program Utama}

begin

begin

clrscr;

clrscr;

init_UART;

init_UART;

main;

main;

end.

end.

Gambar

gambar 13. Buffer RS232gambar 13. Buffer RS232
Tabel address register UART INS 8250Tabel address register UART INS 8250
Tabel Baud rate:

Referensi

Dokumen terkait