bab18 - mcs51 - aplikasi adc - 7 segment
DESCRIPTION
Aplikasi ADC - 7 SegmentTRANSCRIPT
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
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 ;---------------------------------------------------
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
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
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
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
MikrokontrolerMCS51 143
8. Kesimpulan apa yang bisa anda tarik ?
............................................................................................................................
............................................................................................................................
..................................