Senin, 06 Januari 2014

Tugas Microprosessor


Nama   : Erni Solijah
Kelas    : TI 11 S
NIM      : 11.11.2003

Mengendalikan Keluaran Relay Dengan PC Pada Seri Mikrokontroler AT89


Sebuah mikroprosesor tidak dapat berdiri sendiri, ia membutuhkan peranti lainnya untuk dapat berfungsi yaitu ROM (read only memory) untuk menyimpan program dan data, RAM (random access memory) untuk menyimpan data dan hasil proses serta peranti I/O untuk berinteraksi dengan perangkat lainnya di luar sistem mikroprosesor itu sendiri. Bayangkan! Contoh sederhana yang pernah aku buat adalah sistem minimum mikroprosesor 8085 di mana untuk melengkapinya dengan gerbang I/O menggunakan sebuah PPI (programmable Peripheral Interface) 8255 dan ketika menginginkan sistem dapat berkomunikasi secara serial menggunakan USART (universal synchronous asynchronous receiver transmitter) 8251.

Sebagai gambaran saja, untuk membuat sistem minimum seperti di atas setidaknya kita memerlukan 5 komponen utama seperti uP 8085, E2PROM 2864, SRAM 6264, PP1 8255 dan USART 8251. Belum 3 komponen pendukungnya seperti 74LS373, 74LS245 dan 74LS139. Total ada 8 komponen belum termasuk regulator dan komponen lainnya seperti resistor, kapasitor, kristal dan diode.
Sekarang sudah banyak mikrokontroler yang bisa menggantikan sistem minimum seperti di atas. Ambil contoh adalah seri AT89 bahkan memiliki gerbang I/O lebih banyak jika menggunakan AT8951.

Membuat perangkat keluaran relay yang dapat dikendalikan menggunakan PC dengan AT89C2051 seperti gambar berikut:




Rangkaian di atas diperlukan sebagai langkah awal persiapan perangkat keras meski tidak memperlihatkan komponen relaynya. Keluaran ULN2803 dapat digunakan untuk keperluan apa saja tidak harus relay.

Setelah rangkaian siap, masukkan program berikut ini ke mikrokontroler AT89C2051 agar simulasi keluaran yang dikendalikan melalui PC dapat dijalankan.

$mod51

BufSerial   data  8h
RegStack    data  10h
SerialSiap  bit   p3.7

org   0h

Inisialisasi:
      mov   sp, #RegStack-1
      mov   pcon, #0
      mov   scon, #50h
      mov   tmod, #20h
      mov   ie, #90h
      mov   tl1, #0fdh
      mov   th1, #0fdh
      setb  tr1
      ajmp  Mulai

org   23h
      jnb   ri, $
      clr   ri
      mov   a, sbuf
      cjne  a, #'<', ProsesSerial
      mov   r0, #BufSerial
      reti

ProsesSerial:
      cjne  a, #'>', PeriksaSerial
      cjne  r0, #BufSerial+8, ResetSerial
      clr   SerialSiap
      reti

ResetSerial:
      mov   r0, #0
      reti

PeriksaSerial:
      cjne  r0, #0, SimpanSerial
      reti

SimpanSerial:
      mov   @r0, a
      inc   r0
      reti

Mulai:
      jb    SerialSiap, $
      mov   r0, #BufSerial
      mov   r1, #8

      ProsesKeluaran:
            mov   a, @r0
            cjne  a, #'0', Logika1
            clr   c
            ajmp  GeserKeluaran

      Logika1:
            cjne  a, #'1', SalahKarakter
            setb  c

      GeserKeluaran:
            rlc   a
            inc   r0
            djnz  r1, ProsesKeluaran
            mov   p1, a

      SalahKarakter:
            mov   r0, #0
            setb  SerialSiap
            ajmp  Inisialisasi
end

Nah, langkah persiapan perangkat keras dan lunak untuk kemudi keluaran sudah selesai. Saatnya membuat aplikasi berbasis Visual Basic untuk dioperasikan pada PC. Setelah aplikasi Visual Basic siap ikuti langkah berikut untuk pembuatan aplikasinya. Kita akan membuat tampilan aplikasi seperti berikut ini:




Pertama kita akan menamai pekerjaan ini dengan prjRelay. Selanjutnya untuk form yang dibuat akan dinamai frmRelay dengan property caption “Simulasi Remote Relay”. Untuk BorderStyle dipiliah 1 – Fixed Single. Setelah form selesai selanjutnya kita akan mengisinya dengan beberapa obyek dan tool.

Tambahkan obyek CommandButton untuk perintah ON dalam bentuk array sebanyak 8 buah untuk masing-masing relay dengan nama cmdON(0) sampai dengan cmdON(7). Begitu juga dengan untuk perintah OFF sebanyak 8 buah dengan nama cmdOFF(0) sampai(7). Aplikasi juga akan dilengkapi dengan perintah untuk meng-ON-kan seluruh relay secara bersamaan dengan nama cmdAllON dan untuk meng-OFF-kan semua dengan nama cmdAllOFF. Nah untuk tombol perintah selesai.

Untuk memberikan indikator status relay dapat kita gunakan obyek shape yang dibuat secara array juga yaitu shpRelay(0) sampai shpRelay(7) dengan property shape adalah 3 – Circle.

Pada perintah semua relay ditambahkan dengan label dengan nama lblIndikator dan property caption bertuliskan “ALL” dengan property BackStyle 0 – Transparent.

Paling kanan aku secara iseng menambahkan sebuah obyek image dengan nama imgControl. Pada property Picture Sobat bisa memilih gambar apa saja bahkan foto juga bisa.

Terakhir adalah menyiapkan komponen komunikasi serial. Pada keyboard ketiklah Ctrl+T atau pilih dari menubar Project dan pilih Component untuk menampilkan jendela Components. Pilihlah pada Control dengan menandai pada Microsoft Comm Control 6.0 lalu Apply dan OK. Pada tabulasi Toolbox General akan muncul ikon bergambar telepon, dengan mouse klik 2 kali untuk menambahkan pada form kita. Sekarang kita sudah mempunyai tool MSComm1 yang mengendalikan komunikasi secara serial biarkan tetap pada property default-nya.

Setelah Option Explicit kita perlu menetapkan variabel yang akan digunakan yaitu No as Integer dan Relay as String.

Option Explicit

Dim No%, Relay$

Berikut adalah pernyataan perintah yang akan dilaksanakan pada tombol-tombol CommandButton. Untuk subrutin cmdAllON dan cmdAllOFF kita menggunakan perintah looping For – Next untuk memanipulasi seluruh tombol cmdON dan cmdOFF serta shpRelay. Sementara untuk masing-masing cmdON dan cmd OFF kita memanfaatkan indeks saja. Semua perintah nantinya akan dilaksanakan pada Sub Kirim yang dibuat.

Private Sub cmdAllOFF_Click()
    For No = 0 To 7 Step 1
        cmdON(No).Enabled = True: cmdOFF(No).Enabled = False: shpRelay(No).FillColor = vbBlack
    Next No
    Kirim
End Sub

Private Sub cmdAllON_Click()
    For No = 0 To 7 Step 1
        cmdON(No).Enabled = False: cmdOFF(No).Enabled = True: shpRelay(No).FillColor = vbGreen
    Next No
    Kirim
End Sub

Private Sub cmdOFF_Click(Index As Integer)
    cmdON(Index).Enabled = True: cmdOFF(Index).Enabled = False: shpRelay(Index).FillColor = vbBlack
    Kirim
End Sub

Private Sub cmdON_Click(Index As Integer)
    cmdON(Index).Enabled = False: cmdOFF(Index).Enabled = True: shpRelay(Index).FillColor = vbGreen
    Kirim
End Sub

Pada Private Sub Form Load kita perlu mempersiapkan kondisi awal dengan menon-aktifkan seluruh cmdOFF dan mengaktifkan gerbang serial. Pada imgKontrol aku menambahkan sebuah property ToolTipText yang akan tampil jika penunjuk mouse melintasinya.

Private Sub Form_Load()
    On Error Resume Next
    For No = 0 To 7 Step 1
        cmdOFF(No).Enabled = False
    Next No
    MSComm1.PortOpen = True
    imgKontrol.ToolTipText = "Klik di sini untuk ON dan OFF"
End Sub

Berikut adalah Sub Kirim yang dibuat yang berisi pernyataan untuk mengirim data ke perangkat secara serial. Data diawali dengan karakter “<” kemudian dilanjutkan dengan 8 karakter angka “0” atau “1” dan diakhiri dengan “>”.

Private Sub Kirim()
    On Error Resume Next
    Relay = "<"
    For No = 0 To 7 Step 1
        If shpRelay(No).FillColor = vbGreen Then
            Relay = Relay & "0"
        Else
            Relay = Relay & "1"
        End If
    Next No
    MSComm1.Output = Relay & ">"
End Sub

Nah, imgKontrol juga bisa dimanfaatkan untuk perintah togle ON dan OFF untuk seluruh relay.

Private Sub imgKontrol_Click()
    If shpRelay(0).FillColor = vbBlack Then
        cmdAllON_Click
    Else
        cmdAllOFF_Click
    End If
End Sub





Senin, 31 Desember 2012

Tugas Ke 9

Kali ini saya akan membahas mengenai pembuatan database dengan visual basic.
pertama saya membuat data dari ms. sql yang terdiri dari
1. Nim
2. Nama
3. Alamat
4. Tgl lahir
5. Jurusan
6. SPP Tetap
Kemudian masuk ke Visual Basic Pada Addnewconnection data souce berisi dari server microsoft sql, sedangkan name server berisi nama dari server yang mana sedang kita gunakan (Copy dan pastekan nama server) kemudian select or enter a database name pada bagian ini seharusnya muncul nama dari semua database yang ada pada server anda, jika belum muncul kemungkinan ada kesalahan pada name server.
Buatlah 8 Button
1. Button Prev
2. Button Next
3. Button FR
4. Button FF
5. Button Save
6. Button Add
7. Button Del
8. Button Exit
Berikut Codingnya :
 



 tampilan awal sebelum diisi data base....
 Saat tombol add ditekan maka data yang sudah dientri otomatis akan masuk ke database..

Demikian pembahasan saya untuk kali ini...
semoga bermanfaat...
Selamat Tahun Baru 2013.....

Senin, 24 Desember 2012

Tugas 8


1.     Penjelasan Program paramarray

Public Class Form1
    Private Function stats(ByVal ParamArray args() As Object) As Single()
        Dim hasil(3) As Single    => variable dengan nama hasil dengan jumlah teratas 3 dg tipe data single  
        Dim i As Integer  =>  variable dengan nama I dan tipe data integer                     
        For i = 0 To UBound(args)        
         hasil(0) = hasil(0) + args(i)
            If i = 0 Then
                hasil(1) = args(i)
                hasil(2) = args(i)

            End If
            If hasil(1) > args(i) Then hasil(1) = args(i)   => 
jika hasil 1 lebih kecil dari nilai I maka hasil 1= nilai indeks ke i
         
            If hasil(2) < args(i) Then hasil(2) = args(i) => 
jika hasil 2 lebih kecil dari nilai I maka hasil = nilai indeks ke i
  

        Next i
        Return hasil
    End Function

End Class

Lalu isikan Listing Program pada button 1 sebagai berikut, dengan Double Klik pada Button1 untuk mengisi listing program nya.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim statistik As Single() = stats(1, 6, 2, 7, 3, 9, 4, 10, 8, 5)
Membuat variable dengan nama ststistik dengan tipe data single dengan nilai array pada indeks ke 0=1, Indeks ke 1=6, Indeks ke 2=2
        TextBox1.Text = statistik(0)
        TextBox2.Text = statistik(1)
        TextBox3.Text = statistik(2)
    End Sub

Agar hasilnya benar ada 4 cara

Cara satu :
Merubah simbol <(kurang dari) dan > (lebih dari)
If hasil(1) > args(i) Then hasil(1) = args(i)   =>  If hasil(1) < args(i) Then hasil(1) = args(i)                             
If hasil(1) < args(i) Then hasil(1) = args(i)   =>  If hasil(1) > args(i) Then hasil(1) = args(i) 

Cara dua :
Merubah Label pada Form yang harusnya terkecil ganti dengan terbesar begitu sebaliknya.

Cara tiga
 Menukar penempatan TextBox.2 dan TextBox.3
TextBox2.Text = statistik(1)  =>  TextBox3.Text = statistik(1)  
TextBox3.Text = statistik(2)  =>  TextBox2.Text = statistik(2)  
  

Cara Empat
Menukar varibele statstik (1) dan statistik (2)
TextBox2.Text = statistik(1)   =>  TextBox2.Text = statistik(2)    
TextBox3.Text = statistik(2)   =>  TextBox3.Text = statistik(1)  

2.     Over Loading Function

Overloading function adalah beberapa fungsi yang memiliki perintah berbeda tetapi memiliki nama yang sama Sebagai contoh adalah program dibawah ini, terdapat 2 Fuction hitung pada program ini namun program hanya akan menjalankan salah satunya saja.

Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
hitung = bil1 + bil2
End Function

Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
hitung = bil1 + bil2 + bil3
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = hitung(1, 2, 3)
End Sub

Penjelasannya :
Terdapat 2 buah fungsi dengan nama yang sama yaitu hitung, tapi berbeda jumlah parameternya. Hitung yang pertama berjumlah 2 parameter sedang hitung yang kedua ada 3 parameter.
Button memanggil fungsi hitung, dan dia memilih hitung yang kedua karna jumlah elemennya tiga.Bisa dianalogikan :
1 sama dengan bil1 yang mana bil1 sama dengan ByVal bil1 As Integer,
2 sama dengan bil2 yang mana bil2 sama dengan ByVal bil2 As Integer,
3 sama dengan bil3 yang mana bil3 sama dengan ByVal bil3 As Integer.
Jadi ia memilih yang hampir mendekati si pemanggil. Jadi hasil akhirnya yaitu 6, karena ia menjumlahkan 1 + 2 + 3

3.     Macam-Macam Function Bawaan Pada Vb Net

Function itu sendiri adalah sekumpulan tatement yang menghasilkan nilai balik (return Value). Nilai Balik ini akan akan dikembalikan pada blok perintah yang memanggil prosedur function.
Adapun syntax penulisan function procedure :
[Private/Public]  Function  namafungsi(argumen-argumen) [As type]
Baris perintah
End Function
Dari sytax diatas, namafungsi bisa diisi sesuai kebutuhan , argument-argumen bisa diisi dengan parameter,optional dan argumen lain, As type adalah tipe data yang digunakan
Sebuah Function  dapat dipanggil dengan menggabungkan  pernyataan lain, seperti contoh berikut ini
Variabel = nama Function Procedure
Cara lain untuk memanggil sebuah fungsi dapat dilakukan seperti kalau  memanggil sub prosedur yaitu :
Call NamaFunctionProcedure [Parameter]
Atau
NamaFunctionProcedure (Parameter)
~ Fungsi String
Left→mengambil karakter dari sebelah kiri
Right → mengambil karakter dari sebelah kanan
Mid → mengambil karakter dari tengah
LTrim → membuang semua semua awal spasi yang ada disebelah kiri
RTrim → membuang semua semua awal spasi yang ada disebelah kanan
Trim → membuang semua spasi yang ada disebelah kiri dan kanan
Len → memberikan nilai balik integer sebagai panjang string
LCase → mengubah string menjadi huruf kecil semua
UCase → mengubah string menjadi huruf besar semua
Str (int) → mengubah bilangan menjadi string (konversi)
Chr (Asscii) → konversi dari nilai ascii menghasilkan karakter
~ Fungsi Matematika
Val (Str) → konversi string menjadi integer
Asc(Char) → konversi karakter menghasilkan nilai ascii
Abs(Number) → memberikan nilai mutlak dari suatu nilai negatif
Round(Number,Decimal) → membulatkan suatu angka sampai beberapa digit decimal
Sqr(Number) → memberikan hasil akar kuadrat dari suatu nilai
Tan() → mengembalikan nilai tangen dari argument dalam radian
Cos() → mengembalikan nilai cosinus dari argument dalam radian
Atn() → mengembalikan nilai arc tangen dari argument dalam bentuk radian
Long() → mengembalikan nilai logaritma dari argument
CInt() → pembulatan nilai decimal 0.5 dan lebih ke integer yang terdekat
Fix() → pemotongan suatu nilai decimal menjadi integer
Int()→ pembulatan ke bawah suatu nilai decimal
~ Fungsi Tanggal dan Waktu
Date() → mengambil tanggal system komputer
IsDate → memberikan nilai balik Boolean , true jika parameter adalah sebuah tanggal
DateValue → konversi string menjadi date
D(Date),M(Date),Y(Date) → memberikan nilai integer dari Variabel Date untuk hari , bulan dan tahun
Time() → mengambil waktu dari system komputer
H(Date),M(Date),S(Date) → memberikan nilai integher dari variable date untuk jm, menit dan deik
TimeValue(str) → konversi string ke variable date
Itulah, function-function bawaan yang bisa diapplikasikan dalam visual basic