Modul Micro
-
Upload
thata-cindta-baiu -
Category
Documents
-
view
189 -
download
0
Transcript of Modul Micro
Modul1INTRODUCTION
Komputer adalah mesin yang didesain untuk mengolah menyimpan dan
mendapatkan kembali sebuah data Datainformasi yang menjadi bagian operasi dari
sebuah komputer adalah berupa angka Semua operasi yang bisa dilakukan
komputer seperti web browsing printing dan image processing tidak lebih
merupakan kegiatan menahan memindahkan dan mengubahmemanipulasi angka
angka
Sistem komputer dibagi menjadi dua kategori yaitu
1 Desktop komputer mesin yang sering kita sebut sebagai ldquokomputerrdquo komputer
yang ada di pikiran kita Desktop komputer bisa menjalankan beragam program
dengan sistem yang diatur oleh suatu operating sistem (OS) seperti Windows
dan Linux Dengan menjalankan aplikasi program yang berbeda fungsi dari
desktop komputer juga berubah
2 Embedded komputer komputer yang terintegrasi dengan sistem lain (ex
mekanika) dan digunakan untuk suatu fungsi tertentu Seperti microwave oven
DVD player mainan handphone dll Embedded komputer pada umumnya
didesain untuk satu aplikasi saja
Sistem komputer disusun dari banyak komponen seperti processor memory
inputoutput peripheral dll Berikut adalah gambar 11 skema sistem komputer
sederhana
Gambar 11 Sistem komputer sederhana
PROCESSOR
ProcessorCPU (Central Processing Unit) adalah komponen dari suatu sistem
komputer yang melakukan proses manipulasi dan pengolahan (eksekusi) data
berdasarkan urutan instruksi dari memory Instruksi yang dijalankan oleh processor
disebut dengan opcodes atau machine-code
Opcodes merupakan bahasa mesin berupa angka-angka yang kadang sulit
dimengerti oleh pengguna untuk itu dibangun instruksi operasi processor dalam
bahasa assembly yang disebut dengan mnemonic Urutan dari kumpulan instruksi
sebuah processor disebut dengan program Program yang dijalankan processor bisa
diubah sesuai dengan kebutuhan aplikasi sehingga komputer bersifat
programmable
MEMORY
Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan
data dan instruksi (program) yang dijalankan oleh processor Ada beberapa jenis
memory yang biasa digunakan oleh suatu sistem komputer
1 RAM (Random Acces Memory) RAM adalah ldquoWorking Memoryrdquo pada sistem
komputer dimana CPU dapat menuliskan data untuk disimpan sementara RAM
bersifat rdquovolatilerdquo yang berarti datanya akan hilang apabila catu daya dimatikan
2 ROM (Read Only Memory) bersifat ldquonon volatilerdquo yang berarti data tidak akan
hilang meskipun catu daya dimatikan Tujuan utama dari ROM adalah
menyimpan kodedata yang dibutuhkan pada saat start up
PERANGKAT INPUTOUTPUT
Perangkat inputoutput atau peripheral io digunakan oleh processor untuk
berkomunikasi dengan dunia luar Contoh pemakaian perangkat io adalah serial
komunikasi pada keyboard dan parallel komunikasi pada printer Perangkat io
merupakan piranti pengkondisi sinyal sebelum dapat diolah oleh processor atau
setelah diolah processor sehingga dapat dikeluarkan berupa output data digital
MIKROKONTROLLER
Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang
memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi
(program) yang dibuat oleh programmer Mikrokontroller merupakan contoh suatu
sistem komputer sederhana yang masuk dalam kategori embedded komputer
Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponen
seperti processor memory clock dll
Gambar 12 contoh beberapa bentuk mikrokontroller ATMEL
Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi
sinyal output berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai
kebutuhan Sasaran dari pelatihan ini adalah peserta mampu menggunakan
mikrokontroller untuk membangun sendiri suatu sistem otomasi atau embedded
system
ATMEL AVR ATMEGA8535
Sebelum belajar lebih dalam tentang aplikasi mikrokontroller ada baiknya kita
bicarakan dulu tentang mikrokontroller yang kita gunakan Pada pelatihan ini dipilih
mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut
1048707 ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga
yang relatif murah
1048707 Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS
(Million Instruction per Second) yang berarti hanya dibutuhkan 1 clock untuk 1
eksekusi instruksi
1048707 Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi
1048707 Ketersediaan kompiler BASCOM yang memudahkan user memprogram menggunakan bahasa Basic
Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa
mikrokontroller
Tabel 11 perbandingan kecepatan processor dan efisiensi
Dari tabel diatas dapat dilihat ketika bekerja dengan kecepatan clock yang sama
AVR 7 kali lebih cepat dibandingkan denga PIC16C74 15 kali lebih cepat daripada
68 HC11 dan 28 kali lebih cepat dibanding 8051
Dari kemampuan dan fasilitas yang dimiliki AVR RISC cocok dipilih sebagai
mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem
Pada pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan
yaitu ATMEGA 8535 Chip AVR ATMEGA8535 memiliki 40 pin kaki berikut skema
kaki AT MEGA8535
Gambar 13 skema mikrokontroller AVR RISC ATMEGA8535
ATMEGA8535 memiliki 4 buah port inputoutput 8 bit yaitu PORTA PORTB
PORTC dan PORTD
Selain sebagai inputoutput masing masing port juga memiliki fungsi yang lain
PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter) PORTB
dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication dan
gunakan data sheet AT MEGA8535 untuk mengetahui fungsi pin lebih jelas (saran)
Modul2PEMROGRAMAN BASIC
Sebelum membuat program dengan bahasa basic telebih dahulu memahami beberapa intruksi dasar bahasa basic
1 Tipe data merupakan bagian program yang paling penting karena tipe data akan mempengaruhi setiap instruksi yang dilaksanakan computer
No Tipe Jangkauan1 Bit 0 12 Byte 0 - 2553 Integer -32768 ndash 327674 Word 0 ndash 655355 Long -2147483648 - 21474836476 Single 15x10E-45 ndash 34x10E387 String gt254 byte
2 Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung dan didefinisikan dulu diawal programContoh A = 6
C = 21D = 314
3 Variabel suatu pengenal atau indentifier yang dipakai untuk mewakili suatu nilai tertentu didalam proses program dan nama variable dapat ditentukan sendiri oleh pemrogram dengan aturan Dapat gabungan hurup angka tapi harus diawali dengan hurup Tidak boleh ada spasi Tidak boleh mengandung symbol khusus Panjangnya max 32 karakter
4 Deklarasi digunakan apabila akan menggunakan pengenal dalam sebuah program dapat berupa Variabel Konstanta dan FungsiDeklarasi Variabel Contoh Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh L=1234P=rdquohallordquo
Deklarasi Fungsi Contoh DeclareFunction Myno( I as byte )as Integer
5 Operatordalam bahasa basic terdapat banyak jenis operator yang perlu dipahami untuk membantu dalam penulisan program
Operator Aritmatika = operator kali = operator bagi= operator sisa hasil bagi
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
PROCESSOR
ProcessorCPU (Central Processing Unit) adalah komponen dari suatu sistem
komputer yang melakukan proses manipulasi dan pengolahan (eksekusi) data
berdasarkan urutan instruksi dari memory Instruksi yang dijalankan oleh processor
disebut dengan opcodes atau machine-code
Opcodes merupakan bahasa mesin berupa angka-angka yang kadang sulit
dimengerti oleh pengguna untuk itu dibangun instruksi operasi processor dalam
bahasa assembly yang disebut dengan mnemonic Urutan dari kumpulan instruksi
sebuah processor disebut dengan program Program yang dijalankan processor bisa
diubah sesuai dengan kebutuhan aplikasi sehingga komputer bersifat
programmable
MEMORY
Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan
data dan instruksi (program) yang dijalankan oleh processor Ada beberapa jenis
memory yang biasa digunakan oleh suatu sistem komputer
1 RAM (Random Acces Memory) RAM adalah ldquoWorking Memoryrdquo pada sistem
komputer dimana CPU dapat menuliskan data untuk disimpan sementara RAM
bersifat rdquovolatilerdquo yang berarti datanya akan hilang apabila catu daya dimatikan
2 ROM (Read Only Memory) bersifat ldquonon volatilerdquo yang berarti data tidak akan
hilang meskipun catu daya dimatikan Tujuan utama dari ROM adalah
menyimpan kodedata yang dibutuhkan pada saat start up
PERANGKAT INPUTOUTPUT
Perangkat inputoutput atau peripheral io digunakan oleh processor untuk
berkomunikasi dengan dunia luar Contoh pemakaian perangkat io adalah serial
komunikasi pada keyboard dan parallel komunikasi pada printer Perangkat io
merupakan piranti pengkondisi sinyal sebelum dapat diolah oleh processor atau
setelah diolah processor sehingga dapat dikeluarkan berupa output data digital
MIKROKONTROLLER
Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang
memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi
(program) yang dibuat oleh programmer Mikrokontroller merupakan contoh suatu
sistem komputer sederhana yang masuk dalam kategori embedded komputer
Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponen
seperti processor memory clock dll
Gambar 12 contoh beberapa bentuk mikrokontroller ATMEL
Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi
sinyal output berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai
kebutuhan Sasaran dari pelatihan ini adalah peserta mampu menggunakan
mikrokontroller untuk membangun sendiri suatu sistem otomasi atau embedded
system
ATMEL AVR ATMEGA8535
Sebelum belajar lebih dalam tentang aplikasi mikrokontroller ada baiknya kita
bicarakan dulu tentang mikrokontroller yang kita gunakan Pada pelatihan ini dipilih
mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut
1048707 ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga
yang relatif murah
1048707 Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS
(Million Instruction per Second) yang berarti hanya dibutuhkan 1 clock untuk 1
eksekusi instruksi
1048707 Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi
1048707 Ketersediaan kompiler BASCOM yang memudahkan user memprogram menggunakan bahasa Basic
Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa
mikrokontroller
Tabel 11 perbandingan kecepatan processor dan efisiensi
Dari tabel diatas dapat dilihat ketika bekerja dengan kecepatan clock yang sama
AVR 7 kali lebih cepat dibandingkan denga PIC16C74 15 kali lebih cepat daripada
68 HC11 dan 28 kali lebih cepat dibanding 8051
Dari kemampuan dan fasilitas yang dimiliki AVR RISC cocok dipilih sebagai
mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem
Pada pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan
yaitu ATMEGA 8535 Chip AVR ATMEGA8535 memiliki 40 pin kaki berikut skema
kaki AT MEGA8535
Gambar 13 skema mikrokontroller AVR RISC ATMEGA8535
ATMEGA8535 memiliki 4 buah port inputoutput 8 bit yaitu PORTA PORTB
PORTC dan PORTD
Selain sebagai inputoutput masing masing port juga memiliki fungsi yang lain
PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter) PORTB
dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication dan
gunakan data sheet AT MEGA8535 untuk mengetahui fungsi pin lebih jelas (saran)
Modul2PEMROGRAMAN BASIC
Sebelum membuat program dengan bahasa basic telebih dahulu memahami beberapa intruksi dasar bahasa basic
1 Tipe data merupakan bagian program yang paling penting karena tipe data akan mempengaruhi setiap instruksi yang dilaksanakan computer
No Tipe Jangkauan1 Bit 0 12 Byte 0 - 2553 Integer -32768 ndash 327674 Word 0 ndash 655355 Long -2147483648 - 21474836476 Single 15x10E-45 ndash 34x10E387 String gt254 byte
2 Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung dan didefinisikan dulu diawal programContoh A = 6
C = 21D = 314
3 Variabel suatu pengenal atau indentifier yang dipakai untuk mewakili suatu nilai tertentu didalam proses program dan nama variable dapat ditentukan sendiri oleh pemrogram dengan aturan Dapat gabungan hurup angka tapi harus diawali dengan hurup Tidak boleh ada spasi Tidak boleh mengandung symbol khusus Panjangnya max 32 karakter
4 Deklarasi digunakan apabila akan menggunakan pengenal dalam sebuah program dapat berupa Variabel Konstanta dan FungsiDeklarasi Variabel Contoh Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh L=1234P=rdquohallordquo
Deklarasi Fungsi Contoh DeclareFunction Myno( I as byte )as Integer
5 Operatordalam bahasa basic terdapat banyak jenis operator yang perlu dipahami untuk membantu dalam penulisan program
Operator Aritmatika = operator kali = operator bagi= operator sisa hasil bagi
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
MIKROKONTROLLER
Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang
memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi
(program) yang dibuat oleh programmer Mikrokontroller merupakan contoh suatu
sistem komputer sederhana yang masuk dalam kategori embedded komputer
Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponen
seperti processor memory clock dll
Gambar 12 contoh beberapa bentuk mikrokontroller ATMEL
Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi
sinyal output berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai
kebutuhan Sasaran dari pelatihan ini adalah peserta mampu menggunakan
mikrokontroller untuk membangun sendiri suatu sistem otomasi atau embedded
system
ATMEL AVR ATMEGA8535
Sebelum belajar lebih dalam tentang aplikasi mikrokontroller ada baiknya kita
bicarakan dulu tentang mikrokontroller yang kita gunakan Pada pelatihan ini dipilih
mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut
1048707 ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga
yang relatif murah
1048707 Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS
(Million Instruction per Second) yang berarti hanya dibutuhkan 1 clock untuk 1
eksekusi instruksi
1048707 Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi
1048707 Ketersediaan kompiler BASCOM yang memudahkan user memprogram menggunakan bahasa Basic
Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa
mikrokontroller
Tabel 11 perbandingan kecepatan processor dan efisiensi
Dari tabel diatas dapat dilihat ketika bekerja dengan kecepatan clock yang sama
AVR 7 kali lebih cepat dibandingkan denga PIC16C74 15 kali lebih cepat daripada
68 HC11 dan 28 kali lebih cepat dibanding 8051
Dari kemampuan dan fasilitas yang dimiliki AVR RISC cocok dipilih sebagai
mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem
Pada pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan
yaitu ATMEGA 8535 Chip AVR ATMEGA8535 memiliki 40 pin kaki berikut skema
kaki AT MEGA8535
Gambar 13 skema mikrokontroller AVR RISC ATMEGA8535
ATMEGA8535 memiliki 4 buah port inputoutput 8 bit yaitu PORTA PORTB
PORTC dan PORTD
Selain sebagai inputoutput masing masing port juga memiliki fungsi yang lain
PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter) PORTB
dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication dan
gunakan data sheet AT MEGA8535 untuk mengetahui fungsi pin lebih jelas (saran)
Modul2PEMROGRAMAN BASIC
Sebelum membuat program dengan bahasa basic telebih dahulu memahami beberapa intruksi dasar bahasa basic
1 Tipe data merupakan bagian program yang paling penting karena tipe data akan mempengaruhi setiap instruksi yang dilaksanakan computer
No Tipe Jangkauan1 Bit 0 12 Byte 0 - 2553 Integer -32768 ndash 327674 Word 0 ndash 655355 Long -2147483648 - 21474836476 Single 15x10E-45 ndash 34x10E387 String gt254 byte
2 Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung dan didefinisikan dulu diawal programContoh A = 6
C = 21D = 314
3 Variabel suatu pengenal atau indentifier yang dipakai untuk mewakili suatu nilai tertentu didalam proses program dan nama variable dapat ditentukan sendiri oleh pemrogram dengan aturan Dapat gabungan hurup angka tapi harus diawali dengan hurup Tidak boleh ada spasi Tidak boleh mengandung symbol khusus Panjangnya max 32 karakter
4 Deklarasi digunakan apabila akan menggunakan pengenal dalam sebuah program dapat berupa Variabel Konstanta dan FungsiDeklarasi Variabel Contoh Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh L=1234P=rdquohallordquo
Deklarasi Fungsi Contoh DeclareFunction Myno( I as byte )as Integer
5 Operatordalam bahasa basic terdapat banyak jenis operator yang perlu dipahami untuk membantu dalam penulisan program
Operator Aritmatika = operator kali = operator bagi= operator sisa hasil bagi
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
1048707 Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS
(Million Instruction per Second) yang berarti hanya dibutuhkan 1 clock untuk 1
eksekusi instruksi
1048707 Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi
1048707 Ketersediaan kompiler BASCOM yang memudahkan user memprogram menggunakan bahasa Basic
Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa
mikrokontroller
Tabel 11 perbandingan kecepatan processor dan efisiensi
Dari tabel diatas dapat dilihat ketika bekerja dengan kecepatan clock yang sama
AVR 7 kali lebih cepat dibandingkan denga PIC16C74 15 kali lebih cepat daripada
68 HC11 dan 28 kali lebih cepat dibanding 8051
Dari kemampuan dan fasilitas yang dimiliki AVR RISC cocok dipilih sebagai
mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem
Pada pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan
yaitu ATMEGA 8535 Chip AVR ATMEGA8535 memiliki 40 pin kaki berikut skema
kaki AT MEGA8535
Gambar 13 skema mikrokontroller AVR RISC ATMEGA8535
ATMEGA8535 memiliki 4 buah port inputoutput 8 bit yaitu PORTA PORTB
PORTC dan PORTD
Selain sebagai inputoutput masing masing port juga memiliki fungsi yang lain
PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter) PORTB
dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication dan
gunakan data sheet AT MEGA8535 untuk mengetahui fungsi pin lebih jelas (saran)
Modul2PEMROGRAMAN BASIC
Sebelum membuat program dengan bahasa basic telebih dahulu memahami beberapa intruksi dasar bahasa basic
1 Tipe data merupakan bagian program yang paling penting karena tipe data akan mempengaruhi setiap instruksi yang dilaksanakan computer
No Tipe Jangkauan1 Bit 0 12 Byte 0 - 2553 Integer -32768 ndash 327674 Word 0 ndash 655355 Long -2147483648 - 21474836476 Single 15x10E-45 ndash 34x10E387 String gt254 byte
2 Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung dan didefinisikan dulu diawal programContoh A = 6
C = 21D = 314
3 Variabel suatu pengenal atau indentifier yang dipakai untuk mewakili suatu nilai tertentu didalam proses program dan nama variable dapat ditentukan sendiri oleh pemrogram dengan aturan Dapat gabungan hurup angka tapi harus diawali dengan hurup Tidak boleh ada spasi Tidak boleh mengandung symbol khusus Panjangnya max 32 karakter
4 Deklarasi digunakan apabila akan menggunakan pengenal dalam sebuah program dapat berupa Variabel Konstanta dan FungsiDeklarasi Variabel Contoh Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh L=1234P=rdquohallordquo
Deklarasi Fungsi Contoh DeclareFunction Myno( I as byte )as Integer
5 Operatordalam bahasa basic terdapat banyak jenis operator yang perlu dipahami untuk membantu dalam penulisan program
Operator Aritmatika = operator kali = operator bagi= operator sisa hasil bagi
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
ATMEGA8535 memiliki 4 buah port inputoutput 8 bit yaitu PORTA PORTB
PORTC dan PORTD
Selain sebagai inputoutput masing masing port juga memiliki fungsi yang lain
PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter) PORTB
dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication dan
gunakan data sheet AT MEGA8535 untuk mengetahui fungsi pin lebih jelas (saran)
Modul2PEMROGRAMAN BASIC
Sebelum membuat program dengan bahasa basic telebih dahulu memahami beberapa intruksi dasar bahasa basic
1 Tipe data merupakan bagian program yang paling penting karena tipe data akan mempengaruhi setiap instruksi yang dilaksanakan computer
No Tipe Jangkauan1 Bit 0 12 Byte 0 - 2553 Integer -32768 ndash 327674 Word 0 ndash 655355 Long -2147483648 - 21474836476 Single 15x10E-45 ndash 34x10E387 String gt254 byte
2 Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung dan didefinisikan dulu diawal programContoh A = 6
C = 21D = 314
3 Variabel suatu pengenal atau indentifier yang dipakai untuk mewakili suatu nilai tertentu didalam proses program dan nama variable dapat ditentukan sendiri oleh pemrogram dengan aturan Dapat gabungan hurup angka tapi harus diawali dengan hurup Tidak boleh ada spasi Tidak boleh mengandung symbol khusus Panjangnya max 32 karakter
4 Deklarasi digunakan apabila akan menggunakan pengenal dalam sebuah program dapat berupa Variabel Konstanta dan FungsiDeklarasi Variabel Contoh Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh L=1234P=rdquohallordquo
Deklarasi Fungsi Contoh DeclareFunction Myno( I as byte )as Integer
5 Operatordalam bahasa basic terdapat banyak jenis operator yang perlu dipahami untuk membantu dalam penulisan program
Operator Aritmatika = operator kali = operator bagi= operator sisa hasil bagi
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Modul2PEMROGRAMAN BASIC
Sebelum membuat program dengan bahasa basic telebih dahulu memahami beberapa intruksi dasar bahasa basic
1 Tipe data merupakan bagian program yang paling penting karena tipe data akan mempengaruhi setiap instruksi yang dilaksanakan computer
No Tipe Jangkauan1 Bit 0 12 Byte 0 - 2553 Integer -32768 ndash 327674 Word 0 ndash 655355 Long -2147483648 - 21474836476 Single 15x10E-45 ndash 34x10E387 String gt254 byte
2 Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung dan didefinisikan dulu diawal programContoh A = 6
C = 21D = 314
3 Variabel suatu pengenal atau indentifier yang dipakai untuk mewakili suatu nilai tertentu didalam proses program dan nama variable dapat ditentukan sendiri oleh pemrogram dengan aturan Dapat gabungan hurup angka tapi harus diawali dengan hurup Tidak boleh ada spasi Tidak boleh mengandung symbol khusus Panjangnya max 32 karakter
4 Deklarasi digunakan apabila akan menggunakan pengenal dalam sebuah program dapat berupa Variabel Konstanta dan FungsiDeklarasi Variabel Contoh Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh L=1234P=rdquohallordquo
Deklarasi Fungsi Contoh DeclareFunction Myno( I as byte )as Integer
5 Operatordalam bahasa basic terdapat banyak jenis operator yang perlu dipahami untuk membantu dalam penulisan program
Operator Aritmatika = operator kali = operator bagi= operator sisa hasil bagi
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
+ = operator jumlah_ = operator kurang
Operator Hubungan untuk membandingkan antara 2 operan sebuah nilai atau variable
= Equallt gt Inequallt less thanlt= less than or equal Dsb
Operator Logika ada 4 macam And Or Not Xor
Operator Bitwise digunakan untuk memanipulasi bit dari data yang ada di dalam memory
Shift A left2Rotate A Right2Shift A Right2Rotate A left2
6 Kontrol Program control program atau penyeleksi kondisi digunakan untuk mengarahkan perjalanan suatu proses program
Kontrol ldquoIF (kondisi) then (pernyataan)
Kontrol ldquo IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh
IF Agt 10 then
Print ldquoAgt10rdquo
Else
Print ldquoA bukan 10rdquo
End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan
kemungkinan yang terjadi cukup banyak
Contoh Select case input
Case ampH01 call maju
Case ampH02 call putar kanan
Case ampH03 call putar kiri
Case ampH04 call mundur
End select
7 Kontrol perulangan dipakai untuk melakukan proses yang berulang ndash ulang
sebanyak yang diinginkan
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Kontrol perulangan Whilehellip digunakan bila banyak perulangannya belum
diketahui
Contoh While A lt= 10
Print A
Incr A
Whend
Kontrol perulangan DohellipLoop dasarnya sama dengan While
Contoh A = 1
Do
Print A
Incr A
Loop until A = 10
Kontrol perulangan For hellip digunakan untuk menglang suatu proses yang
mana jumlah perulangannya telah diketahui
Contoh For A = 1 to 10 Step 2
Print ldquoini A = ldquo A
Next
Print ldquoini hitung turun ldquo
For A = 10 to -2 Step -1
Print ldquoini C = ldquo C
Next
8 Sintak penulisan program Basic
lsquo Program jalan motor helliphelliphelliphelliphelliphelliphelliphelliphelliplsquojudul program
$regfile = ldquo8535 defdatrdquohelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoheader
$crystal = 12000000 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquoCrystal yang digunakan
Dim data1 as byte data2 as integer helliphelliphelliphelliprsquodeklarasi variable
Config Portc = output helliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquopendifinisian pin
helliphelliphelliphelliphellip
helliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliprsquo Isi program
helliphelliphelliphelliphellip
helliphelliphelliphellip
End
Contoh penulisan program
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
$crystal = 1000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim Ribuan1 As Integer
Dim Ribuan2 As Integer
Dim Ratusan1 As Integer
Dim Ratusan2 As Integer
Dim Puluhan1 As Integer
Dim Puluhan2 As Integer
Dim Data3 As Integer
Dim Data2 As Integer
Dim Data1 As Integer
Dim Data0 As Integer
Dim Datae As Integer
Config Porta = Output
Config Portc = Output
Declare Sub Displaysegment(byval Dataku As Integer)
Declare Sub Segment()
Do
Call Displaysegment(1512)
Waitms 500
Call Displaysegment(4385)
Waitms 500
Loop
End
Sub Displaysegment()
Data3 = Dataku 1000
Ribuan1 = Data3 1000
Ribuan2 = Dataku - Ribuan1
Data2 = Ribuan2 100
Ratusan1 = Data2 100
Ratusan2 = Ribuan2 - Ratusan1
Data1 = Ratusan2 10
Puluhan1 = Data1 10
Puluhan2 = Ratusan2 - Puluhan1
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Data0 = Puluhan2
Datae = Data3
Portc = 14
Call Segment()
Datae = Data2
Portc = 13
Call Segment()
Datae = Data1
Portc = 11
Call Segment()
Datae = Data0
Portc = 7
Call Segment()
End Sub
Sub Segment()
Select Case Datae
Case 0 Porta = 0
Case 1 Porta = 1
Case 2 Porta = 2
Case 3 Porta = 3
Case 4 Porta = 4
Case 5 Porta = 5
Case 6 Porta = 6
Case 7 Porta = 7
Case 8 Porta = 8
Case 9 Porta = 9
End Select
End Sub
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Modul 3MEMPROGRAM SWITCH DAN LED
Rangkaian Minimum dibawah untuk menghidupkan 8 led melalui port A dan sebuah
speaker melalui port C Yang perlu diperhatikan adalah rangkaian led tersebut
merupakan Commond Katoda (CK) artinya untuk menghidupkan led pada port A
haruslah dikirim logika ldquo1rdquo Sekarang buat program agar led dan speaker tersebut
bekerja dengan ketentuan speaker bunyi dan lampu led berkedip secara terus
menerus
Program
-------------------------------------------------------
Program Speaker dan Led Berjalan
-------------------------------------------------------
$crystal = 12000000
$regfile = 8535defdat jika menggunakan ATMEGA8535
Dim Data1 As Byte Data2 As Byte Data3 As Byte
Config Pinc7 = Output
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Config Porta = Output
Data1 = 256
Data2 = 1
Data3 = 0
Do
Porta = Data1
Poinc7 = Data2
Waitms 100
Porta = Data3
Poinc7 = Data3
Waitms 100
Loop
End
Dapat dicermati bahwa untuk led dapat berkedip cukup memberikan data pada
portA=256 (nyala semua) ditunda 100ms dan portA=0 (mati semua) ditunda selama
100ms Begitu pula untuk membuat speaker bunyi harus diberikan pulsa 0 dan
1yang diperoleh dengan memberikan data2=1 dan data3=0 pada pinc7 menuju
basis dari transistor pengendali speaker instruksi Loop yang mengakibatkan proses
program berulang
Untuk lebih jelasnya jalankan program diatas dengan Bascom simulator jika sudah
tidak ada salah dalam penulisan (dikompile) dan lanjutkan di tanamkan (download)
pada rangkaian sebenarnya
Tugas
Dari gambar dibawah buatlah program agar rangkaian dapat berjalan dengan
ketentuan sebagai berikut
Jika selama S1 ditekan maka led akan nyala sebuah pada port a0dan bergeser
kekiri di ikuti speaker berbunyi
Jika selama S2 ditekan maka led akan nyala sebuah pada port a7 dan bergeser
kekanan di ikuti speaker berbunyi
Jika S1 dan S2 tidak ada yang ditekan maka led dan speaker mati
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Catatan Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0
yang dirasakan Portd3 dan Portd4
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Modul 4MEMPROGRAM 7 SEGMENT
Rangkaian Minimum dibawah untuk menghidupkan 7 segment melalui port A dan
duabuah led indicator melalui portB serta dua buah switch sebagai input melalui
portD Yang perlu diperhatikan adalah rangkaian 7 segment tersebut merupakan
Commond Anoda (CA) artinya untuk menghidupkan 7 segment pada port A haruslah
dikirim logika ldquo0rdquo Sekarang buat program agar 7 segment tersebut bekerja dengan
ketentuan
Jika selama S1 ditekan maka 7 segment akan menghitung naik dan sebuah
indicator led1-A pada port B7 nyala
Jika selama S2 ditekan maka 7 segment akan menghitung turun dan
sebuah indicator led1-B pada port B6 nyala
Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4
Program
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
--------------------------------------------------------
Program 7-Segment Mencacah Naik dan Turun
--------------------------------------------------------
$crystal = 12000000
$regfile=8535defdat jika menggunakan ATMEGA8535
Dim B As Integer X as byte Y as byte
Config Porta = Output
Config Portd = Input
Naik alias Pind0
Turun alias Pind1
Declare Sub segment(byval datae As Integer)
A
B=4
Call Segment(B)
Waitms 500
Do
IF naik=0 then
Incr B
Call Segment(B)
Waitms 500
IF turun=0 then
decr B
Call Segment(B)
Waitms 500
Else
Goto A
Loop
End If
End
Sub segment()
Select Case Datae
Case 1 Porta = 192
Case 2 Porta = 249
Case 3 Porta = 164
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Case 4 Porta = 176
Case 5 Porta = 153
Case 6 Porta = 146
Case 7 Porta = 130
Case 8 Porta = 248
Case 9 Porta = 128
Case 10 Porta = 144
End Select
End Sub
Tugas
Dari gambar dibawah buatlah program dengan ketentuan Jika S1 ditekan
tampilkan angka 56 di 7 segment jika S2 ditekan tampil angka 39 dan jika tidak ada
yang ditekan display 7 segment tampil angka 00
Modul 5
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
MEMPROGRAM LCD DISPLAY
Salah satu kelebihan dari Bascom adalah bahwa program telah menyediakan rutin-
rutin khusus untuk menampilkan karakter menggunakan LCD bahkan dapat
membuat karakter special dengan fasilitas LCD Designer
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan
LCD (2 16) menggunakan 4 Bit selain lebih menghemat io dengan mode seperti
ini mempermudah pembuatan PCB nya
Program
$regfile = m8515dat $crystal = 4000000 $baud = 19200 $simConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc7 Rs = Portc6 Dim A as Byte X as ByteConfig Lcd = 16 2 Config Portd= OutputCls
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Lcd Hello world Wait 1Lowerline Wait 1Lcd Shift this Wait 1For A = 1 To 10 Shiftlcd Right Wait 1 Next For A = 1 To 10 Shiftlcd Left Wait 1 Next
For B = 1 To 10 Porta = ampHF0Waitms 50Porta = ampH00Waitms 50Next
Locate 2 1 Lcd Wait 1 Shiftcursor Right Lcd Wait 1 Home Upper Lcd Replaced Wait 1 Cursor Off Noblink Wait 1 Cursor On Blink Wait 1 Display Off Wait 1 Display On End
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Tugas
Dari gambar rangkaian dibawah buatlah program agar rangkaian dapat bekerja
dengan ketentuan sbb
Jika S1 ditekan maka led 1 indikator akan menyala dan LCD menampilkan
nama anda pada baris pertama serta Nim anda dibaris kedua
Jika S2 ditekan maka led 2 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
Jika S3 ditekan maka led 3 indikator akan menyala dan LCD menampilkan
Alamat anda pada baris pertama serta kota anda berasal dibaris kedua
bergeser kekanan
Catatan Kondisi switch terbuka mempunyai nilai ldquo1rdquo = 5 volt dan kondisi tertutup
menuju ke ground
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Modul 6MEMPROGRAM MOTOR DC - STEPPER
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper pada
rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
rangkaian driver Motor DC tipe Bridge untuk dapat berputar dengan arah jarum jam
(CW) atau berlawanan jarum jam (CCW) Sedangkan di PortD dihubungkan pada
rangkaian driver motor Stepper yang juga dapat berputar dengan arah dapat dibalik
1 Membuat program untuk memutar motor DC dengan arah CW dengan t1
detik berhenti dengan t2 detik dan putar CCW dengan t1 detik
2 Membuat program untuk memutar motor steper arah CW sejauh 180deg jika
stepper motor mempunyai step-size 75deg
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Program 1$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim Data2 As ByteDim W As Byte M As ByteConfig Porta = OutputMotor Alias Porta Data1 = ampH50 Data2 = ampHA0 W = 100 M = 200DoMotor = Data1Waitms WMotor = 0Waitms MMotor = Data2Waitms WLoopEnd
Program 2
$crystal = 12000000$regfile = 8535defdat jika menggunakan ATMEGA8535Dim Data1 As ByteDim W As Byte M As ByteConfig Portd = OutputMotor Alias Portd Data1 = ampHCC W = 1Do M = 1 Do Motor = Data1 Waitms W Rotate Data1 Right 1 Incr M Loop Until M = 4 Incr WLoop Until W = 24End
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika selama S1 ditekan
maka motor DC akan berputar kekiri (CCW) dan jika selama S2 motor stepper akan
berputar kekanan (CW) terus-menerus dan berhenti jika tidak ada switch ditekan
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Modul 7MEMPROGRAM TIMERCOUNTER DAN INTERUPT
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0
dan T1) dan counter sesuai keinginan Timercounter0 dapat digunakan sebagai
timercounter biasagenerator frekwensi dan counter pulsa eksternal Sedangkan
pada timer1 mempunyai kapasitas cacahan 16 bit (65535) yang dapat digunakan
sama seperti timer0 dan mempunyai fungsi laian yaitu generator frekwensi PWM
serta Capture Unit Contoh dibawah aplikasi timer0 dan timer1 sebagai timer dan
counter
ldquoprog timer0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind7 = OutputConfig Timer0 = Timer Prescale = 64Dim W As Byte
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
On Timer0 PulseW = 100Enable InterruptsEnable Timer0Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopCls Locate 1 1 Lcd durasi =Pulse Toggle Portd7 Locate 1 10 Lcd Portd7 ReturnEnd
ldquoprog timer1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Pind6 = OutputConfig Pind7= OutputConfig Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Timer0 = Timer Prescale = 1024Dim W As IntegerDim Timecount As Word
W = 1000Timecount = 0ClsLcd time = Do Set Portd6 Waitms W Reset Portd6 Waitms W Timecount = Timer0
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Waitms W Locate 1 8 Lcd Timecount Waitms WLoopEnd
ldquoprog counter0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 4000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pinb1 = inputConfig Timer1 = Timer Prescale = 1Config Timer0 = Counter Edge = RisingTcnt0 = 0 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 Cls
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Lcd counter = Do Locate 1 11 Lcd Tcnt0 Waitms 100LoopEnd
ldquoprog counter1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 8000000$sim
Config Pinb1 = inputConfig Pind6 = OutputConfig Timer1 = Counter Edge = Falling Prescale = 1Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2
Stop Counter1 Set Portd6 Waitms 100 Reset Portd6 Waitms 100 ClsLcd count = Counter1 = 0Do
Start Counter1 Waitms 100 Stop Counter1 Locate 1 9 Lcd Counter1 Waitms 100LoopEnd
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Interupsi eksternal adalah fasilitas yang dimiliki ATMEGA 8535 yaitu sebuah peripheral dalam chip yang bertugas mendeteksi trigger dari luar yang akan membangkitkan interupsi yang bersangkutan Interupsi eksternal disediakan 2 buah pada pin INT0 dan INT1dan trigger yang digunakan dapat ditentukan sendiri Contoh dibawah adalah aplikasi menggunakan interupsi eksternal
ldquoprog interrupt 0helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind2 = InputDim W As Byte X As Byte
On Int0 SayangW = 100Enable InterruptsEnable Int0 Cls Lcd stop = Do
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Set Portd6 Waitms W Reset Portd6 Waitms WLoopSayang Locate 1 8 Lcd X Incr X ReturnEnd
ldquoprog interrup1helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip$regfile = 8535defdat$crystal = 12000000$sim
Config Lcdpin = Pin Db4 = Portc4 Db5 = Portc5 Db6 = Portc6 Db7 = Portc7 E = Portc2 Rs = Portc3Config Lcd = 16 2Config Pind6 = OutputConfig Pind3 = InputDim W As Byte X As Byte
On Int0 PbtOn Int1 Men
W = 100Enable InterruptsEnable Int0Enable Int1 Cls Lcd stop = Do Set Portd6 Waitms W Reset Portd6 Waitms WLoopPbt Locate 1 8 Lcd X Incr X Return
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Men Locate 1 8 Lcd X Decr X ReturnEnd
Tugas
Buatlah program untuk gambar diatas dengan ketentuan jika S1 ditekan berarti ada
intrupsi maka pada LCD akan menampilkan Nama anda dan geser kekanan
sebanyak 10 kali dan jika S2 ditekan maka tampilan pada LCD akan kembali
bergeser kekiri sebanyak 10 kali
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
Modul 8MEMPROGRAM INPUT SENSOR
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG
MODUL PELATIHAN
FEBRUARIrsquo 2010
ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG