Anda di halaman 1dari 22

1.1.

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.

Gambar 1.19. M-IDE Studio

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.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 1


Gambar 1.22 Kompilasi file
Figure 1.20. File baru dengan halaman kosong

2. Menulis sebuah program


Tulis program assembly pada halaman kosong, dan lakukan penyimpanan file. Bila
file telah tersimpan maka akan tampak teks instruksi yang berwarna-warni.
Sebagaimana yang ditunjukan pada gambar 3.

Gambar 1.21 Menu penyimpanan file


3. Kompilasi
Agar file dengan ekstensi ASM tersebut dapat diloadkan ke mikrokontroller, maka perlu
dilakukan kompilasi dari file ASM ke HEX.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 2


2.1 Percobaan Percobaan 1.2. Pembuatan Subrutine Waktu Tunda

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

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 3


RL A ;data A diputar ke kiri
DEC R0 ;data R0 dikurangi 1 PERCOBAAN 2
CJNE R0,#0,Kiri;bandingkan R0 dg 0, if NE jump kiri SAKLAR PUSH BUTTON
;
Mov R0,#7
Kanan: Mov P0,A SW1
Call Delay
RR A ;data A diputar ke kanan
DEC R0 ;data RO dikurangi 1
CJNE R0,#0,Kanan ;bandingkan R0 dg 0, if NE jump kanan
Sjmp Start
;
Delay: mov R1,#255
Del1: mov R2,#255
Del2: djnz R2,del2
djnz R1,del1 P2.7..P2.0
ret SW8
end
(a)
1. Simpanlah program yang anda ketik dan beri nama : prog14a.asm VCC

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)

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 4


call delay ;call delay time
Percobaan 2.1. Mengambil Data Saklar dan Mengeluarkan ke LED JB P2.1,RLeft2 ;Menguji bit P2.1, apakah adalah logika '1'
Pada percobaan ini, LED akan nyala bila saklar ditekan sesuai dengan bit saklar yang sjmp EndRLeft ;Jika P2.1=0, maka lompat ke EndRLeft
ditekan. RLeft2: RL A ;data A di putar ke kiri
Org 0h sjmp RLeft1 ;lompat ke Rleft1
Start: Mov A, P2 ;copy data P2 dan Simpan ke A EndRLeft: ret
CPL A ;Komplemen/ Invert terhadap A ;
Mov P0, A ;Kirim data A ke P0 ;====================================================
sjmp start ;lompat ke start ;Subrutin ini digunakan untuk menggerakkan LED Ke Kiri
end ;====================================================
6. Simpanlah program yang anda ketik dan beri nama : prog21a.asm RRight: mov A,#01111111b ;send data to Acc
RRight1: mov P0,A ;send data to P0
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi call delay ;call delay time
program dari *.asm ke *.hex. JB P2.0,RRight2 ;Menguji bit P2.0, apakah adalah logika '1'
Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( sjmp EndRRight;Jika P2.0=0, maka lompat ke EndRRight
Lihat Petunjuk Penggunaan) RRight2: RR A ;data A putar ke kanan
sjmp RRight1 ;lompat ke Rright1
Percobaan 2.2. Mengatur Arah Gerak LED Ke Kanan-Kiri dengan Saklar Push EndRRight: ret
Button P2.0 dan P2.1 ;=============================================
Pada percobaan ini, LED akan berjalan kekanan atau kekiri mengikuti penekanan tombol ;subroutine delay time
P2.0 (arah kiri) atau P2.1 (arah kanan). ;=============================================
1. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program delay: mov R1,#255
2. Ketik program berikut ini: del1: mov R2,#255
del2: djnz R2,del2
org 0h djnz R1,del1
CekP20: JB P2.0,CekP21 ; Menguji bit P2.0, apakah adalah logika '1' ret
call RLeft ; Jika P2.0=0, maka LED putar kiri end
; sjmp CekP20 ; jump forever to CekP20
CekP21: JB P2.1,CekP20 ; Menguji bit P2.1, apakah adalah logika '1' 5. Simpanlah program yang anda ketik dan beri nama : prog22a.asm
call RRight ; Jika P2.1=0, maka LED putar kanan
sjmp CekP20 ; jump forever to CekP2.0 6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan
;====================================================== kompilasi program dari *.asm ke *.hex.
;Subrutin ini digunakan untuk menggerakkan LED Ke Kanan 7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP
;====================================================== Software ( Lihat Petunjuk Penggunaan)
RLeft: mov A,#11111110b ;send data 11111110 to Acc
RLeft1: mov P0,A ;send data A to P0

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 5


PERCOBAAN 3
Percobaan 2.3. Setting Up/Dn dan Enter dengan display LED DISPLAY 7 SEGMEN
Pada percobaan ini, LED yang ON akan bertambah atau berkurang mengikuti penekanan
tombol P2.1 (UP) atau P2.2 (DN).Dan stop ditakan tombol P2.0 ( ENTER).
org 0h Common Anoda P0.6..P0.0
start:
a a
mov R7,#1 ;inisialisasi data setting f b b
c
d
Setup: mov A,R7 ;simpan data R7 ke A g e
e c f
cpl A ;komplemen A, d g

mov P0,A ;output data ke LED


7 x 220 ohm
jnb p2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai) VCC VCC VCC VCC VCC VCC VCC VCC

jb P2.1,SetDn ;bila sw2(P2.1) ditekan mk INC R7 Y7..Y0


PNP PNP PNP PNP PNP PNP PNP PNP
inc R7 ;R7:=R7+1 FCS 9013 FCS 9013
acall delay ;waktu tunda, antar penekanan tombol FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013
cjne R7,#100d,setup;deteksi apakah setting=100d
mov R7,#1 ;reset R7 -> 1
sjmp Setup 8 x 1k ohm
; (a)
SetDn: Mov A,R7 ;simpan data R7 ke A P3.5
cpl A ;komplemen A, Y7..Y0
mov P0,A ;output data ke LED P3.6 U8
jnb P2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai) 1 15
P3.7 2 A Y0 14
jb p2.2,Setup ;bila sw2(P2.1) ditekan mk INC R7 3 B Y1 13
C Y2
dec R7 ;R7:=R7-1 VCC
Y3
12
J2 11
acall delay ;waktu tunda lama penekanan tombol 6 Y4 10
G1 Y5
cjne R7,#0d,setDn;deteksi apakah setting=0d 1
4
G2A Y6
9
EN 7 SEGMEN 5 7
mov R7,#1d ;reset R7 -> 1 2 G2B Y7
sjmp Setdn 74LS138
R28
getout:
sjmp getout VCC 10K
delay: mov R0,#255
delay1: mov R2,#255 (b)
djnz R2,$
djnz R0,delay1 Gambar 3.1. (a) Rangkaian display 7 segmen (b) rangkaian dekoder 74ls138
ret
end

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 6


Tabel 3.1. Tabel kebenaran 74LS138
Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus
SELEKTOR ENABLE OUTPUT dikirimkan data logika low 0 dan sebaliknya untuk mematikan segmen, harus
C B A G1 /G2A /G2B Y Y Y Y Y Y Y Y dikirimkan data logika high 1.
0 1 2 3 4 5 6 7
0 0 0 1 0 0 0 1 1 1 1 1 1 1 Percobaan 3.1. Tulis Karakter A pada 7 Segmen ( Display 1 )
0 0 1 1 0 0 1 0 1 1 1 1 1 1 Pada percobaan ini, karakter A akan ditampilkan pada 7 Segmen Display 1
0 1 0 1 0 0 1 1 0 1 1 1 1 1 Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
0 1 1 1 0 0 1 1 1 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1 org 0h
1 0 1 1 0 0 1 1 1 1 1 0 1 1 start: clr P3.5 ; P3.5 = 0
1 1 0 1 0 0 1 1 1 1 1 1 0 1 clr P3.6 ; P3.6 = 0
1 1 1 1 0 0 1 1 1 1 1 1 1 0 clr P3.7 ; P3.7 = 0
mov P0,#10001000b ; isi P0 dg. 10001000. Cetak Karakter 'A'
Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada sjmp start ; Lompat ke start
output dari dekoder 74LS138, yang sedang mengeluarkan logika low 0, sehingga dari end
8 buah display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display
tampak nyala secara bersamaan maka ketiga display tersebut harus dihidupkan secara 6. Simpanlah program yang anda ketik dan beri nama : prog31a.asm
bergantian dengan waktu tunda tertentu.
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan
Pada gambar tersebut seven segment commont anoda dikendalikan dengan menggunakan
kompilasi program dari *.asm ke *.hex.
transistor PNP melalui decoder 74LS138, apabila ada logika low pada basis transistor,
maka 7 segment akan nyala dan sebaliknya akan padam.
Percobaan 3.2. Tulis Tiga Karakter AbC pada 7 Segmen
Tabel 3.2. Data Display 7 Segmen
P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Display
Pada percobaan ini, karakter AbC akan ditampilkan pada 7 Segmen Display 1,
g f e d c b a
Display 2 dan Display 3 secara berturutan
1 0 0 0 0 0 0 0 org 0h
1 1 1 1 0 0 1 1 start: clr P3.5 ; P3.5 = '0'
0 1 0 0 1 0 0 2 clr P3.6 ; P3.6 = '0'
0 1 1 0 0 0 0 3 clr P3.7 ; P3.7 = '0'
: mov P0, #10001000b; isi P0 dg. 10001000. Cetak Karakter 'A'
0 0 0 1 0 0 0 A call delay ; Panggil Waktu Tunda
0 0 0 0 0 1 1 b ;
1 0 0 0 1 1 0 C setb P3.5 ; P3.5 = '1'
: clr P3.6 ; P3.6 = '0'

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 7


clr P3.7 ; P3.7 = '0' call delay
mov P0,#10000011b ; isi P0 dg.100000011. Cetak Karakter 'b' ;
call delay ; Panggil Waktu Tunda setb P3.5
; clr P3.6
clr P3.7
clr P3.5 ; P3.5 = '0' mov P0,#10100100b ; Cetak Karakter '2'
setb P3.6 ; P3.6 = '1' call delay
clr P3.7 ; P3.7 = '0' ;
mov P0,#11000110b ; Cetak Karakter 'C' clr P3.5
call delay ; Panggil Waktu Tunda setb P3.6
; clr P3.7
sjmp start ; Lompat ke start mov P0,#10110000b ; Cetak Karakter '3'
;============================================= call delay
;subroutine delay created to rise delay time ;
;============================================= setb P3.5
delay: mov R1,#25 setb P3.6
del1: mov R2,#25 clr P3.7
del2: djnz R2,del2 mov P0,#10011001b ; Cetak Karakter '4'
djnz R1,del1 call delay
ret ;
end
6. Simpanlah program yang anda ketik dan beri nama : prog32a.asm clr P3.5
clr P3.6
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi setb P3.7
program dari *.asm ke *.hex. mov P0,#10010010b ; Cetak Karakter '5'
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP call delay
Software ( Lihat Petunjuk Penggunaan) ;
setb P3.5
Percobaan 3.3. Tulis 8 Karakter pada 7 Segmen clr P3.6
Pada percobaan ini, karakter 12345678 akan ditampilkan pada 7 Segmen Display 1, setb P3.7
Display 2 dan Display 3 s/d Display 8 secara berturutan : mov P0,#10000010b ; Cetak Karakter '6'
org 0h call delay
start: clr P3.5 ;
clr P3.6 clr P3.5
clr P3.7 setb P3.6
mov P0,#11111001b ; Cetak Karakter '1' setb P3.7

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 8


mov P0,#11111000b ; Cetak Karakter '7' Org 0h
call delay ratusan equ 30h
; puluhan equ 31h
setb P3.5 satuan equ 32h
setb P3.6 ;
setb P3.7 start:
mov P0,#10000000b ; Cetak Karakter '8' mov R7,#1 ;inisialisasi data setting
call delay Setup: mov A,R7 ;simpan data R7 ke A
; call bin2dec
sjmp start ; Lompat ke Start call display2sevensegmen
jnb p2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai)
jb P2.1,SetDn ;bila sw2(P2.1) ditekan mk INC R7
;============================================= inc R7 ;R7:=R7+1
;subroutine delay created to rise delay time acall delay ;waktu tunda lama penekanan tombol
;============================================= cjne R7,#100d,setup;deteksi apakah setting=100d
delay: mov R1,#25 mov R7,#1 ;reset R7 -> 1
del1: mov R2,#25 sjmp Setup
del2: djnz R2,del2 ;
djnz R1,del1 SetDn: Mov A,R7 ;simpan data R7 ke A
ret call bin2dec
end call display2sevensegmen
6. Simpanlah program yang anda ketik dan beri nama : prog33a.asm jnb P2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai)
jb p2.2,Setup ;bila sw2(P2.1) ditekan mk INC R7
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi dec R7 ;R7:=R7-1
program dari *.asm ke *.hex. acall delay ;waktu tunda lama penekanan tombol
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP cjne R7,#0d,setDn;deteksi apakah setting=0d
Software ( Lihat Petunjuk Penggunaan) mov R7,#99d ;reset R7 -> 99
sjmp Setdn
Percobaan 3.4. Setting Up/ Dn dan Enter dengan Display ke 7 Segmen. getout: sjmp getout
Pada percobaan ini, akan dibuat suatu simulasi setting UP (P2.1)/ DN (P2.2) dan ;
penekanan tombol Enter (P2.0), dan di displaykan ke display 7 Segmen. Data display Display2SevenSegmen:
akan bertambah dari 00 s/d 99 atau berkurang dari 99 s/d 00, sesuai dengan penekanan mov A,puluhan
pada tombol UP/ DN.Bila ditekan tombol Enter, maka tombol UP/ DN tidak akan mov DPTR,#Data7segmen
berfungsi lagi. movc A,@A+DPTR
mov P0,A
clr P3.5 ;

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 9


Setb P3.6 6. Simpanlah program yang anda ketik dan beri nama : prog34a.asm
Setb P3.7
call delay 7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan
; kompilasi program dari *.asm ke *.hex.
mov A,satuan 8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP
mov DPTR,#Data7segmen Software ( Lihat Petunjuk Penggunaan)
movc A,@A+DPTR
mov P0,A PERCOBAAN 4
Setb P3.5 ; LCD KARAKTER
Setb P3.6
Setb P3.7
call delay VCC
Potensio Multiturn

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:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 10


Tabel 4.1 Pin dan Fungsi Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa
PIN Name Function anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka
melalui program EN harus dibuat logika low 0 dan set pada dua jalur kontrol yang
1 VSS Ground voltage lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika 1 dan
2 VCC +5V tunggu untuk sejumlah waktu tertentu ( sesuai dengan datasheet dari LCD tersebut )
dan berikutnya set EN ke logika low 0 lagi.
3 VEE Contrast voltage
Register Select Jalur RS adalah jalur Register Select. Ketika RS berlogika low 0, data akan
4 RS 0 = Instruction Register dianggap sebagi sebua perintah atau instruksi khusus ( seperti clear screen, posisi
1 = Data Register kursor dll ). Ketika RS berlogika high 1, data yang dikirim adalah data text yang
Read/ Write, to choose write or read mode akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf T
5 R/W 0 = write mode pada layar LCD maka RS harus diset logika high 1.
1 = read mode
Enable Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka
6 E 0 = start to lacht data to LCD character informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high
1= disable 1, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada
aplikasi umum pin RW selalu diberi logika low 0.
7 DB0 LSB
8 DB1 - Function Set
9 DB2 - Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter
10 DB3 -
KONTROL DATA
11 DB4 -
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
12 DB5 -
0 pulse 0 0 0 1 DL N F X X
13 DB6 -
14 DB7 MSB
CATATAN:
15 BPL Back Plane Light X : Dont care
16 GND Ground voltage DL: Mengatur lebar data
DL=1, Lebar data interface 8 bit ( DB7 s/d DB0)
DL=0, Lebar data interface 4 bit ( DB7 s/d DB4)
Display karakter pada LCD diatur oleh pin EN, RS dan RW: Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 11


N : Megantur Jumlah Baris C : Menampilkan kursor
N = 1, 2 baris C = 1, kursor ditampilkan
N= 0, 1 baris C = 0, kursor tidak ditampilkan
F: Mengatur Ukuran Font, 5x7 atau 5x8 B : Karakter ditunjukkan dengan kursor yang berkedip
B=1, kursor blink
Entry Mode Set
Mengatur increment/ decrement dan mode geser Clear Display
Perintah ini hapus layar
KONTROL DATA
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 KONTROL DATA

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.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 12


POSISI KURSOR LCD. Antara lain: pengaturan lebar data interface 8 bit atau 4 bit data bus, pemilihan
Modul LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks ukuran font karakter 5x8 atau 5x7 dan lain-lain, dengan instruksi sebagai berikut.
yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD
secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu Init_lcd:
sendiri. mov r1,#00000001b ;Display clear
call write_inst ;EN=pulse dan RS=0
mov r1,#00111000b ;Function set, ;Data 8 bit,2 line font 5x7

call write_inst ;Set bit EN=pulse dan RS=0


mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call write_inst ;EN=pulse dan RS=0
Gambar 4.3. Lokasi memori display LCD Karakter mov r1,#00000110b ;Entry mode, Set increment
call write_inst
Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah ret
display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter
per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang Percobaan 4.1. Tulis Sebuah Karakter pada LCD Karakter
bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas
adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan Pada percobaan ini, karakter A akan ditampilkan pada LCD Karakter
seterusnya.Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim
sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom org 0h
tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan call init_LCD
alamat lokasi dimana kita berharap untuk menempatkan kursor.Sebagai contoh, kita start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
ingin menampilkan kata World pada baris ke dua pada posisi kolom ke sepuluh. Sesuai call write_inst ; panggil tulis instruksi
peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, mov R1,#'A' ; Cetak Karakter A
sehingga sebelum kita tulis kata World pada LCD, kita harus mengirim instruksi set call write_data ; panggil tulis data
posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat stop: sjmp stop
80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan
kursor pada baris kedua dan kolom ke 11 dari DDRAM. Init_lcd:
mov r1,#00000001b ;Display clear
INISIALISASI call write_inst
mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
Sebelum kita dapat menggunakan modul LCD, kita harus melakukan inisialisasi dan call write_inst
mengkonfigurasikannya. Hal ini dijalankan dengan mengirimkan sejumlah instruksi ke mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call write_inst

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 13


mov r1,#00000110b ;Entry mode, Set increment Percobaan 4.2. Tulis Delapan Karakter pada LCD Karakter
call write_inst
ret Pada percobaan ini, kalimat Welcome akan ditampilkan pada LCD Karakter pada
; baris 1 dan colom 1
Write_inst:
clr P3.6 ; P3.6 = RS =0 org 0h
mov P0,R1 ; copy R1 ke P0 call init_LCD
setb P3.7 ; P3.7 =EN = 1 start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
call delay ; call delay time call write_inst
clr P3.7 ; P3.7 =EN = 0 mov R1,#'W'
ret call write_data
; mov R1,#'e'
call write_data
mov R1,#'l'
Write_data: call write_data
setb P3.6 ; P3.6 = RS =1 mov R1,#'c'
mov P0,R1 ; copy R1 ke P0 call write_data
setb P3.7 ; P3.7 =EN = 1 mov R1,#'o'
call delay ; call delay time call write_data
clr p3.7 ; P3.7 =EN = 0 mov R1,#'m'
ret call write_data
; mov R1,#'e'
delay: mov R0,#0 call write_data
delay1:mov R7,#0fh stop: sjmp stop
djnz R7,$ Init_lcd:
djnz R0,delay1 mov r1,#00000001b ;Display clear
ret call write_inst
; mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
end call write_inst
6. Simpanlah program yang anda ketik dan beri nama : prog41a.asm mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi mov r1,#00000110b ;Entry mode, Set increment
program dari *.asm ke *.hex. call write_inst
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP ret
Software ( Lihat Petunjuk Penggunaan) ;
Write_inst:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 14


clr P3.6 ; P3.6 = RS =0 write_char:
mov P0,R1 ; copy R1 ke P0 mov dptr,#word1 ;DPTR = [ address word1 ]
setb P3.7 ; P3.7 =EN = 1 mov r3,#16 ;R3=16,number character to be display
call delay ; call delay time mov r1,#80h ;R1=80h,address DDRAM start position
clr P3.7 ; P3.7 =EN = 0 call write_inst
ret ;
; write1:clr a ;A=0
Write_data: movc a,@a+dptr ; A = [A+ DPTR]
setb P3.6 ; P3.6 = RS =1 mov r1,A ; R1 = A
mov P0,R1 ; copy R1 ke P0 inc dptr ; DPTR = DPTR +1
setb P3.7 ; P3.7 =EN = 1 call write_data;
call delay ; call delay time djnz r3,write1 ; R3 = R3-1,
clr p3.7 ; P3.7 =EN = 0 ret
ret ;
; Init_lcd:
delay: mov R0,#0 mov r1,#00000001b ;Display clear
delay1:mov R7,#0fh call write_inst ;
djnz R7,$ mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
djnz R0,delay1 call write_inst ;
ret mov r1,#00001100b ;Display on, cursor off,cursor blink off
; call write_inst
end mov r1,#00000110b ;Entry mode, Set increment
call write_inst
6. Simpanlah program yang anda ketik dan beri nama : prog42a.asm ret
;
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi Write_inst:
program dari *.asm ke *.hex. clr P3.6 ; P3.6 = RS =0
mov P0,R1 ; copy R1 ke P0
Percobaan 4.3. Tulis Karakter Dengan Look Up Table setb P3.7 ; P3.7 =EN = 1
Pada percobaan ini, kalimat Welcome home akan ditampilkan pada layar LCD call delay ; call delay time
Karakter dengan menggunakan look up table. clr P3.7 ; P3.7 =EN = 0
org 0h ret
call init_LCD ;
start: call write_char
stop: sjmp stop Write_data:
; setb P3.6 ; P3.6 = RS =1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 15


mov P0,R1 ; copy R1 ke P0 PERCOBAAN 5
setb P3.7 ; P3.7 =EN = 1 ANALOG TO DIGITAL CONVERTER ( ADC )
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret VCC VCC
;

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

G 74LS244 RUN/ EN ADC

Gambar 5.1 Rangkaian ADC0804

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.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 16


Pin 5 adalah saluran yang digunakan untuk INTR, sinyal selesai konversi. INTR
akan menjadi tinggi pada saat memulai konversi, dan akan aktiv rendah bila konversi
telah selesai. Tepi turun sinyal INTR dapat dipergunakan untuk menginterupsi sistem
mikrokontroller, supaya mikrokontroller melakukan pencabangan ke subrutine
pelayanan yang memproses keluaran konverter.
Pin 6 dan 7 adalah masukan diferensial bagi sinyal analog. A/D ini mempunyai dua
ground, A GND (pin 8) dan D GND ( pin10). Kedua pin ini harus dihubungkan
dengan ground. Pin 20 harus dihubungkan dengan catu daya +5V
A/D ini mempunyai dua buah ground, A GND ( pin 8 ) dan D GND ( pin 10).
Keduanya harus dihubungkan dengan catu daya, sebesar +5V.
Pada A/D 0804 VREF merupakan tegangan referensi yang digunakan untuk offset
suatu keluaran digital maksimum. Dengan persamaan sebagai berikut:
V REF = 12 V IN maks

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).

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 17


A/D ini dapat dirangkai untuk menghasilkan konversi secara kontinu. Untuk Common Anoda P0.6..P0.0
melaksanakannya, kita harus menghubungkan CS, dan RD ke ground dan
a a
menyambungkan WR dengan INTR seperti pada gambar dibawah ini. Maka dengan ini f b b
c
d
keluaran digital yang kontinu akan muncul, karena sinyal INTR menggerakkan masukan e
g e
c f
WR. Pada akhir konversi INTR berubah menjadi low, sehingga keadaan ini akan mereset d g

konverter dan mulai konversi.


7 x 220 ohm
VCC VCC VCC VCC VCC VCC VCC VCC

Tabel 5.1 Koneksi Interface ADC ke Mikrokontroller Y7..Y0


PNP PNP PNP PNP PNP PNP PNP PNP
FCS 9013 FCS 9013
ADC Mikrokontroller FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013

/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

1 1 1 Hi-Z Berada dalam keadaan High R28


74LS138
Impedansi VCC 10K
0 1 1 Hi-Z A/D mengalami reset Data
1 1 1 Hi-Z Mulai konversi Analog ke Digital
(b)
1 1 0 Hi-Z Konversi telah selesai
1 0 1 D0 s/d D7 Data digital telah siap diambil Gambar 5.3. Interface rangkaian display 7 segmen

ratusan equ 30h


Percobaan 5.1. ADC0804 dan Display ke 7 Segmen puluhan equ 31h
satuan equ 32h
Pada percobaan ini, Data ADC yang telah diubah dalam desimal ( ratusan, puluhan dan ;
satuan) akan ditampilkan pada 8 x 7 Segmen pada Display 1, Display 2, dan Display 3 org 0h
yang masing-masing menampilkan data ratusan, puluhan dan satuan. start: call ADC

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 18


call Bin2Dec mov DPTR,#Data7segmen
call Display2SevenSegmen movc A,@A+DPTR
sjmp start mov P0,A
; clr P3.5 ;
;======================================== Setb P3.6
;Subrutin ini digunakan untuk mengambil data ADC Setb P3.7
;======================================== call delay
ADC: clr P3.3 ; Reset ADC. P3.3 = 0 ;
Nop ; delay 1us mov A,satuan
Nop ; delay 1 us mov DPTR,#Data7segmen
Nop ; delay 1 us movc A,@A+DPTR
setb P3.3 ; Start Conversi mov P0,A
eoc: jb P3.2,eoc ; Tunggu interupsi INT, apakah P3.2= 1, jika Ya Setb P3.5 ;
; lompat ke EOC Setb P3.6
clr P3.4 ; Baca Data. P3.4=0 Setb P3.7
mov A,P1 ; Copy data P1 ke A call delay
setb P3.4 ; Disable RD. P3.4=1 ret
ret ;
; delay: mov R0,#0
;================================================= delay1:mov R2,#0fh
;Subrutin ini untuk menampilkan data ke 7 Segmen djnz R2,$
;dalam bentuk: ratusan, puluhan, and satuan djnz R0,delay1
;data desimal diubah ke segmen dengan menggunakan ret
;Look up table Data7segmen ;========================================
;================================================= ;Subrutin ini untuk merubah data biner ke desimal
Display2SevenSegmen: ;menjadi 3 digit = ratusan-puluhan-satuan
mov A, ratusan ;Copy data Ratusan ke A ;=========================================
mov DPTR,#Data7segmen ;Copy Address #Data7segmen ke DPTR Bin2Dec:
movc A,@A+DPTR ;Copy Isi A+DPTR ke A mov b,#100d
mov P0,A ;Copy A ke P0 div ab
Setb P3.5 ;Decoder, A=1, mov ratusan,a
clr P3.6 ;B=0 mov a,b
Setb P3.7 ; dan C=1 mov b,#10d
call delay ;Panggil waktu tunda div ab
; mov puluhan,a
mov A,puluhan mov satuan,b

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 19


ret org 0h
; ratusan equ 30h
Data7segmen: puluhan equ 31h
db 11000000b,11111001b,10100100b,10110000b,10011001b satuan equ 32h
db 10010010b,10000010b,11111000b,10000000b,10010000b ;
end org 0h
call init_LCD
Percobaan 5.2. ADC0804 dan Display ke LCD Karakter 2x16 call write_char
start:call ADC
Pada percobaan ini, Data ADC dalam desimal akan ditampilkan pada LCD Karakter call Bin2Dec
2x16 pada Baris 1, Colom 1, 2 dan 3, yang masing-masing menampilkan data ratusan, call Write2LCD
puluhan dan satuan. sjmp start
Potensio Multiturn ;=======================================
VCC
10k
;Subrutin ini digunakan untuk mengambil data ADC
;========================================
J3 ADC: clr P3.3
3 P0.7..P0.0 nop
EN LCD
1
2

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

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 20


; mov r1,#80h ;R1=80h,address DDRAM start position
mov r1,#0cah acall write_inst
call write_inst ;
mov a,puluhan write1:clr a ;A=0
add a,#30h movc a,@a+dptr ; A = [A+ DPTR]
mov r1,a mov r1,A ; R1 = A
call write_data inc dptr ; DPTR = DPTR +1
; acall write_data ;
mov r1,#0cbh djnz r3,write1 ; R3 = R3-1,
call write_inst ret
mov a,satuan ;
add a,#30h Init_lcd:
mov r1,a mov r1,#00000001b ;Display clear
call write_data call write_inst
ret mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
;======================================= call write_inst
;Subrutin ini untuk merubah data biner ke desimal mov r1,#00001100b ;Display on, cursor off,cursor blink off
;menjadi 3 digit = ratusan-puluhan-satuan call write_inst
;======================================= mov r1,#00000110b ;Entry mode, Set increment
Bin2Dec: call write_inst
mov b,#100d ret
div ab ;
mov ratusan,a write_inst:
mov a,b clr P3.6 ; RS = P2.0 = 0, write mode instruction
mov b,#10d mov P0,R1 ; D7 s/d D0 = P0 = R1
div ab setb P3.7 ; EN = 1 = P2.1
mov puluhan,a call delay ; call delay time
mov satuan,b clr P3.7 ; EN = 0 = P2.1
ret ret
;=============================================== ;
;Subrutin untuk menampilkan tulisan Data ADC0804 Write_data:
; pada baris 1 setb P3.6 ; RS = P2.0 = 1, write mode data
;=============================================== mov P0,R1 ; D7 s/d D0 = P0 = R1
write_char: setb P3.7 ; EN = 1 = P2.1
mov dptr,#word1 ;DPTR = [ address word1 ] call delay ; call delay time
mov r3,#16 ;R3=16,number character to be display clr p3.7 ; EN = 0 = P2.1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 21


ret LAMPIRAN Diagram Skematik Rangkaian
;
delay: mov R0,#0 L2.1. Rangkaian Target Programmer
delay1:mov R2,#0fh HEADER 8
djnz R2,$ 1
djnz R0,delay1 2 HEADER 8
3 AT89S51
ret 4 1
; 5 39 21 2
6 38 P0.0/AD0 P2.0/A8 22 3
word1: DB ' Data ADC0804 ' 7 37 P0.1/AD1 P2.1/A9 23 4
end 8 36 P0.2/AD2 P2.2/A10 24 5
35 P0.3/AD3 P2.3/A11 25 6
34 P0.4/AD4 P2.4/A12 26 7
7. Simpanlah program yang anda ketik dan beri nama : prog52a.asm 1 33 P0.5/AD5 P2.5/A13 27 8
2 32 P0.6/AD6 P2.6/A14 28
3 P0.7/AD7 P2.7/A15
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi 4 1 10
program dari *.asm ke *.hex. 5 2 P1.0/T2 P3.0/RXD 11 1
6 3 P1.1/T2-EX P3.1/TXD 12 2
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP 7 P1.2 P3.2/INTO 3
PROGRAMMER VCC
8
4
P1.3 P3.3/INT1
13
4
Software ( Lihat Petunjuk Penggunaan) 5
P1.4/SS P3.4/TO
14
5
6 15
1 7 P1.5/MOSI P3.5/T1 16 6
2 8 P1.6/MISO P3.6/WR 17 7
3 P1.7/SCK P3.7/RD 8
4 XTALL1 19 29
5 18 XTAL1 PSEN
6 XTALL2 9 XTAL2 30
RST ALE/PROG

1
VCC 31
VCC EA/VPP
10uF 1N4148 40
VCC

2
1k 30p
1k XTALL1

RESET CRY STAL


12 MHz
VCC

XTALL2

30p

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id Triwiyanto 22

Anda mungkin juga menyukai