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.
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.
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
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
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
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
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
;---;
; 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
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
;---;
; 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