Kamis, 07 Januari 2010

Latihan No.6 "ADC dengan Smart-AVR Basic"



Dalam ATMega8 sudah tersedia ADC sebanyak 6 chanel. Dengan rangkaian yang saya berikan akan ditunjukkan bagaimana menggunakan ADC dengan menggunakan Smart-AVR Basic. Rangkaian menggunakan LCD module sebagai tampilan pembacaan ADC chanel 5.
Dalam contoh program yang saya berikan akan dibuat sesuai dengan rangkaiannya untuk menampilkan nilai ADC yang dibaca pada chanel 5.
Setelah didownload dan dijalankan maka tampilan line1 LCD akan tertulis "ANALOG INPUT" dan "ADC CH5 =" diikuti nilai ADC pada line2. Programnya adalah sebagai berikut:

START:
DELAY = 2

CLRLCD
TEXT: ANALOG INPUT

MAIN:
READ AIN5
LOCATE = 64
TEXT: ADC CH5 =
GOSUB TAMPIL
GOTO MAIN

TAMPIL:
'MENAMPILKAN BILANGAN VAR10 KE LCD
HHI = ADCH
HLO = ADCL
FN:HEX2BCD
VAR0 = BCD43 AND 240
SWAP = VAR0
FN:SWAP
D2ASC = SWAP
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD43 AND 15
D2ASC = VAR0
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD21 AND 240
SWAP = VAR0
FN:SWAP
D2ASC = SWAP
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD21 AND 15
D2ASC = VAR0
FN:DASC
LCDDATA = D2ASC
WRITE LCD
RETURN


Program sangat mudah dan sederhana untuk disesuaikan dengan hardwarenya, selamat mencoba.

Latihan No.5 "Menggunakan Counter di Smart-AVR"


Dalam Smart-AVR Basic, fasilitas counter digunakan untuk menghitung pulsa digital 0 - 5v yang secara otomatis masuk kedalam register COUNTH dan COUNTL.
Dengan menggunakan rangkaian yang saya berikan dapat dibuat program counter dengan membaca pulsa dari sumber pulsa.
Programnya sangat sederhana seperti diperlihatkan di bawah.
Setelah di-download dan dijalankan, maka LCD module akan menampilkan tulisan "TEST COUNTER" pada line pertama dan pada line kedua akan tampil tulisan "CNT READ = " dan nilai counter yang telah dibaca oleh system. Programnya sebagai berikut:

CLRLCD
TEXT: TEST COUNTER
COUNTH = 0
COUNTL = 0

MAIN:
DELAY = 25
READ COUNTER
GOSUB TAMPIL
GOTO MAIN


TAMPIL:
LOCATE = 64
TEXT: CNT READ =
'MENAMPILKAN BILANGAN VAR10 KE LCD
HHI = COUNTH
HLO = COUNTL
FN:HEX2BCD
VAR0 = BCD43 AND 240
SWAP = VAR0
FN:SWAP
D2ASC = SWAP
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD43 AND 15
D2ASC = VAR0
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD21 AND 240
SWAP = VAR0
FN:SWAP
D2ASC = SWAP
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD21 AND 15
D2ASC = VAR0
FN:DASC
LCDDATA = D2ASC
WRITE LCD
RETURN

Senin, 04 Januari 2010

Latihan No.4 "Keypad 4x4 dengan Smart-AVR Basic"



Fasilitas yang dipunyai oleh system ini adalah masukan keypad 4x4, dimana keypad yang saya rancang menggunakan cara pembagi tegangan, berbeda dengan keypad pada umumnya yang menggunakan cara paralel (lajur dan baris). Keypad ini hanya menggunakan tiga kabel saja untuk dihubungkan ke system Smart-AVR Basic yaitu positive (Aref), negative (GND) dan Vout (ADC0), rangkaian lengkapnya telah saya bahas pada pembahasan Smart-AVR Basic yang telah lalu.


Untuk mencoba keypad 4x4 ini perlu dibuat rangkaian seperti saya gambarkan diatas.
Ada dua program yang akan saya berikan yaitu pembacaan nilai keypad tiap tombol dan perintah FN:KEY yaitu perintah untuk memasukkan 4 digit BCD. Untuk contoh program yang pertama adalah sebagai berikut:

'************************************
'MEMBACA KEYPAD DI TAMPILKAN DI LCD
'************************************

START:
GOSUB JUDUL

MAIN:
READ KEY
HHI = 0
HLO = KEY
FN:HEX2BCD
LOCATE = 64

TEXT: DATA KYPD =
VAR0 = BCD43 AND 15
D2ASC = VAR0
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD21 AND 240
SWAP = VAR0
FN:SWAP
D2ASC = SWAP
FN:DASC
LCDDATA = D2ASC
WRITE LCD
VAR0 = BCD21 AND 15
D2ASC = VAR0
FN:DASC
LCDDATA = D2ASC
WRITE LCD
DELAY = 10
GOTO MAIN

JUDUL:
CLRLCD
LOCATE = 0
TEXT: press any key
RETURN


Dalam program diatas system akan menampilkan nilai keypad yang ditekan ke LCD Module sesuai dengan tabel keypad 4x4 yang ada (lihat dalam pembahasan yang lalu)
Untuk program berikutnya adalah penggunaan FN:KEY contoh programnya seperti berikut:


'******************************
'MEMBACA KEYPAD DENGAN FN:KEY
'******************************
START:
CLRLCD
TEXT: FN:KEY

LOOP1:
LOCATE = 64
'PRESS NUMBER HERE
TEXT: 4DIGIT -->
FN:KEY
DELAY = 50
GOTO LOOP1


Pada contoh program diatas, setelah di download maka system akan menampilkan tulisan "FN:KEY" ke LCD module line 1 dan 4DIGIT --> pada line 2. System akan menunggu sampai diberikan masukan 4 digit angka (0 s/d 9).
Selamat mencoba.

Latihan No.3 "Smart-AVR dengan character LCD Module"



Dalam latihan ini akan diberikan contoh bagaimana membuat program dengan Smart-AVR Basic yang dihubungkan dengan character LCD Module.


Dengan menggunakan rangkaian yang saya berikan maka dapat dibuat program untuk menampilkan tulisan di LCD module.


berikut adalah program untuk rangkaian di atas:





CLRLCD
LOCATE = 0
TEXT: ** DEMO LCD **
ULANG:
LOCATE = 64
TEXT: VAR0 chr =
VAR0 = VAR0 + 1
LCDDATA = VAR0
WRITE LCD
DELAY = 25
GOTO ULANG


Setelah program dicompile dan didownload maka setelah dijalankan akan menampilkan tulisan ** DEMO LCD ** pada baris pertama dan tulisan VAR0 chr = pada baris kedua, dimana akan dituliskan character dari 0 sampai 255 di sebelahnya tulisan VAR0 chr =
Selamat mencoba.

Sabtu, 02 Januari 2010

Latihan No.2 "Logic Input dan Output"



Dalam latihan ini bertujuan untuk mengetahui bagaimana membuat program input dan output.



Buat rangkaian seperti pada gambar.

Buat program seperti berikut:

SET PD5
START:
READ PD5
IF PD = 1 THEN LED_ON
CLR PB1
GOTO START

LED_ON:
SET PB1
DELAY = 10
GOTO START

Setelah program di-compile dan di-download ke Smart-AVR maka LED PB1 akan menyala, karena dalam kodisi tidak di tekan, input PD5 = 1 dan jika ditekan PD5 = 0. Jika push button ditekan, maka LED akan menyala.

Selamat mencoba.


Jumat, 01 Januari 2010

Latihan no.1 "Output LED dan PWM menggunakan SMART-AVR Basic"

Dalam latihan 1 ini akan di tunjukkan bagaimana membuat program output yang dihubungkan ke LED dan pemakaian perintah FOR dan NEXT.
Pertama buatlah rangkaian seperti pada gambar berikut:






















Kedua buatlah program dengan notepad atau dos editor biasa seperti berikut tanpa ada penambahan karakter apapun:

START:
FOR VAR0 = 1 TO 10
SET PB1
CLR PB2
CLR PB3
DELAY = 15
SET PB2
CLR PB1
CLR PB3
DELAY = 15
SET PB3
CLR PB2
CLR PB1
DELAY = 15
CLR PB1
CLR PB2
CLR PB3
DELAY = 15
NEXT VAR0

FOR VAR2 = 1 TO 10
CLR PB1
CLR PB2
CLR PB3
DELAY = 15
SET PB1
SET PB2
SET PB3
DELAY = 15
NEXT VAR2

GOTO START

Setelah di compile dan dijalankan maka LED akan berkedip dengan dua variasi yang berbeda sedangkan untuk output PWM menggunakan program sebagai berikut.

VAR11 = 0
LOOP:
VAR11 = VAR11 + 1
GOSUB MASUK
IF VAR11 = 75 THEN LOOP1
GOTO LOOP

LOOP1:
VAR11 = VAR11 - 1
GOSUB MASUK
IF VAR11 = 0 THEN LOOP
GOTO LOOP1

MASUK:
PWM1 = VAR11
PWM2 = VAR11
PWM3 = VAR11
DELAY = 1
RETURN

Setelah di compile dan di download maka LED akan menyala meredup dan menyala dari kecil ke terang.

Selamat mencoba