Kumpulan artikel tentang IT, Informatika, Tutorial VB, Elektro, Mikrokontroler serta Kumpulan Puisi & Cerpen

Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan
Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan

Rabu, April 15, 2009

PANDUAN DASAR MIKROKONTROLER MENGGUNAKAN TOP VIEW SIMULATOR (2)

Selanjutnya kita belajar menyalakan LED menggunakan tombol. Aplikasi ini dapat diasumsikan sebagai aplikasi sensor. Tombol sebagai masukan / sensor dan nyala LED sebagai keluaran. Untuk kebutuhan lain, LED dapat diganti dengan relay untuk mengendalikan rangkaian lain.

Mari kita mulai percobaan ini.
1.Jalankan program TopViewSimulator dan load listing program seperti contoh di bawah. Cara load listing program dan compile nya telah dibahas pada pembahasan sebelumnya, lihat. Dan untuk listing programnya dapat diunduh di sini.

Gambar 1.

2.Pilih menu File → External Modules Setting → Led dan tandai port yang akan digunakan untuk LED yaitu port 1. Lalu tekan OK.

Gambar 2.
3.Untuk tombol pilih menu File → External Mudules Setting → Keyboard dan tandai port untuk tombol, yaitu port 3. Pada Matrix KeyPad pilih None lalu tekan OK.

Gambar 3.
4.Untuk menampilkan LED pilih menu View → External Modules → Led, dan untuk menampilkan tombol pilih menu View → External Modules → Keyboard.

Gambar 4.
5.Selanjutnya jalankan programnya, tekan Go To dan isi dengan 00 lalu tekan Execute. Tampak hasilnya seperti di bawah.

Gambar 5.
6.Nah, kalian dapat mengembangkannya untuk keperluan lain. Misal P3.0 untuk menghidupkan LED dan P3.1 untuk memadamkannya. Listing programnya silakan unduh di sini.

Sampai di sini dulu ya…. Tunggu aksi berikutnya…!
Share:

Jumat, April 10, 2009

PANDUAN DASAR MIKROKONTROLER MENGGUNAKAN TOP VIEW SIMULATOR (1)

Bagi yang baru belajar mikrokontroler mungkin akan sedikit kesulitan jika harus mencoba membuat program dan menjalankannya menggunakan rangkaian mikrokontroler (hardware). Namun kali ini kita akan mencoba menggunakan simulator untuk menjalankan / debugging program mikrokontroler keluarga MCS51. Dengan simulator akan lebih mudah menjalankan program dan tanpa biaya untuk membuat rangkaiannya.

Pertama kita install dulu Top View Simulator nya. Bagi yang belum punya silakan unduh di sini.

1.Jalankan setup.exe dan akan tampil seperti ini.

Gambar 1.

2.Tekan Next, dan pilih directory tempat menyimpan file sistemnya. Untuk standard nya pada C:\Program file\
3.Tekan Next, Next, dan tunggu hingga proses selesai.

Gambar 2.
Nah, kita sudah punya simulatornya. Sekarang bagaimana menggunakannya?
Sebelumnya kita harus punya program assembly. Biasanya program assembly ditulis menggunakan notepad dan disimpan dengan extensi *.asm dan di-compile menggunakan compiler. Untuk compilernya dapat diunduh di sini.

1.Jalankan TopViewSimulator dan akan muncul seperti gambar 3. Pada menu dropdown Select Device pilih Atmel 89C51. Tekan OK.
Gambar 3.
2.Buka program notepad dan ketik listing programnya, kemudian simpan pada folder ASM51 dengan extensi *.asm. Misal Coba.asm. Dapat diunduh di sini.



Gambar 4.

3.Untuk meng-compile nya sebenarnya dapat dilakukan dengan menggunakan program TopViewSimulator. Karena pada program tersebut sudah ada menu compile file asm.
4.Pindah ke program TopViewSimulator dan pilih menu File → Load Text File dan pilih pada coba.asm

Gambar 5.

5.Tekan tombol menu Run ASM

Gambar 6.

6.Jika tidak ada kesalahan maka pada coba.lst terdapat tulisan ASSEMBLY COMPLETE, 0 ERRORS FOUND dan tampil.

Gambar 7.

7.Pilih menu File → External Modules Setting → Led dan akan muncul form seperti pada gambar 8. pilih port yang akan disambungkan dengan LED misal port 1, centanglah masing-masing bit pada port 1. selnjutnya tekan OK.

Gambar 8.

8.Selanjutnya adalah menampilkan LED modul tersebut, dengan cara pilih menu View → External Module → Led

Gambar 9.

9.Nah, langkah terakhir yaitu menjalankannya dengan memilih menu Run → Go To dan akan tampil.

Gambar 10.
Isi dengan 00 karena program yang kita buat berawal dari alamat 00H, selanjutnya tekan Execute

Gambar 11.

Ooo, ternyata mudah ya…menyenangkan… Oke, sampai di sini dulu aja ya… Qta bertemu lagi di lain kesempatan. Semoga bermanfaat.

SELAMAT MENCOBA!!!


Share:

Jumat, April 03, 2009

Menampilkan karakter pada LCD 2 x 16 karakter

Modul LCD (Liquid Cristal Display) digunakan sebagai prototype dari sebuah informasi. Agar terhubung dengan mikrokontroler, LCD dilengkapi dengan 8 bit data bus (DB0-DB7) yang digunakan untuk menyalurkan data ASCII (American Standard Code for Information Interchange) maupun perintah pengatur kerjanya.
Modul LCD sendiri terdiri dari display dan chipset, dimana chipset ini sendiri sebenarnya merupakan mikrokontroler. Chipset ini berfungsi untuk mengatur tampilan informasi serta berfungsi mengatur komunikasi dengan mikrokontroler yang memakai tampilan LCD itu. Sehingga pada dasarnya interface yang akan dibuat merupakan komunikasi dua buah mikrokontroler.

Sebelum merancang suatu interface, harus diketahui dahulu susunan pin dari LCD tersebut. Adapun susunan pin serta bentuk dari standard LCD 16 pin beserta fungsi dari masing-masing pin adalah seperti pada gambar 1 berikut:

Gambar 1. LCD 2x16 Karakter
Pada saat terhubung dengan LCD, mikrokontroler dapat mengirimkan instruksi yang harus dilaksanakan ataupun data yang harus ditampilkan. Pengiriman instruksi dan data ke LCD diatur oleh RS (Register Select). Pengiriman perintah (instruksi) dilakukan dengan memberikan logika rendah pada pin RS LCD. Sedangkan jika yang dikirim adalah kode ASCII yang akan ditampilkan, maka pin RS LCD diberikan logika tinggi.
Untuk menandakan akan diadakan pengiriman data ke modul LCD dilakukan dengan memberikan logika rendah pada pin RW LCD. Setelah itu data disiapkan di DB0-DB7, sesaat kemudian pin EN ditinggalkan sesaat. Pada saat pin EN berubah dari tinggi ke rendah, data di DB0-DB7 diterima oleh LCD. Tabel 1 dibawah ini menerangkan susunan pin standard LCD 16 pin.










































































Tabel 1. Susunan pin LCD 2x16
No.SimbolLevelFungsi
1.Vss-power supply 0 volt (GND)
2.Vcc-power supply 5 volt ± 10%
3.Vcc-kontras LCD
4.RsI/O1=data; 0=instruksi
5.R/WI/O1=baca; 0=tulis
6.EN1 ke 0penyerempak (clock)
7.DB0I/OBus Data
:::Bus Data
14.DB7I/OBus Data
15.A-back light 4 - 42 v 50-200mA
16.K-back light 0 v (GND)


Untuk membuat suatu karakter tampilan LCD pada suatu posisi tertentu, harus diketahui dulu peta alamat dari LCD itu sendiri. Misalnya diinginkan menulis suatu kata dimulai dari baris kedua kolom pertama, berarti alamat yang dipakai pada LCD adalah 0C0h, tanda h menunjukkan bahwa nilai tersebut dalam kode bilangan heksa desimal. Tabel 2 berikut merupakan peta alamat LCD dengan spesifikasi 2x16 karakter.







































Tabel 2. Peta alamat LCD 2x16
Peta alamat LCD 2 x 16
808182838485868788898A8B8C8D8E8F
C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF

Berikut contoh program untuk menampilkan karakter pada LCD 2 x 16:

;---------------------------------------------
;Program untuk menulis ke LCD 16 x 2 karakter
; irf@n Software Corporation
;---------------------------------------------
funcset equ 00111000b
dispon equ 00001100b
gesrkan equ 00000110b
dispclr equ 00000001b

org 0h
clr p3.5
jmp Mulai
;
Write_inst:
mov P1,#0h ; untuk menuliskan
mov P0,R1 ; intruksi ke LCD
setb P1.1
clr P1.1
call Delay
ret
;
Write_data:
mov P1,#01 ; untuk menuliskan
mov P0,R1 ; data ke LCD
setb P1.1
clr P1.1
call Delay
ret
;
Delay: mov R0,#0
Delay1: mov R5,#50h
djnz R5,$
djnz R0,Delay1
ret
;
Ldelay: mov R2,#20h
Ld1: call Delay
djnz R2,Ld1
ret
;
Tulis: mov R4,#3 ; untuk 3 kali penulisan (x 2 baris)
mov DPTR,#Tulisan ; menunjuk ke alamat tulisan
Baris1: mov R3,#16 ; lakukan sebanyak 16 karakter
mov R1,#80h ; pindahkan kursor ke alamat
call Write_inst ; 00h (baris 1 kolom 1)
Tulis1: clr A
movc A,@A+DPTR ; ambil data karakter yang akan dituliskan
mov R1,A ; tuliskan data tersebut
call Write_data ; ke panel LCD
inc DPTR ; menunjuk ke karakter berikutnya
djnz R3,Tulis1
Baris2: mov R3,#16 ; untuk 16 karakter (dalam 1 baris)
mov R1,#0C0h ; pindahkan kursor ke alamat
call Write_inst ; 40h (baris 2 kolom 1)
Tulis2: clr A
movc A,@A+DPTR
mov R1,A
call Write_data
inc DPTR
djnz R3,Tulis2
call Ldelay
djnz R4,Baris1
ret
;
Mulai:
mov R1,#funcset ; inisialisasi
call Write_inst
mov R1,#dispon ; nyalakan LCD
call Write_inst
mov R1,#gesrkan ; set kursor geser kanan setiap menulis
call Write_inst
mov R1,#dispclr ; hapus layar
call Write_inst
Ulang:
call Tulis
jmp Ulang
;
Tulisan:
db ' SELAMAT DATANG '
db ' di '
db ' Laboratorium '
db ' Mikrokontroler '
db ' irf@n Software '
db ' Corporation '
end
Share:

Rabu, April 01, 2009

Menyalakan LED menggunakan tombol

Pada percobaan kali ini kita akan membuat aplikasi pengendalian 8 buah LED yang terhubung pada Port 1 (aktif low) AT89S51 dengan 3 buah tombol pada P3.0 – P3.2 (aktif low). dimana tiap tombol yang ditekan akan memberikan nyala LED yang berbeda-beda.
Berikut programnya:

Org 0h
nop
Mulai: MOV A,P3
CEK: CJNE A,#0FEH,CEK1 ;cek tombol1 (P3.0)
CALL LED_kanan_kiri
SJMP MULAI
CEK1: CJNE A,#0FDH,CEK2 ;cek tombol2 (P3.1)
CALL LED_jalan_dua
SJMP MULAI
CEK2: CJNE A,#0FBH,MULAI ;cek tombol3 (P3.2)
CALL LED_jalan_satu_satu
SJMP MULAI

LED_kanan_kiri:
clr P1.3
clr P1.4
call delay
clr P1.2
clr P1.5
call delay
clr P1.1
clr P1.6
call delay
clr P1.0
clr P1.7
call delay
call delay
call delay
setb P1.0
setb P1.7
call delay
setb P1.1
setb P1.6
call delay
setb P1.2
setb P1.5
call delay
setb P1.3
setb P1.4
call delay
call delay
mov R5,#2
ret
LED_jalan_dua:
Mov R2,#6
Mov A,#11111100B ; Masukkan data 111111100B ke Accumulator
loop1: Mov P1,A ; keluarkan isi Accumulator ke Port 1
RL A ; panggil sub routine Delay
call Delay ; Rotate Accumulator left
DJNZ R2,loop1 ; --<- b7-b6-b5-b4-b3-b2-b1-b0 <-----
MOV R2,#6 ; |-------------->-------------------|
loop2: Mov P1,A ; keluarkan isi Accumulator ke Port 1
RR A
call Delay
DJNZ R2,loop2
djnz R5,LED_jalan_dua
MOV A,#0FFH
MOV P1,A
ret
LED_jalan_satu_satu:
mov dptr,#LED_satu
mov R4,#36
next1: clr A
Movc A,@A+DPTR
cpl A
Mov P1,A
inc dptr
call Delay
djnz R4,next1
call delay
call delay
call delay
mov dptr,#LED_satu
mov R4,#36
next2: mov A,R4
Movc A,@A+DPTR
cpl A
Mov P1,A
call Delay
djnz R4,next2
mov P1,#0FFh
call delay
call delay
call delay
MOV R5,#2
ret
;---------------------------------
; sub routine delay
;---------------------------------
Delay: DJNZ R3,delay ; R3=R3-1 bila <> 0 ke label delay
Djnz R1,Delay ; R1=R1-1 bila <> 0 ke label delay
Ret ; Kembali ke alamat setelah perintah
; 'call Delay'
;-----------------------------------------------------
LED_SATU:
DB 01h,02H,04H,08H,10H,20H,40H,80H
DB 81h,82h,84h,88h,90h,0B0h,0C0h
DB 0C1h,0C2h,0C4h,0C8h,0D0h,0E0h
DB 0E1h,0E2h,0E4h,0E8h,0F0h
DB 0F1h,0F2h,0F4h,0F8h
DB 0F9h,0FBh,0FCh
DB 0FDH,0FEh
DB 0FFh
End

Selamat Mencoba!

Share:

Selasa, Maret 24, 2009

Menyalakan LED selama 1 detik

Berikut ini akan disampaikan contoh aplikasi mikrokontroler untuk mengendalikan nyala LED selama 1 detik. LED terdiri dari 8 buah LED yang dihubungkan dengan Port 1 (aktif low) pada AT89S51. berikut contoh programnya:

RATUSAN EQU 100
CACAH EQU -10000
ORG 0H
MOV TMOD,#01H
MULAI:
MOV P1,#00H
CALL TUNDA
MOV P1,#0FFH
CALL TUNDA
SJMP MULAI
TUNDA:
MOV R1,#RATUSAN
LAGI:
MOV TH0,#HIGH CACAH
MOV TL0,#LOW CACAH
SETB TR0
TUNGGU:
JNB TF0,TUNGGU
CLR TF0
CLR TR0
DJNZ R1,LAGI
RET
END
Pada program di atas menggunakan timer 0 mode 16 bit. Timer ini tergantung dari clock pada mikrokontroler tersebut, dimana pada aplikasi ini menggunakan kristal 12 Mhz dan kapasitor 33 pF pada kaki 18 (XTAL 1) dan kaki 19 (XTAL 2). Osilator yang digunakan adalah rangkaian osilator yang sudah terdapat pada mikrokontroler, dan hanya menambahkan kristal dan kapasitor sebagai penentu frekuensi clock yang digunakan.
Kristal yang digunakan adalah 12 Mhz,
Karena = Frekuensi kristal = 12 MHz
T = 1 / f
T = 1 / 12 MHz
= 8,333333333-8
T = 8,333333333-8 x 1000000
= 0,083333333 udetik
sehingga satu periode gelombang kotak adalah :
satu periode = 0,083333333 / 2
= 0,04166 udetik





Gambar Priode Gelombang Kotak
satu siklus mesin terbagi menjadi 6 kelompok dengan setiap satu kelompok membutuhkan dua periode gelombang kotak, maka satu siklus mesin adalah:
satu siklus mesin = 0,083333333 x 2 x 6
= 0,9 ~ 1 udetik
Satu siklus mesin akan menjalankan satu perintah mikrokontroler, tidak menutup kemungkinan satu perintah membutuhkan dua siklus mesin. Apabila digunakan kristal 12 MHz, maka waktu yang diperlukan setiap satu siklus mesin adalah 1 udetik.
Pada aplikasi ini, kita mengisi timer dengan perhitungan 100x10000 = 1000000 udetik = 1 detik.

Share:

Kalender Hijriah


Jadwal Sholat


Subscribe

kirim update terbaru dari

Blog Irda langsung ke Email anda!


Komentar Terbaru

Site Info

Tukeran link yuk

Copy kode di bawah masukan di blog anda, saya akan segera linkback kembali

Irdaloves Blog

Follower

Blog Archive