Breaking News
Tampilkan postingan dengan label Simulasi. Tampilkan semua postingan
Tampilkan postingan dengan label Simulasi. Tampilkan semua postingan
Kamis, Agustus 15, 2013
Jumat, April 27, 2012
Membuat Gelombang Kotak 5 KHz Pada MCS-51
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 :
Programnya menggunakan assembly :
MOV TMOD,#10h ;Timer-1 Mode-1 (16-bit)start: MOV TL1,#0A4h ;TL1=0, low byteMOV TH1,#0ffh ;TH1=DCh, high byteSETB TR1 ;jalankan Timerloop: JNB TF1,loop ;Monitor Timer FlagCLR TR1 ;Matikan TimerCPL P0.1 ;Mentoggle out untuk tinggi rendahCLR TF1 ;Reset TFSJMP start ;reload Timer karena mode-1END
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 :
Bila masih kurang jelas dapat dilihat pada video berikut :
Simulasi Proteus
Serial Komunikasi RS-485 Dengan MCS-51 Simulasi Proteus
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:
Setting virtual Serial (baudrate: 2400) dengan cara klik dua kali pada virtual serial:
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 NamaR 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:
Saat ada penekanan sesuai prosedur:
Semoga bermanfaat bila masih ada kekurangan harap maklum…masih newbie 
Source : http://www.musbikhin.com
Langganan:
Postingan (Atom)

