Alhamdulillah perjuangan kuliah Diploma 4 selama 4 tahun telah berakhir bulan Juni 2012 ini. Ditandai dengan lancarnya sidang Tugas Akhir yang lumayan bikin gugup juga,hehe. Judul Tugas Akhir yang gw angkat adalah tentang kontrol motor pengaduk berdasarkan level air menggunakan sensor ultrasonik dan ditampilkan di LCD dan Borland Delphi via komunikasi Serial.
Sensor ultrasonik yg gw pake ini termasuk murah meriah, tipenya SRF05-HY yang dijual seharga 70rb-an di pasaran. Mikrokontroler yang gw pake ATMEGA 16, harganya 30rb. Gw program pake bahasa C++ via Codevision. Motor DC gw pake yang maksimal 12VDC. LCD 2x16 harganya di 30rb. Perancangan mekaniknya gw serahin sama bengkel aja, gw cuma desain bentuk tangki2 nya aja. Perancangan pengaduknya gw bikin sendiri. Poros motor gw sambung pake pipa kecil yang bisa masuk dan ujungnya gw kasih adukan mixer. Untuk jalur pemipaannya gw desain sendiri. Motor pompa gw pake yang biasa di akuarium, kenceng juga kok debitnya, 1000L/jam. Gw juga pake solenoid valve AC buat buka tutup outlet tangki.
Lebih lanjut tentang proyek Tugas Akhir gw ini bakal gw share nanti ya.. Bakalan lengkap kok sama source code+laporannya. Ilmu itu memang ga GRATIS, tapi bisa disebar secara GRATIS. CMIIW
Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan
Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan
Minggu, 08 Juli 2012
Jumat, 05 November 2010
Buat sendiri downloader AT89S51/52/53/55 via PARALLEL PORT
Seri MCS AT89Sxx memang lebih unggul dibanding saudara tuanya yaitu AT89Cxx, karena seri terbaru ini memiliki kemampuan memprogram langsung atau In-System Programming (ISP). Rangkaian downloader parallel ini sangat mudah dan murah meriah. Kita dapat langsung membuatnya.
Komponen yang dibutuhkan hanyalah kabel pelangi atau abu-abu ditambah socket IDC (untuk socket terserah Anda mendesainnya), lalu resistor dan jangan lupa socket DB25 jenis Male apabila anda ingin membuat terpisah dari PCB micro anda. DB25 jenis Female apabila Anda ingin membuatnya langsung di PCB micro anda. Tetapi konsekuensinya anda harus membeli kabel printer port tersebut yang banyak dijual di pasaran.
Kebetulan PCB yang saya buat, adalah support kedua-duanya, berikut gambar downloader yang saya buat.
Berikut adalah skematiknya,silakan anda buat.
Sedangkan untuk software programmer flashnya bisa digunakan software ISP buatan Moh.Asim Khan di situs berikut :
http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html
Berikut Screenshotnya:
Komponen yang dibutuhkan hanyalah kabel pelangi atau abu-abu ditambah socket IDC (untuk socket terserah Anda mendesainnya), lalu resistor dan jangan lupa socket DB25 jenis Male apabila anda ingin membuat terpisah dari PCB micro anda. DB25 jenis Female apabila Anda ingin membuatnya langsung di PCB micro anda. Tetapi konsekuensinya anda harus membeli kabel printer port tersebut yang banyak dijual di pasaran.
Kebetulan PCB yang saya buat, adalah support kedua-duanya, berikut gambar downloader yang saya buat.
Berikut adalah skematiknya,silakan anda buat.
Sedangkan untuk software programmer flashnya bisa digunakan software ISP buatan Moh.Asim Khan di situs berikut :
http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html
Berikut Screenshotnya:
Kamis, 21 Oktober 2010
Buat program kombinasi 2 Input push button untuk mengontrol arah RUNNING LED (kanan/kiri) via MCS-51
Program yang satu ini merupakan pengembangan program saya sebelumnya tentang program Running Led dengan register. Perbedaannya adalah terletak pada adanya masukan input yang akan mengontrol mikrokontroler untuk menghidupkan running led ke arah kiri atau kanan.
Berikut akan saya tampilkan rangkaiannya.
Berikut adalah listing programnya menggunakan bahsa assembler dengan PORT1 Mikrokontroler sebagai input push button dan PORT2 sebagai output LED.
;=======================================================================
;PROGRAM KONTROL GERAK ARAH LED (KANAN-KIRI) DENGAN PUSH BUTTON
;Oleh : TRIHADI KURNIAWAN
;MIDBA 080012
;=======================================================================
org 0h
;=======================================================================
; PROGRAM INPUT AWAL
;=======================================================================
cekatas: JNB P1.2,belokkiri ;cek tombol atas ditekan ato ga, kalo YA -> langsung loncat ke belokkiri
call cekbawah ;kalo tidak coba cekbawah
sjmp cekatas ;kembali cekatas lagi
cekbawah: JNB P1.3,belokkanan ;cek tombol bawah ditekan ato ga, kalo YA -> langsung loncat ke belokkanan
call cekatas ;kalo tidak coba cekatas
sjmp cekbawah ;kembali cekbawah lagi
;=======================================================================
; PROGRAM JALAN LED PAKE 2 INPUT
;=======================================================================
belokkiri: mov A,#00000001b ;set susunan nyala led awal kalo mau belokkiri disimpan dalam Akumulator
mov R0,#8 ;perulangan sebanyak 8 langkah disimpan di R0
;
kiri:
JNB P1.3,belokkanan ;cek apakah selagi led belokkiri ada tombol atas yang ditekan ga,
;kalo YA -> langsung lompat belokkanan
mov P2,A ;Pindahkan data pada Akumulator ke PORT 2->output
call delay ;tunda dulu sebelum di rotasi
RL A ;rotate left data pada Akumulator
DEC R0 ;decrement/pengurangan terus dari data R0=8 sampe 0 jadi ngitung mundur doi
CJNE R0,#0,kiri ;bandingkan jika R0 udah 0 yaudah selese dia ngitungnya cape,hehe
;kalo R0 belum 0 ya ngulang lagi dari belokkiri
sjmp belokkiri
ret ;berhenti
;
belokkanan: mov A,#10000000b ;set susunan nyala led awal kalo mau belokkanan disimpan dalam Akumulator
mov R0,#8 ;simpan sebanyak 8 langkah di R0
kanan:
JNB P1.2,belokkiri ;cek apakah selagi led belokkanan ada tombol bawah yang ditekan ga,
;kalo YA -> langsung lompat belokkiri
mov P2,A ;Pindahkan data pada Akumulator ke PORT 2->output
call delay ;tunda dulu sebelum di rotasi
RR A ;rotate right data pada Akumulator
DEC R0 ;decrement/pengurangan terus dari data R0=8 sampe 0 jadi ngitung mundur doi
CJNE R0,#0,kanan ;bandingkan jika R0 udah 0 yaudah selese dia ngitungnya cape,hehe,
;kalo R0 belum 0 ya ngulang lagi dari belokkanan
sjmp belokkanan
ret ;berhenti
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Berikut akan saya tampilkan rangkaiannya.
Berikut adalah listing programnya menggunakan bahsa assembler dengan PORT1 Mikrokontroler sebagai input push button dan PORT2 sebagai output LED.
;=======================================================================
;PROGRAM KONTROL GERAK ARAH LED (KANAN-KIRI) DENGAN PUSH BUTTON
;Oleh : TRIHADI KURNIAWAN
;MIDBA 080012
;=======================================================================
org 0h
;=======================================================================
; PROGRAM INPUT AWAL
;=======================================================================
cekatas: JNB P1.2,belokkiri ;cek tombol atas ditekan ato ga, kalo YA -> langsung loncat ke belokkiri
call cekbawah ;kalo tidak coba cekbawah
sjmp cekatas ;kembali cekatas lagi
cekbawah: JNB P1.3,belokkanan ;cek tombol bawah ditekan ato ga, kalo YA -> langsung loncat ke belokkanan
call cekatas ;kalo tidak coba cekatas
sjmp cekbawah ;kembali cekbawah lagi
;=======================================================================
; PROGRAM JALAN LED PAKE 2 INPUT
;=======================================================================
belokkiri: mov A,#00000001b ;set susunan nyala led awal kalo mau belokkiri disimpan dalam Akumulator
mov R0,#8 ;perulangan sebanyak 8 langkah disimpan di R0
;
kiri:
JNB P1.3,belokkanan ;cek apakah selagi led belokkiri ada tombol atas yang ditekan ga,
;kalo YA -> langsung lompat belokkanan
mov P2,A ;Pindahkan data pada Akumulator ke PORT 2->output
call delay ;tunda dulu sebelum di rotasi
RL A ;rotate left data pada Akumulator
DEC R0 ;decrement/pengurangan terus dari data R0=8 sampe 0 jadi ngitung mundur doi
CJNE R0,#0,kiri ;bandingkan jika R0 udah 0 yaudah selese dia ngitungnya cape,hehe
;kalo R0 belum 0 ya ngulang lagi dari belokkiri
sjmp belokkiri
ret ;berhenti
;
belokkanan: mov A,#10000000b ;set susunan nyala led awal kalo mau belokkanan disimpan dalam Akumulator
mov R0,#8 ;simpan sebanyak 8 langkah di R0
kanan:
JNB P1.2,belokkiri ;cek apakah selagi led belokkanan ada tombol bawah yang ditekan ga,
;kalo YA -> langsung lompat belokkiri
mov P2,A ;Pindahkan data pada Akumulator ke PORT 2->output
call delay ;tunda dulu sebelum di rotasi
RR A ;rotate right data pada Akumulator
DEC R0 ;decrement/pengurangan terus dari data R0=8 sampe 0 jadi ngitung mundur doi
CJNE R0,#0,kanan ;bandingkan jika R0 udah 0 yaudah selese dia ngitungnya cape,hehe,
;kalo R0 belum 0 ya ngulang lagi dari belokkanan
sjmp belokkanan
ret ;berhenti
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Buat running LED mikrokontroler MCS-51 dengan bantuan Register
Apabila Anda memperhatikan tulisan running led saya sebelumnya, maka sekarang saya akan memberikan program yang sedikit berbeda. Program kali ini akan memanfaatkan register R0-R7 yang ada di mikrokontroler MCS-51.
Untuk gambar rangkaian saya coba pilih rangkaian led Active High sebagai komparasi saja.
Berikut listing programnya dalam bahasa assembler
org 0h
;=======================================================================
; PROGRAM LED BERJALAN KE KIRI DAN KANAN DENGAN REGISTER
; oleh TRIHADI KURNIAWAN
;=======================================================================
start: mov A,#00000001b
mov R0,#7
;
kiri: mov P2,A
call delay
RL A
DEC R0
CJNE R0,#0,kiri
;
mov R0,#7
kanan: mov P2,A
call delay
RR A
DEC R0
CJNE R0,#0,kanan
sjmp start
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Untuk gambar rangkaian saya coba pilih rangkaian led Active High sebagai komparasi saja.
Berikut listing programnya dalam bahasa assembler
org 0h
;=======================================================================
; PROGRAM LED BERJALAN KE KIRI DAN KANAN DENGAN REGISTER
; oleh TRIHADI KURNIAWAN
;=======================================================================
start: mov A,#00000001b
mov R0,#7
;
kiri: mov P2,A
call delay
RL A
DEC R0
CJNE R0,#0,kiri
;
mov R0,#7
kanan: mov P2,A
call delay
RR A
DEC R0
CJNE R0,#0,kanan
sjmp start
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Buat running LED mikrokontroler MCS-51 dengan bahasa C
Apabila kita baru belajar mikrokontroler, maka tahapan pertama yang perlu kita kuasai adalah bagaimana cara mengontrol led. Terlihat sederhana memang, tetapi basic pemrograman mikrokontroler selanjutnya dapat berawal dari sini.
Berikut adalah contoh rangkaian led dengan konfigurasi Active Low menggunakan mikrokontroler ATMEL keluarga MCS-51 dan dikontrol pada PORT 2.
Berikut adalah listing programnya menggunakan bahasa C dengan bantuan compiler MIDE-51.
/*program running led berulang*/
/*trihadi kurniawan*/
/*mekatronika*/
#include<8051.h>
/*-------------*/
/*program tunda*/
/*-------------*/
void tunda(int n)
{
int i;
for (i=0;i
{
}
}
/*-------------*/
/*program utama*/
/*-------------*/
void main()
{
while(1)
{
//aktif low
P2 = 0x7F;//01111111
tunda(10000);
P2 = 0xBF;//10111111
tunda(10000);
P2 = 0xDF;//11011111
tunda(10000);
P2 = 0xEF;//11101111
tunda(10000);
P2 = 0xF7;//11110111
tunda(10000);
P2 = 0xFB;//11111011
tunda(10000);
P2 = 0xFD;//11111101
tunda(10000);
P2 = 0xFE;//11111110
tunda(10000);
}
}
Berikut juga akan saya tampilan listing programnya dalam bahasa assembler sebagai perbandingan.
org 0h
;
;===============================================
; PROGRAM RUNNING LED MCS 51 DENGAN PORT 2
; oleh TRIHADI KURNIAWAN
;===============================================
hidup: mov P2,#01111111b
call delay
mov P2,#10111111b
call delay
mov P2,#11011111b
call delay
mov P2,#11101111b
call delay
mov P2,#11110111b
call delay
mov P2,#11111011b
call delay
mov P2,#11111101b
call delay
mov P2,#11111110b
call delay
sjmp hidup
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Berikut adalah contoh rangkaian led dengan konfigurasi Active Low menggunakan mikrokontroler ATMEL keluarga MCS-51 dan dikontrol pada PORT 2.
Berikut adalah listing programnya menggunakan bahasa C dengan bantuan compiler MIDE-51.
/*program running led berulang*/
/*trihadi kurniawan*/
/*mekatronika*/
#include<8051.h>
/*-------------*/
/*program tunda*/
/*-------------*/
void tunda(int n)
{
int i;
for (i=0;i
{
}
}
/*-------------*/
/*program utama*/
/*-------------*/
void main()
{
while(1)
{
//aktif low
P2 = 0x7F;//01111111
tunda(10000);
P2 = 0xBF;//10111111
tunda(10000);
P2 = 0xDF;//11011111
tunda(10000);
P2 = 0xEF;//11101111
tunda(10000);
P2 = 0xF7;//11110111
tunda(10000);
P2 = 0xFB;//11111011
tunda(10000);
P2 = 0xFD;//11111101
tunda(10000);
P2 = 0xFE;//11111110
tunda(10000);
}
}
Berikut juga akan saya tampilan listing programnya dalam bahasa assembler sebagai perbandingan.
org 0h
;
;===============================================
; PROGRAM RUNNING LED MCS 51 DENGAN PORT 2
; oleh TRIHADI KURNIAWAN
;===============================================
hidup: mov P2,#01111111b
call delay
mov P2,#10111111b
call delay
mov P2,#11011111b
call delay
mov P2,#11101111b
call delay
mov P2,#11110111b
call delay
mov P2,#11111011b
call delay
mov P2,#11111101b
call delay
mov P2,#11111110b
call delay
sjmp hidup
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Langganan:
Postingan (Atom)
Rezeki Tambahan
"Rezeki tambahan" Namanya juga pedagang, mendapati pembeli yang menjual kembali barang yang sudah dibeli rasanya biasa. Dan saya ...
-
Oke, judul yang gw angkat ini lebih kepada keinginan besar gw untuk bisa sharing 2 rute pilihan apabila kalian pengen melakukan perjalanan...
-
IMO sebagai produsen hp lokal memang cukup sering mengeluarkan gadget-gadget murah tapi memiliki fitur wah. Untuk pasar android, IMO le...
-
Sebenernya tutorial sejenis udah banyak di internet, cuma disini saya hanya ingin share tambahan dan pengalaman saya selama melakukan upgrad...





