Breaking News

Jumat, April 27, 2012

Download Template blog

Free Blogger Templates (Blogspot)
1.www.btemplates.com
2.www.bloggerbuster.com
3.http://blogtemplate4u.com/
4.www.freeblogger-templates.blogspot.com
5.www.blogger-templates.blogspot.com
6.www.finalsense.com
7.www.ourblogtemplates.com
8.www.bloggerstyles.com
9.www.eblogtemplates.com
10.www.blogspottemplate.com

Free WordPress Templates
1. www.prowordpressthemes.com
2. www.wordpresstemplates.com
3. wordpresstemplates.name
4. www.skinpress.com
5. www.wordpress.org
6. www.topwpthemes.com
7. www.blogohblog.com
8. www.templatesbrowser.com
9. www.wpskins.org
10. www.freewordpresstheme.info

Premium WordPress Templates
1. www.wordpressthemesmarket.com
2. www.wpcandy.com
3. www.web20-templates.com
5. www.wpremix.com
6. www.ithemes.com
7. www.wp-magazine.com
8. www.studiopress.com
9. www.wp-vybe.com
10. www.premiumwp.com

Bonus Daftar Template Blog..^_^
1. http://www.eblogtemplates.com/
2. http://www.jackbook.com/
3. http://www.indosmart.blogspot.com/search/label/template
4. http://www.magznetwork.com/
5. http://www.freetemplate.widarto.net
6. www.simplebits.com
Read more ...

Kontrol Kecepatan Motor DC Melalui Komunikasi Serial VB


Kontrol Motor dengan Komunikasi Serial
Sama seperti artikel sebelumnya hanya saja disini sebagai inputnya yaitu melalui komunikasi serial PC. Sebagai tampilannya menggunakan Visual Basic 6. Simulasi disini sudah dicoba secara hardware dan hasilnya berhasil. Untuk menghubungkan mikrokontrole pada proteus dengan PC yaitu pada proteus menggunakan komponen COMPIM
sehingga mikrokontroler pada proteus dapat berkomunikasi Serial Port pada PC. Com pada mikro misalnya kita setting COM4 sedangkan pada PC kita setting COM3. Agar COM 3 dan COM dapat berkomunikasi yaitu menggunakan program “virtual serial Port”. Pada tampilan vb yaitu menggunakan scrollbar, nilai dari scrollbar ini dikirim melalui serial yaitu menggunakan mscomm.
Pada mikrokontroler yaitu menggunakan AVR ATMega16. Menggunakan fasilitas interupt serial receive. Jadi saat ada data masuk melalui serial maka otomatis AVR akan menjalankan program yang ada pada subrutin USART Receiver interrupt. Berikut setting programnya pada codevision AVR :
serial1serial2
serial3 serial4
Programnya :
#include
#include
#include
unsigned char cek,input; char lcd_buffer[33];
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<#define PARITY_ERROR (1<#define DATA_OVERRUN (1<#define DATA_REGISTER_EMPTY (1<#define RX_COMPLETE (1<
// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
PORTD.2=0; PORTD.3=1; OCR0=data; //Data serial untuk mengatur  //kecepatan motor
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,”Data Receive:%d”,data);
lcd_puts(lcd_buffer);
lcd_gotoxy(0,1);
if(OCR0==0){lcd_putsf(“Motor Mati  “);}
else if(OCR0>0 && OCR0<150){lcd_putsf(“Motor pelan”);}
else{lcd_putsf(“Motor Cepat”);}
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm(“cli”)
–rx_counter;
#asm(“sei”)
return data;
}
#pragma used-
#endif
// Standard Input/Output functions
#include
// Declare your global variables here
void main(void)
{ unsigned char data_rx[25],input,sip;
unsigned char i,j,k,l; //Declare your local variables here
PORTA=0×00;
DDRA=0×00;
PORTB=0×00;
DDRB=0×08;
PORTC=0×00;
DDRC=0×00;
PORTD=0×00;
DDRD=0xff;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 43.200 kHz
// Mode: Fast PWM top=FFh
// OC0 output: Non-Inverted PWM
TCCR0=0x6D;
TCNT0=0×00;
OCR0=0×00;
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
MCUCR=0×00;
MCUCSR=0×00;
TIMSK=0×00;
UCSRA=0×00;
UCSRB=0×98;
UCSRC=0×86;
UBRRH=0×00;
UBRRL=0×47;
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
// Global enable interrupts
#asm(“sei”)
while (1)
{
};
}
Sedangkan pada tampilan vb nya :
vb musbikhin
Private Sub Form_Load()
Text1 = 0
MSComm1.PortOpen = True
End Sub
Private Sub out_Change()
Dim nilai As Integer
nilai = out.Value
If nilai > 0 And nilai < 125 Then
Text1.BackColor = vbGreen
ElseIf nilai = 125 Then
Text1.BackColor = vbYellow
ElseIf nilai > 175 And nilai < 255 Then
Text1.BackColor = vbRed
End If
Text1 = nilai
MSComm1.Output = “” + Chr$(nilai)
End Sub




Read more ...

Sistem Kendali Jarak Jauh Motor Stepper Melalui RS-232 Berbasis Mikrokontroler MCS-51


P1010056
Sebuah system kendali jarak jauh melalui RS-232 untuk motor stepper dengan spesifikasi hardware:
  • Sistem minimum AT89S51 dengan clock 11.0592 MHz dilengkapi dengan downloader ISP dan komunikasi serial RS-232 ke PC.

  • Motor stepper tipe unipolar 4 fase (kutub) 1.8 derajat/step dengan driver transistor/uln 2803 dan tegangan supplai 12 V.
  • Sistem terhubung via RS-232 ke PC dengan pengaturan via hyperterminal pada baudrate 19200bps.
Cara kerja system :
Bila salah satu tombol [0] s.d [9] pada keyboard PC ditekan maka motor akan berputar searah jarum jam. Semakin besar nilai tombol maka motor stepper tersebut berputar lebih cepat dan bila ditekan tombol ‘0’ maka motor berhenti.
Kecepatan putar stepper = nilai tombol * RPM (putaran/menit).
Solusi :
1. Perhitungan Baudrate
Listing program untuk inisialisasi baudrate :
Mensetting register TMOD dengan nilai 20H, menggunakan timer 8 bit mode 2, auto reload jadi saat overflow nilai TH-1 sama dengan nilai saat disetting. Pada saat auto reload ini, TH yang diisikan dengan nilai awalan cacahan akan menyalin isinya pada TL. Yang selanjutnya TL akan selalu mencacah mulai dari nilai seperti isi TH. Sementara itu isi TH sendiri tidak berubah. Listing program : MOV TMOD,#20h ;Timer-1, Mode-2, auto-reload
Register SCON adalah register 8-bit yang digunakan untuk memprogram bit start dan bit stop pada pembingkaian data, dan hal lainnya. Register SCON diisi dengan nilai 52h, yang berarti serial mode-1, 8-bit data yang dibingkai dengan start dan stop bit. Listing program : MOV SCON,#52h.
Dengan tidak mengubah frekuensi kristal osilator, kita dapat mendua-kalikan baud rate dengan membuat SMOD menjadi = 1 . Saat bit SMOD pada register PCON ini = 1, peralatan serial beralih menggunakan frekuensi yang 1/16 dari siklus mesin ( sebelumnya
1/32 ). Sehingga perhitungannya menjadi MC (Siklus Mesin) = 11.0592 MHz / 12 = 921600 Hz. Baud dasar = 921.6 kHz / 16 = 57,600 Hz (SMOD =1) sehingga untuk menghasilkan frekuensi yang diinginkan yaitu 19200 maka 57600/3= 19200. Nilai 3 diisikan pada register TH1= -3.
Listing program :
MOV A,PCON ;A = PCON
SETB ACC.7 ;Buat D7 = 1 (Double rate)
MOV PCON,A ;
MOV TH1,#-3 ;dengan SMOD=1 === 57600/3 = 19200
2. Perhitungan Kecepatan motor
Pada motor stepper dengan spesifikasi 1,8 derajat/step. Sehingga untuk mencapai satu putaran penuh membutuhkan : 1 putaran = 360 derajat maka banyak step dalam 1 putaran 360/1.8 = 200 step. Crystal yang dipakai yaitu 11059200 Hz. Timer yang akan digunakan yaitu Timer 0 mode 1 sehingga TH0 dan TL0 dapat diisi masing-masing 8 bit.
Kecepatan putar stepper = nilai Tombol * 10 RPM (putaran/menit). Maka untuk mendapatkan nilai yang diisi pada register TH0 adalah dengan perhitungan :
11059200/12 = 921600 Hz sehingga 1 langkah/klik timer 1/921600= 1,085 us. Untuk 10 RPM maka jumlah step 200 step * 10 = 2000 step . Maka tiap step membutuhkan waktu :
60/2000 = 0.03. Untuk mendapatkan nilai TL0 dan TH0 dengan 10 RPM : 0.03 s/1,085 us = 0.03/0.000001085 = 27649 langkah. TL0 dan TH0 bisa diisi dengan 65536-27649=37888. Nilai hexadecimal dari 37887 adalah 93ffh sehingga TL0 =0FFh dan TH0= 93h.


Read more ...

Membuat Gelombang Kotak 5 KHz Pada MCS-51

GelKotak5KHz_thumb.jpg
Membuat gelombang kotak dengan menggunakan fasilitas timer yang ada pada MCS-51, Disini dimisalkan membuat gelombang kotak 5 KHz bisa juga dengan frekuensi yang lain seperti yang kita inginkan. Disini kita menggunakan crystal 11.0592 MHz. Sehingga perhitungannya adalah sebagai berikut :

Perhitungan :
Xtal yang dipakai 11.0592MHz sehingga frekuensi timer 1/12 11059200Hz=921600Hz
Waktu yang dibutuhkan timer untuk sekali mencacah =1/921600Hz=1.085 us
Periode Gelombang  T=1/f=1/5000Hz=0.0002 detik=200uS
½ untuk periode tinggi dan rendah ½ 200us= 100us
Timer yang dipakai : Timer 1 mode 1
Isi register TH1 dan TL1 = 65536-(100us/1.085us)=65536-92=65444 Desimal    => FFA4 h
Isi registerter TH1=FFh dan TL1=A4h

Rangkaian menggunakan simulasi proteus :
GelKotak5KHz settingICmikro
Programnya menggunakan assembly :
MOV TMOD,#10h ;Timer-1 Mode-1 (16-bit)
start: MOV TL1,#0A4h ;TL1=0, low byte
MOV TH1,#0ffh ;TH1=DCh, high byte
SETB TR1 ;jalankan Timer
loop: JNB TF1,loop ;Monitor Timer Flag
CLR TR1 ;Matikan Timer
CPL P0.1 ;Mentoggle out untuk tinggi rendah
CLR TF1 ;Reset TF
SJMP start ;reload Timer karena mode-1
END
Disini program diketik pada software IDE yaitu Menggunakan M-IDE Studio for MCS-51. Jika belum punya dapat dicari pada google atau dapat didownlod
hxxp://www.4shared.com/file/r48rUb9t/mide-51.html
Note: ganti hxxp dengan http
Berikut Hasil setelah dirun :
 HasilOsciloscope
Bila masih kurang jelas dapat dilihat pada video berikut :
Read more ...

Simulasi Proteus

Serial Komunikasi RS-485 Dengan MCS-51 Simulasi Proteus



RangkaianRS485.jpg
Membuat program serial komunikasi PC dengan MCS-51 dimana pada PC dan mikrokontroler terhubung dengan komunikasi serial RS-485 sehingga komunikasi data dalam jarak hingga 1200 meter, Pada aplikasi ini jika kita menekan huruf ‘N’ atau ‘n’ pada hyperterminal maka pada hyperterminal akan muncul nama kita (musbikhin) dan jika ditekan ‘R’ atau ‘r’ akan muncul pada hyperterminal NRP kita (7110040519).
(Crystal : 12MHz, Pengakesasan serial menggunakan metode pooling atau bukan interupt sehingga saat ada serial masuk program sedikit lambat. RS 485 disini menggunakan metode full dupplex )

Rangkaian dan Setting:
Rangkaian RS 485
Setting Serial USART_thumb[1]
Setting virtual Serial (baudrate: 2400) dengan cara klik dua kali pada virtual serial:
Setting virtual Serial_thumb[1]
Program (Masih Belum Sempurna) :
Program:

org 0h
nop
call initserial ; inisialisasi serial
mov dptr,#MyCharacter
gets: clr A
Movc A,@A+dptr
cjne A,#0,Next ; mengambil karakter pada label mycharacter ‘Tekan Tombol N atau n untuk Nama
R atau r untuk NRP” sampai karakter 0, jika tidak sama ;dengan 0 maka ;akan jump ke label Next
sjmp getin ; karakter sudah dikirim semua (A=0) jump ke getin
Next: call sendout ;menjalankan subrutin sendout
inc dptr ; mengincrement dptr
sjmp gets ; kembali ke gets
getin: call inchar ;memanggil subrutin inchar
cjne A,#’N',next1 ; jika yang ditekan adalah tombol ‘N’ maka akan melanjutkan program ;dibawahnya jika tidak sama dengan ‘N’ maka akan jump ke next1
mov dptr,#namaku ;menampilkan namaku ‘musbikhin’
clr A
Movc A,@A+dptr
cjne A,#0,lanjut
lanjut: call sendout
inc dptr
sjmp gets
next1: call inchar ;memanggil subrutin inchar
cjne A,#’R',next2 ; jika yang ditekan adalah tombol ‘R’ maka akan melanjutkan program ;dibawahnya jika tidak sama dengan ‘R’ maka akan jump ke next2
mov dptr,#nrpku ;menampilkan nrp ‘7110040519’
clr A
Movc A,@A+dptr
cjne A,#0,lanjut2
lanjut2: call sendout
inc dptr
sjmp gets
next2: call inchar ;memanggil subrutin inchar
cjne A,#’n',next3 ; jika yang ditekan adalah tombol ‘n’ maka akan melanjutkan ;program dibawahnya jika tidak sama dengan ‘n’ maka akan ;jump ke next3
mov dptr,#namaku ;menampilkan namaku ‘musbikhin’
clr A
Movc A,@A+dptr
cjne A,#0,lanjut3
lanjut3: call sendout
inc dptr
sjmp gets
next3: call inchar ;memanggil subrutin inchar
cjne A,#’r',next4 ; jika yang ditekan adalah tombol ‘r’ maka akan melanjutkan ;program dibawahnya jika tidak sama dengan ‘r’ maka akan ;jump ke next4
mov dptr,#nrpku
clr A
Movc A,@A+dptr
cjne A,#0,lanjut4
lanjut4: call sendout
inc dptr
sjmp gets
next4: sjmp getin ;kembali ke getin
;
initserial:
mov scon,#52h ; Konfigurasi komunikasi serial mode 1
mov tmod,#20h ; Baud rate 2400 BPS
mov th1,#0F3H
setb tr1
ret
;
inchar:
detecti: jnb ri,detecti ; Deteksi bit RI apakah data sudah diterima atau belum
clr ri ; mengclearkan bit ri
mov a,sbuf ; membaca data yang diterima pada register sbuf
ret ; kembali ke getin
;
Sendout:
detecto: jnb ti,detecto ; Deteksi bit TI apakah data sudah dikirim atau belum
clr ti ; ; sebelum mengirim data, bit TI dinolkan dulu
mov sbuf,a ; ; mengirim karakter pada register A yang berasal dari DPTR
ret ; kembali ke Next
;
MyCharacter:
DB ‘ Tekan Tombol N atau n untuk Nama R atau r untuk NRP’,13,10,0
namaku:
DB ‘ Musbikhin’,13,10,0
nrpku:
DB ‘ 7110040519′,13,10,0
End

Hasil Program setelah dirun :
Tampilan awal saat program dijalankan:
clip_image002_thumb[1]
Saat ada penekanan sesuai prosedur:
clip_image002[5]_thumb[1]
Semoga bermanfaat bila masih ada kekurangan harap maklum…masih newbie :)
Read more ...
Designed By