bab18 - mcs51 - aplikasi adc - 7 segment

7
MikrokontrolerMCS51 137 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 C B A X 1 X X X - 0 0 0 0 X0 0 0 0 1 X1 0 0 1 0 X2 0 0 1 1 X3 0 1 0 0 X4 0 1 0 1 X5 0 1 1 0 X6 0 1 1 1 X7

Upload: cakmad69

Post on 17-Jul-2016

21 views

Category:

Documents


3 download

DESCRIPTION

Aplikasi ADC - 7 Segment

TRANSCRIPT

Page 1: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 137

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 C B A X

1 X X X -

0 0 0 0 X0

0 0 0 1 X1

0 0 1 0 X2

0 0 1 1 X3

0 1 0 0 X4

0 1 0 1 X5

0 1 1 0 X6

0 1 1 1 X7

Page 2: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 138

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

Page 3: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 139

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

Prosedur untuk menampilkan di 7 segmen adalah sbb:

DISP: MOV A,DATAADC MOV B,#100 DIV AB MOV 32H,A ; RATUSAN MOV A,B MOV B,#10 DIV AB MOV 31H,A ; PULUHAN MOV 30H,B ; SATUAN ORL A,#11110000B ; DIGIT 3 OFF MOV P2,A ACALL DELAY MOV A,32H ; DIGIT 2 ORL A,#10110000B MOV P2,A ACALL DELAY MOV A,31H ; DIGIT 1 ORL A,#11010000B MOV P2,A ACALL DELAY MOV A,30H ; DIGIT 0 ORL A,#11100000B MOV P2,A ACALL DELAY RET

Page 4: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 140

Sedangkan program utamanya adalah sbb :

MAIN: ACALL CHANNEL_0 ACALL READ_ADC ACALL DISP SJMP 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 P0.5 CLR P0.6 CLR P0.7 RET CHANNEL_7: SETB P0.5 SETB P0.6

SETB P0.7 RET

Page 5: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 141

;---------------------------------------------------- ; 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 A,DATAADC MOV B,#100

DIV AB MOV 32H,A ; RATUSAN MOV A,B MOV B,#10 DIV AB MOV 31H,A ; PULUHAN MOV 30H,B ; SATUAN ORL A,#11110000B ; DIGIT 3 OFF MOV P2,A ACALL DELAY MOV A,32H ; DIGIT 2

ORL A,#10110000B MOV P2,A ACALL DELAY MOV A,31H ; DIGIT 1 ORL A,#11010000B MOV P2,A ACALL DELAY MOV A,30H ; DIGIT 0 ORL A,#11100000B MOV P2,A ACALL DELAY RET

Page 6: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 142

; DELAY 2 mS DELAY: MOV R1,#200 LOOP1: NOP NOP NOP NOP NOP NOP NOP NOP

NOP DJNZ R1,LOOP1 RET

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) DIGIT3 DIGIT2 DIGIT1 DIGIT0

0.02

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

4.5

5.0

Page 7: BAB18 - MCS51 - Aplikasi ADC - 7 Segment

MikrokontrolerMCS51 143

8. Kesimpulan apa yang bisa anda tarik ?

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

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

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