Anda di halaman 1dari 7

18.

Aplikasi multiplekser analog dan ADC dengan tampilan 7


segmen

gambar 18. Multiplekser, ADC

Perhatikan gambar 18 di atas.


Multiplekser analog 4051
IC ini digunakan untuk memasukkan input analog ke ADC secara
bergantian dengan mengatur sinyal kontrol A, B dan C. IC ini akan bekerja
sesuai dengan tabel kebenaran berikut:
INH
1
0
0
0
0
0
0
0
0

MikrokontrolerMCS51

C
X
0
0
0
0
1
1
1
1

B
X
0
0
1
1
0
0
1
1

A
X
0
1
0
1
0
1
0
1

X
X0
X1
X2
X3
X4
X5
X6
X7

137

ADC0804
IC ini berfungsi untuk mengubah besaran analog menjadi digital 8
bit. Mode kerja IC ini ada beberapa macam diantaranya adalah mode WR-RD,
yaitu :
WR = 1, RD = 1
WR = 0, RD = 1
WR = 1, RD = 1
Apakah INT = 0, jika tidak tunggu dan jika ya ambil datanya
dengan memberi WR = 1, RD = 0
WR = 1, RD = 1

Input analog ( 0 - 7 ) dipilih melalui multiplekser analog yang dikontrol


melalui P1.0, P1.1 dan P1.2. Input 0 dan 7 dihubungkan ke sumber tegangan
analog yang diberikan oleh potensiometer. Output multiplekser analog
dihubungkan ke ADC. ADC dikontrol oleh mikrokontroler melalui :
WR

: P3.6

RD

: P3.7

dan sinyal interupsi dipilih melalui INT0 atau INT1.


Output data digital hasil konversi dihubungkan ke port 0 dan ditampilkan ke
deretan display 7 segmen melalui port 2.

Prosedur pengambilan data ADC adalah sbb:


;--------------------------------------------------;
P0.5
:A
;
P0.6
:B
;
P0.7
:C
;
P3.6
: WR
;
P3.7
: RD
;--------------------------------------------------MikrokontrolerMCS51

138

READ_ADC:
SETB
SETB
ACALL
CLR
ACALL
SETB
JB
ACALL
CLR
MOV
MOV
SETB
RET

P3.6
; WR = 1
P3.7
; RD = 1
DELAY
P3.6
; WR = 0
DELAY
P3.6
; WR = 1
P3.2,$
DELAY
P3.7
; RD = 0
A,P1
DATAADC,A
P3.7
; RD = 1

Prosedur untuk menampilkan di 7 segmen adalah sbb:


DISP:
MOV
MOV
DIV
MOV

A,DATAADC
B,#100
AB
32H,A

; RATUSAN

MOV
MOV
DIV
MOV
MOV

A,B
B,#10
AB
31H,A
30H,B

; PULUHAN
; SATUAN

ORL
MOV
ACALL

A,#11110000B
P2,A
DELAY

; DIGIT 3 OFF

MOV
ORL
MOV
ACALL

A,32H
A,#10110000B
P2,A
DELAY

; DIGIT 2

MOV
ORL
MOV
ACALL

A,31H
A,#11010000B
P2,A
DELAY

; DIGIT 1

MOV
ORL
MOV
ACALL
RET

A,30H
A,#11100000B
P2,A
DELAY

; DIGIT 0

MikrokontrolerMCS51

139

Sedangkan program utamanya adalah sbb :


MAIN:
ACALL
ACALL
ACALL
SJMP

CHANNEL_0
READ_ADC
DISP
MAIN

Multiplekser bekerja pada kanal 0, kemudian data diambil dari ADC dan
disimpan di variabel DATAADC dan selanjutnya dikeluarkan ke display 7
segmen
Untuk melakukan percobaan ini, lakukan langkah-langkah sebagai berikut:
1. Hubungkan modul MICROTRAINER dengan memasang kabel DB25
dengan LPT1 pada PC. Mode printer adalah SPP atau output only.
2. Ketikkan di sembarang editor yang anda miliki listing program berikut:
; PROG11.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI ADC
; DAN DITAMPILKAN KE 7 SEGMEN
; JUMPER OUTPUT : DI DISP POSISI '0'
ORG 00H
SJMP MAIN
DATAADC EQU

60H

;-------------------------------; MAIN PROGRAM


;-------------------------------MAIN:
ACALL
CHANNEL_0
ACALL
READ_ADC
ACALL
DISP
SJMP
MAIN
CHANNEL_0:
CLR
CLR
CLR
RET

P0.5
P0.6
P0.7

CHANNEL_7:
SETB
SETB
SETB
RET

P0.5
P0.6
P0.7

MikrokontrolerMCS51

140

;---------------------------------------------------; PENGAMBILAN DATA DARI ADC


; P0.5
:A
; P0.6
:B
; P0.7
:C
; P3.6
: WR
; P3.7
: RD
;---------------------------------------------------READ_ADC:
SETB
P3.6
; WR = 1
SETB
P3.7
; RD = 1
ACALL
DELAY
CLR
P3.6
; WR = 0
ACALL
DELAY
SETB
P3.6
; WR = 1
JB
P3.2,$
ACALL
DELAY
CLR
P3.7
; RD = 0
MOV
A,P1
MOV
DATAADC,A
SETB
P3.7
; RD = 1
RET
DISP:
MOV
MOV
DIV
MOV

A,DATAADC
B,#100
AB
32H,A

; RATUSAN

MOV
MOV
DIV
MOV
MOV

A,B
B,#10
AB
31H,A
30H,B

; PULUHAN
; SATUAN

ORL
MOV
ACALL

A,#11110000B
P2,A
DELAY

; DIGIT 3 OFF

MOV
ORL
MOV
ACALL

A,32H
A,#10110000B
P2,A
DELAY

; DIGIT 2

MOV
ORL
MOV
ACALL

A,31H
A,#11010000B
P2,A
DELAY

; DIGIT 1

MOV
ORL
MOV
ACALL
RET

A,30H
A,#11100000B
P2,A
DELAY

; DIGIT 0

MikrokontrolerMCS51

141

; DELAY 2 mS
DELAY:
MOV
LOOP1:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ
RET

R1,#200

R1,LOOP1

3. Simpanlah program yang anda ketik dan beri nama prog11.asm


4. Kemudian keluarlah ke DOS prompt dan ketikkan
A PROG11 <ENTER>
Jika tidak ada kesalahan, tekan <ENTER>
5. Anda akan langsung masuk ke program AEC_ISP, kemudian pilihlah option
A. Load HEX File to flash buffer,
kemudian ketik PROG11.HEX <ENTER> dan tekan
sebarang tombol
6. Pilih E.Program <ENTER> dan tunggu sebentar sampai ada indikator 100
% dan tekan sebarang tombol
7. Pilih I. Reset dan Jelaskan apa yang terjadi pada deretan LED jika
potensiometer input 0 diputar-putar! Isilah tabel di bawah
IN0 (VOLT)
0.02
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
MikrokontrolerMCS51

DIGIT3

DIGIT2

DIGIT1

DIGIT0

142

8. Kesimpulan apa yang bisa anda tarik ?


............................................................................................................................
............................................................................................................................
..................................

MikrokontrolerMCS51

143