• Tidak ada hasil yang ditemukan

MODUL PRAKTEKUM UNIVERSITAS WIRALODRA MIKPROCESSOR DAN MIKROKONTROLER DEPARTMENT OF COMPUTER ENGINEERING TAUFIK HIDAYAT

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL PRAKTEKUM UNIVERSITAS WIRALODRA MIKPROCESSOR DAN MIKROKONTROLER DEPARTMENT OF COMPUTER ENGINEERING TAUFIK HIDAYAT"

Copied!
45
0
0

Teks penuh

(1)

MODUL PRAKTEKUM

MIKPROCESSOR DAN MIKROKONTROLER

TAUFIK HIDAYAT

UNIVERSITAS WIRALODRA

(2)

i

KATA PENGANTAR

Alhamdulillah, segala puji dan syukur kepada Allah SWT atas segala rahmat, taufik dan hidayah hingga penulis dapat merampungkan penyusunan modul praktekum “microprocessor dan mikrokontroler” ini dapat diselesaikan.

Penulisan modul praktekum ini dilakukan dalam rangka memenuhi perkuliahan microprosesor dan mikrokontroler di lingkungan fakultas teknik komputer, Universitas Wiralodra. Penulis sangat menyadari bahwa penyusunan modul praktekum ini terlaksana dengan adanya motivasi, bimbingan, dan saran dari berbagai pihak. Semoga dengan kehadiran modul praktekum ini dapat memberikan kontribusi bagi mahasiswa yang mengambil mata kuliah microprocessor dan mikrokontroler. Kritikan dan saran yang membantu membangun dapat menghubungi penulis melalui email.

Jakarta, 16 November 2019 Penulis,

(3)

1

PENGANTAR MIKROKONTROLER

Dasar Mikrokontroler

Mikrokontroler kalau diartikan berarti pengendali yang berukutan mikro. Sekilas mikrokontroler ini hampir sama dengan mikroposesor. Tetapi mikrokontroler ini memiliki banyak komponen yang saling integrasi didalamnya, seperti counter/timer. Sedangkan mikroprosesor komponennya tidak terintegrasi. Mikroprosesor banyak ditemukan pada komputer yang bertugas untuk memproses berbagai macam data input maupun input dari berbagai sumber. Sedangkan mikrokontroler lebih sesuai dengan tugas yang lebih spesifikasi.

(a) Mikrokontroler (b) Mikroprosesor

Gambar 1. Perbedaan Mikrokontroler dan Mikroprosesor

Arsitektur Mikrokontroler

Arsitektur mikrokontroler dibagi menjadi CISC dan RISC

 Complex Intruction Set Computer (CISC) , merupakan jenis mikrokontroler yang mempunyai jumlah instruksi yang sangat komplek dan lengkap. Misalnya : 80C51 (MCS51) dan 68HCI.

CPU Memory

Port I/O

(4)

2

 Reduce Intruction Set Computer (RISC), merupakan jenis mikrokontroler yang memiliki jumlah intruksi yang sangat sedikit. Pada arsitektur RISC memiliki intruksi sangat sedikit tetapi memiliki banyak register dibandingkan CISC. Selain itu pada arsitektur RISC pada umumnya instruksinta mengeksekusi hanya satu clock cycle dan mode addressing memory. Misalnya ATMELAVR dan National Semiconductor COP8.

Pada program assembly dengan prosesor RISC menjadi sangat komplek dibandingkan dengan program asembly CISC. Karena disebabkan oleh instruksi prosesor RISC merupakan instruksi dasar, instruksi ini pada umumnya hanya memerlukan satu siklus mesin untuk menjalankanya. Namun arsitektur RISC tidak memerlukan hardware yang komplek, prosesor yang tidak rumit. Aristektur mikrokontroler dapat digambarkan sebagai berikut.

(5)

3

Perbandingan Mikroprosesor dan Mikrokontroler

Perbedaan antara mikroprosesor dam mikrokontroler sangat signifikan, kalua mikroprosesor merupakan suati chip yang berfungsi pemroses data pada system digital sedangkan mikrokontroler banyak ditemukan pada computer dengan kebutuhan khusus yang berfungsi memproses data dan mengkordinasikan kerja pada suatu computer. Secara fisik mikroprosesor tidak bekerja sendiri tanda adanya dukungan oleh perangkat tambahan seperti RAM, ROM datau I/O. Pada table 1 ini merupakan perbedaan mikroprosesor dan mikrokontroler berdasarkan arsitektur masing-masing.

Tabel 1. Perbedaan Mikroposesor dan Mikrokontroler

Uraian Mikroprosesor Mikrokontroler

Arsitektur Mikroprosesor hanya single unit CPU

Mikrokontroler : ROM, RAM, EPROM, interrupt controller, analog to digital converter, serial interface, parallel interface, timer/counter Memory Mikroprosesor miliki

kapasitas memory ROM kecil, namun didukung memory RAM yang besar untuk system komputer

Memiliki ROM yang besar namun memiliki RAM yang kecil

Software Pada computer, mikroprosesor

mendukung software yang besar

Mikrokontroler yang dapat deprogram dengan program dengan pekerjaan tertentu Aplikasi Sebagai CPU yang

menjadi otaknya suatu komputer

Mikrokontroler hanya dapat bertugas dengan orentasi kendali-kendali

Tipe Mikrokontroler Mikrokontroler ATMEL

Mikrokontroler Atmel ini merupakan keluarga MCS-51 dari Intel Crop. Untuk saat ini mikrokontroler Atmel paling banyak digunakan karena harga yang beredar relative murah dan mudah untuk didapat.

(6)

4

Mikrokontroler Atmel ini dapat deprogram dugengan menggunkan port paralel maupun serial. Mikrokontroler tidak hanya beroperasi pada satu chip melainkan beberapa komponen dasar lainnya.

Tabel 2. Tipe Mikrokontroler ATMEL

Tipe Flas Memory RAM EEPROM

AT89C51/AT89S51 4 Kbyte 8 x 128 byte - AT89C52/AT89S52 8 Kbyte 8 x 256 byte - AT89S8252 8 Kbyte 8 x 256 byte 2 Kbyte AT89C53 12-byte 8 x 256 byte - AT89C55 20 Kbyte 8 x 256 byte -

Mikrokontroler PIC

Mikrokontroler jenis peripheral Interface Controller (PIC) merupakan keluarga mikrokontroler tipe RISC diproduksi oleh perusahaan Microchip. Mikrokontroler PIC pertama kalinya dibuat sekitar 1975 demi untuk meningkatkan kinerja pada system I/O. Semua jenis mikrokontroler mempunyai ciri khas hanya yang membedakan adalah jenis memory yang digunakan ada yang menggunakan EEPROM, ada juga yang menggunakan Flash memori, bahkan ada juga yang menggunakan one Time Programmbel (OTP) atau hanya sekali program.

Tabel 3. Tipe Mikrokontroler PIC

Tipe Memori Program Fiture

PIC 16F84 1024 x 14 Flash, 18 pin,

Timer/Counter, WDT

PIC 16C54C 512 x 12 12 I/O, 40 MHz max

WDT

PIC 1400 4096 x 14 ADC, Internal Osc, 12C

PIC 12C5084 512 x 12 8 pin, WDT, Internal Osc ,OTP

(7)

5

Mikrokontroler Renesas

Mikrokontroler Renesas merupakan mikrokontroler produsen semikonduktor gabungan antara Hitachi dengan Mitsubishi. Salah satu produknya yang dikenal R8C/Tiny Series merupakan keluarga M16C serinya antara lain R8C/12, R8C/10 yang membedakan hanya kapasitas flash ROM dan sejumlah pin I/O.

Mikrokontroler Maxim

Mikrokontroler Maxim merupakan jenis mikrokontroler yang diproduksi oleh perusahaan Maxim corp. Produk dari mikrokontroler seperti chip mikrokontroler, komponen radio frekuensi serta akuisisi data. Maxim merupakan produsen yang sangat invotatif dalam menghasilan produk yang berteknologi tinggi, seperti mikrokontroler 80C400 yang mendukung jaringan computer.

(8)

6

DASAR MIKROKONTROLER

Struktur Mikrokontroler

Blok struktur dari mikrokontroler secara umum terdiri dari beberapa bagian yang saling berhubungan dalam internal bus. Tetapi diagram blok tidaklah sama untuk setiap jenis mikrokontrole tergantung dari fitur yang tersedia pada masing-masing mikrokontroler itu sendiri.

Gambar 3. Diagram blok struktur Mikrokontroler

Pada gambar 3 merupakan struktur dari blok mikrokontroler yang terdiri: 1. Arithmetic and Logic Unit (ALU)

(9)

7

2. Accumulator Register

Accumulator Register merupakan register serbaguna yang berfungsi juga sebagai penyimpanan hasil operasi aritmatika dan logika. 3. Internal RAM ( Random Access Memory)

Memori penyimpanan data yang isinya dapat diubah maupun dihapus. RAM sendiri biasanya berisi data variable dan register. 4. Internal ROM

Internal ROM, memori penyimpanan intruksi/program yang isinya tidak dapat diubah maupun dihapus. Program yang tersimpan di ROM biasanya dalam format biner.

5. Port I/O

Port I/O merupakan bagian untuk komunikasi dengan dunia luar, mikrokontroler memanfaatkan terminal I/O untuk komunikasinya. Port tersebut dapat sebagai masukan maupun sebagai keluaran. Salah satu contoh port mikrokontroler sebagai masukan jika peralatan sensor atau switch dihubungkan dengan mikrokontroler dan sebagai keluaran jika perangkay output LED, relay maupun motor dihubungjan dengan mikrokontroler.

(10)

8

6. Program Counter

Register khusus yang berfungsi untuk perhitungan atau pencacah eksekusi pada program mikrokontroler.

7. Stack Pointer

Bagian RAM ini mempunyai penyimpanan serta pengambilan baagian dari RAM dara dengan cara khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan random. Data yang masuk ke stack pada urutan terakhir merupakan data yang pertama yang akan dibaca kembali.

8. Timer/Counter

Timer dapat digunakan untuk melakukan tiga fungsi yaitu perhitungan suatu interval, perhitungan banyak kejadian dan pembangkit baud rate untuk komunikasi serial.

9. Interrupt Circuit

Rangkaian interupsi merupakan rangkaian yang memiliki fungsi untuk mengendalikan sinyal interupsi baik internal maupin ekternal. Sinyal interupsi akan berhenti eksekusi normal program mikrokontroler untuk melanjutkan sub program dari interupsi.

10. Clock Unit

Mikrokontroler merupakan rangkain logika sekuensial, dimana proses kerjanya melalui sinkronisasi clok maka diperlukan rangkain clock yang menyediakan clok pada seluruh bagian system mikrokontroler.

Prinsip kerja dari Mikrokontroler

Mikrokontroler pada dasarnya bekerja tergantung pada urutan intruksi yang dijalankanya, yaitu intruksi yang ditulis di ROM prinsip kerjanya sebagai berikut:

1. Mikrokontroler akan mengambil data pada ROM di address yang ada pada program counter, selanjutnya program timer/counter ditambah nilainya satu.

(11)

9

2. Intruksi yang dijalankan tergantung dari jenis intruksinya seperti membaca, mengedi nilai register, mengaktifkan port, etc.

3. Mikrokontroler akan terus mengulang langkah 1 dan 2 sampai power pada mikrokontroler dimatikan.

Untuk dapat membuat mikrokontroler bekerja maka ada beberapa yang harus dikerjakan:

1. Membuat program sesuai kebutuhan, karena mikrokontroler memiliki bahasa pemrograman sendiri.

2. Membuat program menggunakan teks editor dimana setelah program selesai di coding lalu dikomplier. Tujuan dari komplier untuk mengubah program yang ditulis.

3. Setelah program dikomplier dalam bentuk .hex selanjut file tersebut ditanam pada IC mikrokontroler dengan bantuan perangkat tambahan downloader yang sesuai jenis mikrokontrolernya.

(12)

10

MIKROKONTROLER ATMega8535

Pengantar Mikrokontroler ATmega8535

Mikrokontroler AVR pertama kali masuk dipasaran sekitar tahun 1997 oleh perusahaan yang bernama ATMEL. Produsen yang terkenal dengan produk mikrokontroler pada seriAT89S51/52 yang sampai dengan sekarang. Mikrokontroler seri AT89S51/52 masih konsisten mempertahankan arsitektur dan set intruksi dasar 8031 dari perusahaan INTEL. Mikrokontroler AVR mengklain bahwa memiliki set instruksi dan arsitektur yang baru dengan membedakan arsitektur sebelumnya.

Beberapa produsen yang membuat mikrokontroler seperti intel, Microchip, Winbond, Philip, Atmel, Xemics etc. Dari beberapa vendor yang paling popular digunakan mikrokontroler buatan Atmel. Mikrokontroler AVR mempunyai arsitektur RISC 8 bit, dimana semua intruksinya dibungkus dalam kode 16 bit dan secara garis besar intruksi dieksekusi dalam satu siklus clock, berbeda dengan intruksi MCS-51 membutuhkan setidaknya 12 siklus clock. Hal ini terjadi karena kedia jenis mikrokontroler memiliki arsitektur yang berbeda. Sedangkan AVR mempunyai teknologi RISC sedangkan MCS-51 berteknologi CISC. Mikrokontroler AVR memiliki jenis program Flash yang dapat dichip berulang-ulang.

Tabel 4. Seri Mikrokontroler AVR

Tipe AVR Program Memory

RAM EPROM PIN I/O

Kemasan Catatan

ATtiny2 1 - - 6 8DIP,8SOIC Int.Osc

ATtiny3 1 - 64 6 8DIP,8SOIC Int.Osc

ATtiny15L 1 - 64 6 8DIP,8SOIC Comparator,

PWM,ADC, Int Osc

ATtiny28 2 - - 20 28DIP,32TQFP Int.Osc

AT90S300 1 - 38 15 20DIP,20SOIC,20SS0P Int.Osc

(13)

11

UART, PWM

AT90S2323 2 38 38 3 8DIP,8SOIC -

AT90S2343 2 38 256 4 8DIP,8SOIC Int.Osc

AT90S4433 4 38 53 20 28DIP,32TQFP Comparator,

UART, SPI,PWM,ADC

AT90S8515 8 53 53 32 40DIP,44PLCC,44TQFP Comparator,

UART, SPI,PWM

AT90S8535 8 53 53 32 40DIP,44PLCC,44TQFP Comparator,

UART,

SPI,PWM,ADC

ATmega8 8 1K 53 23 28DIP, 32MDIP,32TQFP Comparator,Int.

Osc, UART, SPI,PWM,ADC

ATmega161 16 1K 53 35 40DIP,44TQFP Comparator,Int.

Osc, UART, SPI,PWM

ATmega163 16 1K 53 32 40DIP,44TQFP Comparator,Int.

Osc, UART, SPI,PWM,ADC

ATmega323 32 4K 4K 32 40DIP,44TQFP Comparator,

UART, SPI,PWM,ADC,I n.Osc ATmega13 38 4K 4K 48 64TQFP Comparator, UART, SPI,PWM,ADC ATmega38 38 4K 4K 48 64TQFP Comparator, UART, SPI,PWM,ADC,I n.Osc

Mikrokontroler AVR dikelompokan menjadi 4 kelas : keluarga ATtiny, AT90Sxx, ATmega dan AT86RFxx. Pada prinsipnya yang membedakan dari masing-masing kelas AVR adalah memori, peripheral dan fungsinya sedangkan dari sisi arsitektur dan intruksinya hamper sama. Blok diagram mikrokontroler ATmega8535 terdapat pada Gambar 1. Mikrokontroler ATmega8535 mempunyai teknologi RISC dengan kecepatan maksimal 16 MHz yang membuat ATmega8535 lebih cepat dari MCS 51. Bagian yang dimiliki mikrokontroler ATmega8535:

(14)

12

1. Memiliki I/O : 32 PIN yang terdiri Port A, B, C, dan D 2. Memiliki ADC 10 bit : 8 saluran

3. Tiga Timer/Counter 4. CPU terdiri 32 register 5. Watchdoh timer

6. Memilik SRAM 53 byte

7. Memory Flash 8 Kb mempunyai kemampuan Reas While Write 8. Unit Interupsi ekternal dan internal

9. Port antarmuka SPI 10. EEPROM 53 byte

11. Antarmuka komparator analog 12. Port USART untuk komunikasi serial

Konfigurasi PIN Mikrokontroler ATmega8535

(15)

13

Fungsi dari Pin Mikrokontroler pada Gambar 5 sebagai berikut: 1. VCC, pin yang berfungsi sumber daya

2. GND, pin untuk inputan ground

3. Port A (PA0…PA7) , pin I/O dua arah dan pin inputan ADC

4. Port B (PB0..PB7), pin I/O dua arah dan pin berfungsi khusus, seperti Timer/Counter, komparator analog, dan SPI

5. Port C (PC0…PC7), pin I/O dua arah dan pin berfungsi khusus, seperti TWI, komparator analog dan Timer Oscillator

6. Port D (PD0…PD7), pin I/O dua arah dan pin berfungsi khusus, seperti komparator analog, interupsi eksternal dan komunikasi serial 7. RESET, pin untuk mereset mikrokontroler

8. XTAL1 dan XTAL2 merupakan pin inputan clock ekstenal 9. AVCC merupakan pin inputan tegangan ADC

(16)

14

ORGANISASI MEMORY DAN INTRUKSI

MIKROKONTROLER ATmega8535

Organsasi Memori Mikrokontroler ATmega8535

Progam dan data yang ada pada computer maupun mikrokontroler disimpan dalam memori. Memori yang diakses prosesor ini terdiri ROM dan RAM, perbedaan ROM dan RAM ini adalah kalua ROM hanya bisa dibaca sedangkan RAM bisa ditulis maupun dibaca. RAM ini bersifat volatile yang artinya data yang tersimpan dalam memori akan hilang jika sumber daya terputus, sedangkan ROM bersifat non-volatile yang artinya data yang tersimpan dalam memori dan tidak akan hilang walapun tegangan sumber daya terputus.

Mikrokontroler ATmega mempunya ruang pengalamatan memori data dan memori program yang terpisah. Memori data dibagi menjadi tiga bagian yaitu 32 register umum, 64 register I/O dan 53 byte SRAM internal. General Purpose Register (GPR) menempati space data pada alamat paling bawah yaitu $00 - $1F. Sedangkan register khusus untuk penanganan I/O dan control terhadap mikrokontroler seperti control register, fungsi I/O, timer/counter menempati 64 alamat sebagai berikut dari $20 - $5F. Alamat memori unti SRAM 53 byte, pada lokasi $60 -$25F. Pada gambar 6 merupakan konfigurasi memori data pada Mikrokontroler ATmega8535.

(17)

15

Gambar 6. Konfigurasi memori Mikrokontroler ATmega8535

Memori program terletak pada Flash PEROM yang tersusun dalam word / 2 byte dikarenakan setiap intruksi memiliki lebar 16 bit / 32 but. Mikrokontroler ATmega8535 memiliki 4 Kbyte x 16 bit Flash PEROM dengan alamat mulai dari $000 - $FFF. Mikrokontroler ATmega8535 memiliki 3 bit program counter sehingga mampu mengalamati isi Flash. Pada gambar 7 merupakan memori program ATmega8535.

(18)

16

1. General Purpose Register (GPR)

Register file pad gambar 8 optimal AVR yang dikembangkan dengan arsitektur RISC instruksi set. Untuk mencapai performance serta fleksibiltas yang diperlukan, yang mengikuti I/O direncanakan mendukung register file:

 Satu 8 bit output operasi , satu 8 bit hasil input  Dua 8 bit output operasi, satu 8 bit hasil input  Satu 16 bit output operasi, satu 16 bit hasil input  Satu 16 bit output operasi, satu 16 bit hasil input

Gambar 8. CPU General Purpose Working Register

2. Register I/O

Semua I/O serta peripheral ATmega terletak didalam ruang I/O. Lokasi I/O diakses dengan IN dan OUT instruksi. Transfer data antara 32 GPR dan ruang I/O. Register I/O mempunyai alamat antara 0x00 – 0x1F. bit langsung diakses menggunakan SBI dan CBI intruksi. Diregister ini nilai single bit dapat dicek dengan menggunakan SBIS dan SBIC intruksi. Bila menggunakan intruksi IN dan OUT maka alamat I/O

(19)

17

yang digunakan mempunyao rentang $00 sampai $3F sedangkan pengaksesan dilakukan menggunakan SRAM, nilai $20 dan harus ditambahkan pada alamat ini.

3. SRAM

Mikrokontroler ATmega8535 memiliki memori yang beruapa SRAM yang mempunyai kapasitas 53 byte. Lokasi memori SRAM dalam peta memori ATmega ditunjukan pada memoru data yang terdiri dari 32 untuk alamat Register File, 64 I/O Register, dan 53 SRAM. Pengalamatan memori data ini mencakup 5 mode pengalamatan : mode langsung, mode tidak langsung, mode langsung dengan pergeseran, mode tidak langsung predecrement dan mode tidak langsung post-increment.

Set Instruksi pada ATmega8535

Mikrokontroler Atmel mempunyai 28 macam instruksi asembler utama yang harus dipelajari, namun terdapat beberapa instruksi yang bila dieksekusi menghasilkan kode yang sama. Sehingga instruksi assembler yang sebenarnya hanya 79 macam instruksi. Ada Beberapa jenis AVR yang memiliki tambahan instruksi yang tidak terdapat pada jenis AVR seperti:

 Instruksi PUSH, POP tidak dikenal oleh keluarga AVR tipe ATtiny  Instruksi FMUL, MULS, MUL atau EIJMP lebih dikenal ATmega

AVR memiliki register keperluan umum (GPR, General Purpose Register) sebanyak 32 register. Operasi aritmatika dan logika dilakukan pada GPR. Memori daya tersedia di AVR bisa mencapai 64KB dan bisa dialamati baik secara langsung maupun tidak langsung dengan menggunakan instruksi load/store. Pada pengalamatan yang tidak langsung, bagian lain GPR bisa digunakan sebagai pointer (penunjuk)

(20)

18

pengalamatan tidak langsung. Register I/O adan GPR juga dipetakan pada bagian bawah memori data dan dapat diakses menggunakan instruksi-instruksi Load/Store.

1. Intruksi Set

Instruksi AVR dapat dibagi menurut jenisnya menjadi lima kelompok:  Instruksi transfer data

 Instruksi aritmatika  Instruksi logika  Instruksi Boolean  Instruksi Percabangan

2. Assembler Directive

Assembler directive merupakan istruksi-instruksi yang berguna untuk mengubah penunjuk kode assembly, contoh kita dapat mengubah lokasi kode .asm pada memori program, memberi label pada SRAM atau mendefinisikan suatu konstanta menggunakan sintaks pengarah assembler. Berikut ini beberapa sintaks pengarah assembler pada mikrokontroler ATMega8535 :

 .org digunakan untuk menset program counter pada alamat tertentu  .byte digunakan untuk inisialisasi besar byte yang digunakan paa

SRAM untuk label tertentu

 .def (define) pengarah ini memungkinkan suatu register dapat didefinisikan

 .equ berguna untuk memberi nama suatu konstanta yang nilainya tidak berubah dan beberapa instruksi Assembler Directive lainnya

(21)

19

3. Analog to Digital Converter (ADC)

Mikrokontroler ATMega8535 merupakan tipe AVR yang dilengkapi oleh 8 saluran ADC internal dengan ketepatan 1 bit. Dalam mode operasinya ADC internal ATMega8535 dapat dikonfigurasikan baik secara single ended input maupun differential input. Selain itu, ADC memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi dan kemampuan filter derau yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan ADC. Dalam Apenggunaan ADC perlu dilakukan inisialisasi.

Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, format output data dan metode pembacaan. Register yang perlu diset nilainya adalah register ADMUX (ADC Multiplexer Selection Register), ADCSRA (ADC Control and Status RegisterA) dan SFIOR (Special Function IO Register. ADMUX merupakan register 8 bit yang berfungsi menentukan tegangan referensi ADC, format output dan saluran ADC yang digunakan.

4. Register ADMUX

Gambar 9. Register ADMUX

.

Bit 6 dan bit 7 REFS[1..] adalah bit pengatur tegangan referensi ADC ATMega8535, memiliki nilai awal 00 sehingga referensi tegangan berasal dari pin AREF.

(22)

20

5. Pemilihan Mode Tegangan Referensi ADC

Tabel 5. Pemilihan Tegangan Referensi ADC

ADLR yaitu bit pemilih mode keluaran ADC. Bernilai awal 0 hingga 2 bit tertinggi data hasil konversinya berada di register ADCH dan 8 bit sisanya berada di register ADCL

ADLAR bernilai = 1

Gambar 10. ADLAR bernilai = 1

ADLAR bernilai = 0

Gambar 11. ADLAR bernilai = 0

Masih terdapat satu register yang perlu diinisialisasi untuk aktifasi ADC internal, yaitu ADCSRA yaitu register 8 bit yang berfungsi melakukan managemen sinyal control dan status dari ADC. Bit penyusunannya terdiri dari ADEN yang berfungsi

(23)

21

pengatur aktivasi ADC. ADCS yaitu bit penanda mulainya konversi ADC terhadap tegangan input.

Gambar 12. Register ADCSRA

Register yang sangat penting dalam penggunaan ADC. Pada table 6 Berikut merupakan suatu kondisi register ADMUX, pada bit ke empat sampai bit ke nol berfungsi pemilih saluran pembacaan. MUX [4.0], bernilai awal 00000 untuk mode single ended input. MUX [4.0] bernilai dari 00000-0021.

(24)

22

SERIAL PERIPERAL INTERFACING

Serial Peripheral Interfacing

Komunikasi SPI mempunyai sinkron yang berkecepatan tinggi antar mikrokontroler dengan device lain yang mendukung SPI. SPI juga bisa membuat aplikasi multiprosesor, fitur dari SPI Atmega8535:

1. Full Duplex, data transfrer tidak sinkron menggunakan tiga kabel 2. Operasi slave/master

3. Data transfer pertama LSB atau MSB 4. 7 bit rate yang bisa deprogram

5. Flag interupsi, apabilan transfer datanya terakhir 6. Flag proteksi, jika terjadi kegagalan penulisan 7. Wake up dari idle mode

8. Mempunyai dua kali kecepatan mode SPI master

Interface tersebut merupakan peralatan yang berhak mengendalikan komunikasi perangkat lain yang menerima dan mengirimkan data akan kembali ke master disebut slave. Pada gambar 13 merupakan blok diagram dari SPI.

(25)

23

Gambar 13. Diagram SPI

Pada intinya komunikasi SPI merupakan register geser 8 bit pada kedua peranti master dan slave, srta sinyal clock yang akan dibangkitkan oleh master. Seperti master ingin mengirimkan data A ke slave dalam waktu bersamaan master menerima data dari salve. Sebelum terjadi komunikasi SPI, master akan meletakkan data A ke shift registernya dan B juga akan meletakan data B dishift register. Selanjutnya master akan membangkitkan 8 pulsa clock sehingga data pada shift register master ditransfer ke shift register slave begitu sebaliknya.Pulsa clock master menerima data B dan slave B sudah menerima data A. Oleh karena itu data diterima pada saat sama maka SPU termasuk pada komunikasi full duplex.

(26)

24

Komunikasi SPI mempunyai empat jalur sinyal yaitu:

1. Serial Clock (SCK), sinyal clock untuk mengeser bit yang akan ditulis

2. Master Out Slave In (MOSI), yaitu sinya bit data serial yang ditulis dari master menuju slave

3. Master In Slave Out (MISO), yaitu sinta bit data serial yang hendak dibaca dari slave menuju master

4. Slave Select (SS), sinta untuk memilih dan mengaktifkan slave

SPI dapat berkomunikasi dengan beberapa slave dengan satu master. Cara master memilih slave yang akan diinginkan untuk komunikasi menggunakan pin SS. Jika pin SS disetting dengan logika high maka pin SPI slave berfungsi normal input dan tidak mau menerima data SPI yang masuk.

(27)

25

PEMROGRAMAN BASIC AVR

Pada gambar 14 merupakan interface dari bahasa pemrograman basic avr

Gambar 14. Interface Pemrograman Basic AVR

Tipe data

Tipe data merupakan bagian dari program yang paling penting karena tipe data mempengaruhi tipe data yang tepat akan membuat suatu operasi dat menjadi lebih efektif dan efesien.

Tabel 7. Tipe data

No Tipe Jangkauan 1 Bit 0 atau 1 2 Byte 0 - 255 3 Interger -32.768 – 32.767 4 Word 0 - 65535 5 Long -2147483648 -2147483647 6 Single 1.0 x 10−45 - 3.4 x 1038 7 Double 5.0 x 10−324 to 1.7 x 10308 8 String >254 Byte

(28)

26

Konstanta

Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilai selalu tetap. Konstanta harus didenifikan terlebih dahulu diawal program. Konstanta dapat bernilai interger, pecahan, karakter dan string.

Contohnya : A = 7

C = 1.1

Variable

Variable merupakan suatu pengenal yang digunakan untuk mewakili suatu nilai tertentu didalam proses program. Nama lain dari variable dapat ditentukan sendiri oleh pemprogram dengan aturan sbb:

 Terdiri dari gabungan huruf dan anga  Tidak boleh mengandung spasi

 Tidak boleh mengandung symbol khusus antara lain : $, ?, %, #, !, &, *, (,), -, + , = dsb

 Panjang hanya 32 karakter

Deklarasi

Deklarasi diperlukan bila kita akan menggunakan pengenal dalam program. Pengenal dapat berupa variable, konstanta dan fungsi

 Deklarasi Variable

Bentuk umum mendeklerasikan suatua variable sebagai berikut: Dim Nama_variable AS Nama_tipe;

Contoh :

Dim x AS Integer ‘Deklarasi x bertipe interger Dim a AS long ‘Deklaraso a bertipe long

(29)

27

 Deklarasi Konstanta

Dalam Bahasa basic konstanta dideklarasikan langsung Contoh :

L = 12345678 ‘Assign long S = “Halo Teknik Komputer” ‘Assign string

 Deklarasi Fungsi

Fungsi merupakan bagian yang tidak terpisahkan dalam program dan dapat diaktifkan atau dipanggil dimanapun didalam program. Fungsi dalam Bahasa Basic sudah disediakan sebagai fungsi pustakan seperti Print, input, data dan untuk menggunakan tidak perlu dideklarasikan.

Fungsi yang dideklarasikan oleh seorang programmer. Bentuk umum deklarasi sebuah fungsi:

TEST [(BYREF/BYVAL] var as type)] As type Contoh:

Declare Function Myfunction (byval | As Interger, S As String) As Interger

Operator

 Operator Aritmatika

Bahasa Basic menyediakan lima operator aritmatika : * = Perkalian

/ = Pembagian

% = untuk sisa pembagian + = pejumlahan

- = pengurangan

 Operator Perbandingan

Operator perbandingan digunakan untuk membandingkan hubungan antara dua operator / nilai / variable

(30)

28 Operator perbandingan : = Sama dengan X = Y <> Tidak sama X<> Y < Kurang dari X < Y > Lebih dari X > Y <= Kurang dari/sama dengan X <= Y >= Lebih dari/sama dengan X >= Y

 Operator Bitwise

Operator bitwise yang digunakan untuk memanipulasi bit dari data yang ada didalam memori.

Operator bitwise pada Bahasa Basic:  Shift A, Left , 2 : Pergeseran bit ke kiri  Shift A, RIGTH, 2 :Pergeseran bit ke kanan  Rotate A, left, 2 : Putar bit ke kiri

 Rotate A, RIGTH, 2 : Putar bit ke kanan Contoh Operator Bitwise:

Geser bit ke kiri Geser bit kanan Putar bit ke kanan Putar bit ke kiri

Dim B as Byte B = 1 Do Print B Shift B, Left, 1 Waitms 100 Loop End Dim B as Byte B= 128 Do Print B Shift B, Rigth, 1 Waitms 100 Loop End Dim B as Byte B = 128 Do Print B Rotate B, Rigth, 1 Waitms 100 Loop End Dim B as Byte B = 1 Do Print B Rotate AB Left, 1 Waitms 100 Loop End

(31)

29

Penyelesaian Kondisi

Penyelesaian kondisi digunakan untuk mengarahkan perjalan suatu proses. Penyelesaian kondisi seperti kran yang mengatur jalanya air.Bila kran terbuka maka air akan mengalir dan sebaliknya. Fungsi penyeleksi kondisi penting artinya dalam penyusunan Bahasa Basic, terutama program yang sangat komplek.

 Struktur Kondisi “IF….

Struktur if dibentuk dari beberapan penyataan if dan sangat sering digunakan untuk menyeleksi suatu kondisi tunggal.

Bila suatu proses diseleksi sudah terpenuhi / bernilai benar maka pernyataan yang ada dalam blok if diproses dan akan dikerjakan . Bentuk umum struktur kondisi if sebagai berikut:

If (kondisi) then penyataan; Contoh:

If data1 = 1 Then Call Lestroright(1)  Struktur Kondisi “IF….ELSE

Dalam struktur kondisi if…..else minimal terdapat dua pernyataan. Jika suatu kondisi yang akan diperiksa bernilai benar maka pernyataan kedua akan dilaksanakan. Bentuk umum nya sebagai berikut:

If (kondisi) pernyataan 1 Else penyataan 2 Contoh: if A > 10 Then Print “A > 10” Else

Print “ A not Greater than 10” End if

(32)

30

 Struktur Kondisi “CASE”

Struktur kondisi switch….case default yang digunakan untuk menyelesaikan kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataa ‘case’ tergantung nilai kondisi yang ada didalam switch. Selanjutnya proses diterukan hingga ditemukan pernyataan ‘break’.

Bentuk umum strukturnya: Select Case (kondisi)

{ Case 1 : Penyataan 1; break; Case 2 : Pernyataan 2; break; Case n : Pernyataan n; break; Default : Pernyataan m } Contoh:

Select Case Ultra

Case &B0100001 : Call Maju (6)

Case &B1001000 : Call Turnigthl110 () Case &B0100000 : Call Turnrigth () Case &B0000001 : Call Majukiri (4) Case &B0100101 : Call Balikkanan (50) Case Else : Call Maju (2)

(33)

31

MODUL PRAKTEKUM MIKROKONTROLER

ATMEGA8535

1. Percobaan Output Flip Flop

(34)

32

 Souce code Bascom AVR

$regfile = "m8535.dat" $crystal = 8000000 Config Porta = Output Dim X As Integer Porta = 0 Do 'Skenario1' Porta = &B01010101 Waitms 75 'Skenario2' Porta = &B00110011 Waitms 75 'Skenario3' Porta = &B11110000 Waitms 75 'Skenario4' Porta = &B00001111 Waitms 75

(35)

33

2. Percobaan Seven Segment menghitung mundur 100 - 0

 Gambar Rangkaian

 Source Code Bascom AVR $regfile = "m8535def.dat" $crystal = 12000000

Config PortA.0 = Output Config PortA.1 = Output Config PortA.2 = Output Config PortA.3 = Output Datas Alias PortA.0 Strobe Alias PortA.2

(36)

34

Clock Alias PortA.1 Oe Alias PortA.3 Dim T As Integer Dim Temp As Integer Dim Hitung As Integer

Dim Rat As Integer Dim Pul As Integer Dim Sat As Integer

Dim Byterat As Byte Dim Bytepul As Byte Dim Bytesat As Byte Strobe = 1 Oe = 0 Mulai: Hitung = 100 Do Temp = Hitung Rat = Temp / 100 Temp = Temp Mod 100 Pul = Temp / 10

Sat = Temp Mod 10 For T = 1 To 10 Oe = 1

Bytesat = Lookup(sat , Data7seg) Shiftout Datas , Clock , Bytesatuan , 1

Bytepul = Lookup(pul , Data7seg) Shiftout Datas , Clock , Bytepuluhan , 1

(37)

35

Byterat = Lookup(rat , Data7seg) Shiftout Datas , Clock , Byteratusan , 1 Next T

Wait 1 Decr Hitung

Loop Until Hitung < 0 Data7seg: Data &B11000000 '0 Data &B11111001 '1 Data &B10100100 '2 Data &B10110000 '3 Data &B10011001 '4 Data &B10010010 '5 Data &B10000010 '6 Data &B11111000 '7 Data &B10000000 '8 Data &B10010000 '9

(38)

36

3. Percobaan Trafic Ligth

 Gambar Rangkaian

 Souce code

$regfile= "8535def.dat" $crystal = 12000000 Config Porta = Output Config Portc = Output Config Portd = Output Config Pinb.0 = Input

(39)

37

Program:

'stanby red traffic' Portc = &B00100100 Porta = &B00100100 'traffic light'

Portc = &B00100001 'hijau' 'seven segmen' Portd = &B10010000 '9 Waitms 70 Portd = &B10000000 '8 Waitms 70 Portd = &B11111000 '7 Waitms 70 Portd = &B10000010 '6 Waitms 70 Portd = &B10010010 '5 Waitms 70 Portd = &B10011001 '4 Waitms 70 Portd = &B10110000 '3 Waitms 70 Portd = &B10100100 '2 Waitms 70 Portd = &B11111001 '1 Waitms 70 Portd = &B01000000 '0 Waitms 100

(40)

38

Portc = &B00100010 Waitms 125

Portc = &B00100100 Waitms 100

Portc = &B00001100 'hijau' 'seven segmen' Portd = &B10010000 '9 Waitms 70 Portd = &B10000000 '8 Waitms 70 Portd = &B11111000 '7 Waitms 70 Portd = &B10000010 '6 Waitms 70 Portd = &B10010010 '5 Waitms 70 Portd = &B10011001 '4 Waitms 70 Portd = &B10110000 '3 Waitms 70 Portd = &B10100100 '2 Waitms 70 Portd = &B11111001 '1 Waitms 70 Portd = &B01000000 '0 Waitms 100

Portc = &B00010100 'kuning' Waitms 125

(41)

39

Portc = &B00100100 'merah' Waitms 100

Porta = &B00001100 'hijau' 'seven segmen' Portd = &B10010000 '9 Waitms 70 Portd = &B10000000 '8 Waitms 70 Portd = &B11111000 '7 Waitms 70 Portd = &B10000010 '6 Waitms 70 Portd = &B10010010 '5 Waitms 70 Portd = &B10011001 '4 Waitms 70 Portd = &B10110000 '3 Waitms 70 Portd = &B10100100 '2 Waitms 70 Portd = &B11111001 '1 Waitms 70 Portd = &B01000000 '0 Waitms 100

Porta = &B00010100 'kuning' Waitms 125

Porta = &B00100100 'merah' Waitms 100

(42)

40

Porta = &B00100001 'hijau' 'seven segmen' Portd = &B10010000 '9 Waitms 70 Portd = &B10000000 '8 Waitms 70 Portd = &B11111000 '7 Waitms 70 Portd = &B10000010 '6 Waitms 70 Portd = &B10010010 '5 Waitms 70 Portd = &B10011001 '4 Waitms 70 Portd = &B10110000 '3 Waitms 70 Portd = &B10100100 '2 Waitms 70 Portd = &B11111001 '1 Waitms 70 Portd = &B01000000 '0 Waitms 100

Porta = &B00100010 'kuning' Waitms 125

Porta = &B00100100 'merah' Waitms 100

(43)

41

4. Sistem Loket Antrian

 Gambar Rakaian

 Souce code

$regfile= "8535def.dat" $crystal = 12000000

Config Portb = Output Config Porta = Output Config Portd = Input Portd = &HFF

Dim I As Byte , J As Byte , Tem1 As Integer , Tem2 As Integer Dim Ribuan As Integer , Ratusan As Integer , Puluhan As Integer , Satuan As Integer

Dim tunggu As Word , Loket As Byte , Puluhan_loket As Integer , Satuan_loket As Integer

(44)

42 Loket = 0 Tunggu = 0 Do If Pind.0 = 0 Then Loket = 1 Incr Tunggu Waitms 100

Elseif Pind.1 = 0 Then Loket = 2

Incr Tunggu Waitms 100

Elseif Pind.2 = 0 Then Loket = 3

Incr Tunggu Waitms 100 End If

Ribuan = Tunggu / 1000 Tem1 = Tunggu Mod 1000 Rat = Tunggu / 100

Tem2 = Tunggu Mod 100 Pul = Tunggu / 10

Sat = Tunggu Mod 10 Puluhan_loket = Loket / 10 Satuan_loket = Loket Mod 10 Portb = &B000001

Porta = Lookup(puluhan_loket , Angka) Waitms 5

Portb = &B000010

Porta = Lookup(satuan_loket , Angka) Waitms 5

(45)

43

Portb = &B000100

Porta = Lookup(ribuan , Angka) Waitms 5

Portb = &B001000

Porta = Lookup(ratusan , Angka) Waitms 5

Portb = &B010000

Porta = Lookup(pul , Angka) Waitms 5

Portb = &B100000

Porta = Lookup(satuan , Angka) Waitms 5

Loop End Angka:

Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90

Gambar

Gambar 2. Arsitektur Mikrokontroler
Tabel 1. Perbedaan Mikroposesor dan Mikrokontroler  Uraian  Mikroprosesor  Mikrokontroler  Arsitektur  Mikroprosesor  hanya
Tabel 2. Tipe Mikrokontroler ATMEL
Gambar 3. Diagram blok struktur Mikrokontroler
+7

Referensi

Dokumen terkait

Berlatar belakang dari pengembangan komoditas tanaman kakao di Kecamatan Selopuro Kabupaten Blitar dan pentingnya evaluasi kesesuaian lahan maka penelitian ini mengkaji

3.1 air baku air baku untuk air minum rumah tangga, yang selanjutnya disebut sebagai air baku adalah air yang dapat berasal dari sumber air permukaan, cekungan air tanah dan/atau

(1) Ketua LPMK merr~buat Permohonan Bantuan Operasional dengan melampirkan Proposal yang diketahui oleli Lurah diajukan kepada Walikota cq Kepala Bagian

 en!akit menular dan meruakan salah satu masalah utama kesehatan di mas!arakat ind$nesia. )elihat dari (esarn!a anim$ mas!arakat men,ari eng$(atan tu(erkul$sis

Dalam pembuatan benda kerja secara masal diperlukan alat bantu yang digunakan untuk membuat lubang yang mempunyai ukuran yang presisi agar diperoleh toleransi geometik

$A+IL.-ahwa diri Hakiki yang bermakna hani i#ulah yang bernama +uhammad. I#ulah yang @adim A2ali/ @adim I22at/ @adim Hakiki/ i#ulah makna yang dirahasiakan yang menjadi keesaan

Dalam masyarakat pendidikan karakter ini sangat diperlukan, hendaknya akan selalu menjadi pegangan dalam pengembangan karakter siswa, baik ketika di rumah, sekolah, atau

Tako poznamo več vrst organizatorjev kongresov: agencije za organiziranje kongresov, kongresni centri, ki nudijo poleg same organizacije tudi lastne dvorane za prirejanje kongresov