Sunday, November 17, 2013

Konsep Input dan Output pada Mikrokontroler dengan Bascom AVR Blog Adi Sanjaya Global Techno Solution - AS-GTS



1. Kegiatan Belajar 2 : Konsep Input  dan Output
Tujuan Pembelajaran 2 :
Setelah mendapatkan materi input dan output diharapkan perseta didik dapat :
a)        Mengenal tentang konsep input dan output pada mikrokontroler
b)        Memprogram input dan output dengan bahasa pemrograman BASIC
c)        Menjalankan program secara simulasi dan mendownloadkan program kedalam IC AT Mega 40 pin dengan USBasp untuk konsep input dan output.
2. Uraian Materi 2
a.    Rangkaian LED
Rangkaian ini akan membuat kode sederhana yaitu memberikan nilai logika 1 dan 0 pada port output AT Mega 40 pin. Port I/O akan diset menjadi port output. Port yang sama dapat dialihkan fungsinya menjadi port input dengan cara mengatur DDR (Data Direction Register)nya dari tiap-tiap port.
Untuk penyalaan LED membutuhkan cara yaitu aktif High dan Low. Pemasangan LED mempunyai 2 cara yaitu :
1)        Common Catoda
2)        Common Anoda


Gambar 1. Konfigurasi LED



Pada gambar diatas perlu dipahami jika common merupakan hubungan bersama, pada common anoda LED akan aktif "menyala" jika diberikan logika "0", sedangkan untuk common catoda LED akan aktif "menyala" jika diberikan logika "1".
Tujuan pembelajaran siswa dapat mengerti dan memahami konsep tentang input dan output. Sehingga siswa diharapkan dapat memprogram dengan menggunakan BASCOM dan mensimulasikan program tersebut di Proteus serta eksekusi ke Hardware Trainer Mikrokontroler AT Mega 40 pin.
Pada gambar rangkaian input dan output ditunjukkan bahwa delapan LED terpasang secara common catoda (CC), sehingga untuk mengaktifkan LED tersebut dibutuhkan logika "1". Jangan terbalik dalam pemberian logika untuk led dikarenakan LED tidak akan dapat menyala.
Untuk mempelajari tentang rangkaian pada mikrokontroler AT Mega 40 pin tentang konsep input dan output maka pada rangkaian input dan output  di  bawah ini telah diperlihatkan rangkaiannya. Pada rangkaian dibawah ini terlihat untuk konsep input dan output terdiri dari beberapa komponen yaitu Sistem Minimum dan tambahan LED sebagai output dan Push Button sebagai input.

  
 Gambar 2. Sistem Minimun dengan input dan output


A.    Program 1. Menghidupkan LED

'IO LED 1.BAS
$regfile = "m16def.dat"       'mendeklarasikan IC yang digunakan
$crystal = 12000000           'menentukan frekuensi kerja (Kristal)
Config Portb = Output           'Port B digunakan sebagai output
Port_led Alias Portb            'Instruksi port B menjadi port led
Port_led = 255                  'data 255 =&B11111111 atau &HFF
End                             'Selesai


B.    Program 2 Menyalakan dan mematikan LED
'Menyalakan LED berkedip
$regfile = "m16def.dat"              'mendeklarasikan IC yang digunakan
$crystal = 12000000             'menentukan frekuensi kerja (Kristal)
Config Portb = Output           'Port B digunanakan sebagai Output
Port_led Alias Portb            'Instruksi port B menjadi Port led
Do
Port_led = 255                  'atau &B11111111
Wait 1                          'tunggu 1 detik
Port_led = 0                    'atau &B00000000
Wait 1                          'tunggu 1 detik
Loop

  
C. Program 3. Menghidupkan LED Berjalan dari Tepi

'IO LED 3.bas
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
Port_led Alias Portb
Do
Port_led = &B00000001
Waitms 300
Port_led = &B00000010
Waitms 300
Port_led = &B00000100
Waitms 300
Port_led = &B00001000
Waitms 300
Port_led = &B00010000
Waitms 300
Port_led = &B00100000
Waitms 300
Port_led = &B01000000
Waitms 300
Port_led = &B10000000
Waitms 300
Loop
 
D. Program 4. Menghidupkan LED Berjalan dari Tepi (2)
 

'IO LED 4.BAS
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
Port_led Alias Portb
Dim Data_led As Byte 'Mendeklarasikan variable Data led
Data_led = 1
Do
Port_led = Data_led
Waitms 5 0
Rotate Data_led , Left , 1
Loop


E. Program 5. Menghidupkan 2 LED Bergeser dari Tepi



'IO LED 5.BAS
$regfile = "m16def.dat"
$crystal = 12000000
Config Portb = Output
Port_led Alias Portb
Dim Data_led As Byte , X As Byte
Data_led = &B00000011
Do
For X = 1 To 6
Port_led = Data_led
Waitms 200
Rotate Data_led , Left , 1
Next X                           'Menggeser putaran Data led
For X = 1 To 6
Port_led = Data_led
Waitms 200
Rotate Data_led , Right , 1
Next X
Loop

Program 6. Menyalakan LED dengan Menekan Tombol

 


'Program PUSH Membaca Tombol.BAS
$regfile = "m16def.dat"
$crystal = 12000000
Dim X As Byte
Config Portb = Output
Config Portd = Input
Tomboll Alias &B11101111
Tombol2 Alias &B11011111
Tombol3 Alias &B10111111
Tombol4 Alias &B01111111
Hasil Alias Portb
Masukan Alias Pind
Portd = 255
' menghidupkan LED berdasar penekanan push button di PORTD
Do
X = Masukan
Select Case X
Case Tomboll : Hasil = &B00001111             ' pushbuton di portd 4
Case Tombol2 : Hasil = &B11110000             ' pushbuton di portd 5
Case Tombol3 : Hasil = &B01010101             ' pushbuton di portd 6
Case Tombol4 : Hasil = &B10101010             ' pushbuton di portd 7
End Select
Loop



H. Program 7. Mengubah Penyalaan LED dengan PushButton

' program PUSH02.BAS
$regfile = "m16def.dat"
$crystal = 12000000
Dim X As Byte , Animasi As Byte , Status As Bit
Config Portb = Output
Config Portd = Input
Hasil Alias Portb
Masukan Alias Pind
Portd = 255
Animasi = &H01
' animasi LED berdasar penekanan push button di PORTD
Do
   X = Masukan
   Select Case X
      Case &B11111011 : Status = 0                          ' pushbuton di portd.2
      Case &B11110111 : Status = 1                          ' pushbuton di portd.3
   End Select
   If Status = 0 Then
      Rotate Animasi , Left
   Else
      Rotate Animasi , Right
   End If
   Hasil = Animasi
   Waitms 200
Loop



1.       Buatlah program menyalakan LED berkedip !
2.       Buatlah program menyalakan LED dengan penyalaan dari tengah ke tepi!
  
 


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hot Sonakshi Sinha, Car Price in India