INTRODUCTION INTRODUCTION
Ko
Kompmpututer er adadalalah ah mmesesin in yyanang g dididedessaiain n ununtutuk k memengngololahah, , memenynyimimpapan, n, dadann mendapatkan kembali sebuah data. Data/informasi yang menjadi bagian
mendapatkan kembali sebuah data. Data/informasi yang menjadi bagian operasi darioperasi dari se
sebubuah ah kokompmpututer er adadalaalah h beberurupa pa anangkgka. a. SeSemumua a opopererasasi i yayang ng bibisa sa didilaklakukukanan ko
kompmpututer er sesepepertrti: i: weweb b brbrowowsisingng, , prprintintining, g, dadan n imimagage e prprococesessising ng tidtidak ak lelebibihh merupakan kegiatan menahan, memindahkan dan mengubah/memanipulasi angka merupakan kegiatan menahan, memindahkan dan mengubah/memanipulasi angka angka.
angka.
Sistem komputer dibagi menjadi dua kategori, yaitu: Sistem komputer dibagi menjadi dua kategori, yaitu:
1.
1. Desktop komputer Desktop komputer , mesin yang sering kita sebut sebagai “komputer”, komputer , mesin yang sering kita sebut sebagai “komputer”, komputer yang ada di pikiran kita. Desktop komputer bisa menjalankan beragam program yang ada di pikiran kita. Desktop komputer bisa menjalankan beragam program dengan sistem yang diatur oleh suatu operating sistem (OS) seperti: Windows dengan sistem yang diatur oleh suatu operating sistem (OS) seperti: Windows dan
dan LinLinux. ux. DenDengan gan memenjanjalanlankan kan apaplikalikasi si proprogragram m yanyang g berberbedbeda, a, funfungsi gsi dardarii desktop komputer juga berubah.
desktop komputer juga berubah.
2.
2. EmbedEmbedded ded kompkomputer uter , , kokompmpututer er yayang ng teteririntntegegrarasi si dedengngan an sisiststem em lalain in (e(ex:x: mekanika) dan digunakan untuk suatu fungsi tertentu. Seperti: microwave oven, mekanika) dan digunakan untuk suatu fungsi tertentu. Seperti: microwave oven, DVD
DVD plaplayeryer, , mamainainan, n, hanhandphdphone one dlldll. . EmbEmbededded ded kokompumputer ter padpada a umumumnumnyaya didesain untuk satu aplikasi saja.
didesain untuk satu aplikasi saja.
Sis
Sistem tem komkomputputer er disdisusuusun n dadari ri banbanyak yak komkomponponen, en, sepseperterti: i: proprocescessosor, r, mememomory,ry, inp
input/ut/outoutput put perperiphipheraeral l dlldll. . BerBerikuikut t adaadalah lah gamgambabar r 1.1 1.1 skeskema ma sissistem tem komkomputputer er sederhana,
sederhana,
Gambar 1.1: Sistem komputer sederhana Gambar 1.1: Sistem komputer sederhana
M o d u l 1 M o d u l 1
PROCESSOR PROCESSOR Pro
Procescessorsor/CP/CPU U (Ce(Centrntral al ProProcescessinsing g UniUnit) t) adaadalah lah komkomponponen en dardari i suasuatu tu sissistemtem kom
komputputer er yayang ng memelaklakukaukan n proproses ses manmanipuipulaslasii dan dan penpengolgolahaahan n (ek(ekseksekusiusi)) datadata berdasarkan urutan instruksi dari memory. Instruksi yang dijalankan oleh processor berdasarkan urutan instruksi dari memory. Instruksi yang dijalankan oleh processor disebut dengan opcodes
disebut dengan opcodes atau machine-code.atau machine-code. Op
Opcocodedes s memerurupapakakan n babahahasa sa memesisin n beberurupa pa anangkgka-a-anangkgka a yayang ng kakadadang ng susulitlit dimengerti oleh pengguna, untuk itu dibangun instruksi operasi processor dalam dimengerti oleh pengguna, untuk itu dibangun instruksi operasi processor dalam baha
bahasa sa assemassembly bly yang disebut yang disebut dengdengan an mnemmnemonic. Urutan onic. Urutan dari dari kumkumpulan instrukspulan instruksii sebuah processor disebut dengan program. Program yang dijalankan processor bisa sebuah processor disebut dengan program. Program yang dijalankan processor bisa di
diububah ah sseesusuaai i ddenengagan n kkeebubututuhhaan n aapplilikakassi, i, sesehihingngga ga kkomomppututer er bbeersrsififaatt programmable.
programmable.
MEMORY MEMORY
Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan data dan instruksi (program) yang dijalankan oleh processor. Ada beberapa jenis data dan instruksi (program) yang dijalankan oleh processor. Ada beberapa jenis memory yang biasa digunakan oleh suatu
memory yang biasa digunakan oleh suatu sistem komputer,sistem komputer,
1. RAM (Random Acces Memory), RAM adalah “Working Memory” pada sistem 1. RAM (Random Acces Memory), RAM adalah “Working Memory” pada sistem komputer, dimana CPU dapat menuliskan data untuk disimpan sementara. RAM komputer, dimana CPU dapat menuliskan data untuk disimpan sementara. RAM bersifat ”volatile”, yang berarti
bersifat ”volatile”, yang berarti datanya akan hilang apabila catu daya dimatikan.datanya akan hilang apabila catu daya dimatikan.
2. ROM (Read Only Memory), bersifat “non volatile”, yang berarti data tidak akan 2. ROM (Read Only Memory), bersifat “non volatile”, yang berarti data tidak akan
hi
hilalang ng memeskskipipun un cacatu tu dadaya ya didimamatitikakan. n. TuTujujuan an ututamama a dadari ri ROROM M adadalalahah menyimpan kode/data yang dibutuhkan pada saat start up.
menyimpan kode/data yang dibutuhkan pada saat start up.
PERANGKAT INPUT/OUTPUT PERANGKAT INPUT/OUTPUT Pe
Perarangngkakat t ininpuput/t/ououtptput ut atatau au pepeririphphereral al i/i/o o digdigununakakan an ololeh eh prprococesessosor r ununtutukk berkomunikasi dengan dunia luar. Contoh pemakaian perangkat i/o adalah serial berkomunikasi dengan dunia luar. Contoh pemakaian perangkat i/o adalah serial komu
komunikanikasi si pada keyboarpada keyboard, d, dan dan paraparallel llel komkomunikaunikasi si pada printer. pada printer. PeranPerangkat i/ogkat i/o merup
merupakan akan piranpiranti ti pengkpengkondisondisi i sinysinyalal sebelum dapat diolah oleh processor atausebelum dapat diolah oleh processor atau setelah diolah processor sehingga dapat dikeluarkan berupa output data digital.
MIKROKONTROLLER MIKROKONTROLLER Mik
Mikrokrokontontrollroller er adaadalah lah pirapiranti nti eleelektrktronionik k berberupaupa IC (InIC (Integtegratrated ed CirCircuicuit)t) yangyang memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi (program) yang dibuat oleh programmer. Mikrokontroller merupakan contoh suatu (program) yang dibuat oleh programmer. Mikrokontroller merupakan contoh suatu sistem komputer sederhana yang masuk dalam
sistem komputer sederhana yang masuk dalam kategkategori ori embedembedded ded kompkomputer uter .. Dalam sebuah struktur mikrokontroller akan
Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponenkita temukan juga komponen-komponen seperti: processor, memory, clock dll.
seperti: processor, memory, clock dll.
Gambar 1.2: contoh beberapa bentuk mikrokontroller ATMEL Gambar 1.2: contoh beberapa bentuk mikrokontroller ATMEL
Keg
Kegiataiatan n desdesain ain otootomasmasi i memeruprupakaakan n kegkegiatiatan an memmemetaetakan kan sinsinyal yal inpinput ut menmenjadjadii sin
sinyayal l outoutput put berberdasdasarkarkan an susuatu atu funfungsi gsi konkontrotrol l agaagar r bisbisa a dimdimanfanfaataatkan kan sesesuasuaii ke
kebubututuhahan. n. SaSasasararan n dadari ri pepelalatitihahan n inini i adadalalah ah pepesesertrta a mamampmpu u memengnggugunanakakann mikro
mikrokontkontroller roller untuuntuk k memmembangbangun un sendsendiri iri suatu sistem suatu sistem otomotomasi asi atau atau embeembeddeddded system.
system.
ATMEL AVR ATMEGA8535 ATMEL AVR ATMEGA8535 Seb
Sebeluelum m belbelajaajar r leblebih ih daldalam am tententantang g aplaplikaikasi si mikmikrokrokontontrolroller, ler, ada ada baibaiknyknya a kitkitaa bicarakan dulu tentang mikrokontroller yang kita gunakan. Pada pelatihan ini dipilih bicarakan dulu tentang mikrokontroller yang kita gunakan. Pada pelatihan ini dipilih mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut:
mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut:
ATMEL AVR RISCATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan hargamemiliki fasilitas dan kefungsian yang lengkap dengan harga
yang relatif murah. yang relatif murah.
Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai
16 MIPS
(Million Instruction per Second), yang berarti hanya dibutuhkan 1 clock untuk 1 eksekusi instruksi.
Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi
instruksi.
Ketersediaan kompiler BASCOM yang memudahkan user memprogram
menggunakan bahasa Basic.
Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa mikrokontroller,
Tabel 1.1: 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,
ATMEGA8535 memiliki 4 buah port input/output 8 bit, yaitu PORTA, PORTB, PORTC, dan PORTD.
Selain sebagai input/output 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).
PEMROGRAMAN 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 Jangkauan 1 Bit 0 / 1 2 Byte 0- 255 3 Integer -32,768 – 32,767 4 Word 0 – 65535 5 Long -2147483648 - 2147483647 6 Single 1.5x10E-45 – 3.4x10E38 7 String >254 byte
2. Konstanta, merupakan suatu nilai yang tidak dapat diubah selama proses
program berlangsung, dan didefinisikan dulu diawal program Contoh: A = 6
C = 2.1 D = 3.14
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 Fungsi Deklarasi Variabel Contoh: Dim X as Integer
Dim Y as Byte
Deklarasi konstanta Contoh: L=1234 P=”hallo”
Deklarasi Fungsi Contoh: DeclareFunction Myno( I as byte )as Integer
5. Operator ,dalam 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
= Equal < > Inequal < less than
<= 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, left,2 Rotate A, Right,2 Shift A, Right,2 Rotate A, left,2
6. Kontrol Program, control program atau penyeleksi kondisi digunakan untuk
mengarahkan perjalanan suatu proses program.
Kontrol “IF (kondisi) then (pernyataan)
Kontrol “ IF ( kondisi) then(pernyataan1) Else (peryataan2)
Contoh:
IF A> 10 then Print “A>10” Else
Print “A bukan 10” End IF
Kontrol Select Case digunakan untuk menyeleksi kondisi dengan kemungkinan yang terjadi cukup banyak.
Contoh: Select case input
Case &H01 : call maju
Case &H02 : call putar kanan Case &H03 : call putar kiri Case &H04 : call mundur End select
7. Kontrol perulangan, dipakai untuk melakukan proses yang berulang – ulang
sebanyak yang diinginkan.
Kontrol perulangan While…. , digunakan bila banyak perulangannya belum diketahui,
Contoh: While A <= 10 Print A
Incr A end
Kontrol perulangan Do….Loop , dasarnya sama dengan While Contoh: A = 1
Do Print A Incr A
Loop until A = 10
Kontrol perulangan For …, digunakan untuk menglang suatu proses yang mana jumlah perulangannya telah diketahui.
Contoh: For A = 1 to 10 Step 2 Print “ini A = “ ; A
Next
Print “ini hitung turun “ For A = 10 to -2 Step -1 Print “ini C = “ ; C
Next
8. Sintak penulisan program Basic
‘ Program jalan motor ………...‘judul program $regfile = “8535 def.dat”………...’header
$crystal = 12000000 ………....’Crystal yang digunakan Dim data1 as byte, data2 as integer ………….’deklarasi variable
Config Portc = output ………..’pendifinisian pin ………
…………. ……….’ Isi program ……….
………… End
Contoh penulisan program:
$crystal = 1000000
$regfile="8535def.dat" '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
MEMPROGRAM 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 “1”. 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 = "8535def.dat" 'jika menggunakan ATMEGA8535 Dim Data1 As Byte , Data2 As Byte , Data3 As Byte
Config Pinc.7 = Output Config Porta = Output Data1 = 256 Data2 = 1 Data3 = 0 Do Porta = Data1 Poinc.7 = Data2 Waitms 100 Porta = Data3 Poinc.7 = 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 pinc.7 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 b.0,dan bergeser kekiri
# Jika selama S2 ditekan maka led akan nyala sebuah pada port b.7, dan bergeser kekanan
Catatan: Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0 yang dirasakan Portd.3 dan Portd.4
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 “0”. 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 B.7 nyala.
# Jika selama S2 ditekan maka 7 segment akan menghitung turun dan sebuah indicator led1-B pada port B.6 nyala.
# Jika S1 dan S2 tidak ditekan maka 7 segment menampilkan angka 4.
M o d u l 4
Program:
'---'Program 7-Segment Mencacah Naik dan Turun
'---$crystal = 12000000
$regfile="8535def.dat" 'jika menggunakan ATMEGA8535 Dim B As Integer, X as byte, Y as byte
Config Porta = Output Config Portd = Input Naik alias Pind.0 Turun alias Pind.1
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.
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.
M o d u l 5
Pada rangkaian dibawah sebuah minimum system 8535 yang dihubungkan dengan LCD (2 *16) menggunakan 4 Bit, selain lebih menghemat i/o dengan mode seperti ini mempermudah pembuatan PCB nya.
Program:
$regfile = "m8515.dat" $crystal = 4000000 $baud = 19200
$sim
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.7 , Rs = Portc.6
Dim A as Byte, X as Byte Config Lcd = 16 * 2
Config Portd= Output Cls Lcd "Hello world." Wait 1 Lowerline Wait 1 Lcd "Shift this." Wait 1 For 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 = &HF0 Waitms 50 Porta = &H00 Waitms 50 Next 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 “1” = 5 volt dan kondisi tertutup menuju ke ground.
Ada beberapa cara untuk mengendalikan Motor Dc dan Motor Sepper, pada rangkaian dibawah sebuah minimu system AT MEGA8535 PortA yang dihubungkan
M o d u l 6
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 180° jika stepper motor mempunyai step-size 7,5°.
Program 1:
$crystal = 12000000
$regfile = "8535def.dat" 'jika menggunakan ATMEGA8535 Dim Data1 As Byte
Dim Data2 As Byte
Dim W As Byte , M As Byte Config Porta = Output
Motor Alias Porta Data1 = &H50
Data2 = &HA0 W = 100 M = 200 Do Motor = Data1 Waitms W Motor = 0 Waitms M Motor = Data2 Waitms W Loop End Program 2: $crystal = 12000000
$regfile = "8535def.dat" 'jika menggunakan ATMEGA8535 Dim Data1 As Byte
Dim W As Byte , M As Byte Config Portd = Output
Motor Alias Portd Data1 = &HCC W = 1 Do M = 1 Do Motor = Data1 Waitms W
Rotate Data1 , Right , 1 Incr M
Loop Until M = 4 Incr W
Loop Until W = 24 End
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.
Pada atmega 8535 terdapat 2 buah timer yang dapat diprogram sebagai timer (T0 dan T1) dan counter sesuai keinginan, Timer/counter0 dapat digunakan sebagai timer/counter biasa,generator 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.
“prog timer0……… $regfile = "8535def.dat"
$crystal = 12000000 $sim
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 16 * 2 Config Pind.6 = Output Config Pind.7 = Output
Config Timer0 = Timer , Prescale = 64
M o d u l 7
MEMPROGRAM TIMER/COUNTER DAN INTERUPT
Dim W As Byte On Timer0 Pulse: W = 100 Enable Interrupts Enable Timer0 Do Set Portd.6 Waitms W Reset Portd.6 Waitms W Loop Cls Locate 1 , 1 Lcd "durasi =" Pulse: Toggle Portd.7 Locate 1 , 10 Lcd "" ; Portd.7 Return End “prog timer1……….. $regfile = "8535def.dat" $crystal = 4000000 $sim
Config Pind.6 = Output Config Pind.7= Output
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 16 * 2
Config Timer0 = Timer , Prescale = 1024 Dim W As Integer
Dim Timecount As Word
W = 1000 Timecount = 0 Cls Lcd "time = " Do Set Portd.6 Waitms W Reset Portd.6
Waitms W Timecount = Timer0 Waitms W Locate 1 , 8 Lcd "" ; Timecount Waitms W Loop End “prog counter0……… $regfile = "8535def.dat" $crystal = 4000000 $sim
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 16 * 2 Config Pind.6 = Output Config Pinb.1 = input
Config Timer1 = Timer , Prescale = 1 Config Timer0 = Counter , Edge = Rising Tcnt0 = 0
Set Portd.6 Waitms 100 Reset Portd.6
Waitms 100 Cls Lcd "counter = " Do Locate 1 , 11 Lcd "" ; Tcnt0 Waitms 100 Loop End “prog counter1………. $regfile = "8535def.dat" $crystal = 8000000 $sim
Config Pinb.1 = input Config Pind.6 = Output
Config Timer1 = Counter , Edge = Falling , Prescale = 1
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 16 * 2 Stop Counter1 Set Portd.6 Waitms 100 Reset Portd.6 Waitms 100 Cls Lcd "count = " Counter1 = 0 Do Start Counter1 Waitms 100 Stop Counter1 Locate 1 , 9 Lcd "" ; Counter1 Waitms 100 Loop End
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.
“prog interrupt 0………. $regfile = "8535def.dat"
$crystal = 12000000 $sim
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 16 * 2 Config Pind.6 = Output Config Pind.2 = Input
Dim W As Byte , X As Byte
On Int0 Sayang: W = 100 Enable Interrupts Enable Int0 Cls Lcd "stop = "
Do Set Portd.6 Waitms W Reset Portd.6 Waitms W Loop Sayang: Locate 1 , 8 Lcd "" ; X Incr X Return End “prog interrup1………. $regfile = "8535def.dat" $crystal = 12000000 $sim
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 16 * 2 Config Pind.6 = Output Config Pind.3 = Input
Dim W As Byte , X As Byte
On Int0 Pbt On Int1 Men W = 100 Enable Interrupts Enable Int0 Enable Int1 Cls Lcd "stop = " Do Set Portd.6 Waitms W Reset Portd.6 Waitms W Loop Pbt: Locate 1 , 8 Lcd "" ; X Incr X
Return Men: Locate 1 , 8 Lcd "" ; X Decr X Return End 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.
M o d u l 8
MODUL PELATIHAN
FEBRUARI’ 2010
ELEKTRONIKA Totok
Winarno
TEKNIK ELEKTRO