update terbaru haya di barliannet.com

Senin, 20 April 2015

tombol cerdas cermat barlianno bascom 8535

pada kesempatan hari ini saya akan mencoba membuat program untuk tombol cerdas cermat, degan menggunakan atmga 8535 dan program bascom.
cara kerja program

jika tombol di tekan maka seven segmen akan mengeluarkan angka sesuai dengan tombol yang di tekan, lampu led akan meyala sesuai degan tombol yang di tekan , dan buzer juga akan berbunyi,

jika tombol tidak di tekan seven segmen akan mati, lampu led akan meyala berjalan dari atas ke bawah buzer tidak berbunyi.
ini program nya :


'  barlianno pemahaman if then else
  
$regfile = "m8535.dat"
$crystal = 1000000
Buz
Alias Portd.4
Config Portc = Output                                       'dipasang seven segmen comon anoda
Config Portb = Output                                       'dipasang led
Config Porta = Input                                        'di pasang tombol
Ddrd.4 = 1                                                  'di pasang buzer
 
Portb = 0
Portc = 0
Porta = &HFF                                                'heksa ff=11111111
Do
If Pina = &B11111110 Then
   Buz
= 1                                                  'heksa f9=  1111 1001 akan muncul angka1
  
Portc = &HF9
  
Portb = &B00000001
  
Bitwait Pina.0 , Set
Elseif Pina = &B11111101 Then
   Buz
= 1                                                  'heksa a4=1010 0100 muncul anka 2
  
Portc = &HA4
  
Portb = &B00000011
  
Bitwait Pina.1 , Set
Elseif Pina = &B11111011 Then
   Buz
= 1
  
Portc = &HB0                                             'heksa b0=1011 0000 akanmuncul anka 3
  
Portb = &B00000111
  
Bitwait Pina.2 , Set
Elseif Pina = &B11110111 Then
   Buz
= 1
  
Portc = &H99                                             'heksa 99=10011001 muncul anka 4
  
Portb = &B00001111
  
Bitwait Pina.3 , Set
Elseif Pina = &B11101111 Then
   Buz
= 1
  
Portc = &H92                                             'heksa92=10010010 muncul angka 5
  
Portb = &B00011111
  
Bitwait Pina.4 , Set
Elseif Pina = &B11011111 Then
   Buz
= 1
  
Portc = &H82                                             'heksa82= 10000010 muncul angka 6
  
Portb = &B00111111
  
Bitwait Pina.5 , Set
Elseif Pina = &B10111111 Then
   Buz
= 1
  
Portc = &HF8                                             'heksaf8= 11111000 muncul angka 7
  
Portb = &B01111111
  
Bitwait Pina.6 , Set
Elseif Pina = &B01111111 Then
   Buz
= 1                                                  'heksa 80=10000000 muncul angka 8
  
Portc = &H80
  
Portb = &B11111111
  
Bitwait Pina.7 , Set
Else
   Buz
= 0                                                  'buzer tidak buyi
  
Portc = &HFF                                             'seven segmen mati
  
Portb = &B00000000                                       'led mati
   
Waitms 50
  
Portb = &B00000001                                       'led 1 yala
     
Waitms 100
  
Portb = &B00000010                                       'led 2 yala
    
Waitms 100
  
Portb = &B00000100                                       'led 3 yala
    
Waitms 100
  
Portb = &B00001000                                       'led 4 yala
  
Waitms 100
  
Portb = &B00010000                                       'led 5 yala
  
Waitms 100
  
Portb = &B00100000                                       'led 6 yala
  
Waitms 100
  
Portb = &B01000000                                       'led 7 yala
  
Waitms 100
  
Portb = &B10000000                                       'led 8 yala
  
Waitms 100
End If
Loop
End

cara jalannya program baskom
PORTA di seting input Porta = &HFF 

PORTB di seting output Portb = 0 karna   nantinya akan di pasang led yang katodaya ke groud
PORTC di seting output
PORTD di seting outputBuz Alias Portd.4  dan haya keluar di pin 4 saja  Ddrd.4 = 1


  pembacaan prgram jika
Do
If Pina = &B11111110 Then
   Buz
= 1                                                  'heksa f9=  1111 1001 akan muncul angka1
  
Portc = &HF9
  
Portb = &B00000001
  
Bitwait Pina.0 , Set
Elseif Pina = &B11111101 Then
   Buz
= 1                                                  'heksa a4=1010 0100 muncul anka 2
  
Portc = &HA4
  
Portb = &B00000011
  
Bitwait Pina.1 , Set


jika tombol ditekan  pina sama degan &B11111110 maka buyikan buzer,port c munculkan angka 1 dan led yala 1, jika tidak pina sama dengan &B11111101 maka buyikan buzer port c munculkan anka 2 dan led meyala 2 buah
danb seterusnya
proteusnya:

semoga bermanfaat telah di uji coba di lab barlianno, 

Selasa, 14 April 2015

keypad 4X4 dengan bascom atmga 8535

cara membuat keypad 4x4 pada atmga 8535 dengan program bascom
buat program di bascom seperti di bawah ini
====================================================


     'creatip barlianno
      
$regfile = "m8535.dat"
$crystal = 11059200

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcdbus = 4
Config Lcd = 16 * 2
Cursor Off

Config Kbd = Portd , Debounce = 20 , Delay = 5
Dim Keypad As Byte

Cls
Main
:
Do
Keypad
= Getkbd()
Locate 1 , 1
Lcd "swit barlianno"
Locate 2 , 1
Goto Label_swit
Loop

Label_swit
:
Select Case Keypad
Case 0 : Lcd "swit 0 ditekan"
Case 1 : Lcd "swit 1 ditekan"
Case 2 : Lcd "swit 2 ditekan"
Case 3 : Lcd "swit 3 ditekan"
Case 4 : Lcd "swit 4 ditekan"
Case 5 : Lcd "swit 5 ditekan"
Case 6 : Lcd "swit 6 ditekan"
Case 7 : Lcd "swit 7 ditekan"
Case 8 : Lcd "swit 8 ditekan"
Case 9 : Lcd "swit 9 ditekan"
Case 10 : Lcd "swit 10 ditekan"
Case 11 : Lcd "swit 11 ditekan"
Case 12 : Lcd "swit 12 ditekan"
Case 13 : Lcd "swit 13 ditekan"
Case 14 : Lcd "swit 14 ditekan"
Case 15 : Lcd "swit 15 ditekan"

End Select
Goto Main

============================================================

buat sekema di proteus


 penjelasan program
Config Kbd = Portd , Debounce = 20, Delay = 5
untuk mengkonfigurasi fungsi KBD pada portD, dan nilai debouncing sebesar 20 dengan tundaan sebesar 5 milisekon.
fungsi umum Confid KBD dalam BASCOM AVR sebagai berikut :
CONFIG KBD = PORTx , DEBOUNCE = value [, DELAY = value]
PORTx dimana letak port yang digunakan, untuk nilai debounce, default nya sebesar 20, untuk nilai maksimum nya 255,
 Delay, tundaan ini optional, bisa dipakai maupun tidak. parameter yang optional yang menyebabkan fungsi GETKBD() untuk menunggu waktu tertentu saat setelah keypad ditekan


Dim Keypad As Byte , mendeklarasikan variabel Keypad dengan tipe data BYTE.

Keypad = Getkbd() , berfungsi untuk scan keypad matrix dan mengembalikan nilai dari tombol yang ditekan.

Goto Label_swit , untuk melompat ke label tertentu, dalam hal ini melompat ke label Label_swit_tombol: , label Label_tombol
Select Case Keypad, adalah instruksi operasi bersyarat menggunakan SELECT..CASE, yang diakhiri dengan END SELECT .

Goto Main, lompat ke label MAIN



sebagian tulisan di ambil dari sumber http://goes-open.blogspot.com/2012/01/akses-keypad-matrix-4x4-dengan-bascom.html

telah di coba di lab barlianno