laporan adc 7 segment dan lcd
DESCRIPTION
lorTRANSCRIPT
No. Percobaan
: 1 & 2 Judul Percobaan : konversi adc dengan display seven segment Dan LCDNama Praktikan
: Febri Rizki PratamaNo Bp
: 1201043022Kelas
: III C EC Reguler
Kelompok
: 10Partner
: Arief Kurnia MartinPembimbing
: 1. Era Madona,Msc
2. M. Irmansyah,ST.,MT
Jurusan Elektro
Program Studi Teknik Elektronika
Politeknik Negeri Padang
2014LEMBAR PENGESAHAN
No / Judul Percobaan: 1&2 / konversi adc dengan display seven segment Dan LCD
Praktikan
: Febri Rizki Pratama
No. BP
: 1201043022
Kelompok
: 10
Kelas
: IIIC EC
Partner
: Arief Kurnia Martin
Pembimbing
: 1. Era Madona,Msc
2. M. Irmansyah,ST.,MT Praktek tanggal : 15 September 2014 Diserahkan tanggal : 29 September 2014
Nilai
:
Keterangan :
BAB IPENDAHULUAN
1.1 Tujuan
Setelah melakukan pratikum konversi ADC dengan output SEVEN SEGMENT dan LCD ini, mahasiswa dapat:
Memahami cara pengoperasian sistem mikrokontroler AT89S51.
Mengoperasikan sistem mikrokontroler AT89S51
Menampilkan output program konversi ADC pada SEVEN SEGMENT Dan LCD dengan menggunakan seiystem mikrokontroler AT 89S51
1.2 .Landasan Teori
Salah satu tipe mikrokontroler arsitektur MCS-51 yang banyak digunakan saat ini adalah tipe Atmel 89S51. Tipe ini banyak digunakan karena memiliki fasilitas on-chip flash memory dan In System Programming.
Multipleser analog 4051
IC ini digunakan untuk memasukkan input analog ke ADC secara bergantian dengan mengatur sinyal control A,B dan C. IC akan bekerja sesuai dengan table kebenaran beriku:
INHCBAX
1XXX-
0000X0
0001X1
0010X2
0011X3
0100X4
0101X5
0110X6
0111X7
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 ia ambil datanya dengan memberikan WR = 1, RD = 0
WR = 1, RD = 1
Input analog (0-7) dipilih melalui multipleser analog yang dikontrol melalui P1.0 , P1.1 dan P1.2. Input 0 dan 7 di hubungkan kesumber tegangan analog yang di berikan oleh potensiometer. Output multipleser analog di hubungkan ke ADC. ADC di control 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 di tampilkan kederetan LED melalui port 2.
1.3. Langkah Kerja
1. membuat dan mengkompile program
1. Klik start dari tampilan menu pilih run. Ditampilan tun, ketik command (pada windows XP cmd) dan selanjutnya tekan OK.
2. Dari layar DOS prompt yang muncul tukar folder C:document and setting ke folder compiler untuk AT89S51 yaitu D:\mcs51 dengan langkah seperti pada gambar.
3. Ketik proram pada DOS prompt ini dengan menggunakan DOS teks editor seperti yang tampak pada gambar. Editor ini dapat ditampilkan dengan mengetikan : D:\mcs51\edit
Ketikan ptogram pada DOS teks editor dan disimpan dakam bentuk nama file.asm
4. Setelah program sekesai, keluarlah ke DOS prompt dengan memilih menu exit pada menu file.
5. Compilelah program yang tekah selesai dengan mengetikkan :
D:\mcs51\x8051 namafile.asm
Langkah diatas akan menghasilkan file baru dengan extension obj dengan nama file yang sama dengan nama file yang diberikan.6. Compile program sekali lagi untuk menghasilkan file yang sama tapi dengan extendion hex dengan cara ketikan :
D:\mcs51\L8051
Sehingga tampil:
Input file:
Isilah nama file yang akan decompile dengan nama file yang sama pada langkah 5 pada input dan tekan:
Input file : namafile.asm
7. Tekanlah enter sehingga akan tampil tampilan berikut :
2. mendownload program ke modul
1 Cek jumper pada modul untuk penggunaan led.
2 Ketik aec_isp, enter
3 tampil jendela berikut:
Kemudian pilihlah load hex file (A), dan ketikan nama file
4 Pilih program dan tinggu hingga 100%
Pilih reset dan lihat output pada led.
BAB II
PROSES PRAKTIKUM
2.1 Data tampilan
Langkah kerja untuk proses pratikum yang berjudul konversi ADC dengan output LED dan dengan output LCD ini adalah sebagai berikut:1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asm. Compile program dengan menggunakan instruksi: x8051 namafile.asm (.
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051 ( dan inputkan nama file yang akan decompile sehingga diperoleh:
Output format: Intel Hex
4. Cek jumper pada sistem mikrokontroler yang akan digunakan dengan menempatkan jumper seven segment dengan menghubungkan pin tengah 0 pada terminal jumper.
5. Pada DOS prompt, ketik:
C:\mcs51\aec_isp (6. Dari tampilan peogram AEC_ASP, pilih option
A. Load HEX File to flash buffer (7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS prompt dan selanjutnya akan tampil
Hex file loaded, press any key to continue (Pilih E. Program ( dan tunggu sampai program terloading 100%.
8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada seven segment.
2.2 Tugas Praktikum
Tampilkan data input analog dari 0-5 volt pada seven segment Dan pada LCD dan isikan pada table data tampilan?BAB IIIHASIL PRAKTIKUM
3.1 Data Tampilan Data Tampilan Konversi ADC dengan tampilan Seven SegmentIN0
(VOLT)Digit 3Digit 2Digit 1Digit 0Pengukuran Real
0.02-0011
0.5-02725
1.0-05150
1.5-07575
2.0-100100
2.5-127125
3.0-150150
3.5-177175
4.0-203200
4.5-256225
5.0-252255
Data Tampilan Konversi ADC dengan tampilan LCDV IN (V)PengukuranPerhitungan
0,0211
0,52625
1,05851
1,58276
2,0111102
2,5136128
3,0168153
3,5196178
4,0219204
4,5249229
5,0255255
3.2 Program
Program ADC ke seven segment 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
;----------------------
;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
mov a,b
mov b,#10
div ab
mov 31h,a
mov 30h,b
orl a,#11110000b
mov p2,a
acall delay
mov a,32h
orl a,#10110000b
mov p2,a
acall delay
mov a,31h
orl a,#11010000b
mov p2,a
acall delay
mov a,30h
orl a,#11100000b
mov p2,a
acall delay
ret
; delay 1 ms
delay:
mov r1,#200
loop1:
nop
nop
nop
nop
nop
nop
nop
nop
nop
djnz r1,loop1
ret Program ADC Ke LCDorg 00h
sjmp start
;--------------
;lcd constanta
;--------------
dispclrequ00000001b
funcsetequ00111000b
entrmodequ00000110b
dispon
equ00001100b
dataadc equ 60h
start:
acallinit_lcd
movdptr,#baris1
acallprintstring1
movdptr,#baris2
acallprintstring2
;-------------------------
;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
;-------------------------
;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
mov a,#0cfh
acall controlout
mov a,30h
add a,#30h
acall dataout
mov a,#0ceh
acall controlout
mov a,31h
add a,#30h
acall dataout
mov a,#0cdh
acall controlout
mov a,32h
add a,#30h
acall dataout
ret
;-------------------------
;prosedur pemesanan tempat
;-------------------------
controlout:
clrp3.5
acalldelay
clrp3.4
acalldelay
setbp3.4
acall delay
movp2,a
clrp3.4
acalldelay
ret
;------------------------
;prosedur penempatan data
;------------------------
dataout:
setbp3.5
acalldelay
clrp3.4
acalldelay
setbp3.4
acalldelay
movp2,a
clrp3.4
acall delay
ret
;----------------------
;prosedur delay lcd
;----------------------
delay.init.lcd:
movr6,#20h
dly.lcd.lp:
mov r7,#10h
djnzr7,$
djnzr6,dly.lcd.lp
ret
init_lcd:
mova,#00111000b
acallcontrolout
acalldelay.init.lcd
mova,#00001100b
acallcontrolout
acalldelay.init.lcd
mova,#00000001b
acallcontrolout
acalldelay.init.lcd
mova,#00000110b
acallcontrolout
acalldelay.init.lcd
ret;----------------------------
;prosedur lcd baris kolom lcd
;----------------------------
posisi2.1:
mova,#1
posisi2:
adda,#11000000b
dec a
acallcontrolout
acalldelay.init.lcd
ret
posisi1.1:
mova,#1
posisi1:
adda,#10000000b
dec a
acallcontrolout
acalldelay.init.lcd
ret
printstring2:
acallposisi2.1
clra
movca,@a+dptr
jnz printstringloop
printstringloop:
acalldataout
acalldelay.init.lcd
incdptr
clra
movca,@a+dptr
jnzprintstringloop
ret
printstring1:
acallposisi1.1
clra
movca,@a+dptr
jnz printstringloop2
printstringloop2:
acalldataout
acalldelay.init.lcd
incdptr
clra
movca,@a+dptr
jnzprintstringloop2
ret
;-----------------
;prosedur delay
;-----------------
delay:
mov r5,#0
u1:movr6,#0
u2:movr7,#0
u3:incr7
cjne r7,#5,u3
incr6
cjner6,#5,u2
incr5
cjner5,#5,u1
ret
baris1:
db 'data dari adc ',0
baris2:
db 'data adc: ',0
3.3 Analisa Analisa konversi ADC ke Seven SegmentDari hasil pratikum didapat analisa bahwa penggunaan instruksi:
Program utama dari program diatas adalah
acallchannel_0
acallread_adc
mova,dataadc
movp2,a
sjmpmain
channel_0:
clr p0.5
clr p0.6
clr p0.7
retchannel_7:
setb p0.5
setb p0.6
setb p0.7
ret
Multiplexer bekerja pada kanal 0,kemudian data di ambil dari ADC dan disimpan di variable DATAADC dan selanjutnya dikeluarkan di seven segment. Pada modul yang digunakan letak dari display adalah berada pada port 2 sedangkan rangkkaian ADC berada pada port 3.Dari program utama inilah sehingga bisa terjadi konversi ADC (Analog Digital Converter).
Untuk mengontrol ADC dengan mikrkontroler melalui:
WR: P3.6
RD:P3.7
Output data digital hasil konversi dihubungkan ke port 0 dan di tampilkan kederetan Seven Segment melalui port 2.
Analisa Konversi ADC ke LCD
Dari hasil pratikum didapat analisa bahwa penggunaan instruksi:
Program utama dari program diatas adalah
acallchannel_0
acallread_adc
mova,dataadc
movp2,a
sjmpmainMultiplexer bekerja pada kanal 0,kemudian data di ambil dari ADC dan disimpan di variable DATAADC dan selanjutnya dikeluarkan di LED
Dari program utama inilah sehingga bisa terjadi konversi ADC (Analog Digital Converter).
Pada penampilan dengan LCD prip kerjanya sama dengan 7 segmen, dimana bilangan yang ditampilkan adalah bilangan desimal, dsini kita juga harus pesan temapt untuk bilangan yang ditampilkan, misalnya ratusan akan ditampilkan pada kolom berapa dan baris, berapa. Pada program ini data akan kita tampilkan pada kolom 15 untuk satuan, kolom 14 untuk puluhan dan kolom 13 untuk ratusan dan semuanya ditampilkan pada baris ke 2, adapun contohnya adalah sebagai berikut:mov a,b
mov b,#10
div ab
mov 31h,a ; puluhan
UNtuk mengontrol ADC dengan mikrkontroler melalui:
WR: P3.6
RD:P3.7
BAB IV
PENUTUP4.1 Kesimpulan
Dari hasil latihan dapat kami simpulkan bahwa:
IC Multipleser analog 4051ini digunakan untuk memasukkan input analog ke ADC secara bergantian dengan mengatur sinyal control A,B dan C.
IC ADC0804 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 ia ambil datanya dengan memberikan WR = 1, RD = 0
WR = 1, RD = 1
Input analog (0-7) dipilih melalui multipleser analog yang dikontrol melalui P1.0 , P1.1 dan P1.2. Input 0 dan 7 di hubungkan kesumber tegangan analog yang di berikan oleh potensiometer. Output multipleser analog di hubungkan ke ADC. ADC di control oleh mikrokontroler melalui:WR: P3.6 RD:P3.7 Output data digital hasil konversi dihubungkan ke port 0 dan di tampilkan kederetan seven segment melalui port 2.4.2 Saran
Diharapkan kepada setiap praktikum agar membaca dan memahami intruksi intruksinya terlebih dahulu sebelum melakukan praktek.
EC
LAPORAN PRATIKUM
LABOR MICROKONTROLER
SEMESTER V