Setelah pada tulisan sebelumnya memuat tentang Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR, yang menjelaskan secara singkat penjelasan tentang ADC internal yang dimiliki oleh mikrokontroler ATMEGA 8535.
Dalam tulisan kali ini akan dibahas sama seperti tulisan sebelumya yaitu Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR hanya saja menggunakan bahasa basic dengan compiler Bascom AVR
Untuk simulasi, silahkan buat rangkaian minum plus LCD di proteus, seperti dibawah ini.
Dalam tulisan kali ini akan dibahas sama seperti tulisan sebelumya yaitu Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR hanya saja menggunakan bahasa basic dengan compiler Bascom AVR
Untuk simulasi, silahkan buat rangkaian minum plus LCD di proteus, seperti dibawah ini.
Lalu buka Bascom AVR,
Ketikkan program seperti berikut:
$regfile = "8535def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Dataadc As Word
Cursor Off
Do
Dataadc = Getadc(0)
Locate 1 , 1
Lcd "Data ADC:"
Locate 2 , 1
Lcd Dataadc
Loop
Compile, dan downloadkan ke rangkaian proteus yang telah dibuat dan jalankan program
Semoga bermanfaat
Komentar ini telah dihapus oleh pengarang.
BalasHapusmau tanya??
BalasHapusqo scrip ini setelah di compile ada yang error yah??
mohon bantuannya
$regfile = “m8535.dat”
$crystal = 8000000
Dim Data7 As Byte
Dim Koma7 As Byte
Dim Dataadc As Word
Dim Suhu As Single
Dim S10 As String * 10
Dim S2a As String * 2
Dim S2b As String * 2
Dim Panjang As Byte
Config Adc = Single , Prescaler = Auto
Start Adc
Config Porta.0 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Buzzer Alias Porta.0
Enlo Alias Porta.5
Enhi Alias Porta.6
Config Portc = Output
Buzzer = 1
Enlo = 1
Enhi = 1
Do
Dataadc = Getadc(7)
‘Proses kalibrasi data suhu:
Suhu = Dataadc / 10.23
Suhu = Suhu * 5.03
S10 = Fusing(suhu , “#.##”)
Panjang = Len(s10)
Panjang = Panjang – 3
S2a = Left(s10 , Panjang)
S2b = Right(s10 , 2)
Data7 = Val(s2a)
Koma7 = Val(s2b)
Portc = Makebcd(koma7)
Enlo = 0
nop
nop
Enlo = 1
Portc = Makebcd(data7)
Enhi = 0
nop
nop
Enhi = 1
Waitms 200
Loop
untuk mas aghoy:
BalasHapusmaaf telat bales, saya jarang buka komentar
itu deklarasi mikrokontroler yg digunakan salah,
program mas aghoy : $regfile = “m8535.dat”
harusnya $regfile = “8535def.dat”
untuk melihat file reg mikro pada bascom bisa buka folder instalasinya,misal "C:\Program Files\MCS Electronics\BASCOM-AVR-DEMO\
terus pada program deklarasi I/O
pada program mas aghoy:
Config Porta.0 = Output
Config Porta.5 = Output
Config Porta.6 = Output
harusnya gini aja
Config Porta = Output
Sudah saya coba dan gak ada error
semoga bermanfaat
makasih mas
BalasHapuskalo ngedrive pin gmna ya gan,?
BalasHapusmisal pina.0 = switch dan pinb.0 = led, gmna tuh.?
trus apa bedanya configurasi pin dan port...
terima kasih sebelumnya gan.
mas kalau adc pada atmega menggunakan mode free running ada contoh listing programnya ga
BalasHapusConfig Adc = Single , Prescaler = Auto
BalasHapusStart Adc
maksud ini apa ya?
mas mau tanya nich, saya dapet tugas suruh bikin billing sampe 1000 dan setiap 20 alarm bunyi, minta pencerahan nya ya mas
BalasHapusmas mau tanya nich, saya dapet tugas suruh bikin billing sampe 1000 dan setiap 20 alarm bunyi, minta pencerahan nya ya mas
BalasHapusmaw tanya
BalasHapuskenapa klo saya kasih wait di atmega8535 pake bascom avr
tp malah gak ada waktu tunggu nya??
trus bisa wait itu berdasarkan variabel seperti selama Te hasil rumus saya di bawah... "wait te" bisa gak???
makasih sebelumnya
$regfile = "m8535.dat"
$crystal = 4000000
$sim
'$lib "lcd4.lbx" ' use the alternative library
$baud = 19200
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Lcd = 16 * 2
Config Porta = Input
Config Portd = Output
Config Portb = Output
Config Adc = Single , Prescaler = Auto
Dim W As Word , Channel As Byte
Dim A As Single
Dim R As Single
Dim Iref As Single
Dim T As Single
Dim Tms As Single
Dim Itot As Single
Dim I As Single
Dim Te As Single
Dim Huruf As String * 16
Cls
Portd.1 = 1
Portd.0 = 0
Portd.7 = 0
Wait 5
Start Adc
Declare Sub Hidup1
Declare Sub Hidup2
Channel = 0
R = 1
Do
Gosub Hitung
If A > Iref Then
Gosub Hitung1
Do
Portd.1 = 0
Wait 5
If A > Iref Then
Call Hidup1
Waitms Te
Call Hidup2
End If
Gosub Hitung
Loop Until A <= Iref
Else
'mematikan relay...
Do
Portd.1 = 1
Gosub Hitung
Loop Until A > Iref
End If
Loop
Hitung:
W = Getadc(channel)
A = W * 5
A = A / R
A = A / 1024
A = A * 6
A = A * 4.2
Iref = 2.5
Tms = 2.6
Return
Hitung1:
T = Tms * 0.14 '0.07
Itot = A / Iref
'1.13
Itot = Itot ^ 0.02 '1.003
Itot = Itot - 1
T = T / Itot '0.003
Te = Round(t)
Return
End
'-------------------------------------------------------------------------------
Sub Hidup1
Portd.0 = 1
Waitms 500
End Sub
'-------------------------------------------------------------------------------
Sub Hidup2
Portd.6 = 1
Waitms 500
End Sub
mas, ada file program minimum sistem atmega8535 dengan lcd gak mas ? yg sesuai dengan listing program di atas ?
BalasHapusmas untuk adc dengan beberapa input dmn kl menggunakan bascom. mohon pencerahannya..
BalasHapus