• Tidak ada hasil yang ditemukan

avr atmega bascom

N/A
N/A
Protected

Academic year: 2021

Membagikan "avr atmega bascom"

Copied!
34
0
0

Teks penuh

(1)

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

(2)
(3)

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.

(4)

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.

(5)

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,

(6)

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).

(7)

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

(8)

%= 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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

Catatan: Perhatikan rangkaian bahwa jika S1 atau S2 ditekan maka akan berlogika 0 yang dirasakan Portd.3 dan Portd.4

(15)

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

(16)

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

(17)

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.

(18)

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

(19)

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

(20)

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.

(21)

# 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

(22)

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

(23)

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

(24)

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.

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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 = "

(30)

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

(31)

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.

(32)

M o d u l 8

(33)
(34)

MODUL PELATIHAN

FEBRUARI’ 2010

ELEKTRONIKA Totok 

Winarno

 TEKNIK ELEKTRO

Gambar

Gambar 1.1: Sistem komputer sederhanaGambar 1.1: Sistem komputer sederhana
Gambar 1.2: contoh beberapa bentuk mikrokontroller ATMELGambar 1.2: contoh beberapa bentuk mikrokontroller ATMEL
Gambar 1.3: skema mikrokontroller AVR RISC ATMEGA8535

Referensi

Dokumen terkait

Sementara itu, hasil penelitian menunjukkan bahwa tingkat kesadaran berzakat reponden dapat dikatakan cukup baik.Mereka mengaku tidak terganggu dengan adanya isu mengenai

Hasil penelitian ini diharapkan menjadi tambahan pengetahuan mengenai pengungkapan tanggung jawab sosial serta tata kelola perusahaan yang baik akan mempengaruhi

Handycraft adalah sepaket produk belajar yang berasal dari bahan bekas yang dihasilkan oleh usaha fotocopy, yang terdiri dari : tempat pensil dari kertas, buku tulis

Berdasarkan pengertian respon dan keluarga di atas maka penulis menyimpulkan bahwa respon keluarga adalah reaksi atau tanggapan yang ditunjukkan oleh keluarga

Paralisis periodik hipokalemik adalah kelainan yang ditandai dengan kadar kalium yang rendah (kurang dari 3.5 mmol/L) pada saat serangan, disertai riwayat episode kelemahan

Menurut Gauthama (1998) bahwa berat jenis merupakan faktor penentu dari kerapatan tumpukan, daya ambang bersama dengan ukuran partikel bertanggung jawab terhadap

tapi juga ada function yang tidak akan mengembalikan nilai dari operasi di dalam function tersebut, untuk membuat function tanpa melakukan pengembalian nilai kita bisa

bahwa dalam rangka menjamin objektifitas dan kualitas pengangkatan Pegawai Negeri Sipil dalam jabatan struktural Kepala Satuan Kerja Perangkat Daerah,