Modul Micro

42
Modul1 INTRODUCTION Komputer adalah mesin yang didesain untuk mengolah, menyimpan, dan mendapatkan kembali sebuah data. Data/informasi 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 mengubah/memanipulasi angka angka. Sistem komputer dibagi menjadi dua kategori, yaitu: 1. Desktop komputer, mesin yang sering kita sebut sebagai “komputer”, 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, input/output peripheral dll. Berikut adalah gambar 1.1 skema sistem komputer sederhana,

Transcript of Modul Micro

Page 1: 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

Page 2: Modul Micro

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

Page 3: Modul Micro

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

Page 4: Modul Micro

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

Page 5: Modul Micro

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

Page 6: Modul Micro

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

Page 7: Modul Micro

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

Page 8: Modul Micro

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

Page 9: Modul Micro

$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

Page 10: Modul Micro

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

Page 11: Modul Micro

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

Page 12: Modul Micro

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

Page 13: Modul Micro

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

Page 14: Modul Micro

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

Page 15: Modul Micro

--------------------------------------------------------

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

Page 16: Modul Micro

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

Page 17: Modul Micro

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

Page 18: Modul Micro

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

Page 19: Modul Micro

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

Page 20: Modul Micro

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

Page 21: Modul Micro

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

Page 22: Modul Micro

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

Page 23: Modul Micro

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

Page 24: Modul Micro

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

Page 25: Modul Micro

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

Page 26: Modul Micro

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

Page 27: Modul Micro

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

Page 28: Modul Micro

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

Page 29: Modul Micro

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

Page 30: Modul Micro

Modul 8MEMPROGRAM INPUT SENSOR

MODUL PELATIHAN

FEBRUARIrsquo 2010

ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG

Page 31: Modul Micro

MODUL PELATIHAN

FEBRUARIrsquo 2010

ELEKTRONIKA Totok WinarnoTEKNIK ELEKTROPOLITEKNIK NEGERI MALANG

Page 32: Modul Micro