Perangkat Lunak
MYTUTORIALCAFE.COM KIT
1.1.1 Compiler MIDE Studio
MIKROKONTROLER 89S51
Mikrokontroller 8 bit dengan 4K byte ISP M-IDE Studio adalah salah satu cara yang digunakan untuk menjalankan kompilasi
untuk divais MCS-51. M-IDE Studio mempunyai beberapa fitur yang dapat
( In System Programmable ) digunakan untuk edit, compil, dan debug file.
Belajar dengan mudah dan menyenangkan The M-IDE Studio juga dapat digunakan untuk menulis program dalam bahasa C.
Dengan menggunakan software ini, maka kita dapat melihat error pada report file
LST.
Bila anda perhatikan pada menu toolbar dan menu pilihan, tampak terlihat disable.
Hal ini karena file belum dibuat. Untuk membuat sebuah file, lakukan langkah-
Contact :Triwiyanto langkah berikut:
HP :081-55126883, Flexi:
Home Add. :Jl Ngagel Rejo Utara V/24 Surabaya 1. Membuat File Baru
Office Add. :Jurusan Teknik Elektromedik Surabaya,
Jl. Pucang Jajar Timur 10, Surabaya.
Email :mytutorialcafe@yahoo.co.id Untuk membuat file baru, klik pada menu File atau short cut seperti yang
Site :www.mytutorialcafe.com ditunjukkan pada gambar, sehingga akan tampak halaman kosong.
PERCOBAAN 1. DISPLAY LED Pada percobaan ini, 8 LED akan berkedip secara kontinu, yang diakibatkan oleh
pemberian waktu tunda.
VCC
J3
1. Ketik program berikut ini:
2
1 EN LED Org 0h
D1 Start: Mov P0,#11111111b ; Kirim data biner 11111111 ke P0
Call Delay ; Memanggil waktu tunda
Mov P0,#00000000b ; Kirim data biner 00000000 ke P0
Call Delay ; Memanggil waktu tunda
Sjmp start ; lompat ke start
;
Delay: mov R1,#255 ; Isi 255 ke R1
Del1: mov R2,#255 ; Isi 255 ke R2
P0.0..P0.7
Del2: djnz R2,del2 ; Dec. R2 dan lompat ke del2 if NZ
D8 djnz R1,del1
Gambar 1.1 Rangkaian Display LED ret
end
Percobaan 1.1. Menghidupkan LED dengan Instruksi MOV 2. Simpanlah program yang anda ketik dan beri nama : prog12a.asm
3. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan
1. Ketik program berikut ini: kompilasi program dari *.asm ke *.hex.
4. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP
Org 0h Software ( Lihat Petunjuk Penggunaan)
Start: Mov P0,#11110000b ; Isi P0 dengan 11110000
sjmp start ; lompat ke start Percobaan 1.4. LED Berjalan dengan Instruksi RL/ RR ( Rotate Left dan Right
)
End
2. Simpanlah program yang anda ketik dan beri nama : prog11a.asm
Org 0H
3. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi Start: Mov A,#11111110b;isi A dengan 11111110b
program dari *.asm ke *.hex. Mov R0,#7 ;isi R0 dengan 7
4. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Kiri: Mov P0,A ;copy A ke P0
Software ( Lihat Petunjuk Penggunaan) Call Delay ;panggil sub rutine delay
J3
2. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi
program dari *.asm ke *.hex. 2
EN LED
1
3. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP
D1
Software ( Lihat Petunjuk Penggunaan)
P0.0..P0.7
D8
(b)
Gambar 2.2. Rangkaian Interface (a) Push Button dan LED (b)
ret 10k
; J3
3
Bin2Dec: EN LCD P0.7..P0.0
1
2
2 7
mov b,#100d VCC D0
8
div ab D1 15 D1
BPL 9
mov ratusan,a D2
10
mov a,b 16 D3
GND 11
mov b,#10d D4
12
div ab 1 D5
VSS 13
mov puluhan,a D6
14
mov satuan,b D7 P3.6
4
ret RS
6
; EN
delay: mov R0,#0 P3.7
delay1:mov R2,#0fh
djnz R2,$ LCD Character 2 X 16
djnz R0,delay1
ret Gambar 4.1. Rangkaian interface ke LCD Karakter 2 x16
;
Data7segmen: Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller
db 11000000b,11111001b,10100100b,10110000b,10011001b seperti AT89S51. LCD yang akan kita praktikumkan ini mempunyai lebar display 2
db 10010010b,10000010b,11111000b,10000000b,10010000b baris 16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin
end konektor, yang didifinisikan sebagai berikut:
0 pulse 0 0 0 0 0 0 1 I/D S RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 0 0 0 0 0 1
Catatan:
I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakter dituliskan Geser Kursor dan Display
ke DDRAM. Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data
I/D = 0, decrement display. Fungsi ini digunakan untuk koreksi atau pencarian display
I/D= 1, increment
S: Geser keseluruhan display kekanan dan kekiri
S=1, geser kekiri atau kekanan bergantung pada I/D KONTROL DATA
S=0, display tidak bergeser RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 0 0 S/C R/L X X
Display On/ Off Cursor
Mengatur status display ON atau OFF, cursor ON/ OFF dan fungsi Cursor Blink
Catatan : x = Dont care
S/C R/L Note
KONTROL DATA
0 0 Geser posisi kursor ke kiri
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 1 Geser posisi kursor ke kanan
0 pulse 0 0 0 0 0 1 D C B
1 0 Geser keseluruhan display ke kiri
D : Mengatur display
D = 1, Display is ON 1 1 Geser keseluruhan display ke kanan
D = 0, Display is OFF
Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan
kembali secara langsung dengan mengatur D=1.
3
VCC
delay: mov R0,#0 R6
delay1:mov R7,#0fh 2 10k 220
djnz R7,$ P1.7..P1.0 20 ADC0804
djnz R0,delay1
3
18 6
1
17 DB0 +IN 7
ret 16 DB1 -IN
DB2
; 15
14 DB3 VREF/2
9
19
2 10k
DB4 CLKR
word1: DB ' Welcome Home '; Karakter yang disimpan di ROM 13
DB5 CLKIN
4 D1
12 10k
end 11 DB6 1
1
P3.2 DB7 CS 2
150p 3V
5 RD 3
INTR WR
6. Simpanlah program yang anda ketik dan beri nama : prog43a.asm
10 8 PROG VCC
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi 6
program dari *.asm ke *.hex. P3.3 5
4
P3.4 3
2
1
DASAR TEORI
Konverter A/D tersedia secara komersial sebagai rangkaian terpadu dengan resolusi
8 bit sampai dengan 16 bit. Pada percobaan ini akan memperkenalkan ADC0801,
yaitu sebagai sebuah konverter A/D 8 bit yang mudah diinterfacekandengan sistem
mikrokontroller. A/D ini menggunakan metode approksimasi berturut-turut untuk
mengkonversikan masukan analog (0-5V) menjadi data digital 8 bit yang ekivalen.
ADC0801 mempunyai pembangkit clock internal dan memerlukan catu daya +5V
dan mempunyai waktu konversi optimum sekitar 100us.
VIN MAKS
VRESOLUSI =
255
Misalnya anda menginginkan masuk analog maksimum sebesar 4 V, maka:
VREF = 12 x 4 = 2 volt
Gambar 5.2 Konfigurasi pin ADC0804
4
Diagram konfigurasi pin ADC0804 ditunjukkan pada gambar 5.2. Pin 11 sampai 18 ( VRESOLUSI = = 0,0156 volt
keluaran digital ) adalah keluaran tiga keadaan, yang dapat dihubungkan langsung 255
dengan bus data bilamana diperlukan. Apabila CS ( pin 1 ) atau RD (pin2) dalam
Resolusi ini mempunyai arti sebagai berikut:
keadaan high (1), pin 11 sampai 18 akan mengambang ( high impedanze ), apabila CS
dan RD rendah keduanya, keluaran digital akan muncul pada saluran keluaran.
Sinyal mulai konversi pada WR (pin 3). Untuk memulai suatu konversi, CS harus No VIN ( volt ) Data Digital ( biner )
rendah. Bilamana WR menjadi rendah, konverter akam mengalami reset, dan ketika WR 1 0,000 0000 0000
kembali kepada keadaan high, konversi segera dimulai. 2 0,0156 0000 0001
Konversi detak konverter harus terletak dalam daereh frekuensi 100 sampai 800kHz. 3 0,0313 0000 0010
CLK IN ( pin 4) dapat diturunkan dari detak mikrokontroller, sebagai kemungkinan lain, 4 :
kita dapat mempergunakan pembangkit clock internal dengan memasang rangkaian RC 5 4 1111 1111
antara CLN IN ( pin 4) dan CLK R ( pin 19).
/INTR P3.2
8 x 1k ohm
/WR P3.3
(a)
/RD P3.4
P3.5
D0 s/d D7 P1.0 s/d P1.7 Y7..Y0
P3.6 U8
1 15
P3.7 2 A Y0 14
B Y1
Tabel 5.2. Instruksi logika pada pin kontrol A/D 0804 3
C Y2
13
VCC 12
J2 Y3 11
6 Y4 10
INPUT OUTPUT KEGIATAN 1
4 G1
G2A
Y5
Y6
9
EN 7 SEGMEN 5 7
/WR /RD /INTR DO S/D D7 2 G2B Y7
2 7 nop
VCC D0 nop
8
D1 15 D1
BPL 9
setb P3.3
D2 eoc: jb P3.2,eoc
10 clr P3.4
16 D3
GND 11 mov A,P1
D4
12 setb P3.4
1 D5
VSS 13 ret
D6 ;=================================================
14
D7 P3.6 ;Subrutin untuk menampilkan data ke LCD character 2 x16
4
RS ;pada DDRAM 0C9 0CA 0CB untukratusan, puluhan, and satuan
6 ;=================================================
EN
Write2LCD:
P3.7 mov r1,#0c9h
call write_inst
LCD Character 2 X 16 mov a,ratusan
add a,#30h
Gambar 5.8. Rangkaian Interface LCD Karakter mov r1,a
call write_data
1
VCC 31
VCC EA/VPP
10uF 1N4148 40
VCC
2
1k 30p
1k XTALL1
XTALL2
30p