Latest Post

Tuesday, January 14, 2014

Interrupt Enable dan Interrupt Priority

IE(Interupt Enable)

Register ini terdiri dari 8 biat dan bit addressable, register ini digunakan untuk mengaktifkan register yang kita inginkan yang terdapat pada mikrokontroler.






IP(Interrupt Priority)

Register ini terdiri dari 8 bit dan bit addressable, register ini digunakan untuk memilih prioritas interupsi, interupsi dengan prioritas lebih tinggi akan dieksekusi terlebih dahulu jika terjadi 2 interupsi pada waktu yang sama.




PROSEDUR PERCOBAAN

Percobaan 1 : Penggunaan INT0 dengan Interrupt Enable
Persiapan:

~ Hubungkan Port 1 DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer Board menggunakan kabel tipe Y.
~ Hubungkan “CONTROL” DT-51 MinSys dengan “CONTROL” DT-51 Trainer Board (sebagai  sumber  tegangan  dan koneksi INT0/INT1) menggunakan kabel tipe X.
~ Hubungkan “IS1” dengan “INT0” pada DT-51 Trainer Board. 
~ Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial. 
~ Hubungkan DT-51 MinSys dengan sumber tegangan.

Program1.1:
Ketiklah program berikut ini, assemble, download ke DT-51 MinSys, dan amati hasilnya:

$mod51
CSEG
ORG 4000H
LJMP START
ORG 4003H
RL A
MOV P1, A
MOV R7, #04H
LUPA :
MOV R6, #OFFH
LUPB :
MOV R5, #OFFH
DJNZ R5 , $
DJNZ R6 , LUPB
DJNZ R7 , LUPA
RETI
ORG 4200H
;inisialisasi
START : MOV SP, #30H
MOV TCON , #01H
MOV A, #01H
MOV P1, #01H
MOV IE, #81H SJMP $
END

Catatan:

Untuk menggunakan INT0 dengan falling edge trigger(transisi dari high ke low), maka IT0 (TCON.0) berlogika ‘1’, sehingga TCON bernilai ‘00000001b’ atau ‘01h’. Untuk mengaktifkan interrupt, maka EX0(IE.0) dan EA (IE.7) berlogika ‘1’ sehingga IE bernilai ‘10000001b’ atau ‘81h’. Perhatikan bahwa pada saat interrupt, program akan melompat ke alamat vektor 0003h, tetapi oleh DT-51 MinSys akan langsung dipindah ke alamat 4003h.

Percobaan 1.2: Penggunaan INT0 dan INT1 dengan Interrupt Priority
Persiapan:

~ Hubungkan Port 1 DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer Board menggunakan kabel tipe Y.
~ Hubungkan “CONTROL” DT-51 MinSys dengan “CONTROL” DT-51 Trainer Board ( sebagai sumber tegangan dan koneksi INT0/INT1 ) menggunakan kabel tipe X.
~ Hubungkan  “IS1”  dengan  “INT0”  dan  “IS2” dengan  “INT1”  pada  DT-51 Trainer Board.
~ Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial. 
~ Hubungkan DT-51 MinSys dengan sumber tegangan.


Program 1.2:
Ketiklah program berikut ini, assemble, download ke DT-51 MinSys, dan amati hasilnya:

$mod51
CSEG
ORG 4000H
LJMP START
ORG 4003H
LJMP INTER0
ORG 4013H
LJMP INTER1
ORG 4100H
INTER0 :
MOV  P1, #0H
SETB P1.0
LCALL LDELAY
CLR P1.0
RETI
INTER1 :
MOV P1, #0H
SETB P1.7
LCALL LDELAY
CLR P1.7
RETI
ORG 4200H
LDELAY :
PUSH 7
PUSH 6
PUSH 5
MOV R7, #24H
LUPA : 
MOV R6, #0FFH
LUPB :
MOV R5, #0FFH
DJNZ R5, $
DJNZ R6, LUPB
DJNZ R7, LUPA
POP 5
POP 6
POP 7
RET
SDELAY :
PUSH 7
PUSH 6
PUSH 5
MOV R7, #04H
LUP1 : 
MOV R6, #0FFH
LUP2 :   
MOV R5, #0FFH
DJNZ R5, $
DJNZ R6, LUP2
DJNZ R7, LUP1
POP 5
POP 6
POP 7
RET
;inisialisasi
START:
MOV SP, #30H
MOV TCON, #05H
MOV IP, #04H
MOV IE, #85H ;program utama
LOOP1 :
MOV P1, #01010101B
ACALL SDELAY
MOV P1, #10101010B
ACALL SDELAY
SJMP LOOP1
END



Jika tidak ada kesalahan, program tersebut akan menampilkan nyala LED yang bergantian antara nyala LED ”Bit 6”, ”Bit 4”, ”Bit 2”, dan ”Bit 0” dengan nyala LED ”Bit 7”,”Bit 5”, ”Bit 3”, dan ”Bit 1”. Setiap kali ada penekanan keypad ”IS1”, hanya LED ”Bit 0” yang akan menyala. Setiap kali ada penekanan keypad ”IS2”, hanya LED ”Bit 7” yang akan menyala.
Catatan:
Untuk menggunakan INT0 dan INT1 dengan falling edge trigger (transisi dari high ke low), maka IT1 (TCON.2) dan IT0 (TCON.0) berlogika ’1’, sehingga TCON bernilai ’00000101b’ atau ’05h’. 
Untuk memindah INT1 ke tingkat prioritas lebih tinggi, maka PX1 (IP.2) berlogika ’1’, sehingga IP bernilai ’00000100b’ atau ’04h’. Untuk mengaktifkan INT0 dan INT1, maka EX0 (IE.0), EX1 (IE.2), dan EA (IE.7) berlogika ’1’, sehingga IE bernilai ’10000101b’ atau ’85h’.
  
Rutin interrupt pada alamat vektor 4003h dan 4013h dipindah ke alamat lain dengan perintah LJMP.
Hal ini dilakukan agar rutin dapat lebih panjang tanpa khawatir menerjang alamat vektor berikutnya.

Perhatikan bahwa penekanan keypad ”IS2” dapat menginterupsi rutin dari penekanan keypad ”IS1” tetapi tidak dapat sebaliknya. Hal ini dikarenakan INT1 berada pada tingkat prioritas lebih tinggi. Jadi jika keypad ”IS1” ditekan setelah keypad ”IS2” ditekan, LED ”Bit 7” akan menyala hingga delay selesai dieksekusi baru kemudian LED ”Bit 0” akan menyala.

Perhatikan  bahwa  SDELAY  menggunakan  alamat yang sama dengan LDELAY.
Untuk menghindari kekacauan nilai, maka diperlukan PUSH dan POP.



SUMBER

Tuesday, December 4, 2012

Daftar Tugas Pemrograman Visual

Nama : Bambang Risdiyanto
Kelas : TI 11 E
NIM : 11.11.2634

Daftar Link tugas Pemrograman Visual
1. Tugas 1 (Membuat Program Sederhana)
2. Tugas 2 (Variabel Konstanta Tipe Data & IF Case)
3.Tugas 3 (Puzzle)
4. Tugas Pertemuan ke Tujuh

Wednesday, November 14, 2012

Puzzle by Visual Basic


Siapa yang tidak pernah bermain permainan ini, Puzzle !! ya. sebuah permainan sederhana mengacak dan menyataukan kembali secara urut menjadi suatu bagian yang utuh, namun bagaimana rasanya jika kita sendiri membuatnya ? pasti mempunyai kesan sendiri bukan, maka dari itu kita belajar membuat puzzle ini dengan senjata andalan kita, Visual basic 2010, namun sebelum itu kita belajar dahulu memodifikasi perintah case dan if, yuk langsung ke TKP


Pada praktek kemarin di lab bersama dosen saya, bapak Nandang Hermanto, menganalisa Program If dan Case dan sekarang saya akan memodifikasi agar program tersebut ditambahkan button “Isi Data”. Tujuan penambahan button ini adalah untuk menangani event seperti ini:
 
Jika windows program tampil maka semua isian (ComboBox, TextBox, dan Radio Button) tidak aktif/enabled = false, sedangkan yang aktif hanyalah button “Isi Data” dan button “Tutup”. Kemudian button Isi Data lah yang mengaktifkan/enable = true semua isian yang tidak aktif tersebut.

berikut codingnya

Dim Kendali As Windows.Forms.Control
For Each Kendali In Me.Controls
If Kendali.GetType.Name = “TextBox” Then
Kendali.Enabled = False
End If
Artinya kendali akan mengecek semua Control yang bernama “TextBox” di masing-masing properties-nya dan ketika terdapat nama tersebut maka kendali akan merubah semua properties Control yang bernama “TextBox” Enabled-nya menjadi False. Setelah diketahui bahwa Control-control tersebut dalam kondisi Enabled = True. Tujuan mengubah Enabled = false, yaitu agar Control-control tersebut tidak dapat digunakan/tidak aktif. Cara ini juga saya gunakan untuk menon-aktifkan isian yang lainnya dan Button1 “Clear”.
If Kendali.GetType.Name = “ComboBox” Then
Kendali.Enabled = False
End If
If Kendali.GetType.Name = “RadioButton” Then
Kendali.Enabled = False
End If
If Kendali.GetType.Name = “Button1″ Then
Kendali.Enabled = False
End If
Button3.Focus()
Next
Menambahkan button “Clear” dangan event_click sebagai berikut:
 
Dalam event ini saya hanya menyisipkan code-code yang telah saya tulis pada event_form_load di button “Clear” yang telah saya tulis waktu lalu. Sehingga ketika button “Clear” di-Click maka yang terjadi adalah seperti pertama kali program dijalankan.
Selanjutnya adalah menambahkan button “Isi Data” dan memberikan event_click-nya, berikut ini adalah caranya:
 
Pada hakikatnya penulisan code ini sama dengan event modifikasi yang ada pada form1_load(), hanya saja semua Kendali.Enabled = True. Hal ini ditujukan untuk mengaktifkan kembali isian-isian yang sebelumnya dalam kondisi non-aktif.



Saatnya membuat Puzzle
Cara membuat permainan Puzzle langkah -langkahnya sebagai berikut:
1. Buat 1 form dan 9 Button, dengan Name Button: btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, dan btn9.
2. Ubah Text Form1: Puzzle, dan ubah Text masing-masing button dari btn1: 1 seterusnya sampai btn8: 8. Untuk btn9 tidak diberi Text (kosong).
3. Pada saat form dijalankan posisi angka acak, seperti gambar dibawah ini:
 

Listing programnya sebagai berikut:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim control As Windows.Forms.Control
For Each control In Me.Controls
If control.GetType.Name = “Button” Then
btn1.Text = “6″
btn2.Text = “1″
btn3.Text = “8″
btn4.Text = “7″
btn5.Text = “5″
btn6.Text = “2″
btn7.Text = “4″
btn8.Text = “3″
btn9.Text = ” “
End If
Next
End Sub
4. Saat ditekan tombol yang terletak di dekat tombol kosong maka tombol tersebut akan menempati tombol kosong, begitu seterusnya sampai dengan angkanya tersusun dari 1 sampai 8.

Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim tuker As String
If btn2.Text = ” ” Then
tuker = btn1.Text
btn1.Text = btn2.Text
btn2.Text = tuker
ElseIf btn4.Text = ” ” Then
tuker = btn1.Text
btn1.Text = btn4.Text
btn4.Text = tuker
End If
benar()
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click
Dim tuker As String
If btn1.Text = ” ” Then
tuker = btn2.Text
btn2.Text = btn1.Text
btn1.Text = tuker
ElseIf btn3.Text = ” ” Then
tuker = btn2.Text
btn2.Text = btn3.Text
btn3.Text = tuker
ElseIf btn5.Text = ” ” Then
tuker = btn2.Text
btn2.Text = btn5.Text
btn5.Text = tuker
End If
benar()
End Sub
Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click
Dim tuker As String
If btn2.Text = ” ” Then
tuker = btn3.Text
btn3.Text = btn2.Text
btn2.Text = tuker
ElseIf btn6.Text = ” ” Then
tuker = btn3.Text
btn3.Text = btn6.Text
btn6.Text = tuker
End If
benar()
End Sub
Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn4.Click
Dim tuker As String
If btn1.Text = ” ” Then
tuker = btn4.Text
btn4.Text = btn1.Text
btn1.Text = tuker
ElseIf btn5.Text = ” ” Then
tuker = btn4.Text
btn4.Text = btn5.Text
btn5.Text = tuker
ElseIf btn7.Text = ” ” Then
tuker = btn4.Text
btn4.Text = btn7.Text
btn7.Text = tuker
End If
benar()
End Sub
Private Sub btn5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn5.Click
Dim tuker As String
If btn2.Text = ” ” Then
tuker = btn5.Text
btn5.Text = btn2.Text
btn2.Text = tuker
ElseIf btn4.Text = ” ” Then
tuker = btn5.Text
btn5.Text = btn4.Text
btn4.Text = tuker
ElseIf btn6.Text = ” ” Then
tuker = btn5.Text
btn5.Text = btn6.Text
btn6.Text = tuker
ElseIf btn8.Text = ” ” Then
tuker = btn5.Text
btn5.Text = btn8.Text
btn8.Text = tuker
End If
benar()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn6.Click
Dim tuker As String
If btn9.Text = ” ” Then
tuker = btn6.Text
btn6.Text = btn9.Text
btn9.Text = tuker
ElseIf btn3.Text = ” ” Then
tuker = btn6.Text
btn6.Text = btn3.Text
btn3.Text = tuker
ElseIf btn5.Text = ” ” Then
tuker = btn6.Text
btn6.Text = btn5.Text
btn5.Text = tuker
End If
benar()
End Sub
Private Sub btn7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn7.Click
Dim tuker As String
If btn4.Text = ” ” Then
tuker = btn7.Text
btn7.Text = btn4.Text
btn4.Text = tuker
ElseIf btn8.Text = ” ” Then
tuker = btn7.Text
btn7.Text = btn8.Text
btn8.Text = tuker
End If
benar()
End Sub
Private Sub btn8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn8.Click
Dim tuker As String
If btn9.Text = ” ” Then
tuker = btn8.Text
btn8.Text = btn9.Text
btn9.Text = tuker
ElseIf btn7.Text = ” ” Then
tuker = btn8.Text
btn8.Text = btn7.Text
btn7.Text = tuker
ElseIf btn5.Text = ” ” Then
tuker = btn8.Text
btn8.Text = btn5.Text
btn5.Text = tuker
End If
benar()
End Sub
Private Sub btn9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn9.Click
Dim tuker As String
If btn6.Text = ” ” Then
tuker = btn9.Text
btn9.Text = btn6.Text
btn6.Text = tuker
ElseIf btn8.Text = ” ” Then
tuker = btn9.Text
btn9.Text = btn8.Text
btn8.Text = tuker
End If
benar()
End Sub
5. Saat angka sudah tersusun tampilkan pesan selamat anda berhasil
Private Sub benar()
If btn1.Text = “1″ And btn2.Text = “2″ And btn3.Text = “3″ And btn4.Text = “4″ And btn5.Text = “5″ And btn6.Text = “6″ And btn7.Text = “7″ And btn8.Text = “8″ Then
MessageBox.Show("HORE, , Mas Bambang Berhasil”)
End If
End Sub

                                                                                         Selamat Mencoba kawan
 

Tuesday, November 6, 2012

Visual Basic and Trying to Simple Program for troubleshooting

Pelajaran kali ini, kita akan mempelajari sebuah program sederhana yang telah disiapkan oleh Mr. Nandang Hermanto , program ini akan menjelaskan dan mencoba mengatasi trouble program yang memang sengaja diErrorkan oleh beliau untuk kita bisa belajar menganalisanya Variabel Constanta Type Data, IF and Case. .  yuk langsung aja kita coba dan belajar bersama, siapkan aplikasinya dan ikuti panduannya sesuai perintah yang ada, dan kemudian kita jawab pertanyaannya tapi sebelumnya download materinya di siniatau ikuti aja dibawah ini :

Variabel Constanta Type Data
1. Buat Poject baru
2. Buatlah form baru dengan tampilan seperti dibawah ini

@Atur Properties masing masing object seperti pada tabel berikut :


Atur Properties masing masing object seperti pada tabel berikut :
Tulis kode program berikut ini

Tambahkan form baru dengan cara pilih menu Project – add windows form – add
Rancang tampilan form yang baru ditambahkan seperti gambar dibawah ini
 
Atur Properties masing masing object seperti pada tabel berikut :
 
Tulis Kode berikut
Tambahkan sebuah module dengan cara pilih menu project – add module – add
Tulis program berikut ini
Analisa 1

a. Apa yang menyebabkan program error pada btalamat1_Click baris program alamat = "Kuningan"

Const alamat = “Kuningan” yang benar Public alamat = “Kuningan”,  Jika (alamat = “Kuningan”) belum dideklarasikan terjadi eror pada pendeklarasian yang seharusnya :
               Dim alamat As String
               alamat = “Kuningan”
              Txtalamat.Text = alamat
       Ini bisa berlaku,,apabila variabelnya masih ‘Const’. Jika  tidak ada ‘Const’maka cukup dengan Txtalamat.text = alamat

b. Kenapa saat ditekan tombol nama1 dan nama2 nama yang ditampilkan pada textbox nama
berbeda sedangkan saat ditekan tombol alamat1 dan alamat2 alamat yang ditampilkan pada
textbox alamat sama
Karena btnama1 langsung dideklarasikan dengan nama “nandang” sedangkan pada btnama2, tidak dideklarasikan variabel nama sehingga mengambil dari variabel nama di modul 1

c. Kenapa saat ditekan tombol tambah umur 1 umur selalu keluar angka 1 sedangkan saat ditekan
tombol tambah umur 2 umur selalu bertambah 1 dari umur sebelumnya
Bttambahumur1, menghasilkan nilai 1 karena telah dideklarasikan dengan variable Dim yang hanya mengoutputkan isi pesan yang telah ditulis yakni angka 1. Sedangkan output Bttambahumur2 selalu bertambah 1 karena isi pesan “umur +=1” dengan variable Static, yang artinya jika di klick akan selalu bertambah 1 ,kelipatan dari yang dipesan sebelumnya.

d. Berikan analisa anda untuk form dua
 Form2 tidak bisa di jalankan sebelum form1 di jalankan karena form2 hanya dapat di panggil melalui tombol show form 2 yang ada di form1. Pada form 2 terdapat statement di atas public class form2, yaitu Option Explicit off, artinya tidak mengharuskan variable dipesan terlebih dahulu, karena akan mengambil di public form manapun, di program ini output Form2 mengambil public dari Module yang telah dibuat, sehingga output button Nama, Alamat, Umur pada Form 2, akan sama dengan isi pesan pada module.



IF dan Case

1. Buat Poject baru
2. Buatlah form baru dengan tampilan seperti dibawah ini

Atur Properties : silakan atur sendiri dengan mengacu tampilan form diatas dan program dibawah ini


Analisa 2
Analisa kelemahan program pada latihan 2 if dan case kemudian perbaiki
Kelemahan pada program latihan if and case adalah pada saat program di jalankan nilai perhitungan pada total harga, discount, total bayar, nilainya tidak berubah 
ketika kode barng diganti(nilai sama pada saat pertama kali nilai di inputkan), kesalahan tersebut terjadi karena ada kekurangan koding pada event cmbkode
Hasil Perbaikan program


pada hasil yang sudah benar ada sedikit penambahan koding pd cmbbox seperti yang terdapat pada gambar dan saya blok, dan berikut penjelasannya :

ket: pada txttotalhargabayar nilainya belum terkurangi dengan discount karena radio button belum terseleksi 

 txttotalharga.Text = Val(txthrgbarang.Text) * Val(txtjmlhbarang.Text)
        txthrgbayar.Text = Val(txttotalharga.Text) - Val(txtdiscount.Text)

ket:ketika radio button tunai terseleksi maka total harga=harga barang x jumlah barang,  total harga bayar=total harga - discount, discount=total harga x 10/100 dan ketika yang terseleksi bukan radio tunai maka total harga=harga barang x jumlah barang,  total harga bayar=total harga - discount, discount=0

        If btrdiotunai.Checked Then
            txttotalharga.Text = Val(txthrgbarang.Text) * Val(txtjmlhbarang.Text)
            txthrgbayar.Text = Val(txttotalharga.Text) - Val(txtdiscount.Text)
            txtdiscount.Text = Val(txttotalharga.Text) * 10 / 100
        Else
            txtdiscount.Text = 0
            txttotalharga.Text = Val(txthrgbarang.Text) * Val(txtjmlhbarang.Text)
            txthrgbayar.Text = Val(txttotalharga.Text) - Val(txtdiscount.Text)

        End If

Ketika ada penambahan koding tersebut maka secara otomatis nilai total harga, discount, total bayar, akan berubah ketika kode barang diganti.

dan akhirnya selesai sudah materi kali ini, , , mudah kan hehehehe 



Monday, October 22, 2012

Menampilkan STRING VB


Ayo coba belajar membuat program sederhana di Visual Basic, saya menggonakan perintah yang di Visual Basic 2008, disini saya akan mesharing program sederhana dengan menampilkan string yang kita inputkan, ayo langsung saja kita buat, Pertama kita buat New Project


Kemudian Buat Designnya , Buat Form, masukan Label, TextBok (untuk mengimput teks) and Button

Berikan Nama Label 1=Nama Masukan
2=TeksBoks (untuk masukan inputan)
3=Label2 untuk Menampilkan teks yg kita inputkan
4=Button untuk "OK" dan "KELUAR"
kemudian di Button "OK"ketikan Perintah dibawah

Label2.Text = TextBox1.Text

(label2 adalah nama label dari label yg kita akan gunakan untuk menampilkan, dan Teksbox1 nama dari teksbox yg kita buat, jika merubah nama, berarti merubah rumusnya/ tiggal mengikuti nama dari Label dan TeksBox yg digunakan )

Kemudian tulis perintah di Button "KELUAR"

End

Kemudian Running Program, coba masukan inputkan teks pada TeksBox yg udah di sediakan, kemudian Klik OK, maka jika berhasil akan keluar sesuai yg kita ketikan, untuk menutip, Klick KELUAR



Hasil Program

Mudahkan , selamat mencoba




Friday, June 22, 2012

What your zodiac sign ?

WhenTalking| Art is no end to expressed, especially by the artists and Here's a set of body art paintings based on the astrological signs of the Zodiac. It's wonderfull how some of them manage to deceive you - you can not recognise human beeing on quite few of them! The artist behind these is called Rudi Everts. He is Australian Body Paint Artist and you can visit his website here. Which zodiac sign are you? Which one do you like the most? Which of these body paintings you think stands above all others? I'm Gemini, but the coolest one I see here is Scorpio! and how about you

 

 

 

 

 

 

 

 

 

 

 


Angry Bird Backgrounds

WhenTalking| Use this backgrounds for your desktop, but View Image first for optimal open and save.