bab i-bab v

41
BAB I PENDAHULUAN 1.1 Latar Belakang Dalam kehidupan sehari-hari begitu banyak aplikasi yang memanfaatkan komputer, maka semakin meluas kebutuhan akan kemampuan seperti yang dimiliki oleh komputer. Sehingga menyebabkan munculnya terobosan baru yaitu dibuatnya chip mikrokontroler. Mikrokontroler adalah single chip komputer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol. Saat ini mikrokontroler AVR (Alv and Vegard’s Risc processor) merupakan pengontrol utama standar industri dan riset, hal ini di karenakan murah, mempunyai dukungan software, dokumentasi yang memadai, dan memerlukan komponen pendukung yang tidak terlalu banyak. Salah satu tipe mikrokontroler AVR untuk aplikasi standar yang memiliki fitur memuaskan adalah ATMEGA 8535. Sebuah sistem menggunakan mikrokontroler ATMEGA 8535 dapat dikembangkan dengan menggunakan sebuah software CodeVision AVR. CodeVision AVR merupakan software C-cross compiler, dimana program dapat ditulis menggunakan bahasa C. 1

Upload: rahaditekfis

Post on 04-Jul-2015

990 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB I-BAB V

BAB IPENDAHULUAN

1.1 Latar BelakangDalam kehidupan sehari-hari begitu banyak aplikasi yang

memanfaatkan komputer, maka semakin meluas kebutuhan akan kemampuan seperti yang dimiliki oleh komputer. Sehingga menyebabkan munculnya terobosan baru yaitu dibuatnya chip mikrokontroler. Mikrokontroler adalah single chip komputer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol. Saat ini mikrokontroler AVR (Alv and Vegard’s Risc processor) merupakan pengontrol utama standar industri dan riset, hal ini di karenakan murah, mempunyai dukungan software, dokumentasi yang memadai, dan memerlukan komponen pendukung yang tidak terlalu banyak. Salah satu tipe mikrokontroler AVR untuk aplikasi standar yang memiliki fitur memuaskan adalah ATMEGA 8535. Sebuah sistem menggunakan mikrokontroler ATMEGA 8535 dapat dikembangkan dengan menggunakan sebuah software CodeVision AVR. CodeVision AVR merupakan software C-cross compiler, dimana program dapat ditulis menggunakan bahasa C. Oleh karena itu perlu dilakukan praktikum ini agar mengetahui dan memahami seputar mikrokontroller dan sebagai sarana pembekalan mengaplikasikan ilmu dan konsep yang didapatkan selama perkuliahan.

1.2 Rumusan MasalahAdapun rumusan masalah dalam praktikum kali ini adalah

sebagai berikut :1. Bagaimana dasar-dasar mikrokontroler AVR ?2. Bagaimana bahasa pemrograman C pada

mikrokontroler AVR ?3. Bagaimana prinsip kerja ADC serta implementasinya

dalam mikrokontroler ?

1

Page 2: BAB I-BAB V

2

4. Bagaimana teknik interfacing dan aplikasinya dengan komputer ?

1.3 TujuanAdapun tujuan dari praktikum kali ini adalah sebagai

berikut :1. Pengenalan secara umum dasar-dasar mikrokontroler

AVR ?2. Mengenal dan memahami bahasa pemrograman C

pada mikrokontroler AVR.3. Mengetahui dan memahami prinsip kerja ADC serta

mengimplementasikan dalam program mikrokontroler.4. Memahami teknik interfacing dengan komputer secara

transmisi data serial, serta mengaplikasikannya dengan komputer.

1.4 Sistematika LaporanSistematika laporan parktikum kali ini terbagi dalam 5 bab.

Bab I Pendahuluan berisi tentang latar belakan, rumusan masalah, tujuan dan sistematik laporan. Bab II Dasar Teori yang berisi tentang landasan-landasan teori yang digunakan selama praktikum berlangsung. Bab III Metologi Percobaan berisi tentang peralatan dan prosedur percobaan. Bab IV Analisa dan Pembahasan berisi tentang analisa data dan pembahasan. Bab V Penutup berisi tentang kesimpulan dan saran.

Page 3: BAB I-BAB V

3

BAB IIDASARTEORI

2.1 MikrokontrolerMikrokontroler adalah suatu alat elektronika digital yang

mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Mikrokontroler merupakan komputer di dalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut "pengendali kecil" di mana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. (Anonim, 2005)

Mikrokontroler adalah piranti elektronik berupa IC (Integrated Circuit) yang memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi (program) yang dibuat oleh programmer. Mikrokontroler merupakan contoh suatu sistem komputer sederhana yang masuk dalam kategori embedded komputer. Dalam sebuah struktur mikrokontroler akan kita temukan juga komponen-komponen seperti: processor, memory, clock, dll. (Iwan, 2006)

Gambar 2.1 Contoh Beberapa Bentuk Mikrokontroller ATMEL (Arifianto)

3

Page 4: BAB I-BAB V

4

Kegiatan desain otomasi merupakan kegiatan memetakan sinyal masukan menjadi sinyal keluaran berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai kebutuhan. Sasaran dari pelatihan ini adalah peserta mampu menggunakan mikrokontroler untuk membangun sendiri suatu sistem otomasi atau embedded system.2.1.1 Jenis-Jenis Mikrokontroler

Ada beberapa jenis mikrokontroler, di antaranya keluarga ATMEL atau MCS-51, AVR, dan PIC. Masing-masing mempunyai keturunan atau keluarga sendiri-sendiri, yaitu sebagai berikut :

Gambar 2.2 Konfigurasi mikrokontroller ATmega 8535 (Arifianto)

Page 5: BAB I-BAB V

5

1. Mikrokontroler AVRMikrokontroller AVR merupakan mikrokontroler

dengan arsitektur modern. Terdapat 3 macam atau jenis mikrokontroler AVR, yaitu

- Tiny AVR- AVR atau Classic AVR, dan- Mega AVR

Perbedaan jenis-jenis tersebut terletak dari fasilitas, atau lebih dikenal dengan fitur-fiturnya. Jenis Tiny

AVR merupakan mikrokontroler dengan jumlah pin yang terbatas (sedikit maksudnya) dan sekaligus fitur-fiturnya juga terbatas dibandingkan yang mega AVR. Semua mikrokontroler AVR memiliki set instruksi (assembly) dan organisasi memori yang sama.

Mikrokontroler Alv and Vegard’s Risc processor atau yang di singkat AVR merupakan mikrokontroler RISC 8 bit. Karena RISC inilah sebagian besar kode instruksinya di kemas dalam satu siklus clock. AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan instrumentasi.

2. Mikrokontroler MCS-51Mikrokontroler MCS51 adalah Mikrokontroler yang

paling popular saat ini. Keluarga ini diawali oleh Intel yang mengenalkan IC Mikrokontroler type 8051 pada awal tahun 1980-an, 8051 termasuk sederhana dan harganya murah sehingga banyak digemari, banyak pabrik IC besar lain .yang ikut memproduksinya, tentu saja masing-masing pabrik menambahkan kemampuan pada mikrokontroler buatannya meskipun semuanya masih dibuat berdasarkan 8051. Sampai kini sudah ada lebih 100 macam mikrokontroler turunan 8051, sehingga terbentuklah sebuah ‘keluarga besar mikrokontroler’ dan biasa disebut sebagai MCS51.

Page 6: BAB I-BAB V

6

3. Mikrokontroler PICMikrokontroler PIC adalah salah satu jenis

mikrokontroler yang diproduksi oleh microchip, inc. untuk mengontrol alat di sekeliling, sehingga mengurangi beban CPU utama. PIC 18F452, sama seperti CPU, memiliki fungsi kalkulasi dan memori serta dikendalikan oleh software. Bagaimanapun PIC memiliki kapasitas memori yang kecil. Frekuensi kerja maksimum clock untuk mikrokontroler PIC adalah sekitar 20 MHz dan kapasitas memori untuk mengisikan program adalah sekitar 1k sampai dengan 4k. Frekuensi clock dapat menentukan kecepatan membaca suatu program dan sebuah instruksi dieksekusi atau dijalankan. (Anonim,2005)

Gambar 2.3 Bentuk fisik mikrokontroler PIC 18F452 (Anonim,2005)

Fitur – fitur PIC 18F452Mikrokontroler PIC memiliki fitur – fitur antara lain :1. Hanya memerlukan 75 set instruksi.2. Data berukuran 16 bit.3. Memiliki flash memori sebesar 16k yang dapat digunakan

100.000 kali baca tulis.4. Memiliki 1536 SRAM15 special function register.5. Memiliki EEPROM sebesar 256Memiliki 18 interrupt.6. Wacthdog Timer (WDT) dengan internal osilator.7. Mode sleep.8. Memiliki lima port yaitu PORTA, PORTB, PORTC,

PORTD dan PORTE. (anonim,2005)

Page 7: BAB I-BAB V

7

4. ATMEL AVR ATMEGA8535Mikrokontroler jenis ATMEL AVR RISC

mempunyai kelebihan sebagai berikut: ATMEL AVR RISC memiliki fasilitas dan

kefungsian yang lengkap dengan harga yang relatif murah.

Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS (Million Instruction per Second), yang berarti hanya dibutuhkan 1 clock untuk 1 eksekusi instruksi.

Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi.

Ketersediaan kompiler C (CV AVR) yang memudahkan user memprogram menggunakan bahasa C.

Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa mikrokontroler,

Tabel 2.1 Tabel perbandingan kecepatan processor dan efisiensi Processor Compiled code size Excecution time (cycles)AVR 46 3358051 112 9,384PIC16C74 87 2,49268HC11 S7 5,244

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 mikrokontroler untuk membangun bermacam-macam aplikasi embedded system. Chip AVR ATMEGA8535 memiliki 40 pin kaki, berikut skema kaki AT MEGA8535.

ATMEGA8535 memiliki 4 buah port masukan/keluaran 8 bit, yaitu PORTA, PORTB,

Page 8: BAB I-BAB V

8

PORTC, dan PORTD. Selain sebagai masukan/keluaran 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. Fungsi-fungsi yang lain dapat dilihat pada datasheet ATMEGA8535. (Arifino, - )

Bagian – bagian ATMEGA8535 :1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C,

dan port D.2. CPU yang memiliki 32 buah register.SRAM sebesar 512

byte.3. Flash memory sebesar 8kb yang memiliki kemampuan Read

While Write.4. EEPROM sebesar 512 byte dapat diprogram selama

beroperasi.5. Tiga buah timer/counter dengan kemampuan pembanding.6. Two wire serial Interface.7. Port antarmuka SPI.8. Unit interupsi internal dan eksternal.9. Port USART untuk komunikasi serial.10. ADC 10 bit sebanyak 8 saluran.11. Watchdog Timer dengan osilator internal12. Antarmuka komperator analog

Konfigurasi Pin ATMEGA 8535 :Berikut merupakan konfigurasi pin dari ATMEGA 8535:1. VCC untuk tegangan pencatu daya positif. GND untuk

tegangan pencatu daya negatif.2. PortA (PA0 – PA7) sebagai port Masukan/Keluaran dan

memiliki kemampuan lain yaitu sebagai masukan untuk ADC.

3. PortB (PB0 – PB7) sebagai port Masukan/Keluaran dan juga memiliki kemampuan yang lain.

Page 9: BAB I-BAB V

9

4. PortC (PC0 – PC7) sebagai port Masukan/Keluaran untuk ATMega8535.

5. PortD (PD0 – PD7) sebagai port Masukan/Keluaran dan juga memiliki kemampuan yang lain.

6. RESET untuk melakukan reset program dalam mikrokontroler.

7. XTAL1 dan XTAL2 untuk masukan pembangkit sinyal clock.

8. AVCC untuk pin masukan tegangan pencatu daya untuk ADC.

9. AREF untuk pin tegangan referensi ADC.(Arifianto)

Gambar 2.4 tampilan utama CV AVR (Arifianto)

Page 10: BAB I-BAB V

10

Kapabilitas detail dari ATMEGA 8535Berikut merupakan kapabilitas detail dari ATMEGA 8535 :1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan

frekuensi maksimal 16 MHz2. Kapasitas memory flash 8 kB, SRAM sebesar 512 byte, dan

EEPROM ( Electrically Erasable Programable Read Only) sebesar 512 byte

3. ADC internal dengan fidelitas 10 bit dengan 8 channel4. Portal komunikasi serial (USART) dengan kecepatan

maksimal 2,5 Mbps5. Enam pilihan mode sleep menghemat penggunaan daya

listrik. (Wahyu Nurdilah,2009)

2.2 Pemrograman ATMEL AVR Ada 2 cara untuk memprogram mikrokontroller ini,

menggunakan software AVR assembler yang berbasis pada bahasa assembly, dan menggunakan software CV AVR (Code Vision AVR) yang berbasis pada bahasa C.2.2.1 Masukan/Keluaran

Fasilitas masukan atau keluaran merupakan fungsi mikrokontroler untuk dapat menerima sinyal masukan (masukan) dan memberikan sinyal keluaran. Sinyal masukan maupun sinyal keluaran adalah berupa data digital 1 (high, mewakili tegangan 5 volt) dan 0 (low, mewakili tegangan 0 volt). Mikrokontroler ATMEGA8535 memiliki 4 buah PORT 8 bit bidirectional yang dapat difungsikan sebagai PORT masukan maupun PORT keluaran yaitu PORTA, PORTB , PORTC, dan PORT D. Register digunakan untuk mengatur fungsi dari pin-pin pada tiap port. Register dapat dianalogikan sebagai kumpulan switch on/off yang digunakan untuk mengaktifkan fungsi apa yang akan dipakai dari port mikrokontroler. Pada setiap port pin terdapat 3 buah register 8 bit: DDRxn, PORTxn, dan PINxn.

Register DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan. Jika DDRxn diberikan nilai 1 (high), maka pin digunakan sebagai keluaran. Jika DDRxn diberikan nilai 0 (low), maka pin difungsikan sebagai masukan.

Page 11: BAB I-BAB V

11

Register PORTxn digunakan untuk mengaktifkan pull-up resistor (pada saat pin difungsikan sebagai masukan), dan memberikan nilai keluaran pin high/low ( pada saat difungsikan sebagai keluaran). Konfigurasi PORTxn dan DDRxn dapat dilihat pada tabel di bawah.

Tabel 2.2 Konfigurasi Port Pin (Arifianto)

Tri-state adalah kondisi di antara high dan low, atau biasa disebut dengan keadaan mengambang (floating). Kondisi tri-state sangat dihindari dalam dunia digital. Terlepas dari setting DDRxn, PINxn merupakan register yang berfungsi untuk mengetahui keadaan tiap-tiap pin pada mikrokontroler. Register ini sangat dibutuhkan untuk membaca keadaan pin pada saat difungsikan sebagai masukan.2.2.2 Interrupt

Interrupt adalah fasilitas mikrokontroler untuk menyela suatu program yang sedang berjalan. Interrupt dapat dianalogikan sebagai hak untuk menyela pada suatu rapat. Dari sekian banyak peserta rapat hanya 21 orang yang diberi hak untuk menyela. Jika terdapat 2 atau lebih orang yang menyela, maka orang dengan prioritas paling tinggi yang diperbolehkan bicara. Pada ATMEGA8535 terdapat 21 fasilitas interrupt dengan prioritas seperti pada tabel berikut. (Arifianto, - )

Register-register yang perlu disetting untuk menggunakan fasilitas interrupt adalah MCUCR, MCUSR, GICR, dan GIFR.

Page 12: BAB I-BAB V

12

Tabel 2.3 Prioritas Interrupt ATMEGA8535 (Arifianto)

2.2.3 ADC (Analog to Digital Convertion) ADC (Analog to Digital Converter) adalah salah satu

fasilitas mikrokontroller ATMEGA8535 yang berfungsi untuk mengubah data analog menjadi data digital. ADC memiliki 2 karakter prinsip, yaitu kecepatan sampling dan resolusi. Kecepatan sampling suatu ADC menyatakan seberapa sering sinyal analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu. Kecepatan sampling biasanya dinyatakan dalam sample per second (SPS). (Arifianto, - )Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai contoh, ADC 8 bit akan memiliki keluaran 8 bit data digital, ini berarti sinyal masukan dapat dinyatakan dalam 255 (2n – 1) nilai diskrit. ADC 12 bit memiliki 12 bit keluaran data digital, ini berarti sinyal masukan dapat dinyatakan dalam 4096 nilai diskrit. Dari contoh di atas ADC 12 bit akan memberikan

Page 13: BAB I-BAB V

13

ketelitian nilai hasil konversi yang jauh lebih baik daripada ADC 8 bit.

Gambar 2.5 ADC dengan kecepatan sampling rendah dan kecepatan sampling tinggi (Arifianto)

Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk besaran yang merupakan rasio perbandingan sinyal masukan dan tegangan referensi. Sebagai contoh, bila tegangan referensi 5 volt, tegangan masukan 3 volt, rasio masukan terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit dengan skala maksimum 255, akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk decimal) atau 10011001 (bentuk biner).

ADC pada ATMEGA8535 adalah jenis 10 bit successive approximation dengan tegangan referensi maksimum 5 volt. Pada universal board M.B.3.2 tegangan referensi dibuat fix tidak dapat diubah yaitu 5 volt yang diambil dari tegangan sumber (Vcc). Register-register yang harus disetting adalah ADMUX, ADCSRA, dan SFIOR.2.2.4 Timer/Counter

Timer dan counter adalah dua fasilitas yang memiliki perangkat yang sama, seperti halnya register penampungnya (TCNTx). Ketika difungsikan sebagai timer, maka register penampung tersebut berisikan jumlah waktu yang terlampaui tiap selang waktu tertentu. Besar selang waktu tersebut dapat disetting sesuai dengan kebutuhan. Jika dipakai sebagai counter, maka

Page 14: BAB I-BAB V

14

register penampung tersebut digunakan untuk menyimpan data hasil perhitungan terakhir. Saat difungsikan sebagai counter, maka masuk melewati pin TO dan T1. Register untuk mengatur kapan timer difungsikan sebagai timer dan kapan sebagai counter adalah TCCRx.

ATMEGA8535 memiliki fasilitas 3 buah timer/counter yaitu timer/counter 0 sebesar 8 bit, timer/counter 1 sebesar 16 bit, dan timer/counter 8 bit. 8 bit dan 16 bit adalah jumlah data yang bisa ditampung pada register penampungnya. 2.2.5 PWM (Pulse Width Modulation)

PWM (Pulse Width Modulation) adalah teknik mendapatkan efek sinyal analog dari sebuah sinyal digital yang terputus-putus. PWM dapat dibangkitkan hanya dengan menggunakan digital I/O yang difungsikan sebagai keluaran.

Gambar 2.6 Contoh PWM Dengan Duty Cycle 50% (Arifianto)

Pada contoh gelombang di atas, perbandingan waktu antara sinyal high (1) dan sinyal low (0) adalah sama. Gelombang diatas dikatakan memiliki duty cycle 50%. Duty cycle adalah perbandingan antara lebar sinyal high (1) dengan lebar keseluruhan siklus (cycle). Jika amplitudo gelombang PWM adalah 5 volt, maka tegangan rata rata (seolah-olah analog) yang kita dapatkan adalah 2,5 volt. Berikut contoh gelombang PWM dengan duty cycle 10%, jika amplitudo gelombang 5 volt maka akan didapatkan tegangan rata - rata analog 0,5 volt.

Gambar 2.7 Contoh PWM dengan Duty Cycle 10%

Page 15: BAB I-BAB V

15

Pada ATMEGA8535 ada 2 cara membangkitkan PWM, yang pertama PWM dapat dibangkitkan dari port masukan / keluarannya yang difungsikan sebagai keluaran. Yang kedua adalah dengan memanfaatkan fasilitas PWM dari fungsi timer/counter yang telah disediakan. Dengan adanya fasilitas ini proses pengaturan waktu high/low sinyal digital tidak akan mengganggu urutan program lain yang sedang dieksekusi oleh processor. Selain itu, dengan menggunakan fasilitas ini kita tinggal memasukkan berapa porsi periode waktu on dan off gelombang PWM pada sebuah register. OCR1A, OCR1B dan OCR2 adalah register tempat mengatur duty cycle PWM. 2.2.6 USART (Universal Synchronous and Asynchronous

Serial Receiver and Transmitter) Untuk dapat berhubungan dengan piranti lain (misalnya:

mikrokontroler - komputer, mikrokontroler –mikrokontroler dan lain-lain), mikrokontroler dilengkapi dengan fasilitas komunikasi. Ada 2 jenis fasilitas komunikasi yang dikenal, yaitu komunikasi paralel dan komunikasi serial. Sesuai dengan namanya pada komunikasi paralel transfer data dilakukan secara serempak/bersamaan, sedangkan pada komunikasi serial data dikirim secara bergantian. Komunikasi secara paralel memiliki kelebihan pada kecepatan transfer data, tetapi kualitas suatu komunikasi tidak hanya ditentukan oleh kecepatannya saja, ada faktor lain yang perlu diperhatikan yaitu jarak dan kepraktisan. Komunikasi paralel memerlukan jalur data yang lebih banyak, yang berarti pengkabelan (wiring) juga akan semakin banyak. Pada komunikasi serial biasanya hanya dibutuhkan 2 sampai 3 kabel saja, jadi bisa dikatakan komunikasi serial lebih praktis dibanding paralel apalagi jika komunikasi dilakukan dengan jarak yang jauh.

Agar komunikasi serial dapat berjalan dengan baik dibutuhkan suatu protocol/aturan komunikasi. Pada ATMEGA8535 terdapat beberapa protocol komunikasi serial, yaitu : USART, SPI , dan I2C. Dengan menggunakan protokol USART ada 2 jenis mode komunikasi, yaitu : sinkron dan asinkron. Pada mode sinkron, mikrokontroler dan peripheral yang

Page 16: BAB I-BAB V

16

berkomunikasi akan menggunakan clock/detak kerja yang sama, sedangkan pada mode asinkron mikrokontroler dan peripheral bisa bekerja pada clock-nya masing-masing.

2.3 Serial InterfaceMCS-51 memiliki kemampuan untuk berkomunikasi secara

serial melalui pin RXD dan TXD. Satu hal yang perlu diingat adalah tingkat tegangan komunikasi kedua pin serial menggunakan tingkat tegangan TTL.2.3.1 Standart Serial Interface

Pada prinsipnya, komunikasi serial adalah komunikasi dimana transmisi data dilakukan per bit. Interface serial hanya membutuhkan jalur yang sedikit (umumnya hanya 2 jalur) sehingga lebih menghemat pin jika dibandingkan dengan interface paralel. Komunikasi serial ada dua macam, asynchronous serial dan synchronous serial. Synchronous serial adalah komunikasi dimana hanya ada satu pihak (pengirim atau penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data. Contoh penggunaan synchronous serial terdapat pada transmisi data keyboard. Asynchronous serial adalah komunikasi di mana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock pengirim dan penerima akan membaca data sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) komputer. MCS-51 mendukung komunikasi secara asinkron, bahkan tiga dari empat serial mode yang dimiliki MCS-51 kompatibel dengan UART.2.3.2 Serial Register

Register yang digunakan untuk mengatur komunikasi serial terdapat pada Serial Control (SCON).

Page 17: BAB I-BAB V

17

2.3.3 Mode OperasiMCS-51 memiliki 4 mode komunikasi serial. Mode 0

berupa synchronous serial (shift register), sedangkan tiga mode yang lain berupa asynchronous serial (UART). Pada semua mode, pengiriman dilakukan jika ada instruksi yang mengisi nilai register SBUF. Sedangkan pada saat penerimaan, data yang diterima akan disimpan pada register SBUF.a. Mode 0

Mode 0 adalah 8-bit shift register dimana data dikirimkan dan diterima melalui pin RXD sedangkan clock dikirimkan dan diterima melalui pin TXD. Pengiriman data 8 bit dilakukan dengan mengirimkan Least Significant Bit (LSB) terlebih dahulu. Pada mode 0, baud rate yang digunakan adalah sebesar 1/12 dari frekuensi osilator.b. Mode 1

Pada mode 1, jumlah data yang dikirimkan sebanyak 10 bit yang terdiri dari start bit, 8 bit data (LSB terlebih dahulu), dan stop bit. Pada proses penerimaan, nilai stop bit akan dimasukkan ke RB8 secara otomatis. Pada proses pengiriman, stop bit akan diberi nilai ‘1’ secara otomatis. Pada mode 1, baud rate yang digunakan dapat diatur melalui Timer 1.c. Mode 2

Pada mode 2, jumlah data yang dikirimkan sebanyak 11 bit yang terdiri dari start bit, 8 bit data (LSB terlebih dahulu), bit ke-9, dan stop bit. Pada proses pengiriman, nilai bit ke-9 dapat diatur dengan mengisi nilai TB8. Pada proses penerimaan, bit ke-9 akan dimasukkan ke RB8 secara otomatis. Pada mode 2, baud rate yang dapat digunakan adalah sebesar 1/64 frekuensi osilator atau 1/32 frekuensi osilator jika SMOD bernilai ‘1’.d. Mode 3

Mode 3 hampir sama dengan mode 2. Perbedaannya terdapat pada baud rate yang digunakan. Jika mode 2 menggunakan baud rate yang pasti, mode 3 menggunakan baud rate yang dihasilkan oleh Timer 1.( Arifianto)

Page 18: BAB I-BAB V

18

2.4 CodevisionAVR CodeVisionAVR pada dasarnya merupakan perangkat

lunak pemrograman mikrokontroler keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk mikrokontroler ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded). Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD,

komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya.

Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly. Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi kedalam sistem memori mikrokontroler AVR yang sedang diprogram.

Page 19: BAB I-BAB V

19

Gambar 2.8 IDE perangkat lunak CodeVisionAVR (Iwan, 2006)

Selain itu, CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau CodeWizardAVR. Secara praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada mikrokontroler AVR yang sedang diprogram. Dinamakan Code Generator karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Gambar dibawah ini memperlihatkan beberapa penggal baris kode program yang dibangkitkan secara otomatis oleh CodeWizardAVR. Secara teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya). (Iwan, 2006)

Page 20: BAB I-BAB V

20

Gambar 2.9. Code Generator yang dapat digunakan untuk menginisialisasi register-register pada mikrokontroler AVR. (Iwan,2006)

Page 21: BAB I-BAB V

21

BAB IIIMETODOLOGI PERCOBAAN

3.1 Pelatan PercobaanDalam praktikum kelima kali ini peralatan yang digunakan

adalah sebagai berikut :1. Modul minimum sistem Atmega 85352. Downloader ASP3. Serial to USB4. Software yang digunaka adalah sebagai berikut :

- Proteus- Code Vision AVR C Compailer- Khazama Programmer-

3.2 Prosedur PercobaanADC (Analaog Digital Converter)Membuat program untuk mendapatkan data digital dari

nilai temperatur analog dengan sensor LM35 yang dehubungkan ke ADC channel 0 (resolusi 10 bit). PORT B dihubungkan ke LCD. Prosedur percobaannya adalah sebagai berikut :

1. Membuat rangkaian seperti pada gambar berikut :

Gambar 3.1 Rangkaian ADC di proteus

Page 22: BAB I-BAB V

22

2. Membuka codevision AVR dan mengatur port yang akan digunakan sebagai masukan dan keluaran. PORTA.0 atau ADC 0sebagai masukan dari LM35 dan keluaran ditampilkan di LCD di PORTC. Fitur ADC diaktifkam dan mencentang ADC enable.

3. Menulis program seperti berikut :#include <mega8535.h>#include <stdio.h>.............//Declare your global variables hereUnsigned int x;Float y;Unsigned char z[16];..............While (1){x=read_adc(0);y=0.49*x;lcd_gotoxy(0,0);sprintf(z,”temp=%f”,y);lcd_puts(z);//place your code here

4. Mengganti display LCD dengan komunikasi serial.

21

Page 23: BAB I-BAB V

23

BAB IVANALISA DAN PEMBAHASAN

4.1 Analisa DataBerdasarkan prosedur percobaan di atas didapat analisa

data berupa tabel data dan hubungan grafik seperti di bawah ini.

Tabel 4.1 Nilai input dan ouput pada rangkaian ADCNo Input dari LM35(0C) Output

display/LCD(0C)1 21 Temp = 21,69

ADC = 432 22 Temp = 22,05

ADC = 453 23 Temp = 23,03

ADC = 474 24 Temp = 24,01

ADC = 495 25 Temp = 24,96

ADC = 516 26 Temp = 25,97

ADC = 537 27 Temp = 26,95

ADC = 558 28 Temp = 27,93

ADC = 579 29 Temp = 28,91

ADC = 5910 30 Temp = 29,89

ADC = 61

Page 24: BAB I-BAB V

24

Tabel 4.2 Nilai error temperature input dan output 1Input

(suhu LM 35)

Output (suhu pada LCD) Error (O-I)

21 21.69 0.6922 22.05 0.0523 23.03 0.0324 24.01 0.0125 24.96 -0.0426 25.97 -0.0327 26.95 -0.0528 27.93 -0.0729 28.91 -0.0930 29.89 -0.11

Tabel 4.2 Nilai error temperature input dan output 2Input

(suhu LM 35)

Output( perhitungan teoritis, y = 0.49x)

Error (O-I)

21 21.07 0.0722 22.05 0.0523 23.03 0.0324 24.01 0.0125 24.99 -0.0126 25.97 -0.0327 26.95 -0.0528 27.93 -0.0729 28.91 -0.0930 29.89 -0.11

Page 25: BAB I-BAB V

25

20 22 24 26 28 30 320

5

10

15

20

25

30

35

f(x) = 0.946363636363636 x + 1.40672727272727R² = 0.99653178421068

output (suhu pada LCDLinear (output (suhu pada LCD)

Gambar 4.1 Grafik hubungan input vs output (temperatur)

20 22 24 26 28 30 320

10

20

30

40

50

60

70

f(x) = 2 x + 1R² = 1

outputLinear (output)

Ganbar 4.2 Grafik hubungn input vs output (ADC)

Page 26: BAB I-BAB V

26

BAB IVPEMBAHASAN

Try Rahadi S. (2409100054)Pada praktikum P5 ini percobaan yang diujikan adalah

mikrokontroler dengan fungsinya sebagai ADC (analog digital converter). Mikrokontroler yang dipakai adalah ATMEGA8535, display yang dipakai adalah LCD 2x16, dan sensor yang digunakan adalah sensor suhu LM35. Percobaan dilakuakn hanya dengan menggunakan simulasi dengan software ISIS dan coding memakai software codevisionAVR.

LM35 diberi power dan dimasukan ke dalam ATMEGA8535 melalui porta.0/ADC, kemudian ATMEGA8535 diberi power pada Vcc dan Vref, dan LCD dihubungkan melalui portc1,2,4,5,6,7 dan memakai power sebagai Vdd dan Vee pada LCD. Kemudian program yang telah dibuat di codevisionAVR di download ke ATMEGA8535. Dan simulasi pun dijalankan.

LM35 diubah input suhunya, mulai dari 21oC sampai 30oC. Pada LCD didapatkan hasil yang kurang tepat dengan input suhu LM35 yaitu error sekitar -0.11 sampai 0.69. Namun secara teoritis error yang didapat adalah sekitar -0.11 sampai 0.07. Dan dari 2 metode perhitungan yang digunakan error terkecil ada pada suhu 24oC dan membesar saat menjauhi suhu 24oC. Maka penggunaan LCD dapat mempengaruhi perhitungan, karena LCD sendiri mempunyai tegangan masukan.

Pada grafik terlihat perbedaan perhitungan hasil yang didapat dari teoritis dengan LCD hanya pada suhu 21oC dan 25oC saja. Itu menunjukan bahwa penggunaan rumus y=0.49x kurang tepat dipakai pada suhu tersebut. Kemungkinan hal ini terjadi karena pembulatan angka pada perkalian nilai ADC. Namun rumus tersebut masih relevan mengingat nilai pada suhu lainnya sama dengan teoritis dan suhu masukan pada LM35.

Page 27: BAB I-BAB V

27

BAB VPENUTUP

5.1 KesimpulanKesimpulan dalam praktikum ini, antara lain adalah:1. Mikrokontroler dapat digunakan sebagai ADC dari

LM35 dengan mengalikan nilai ADC yang didapat dengan 0.49.

2. LM35 harus di masukan pada kaki atau port A, mengingat fungsi ADC ATMEGA8535 terdapat pada port A.

5.2 SaranSaran untuk praktikum ini adalah sebaiknya saat memakai simulasi, praktikan tetap membuat minimum sistem ATMEGA8535 agar mengerti saat praktik aslinya.

Page 28: BAB I-BAB V

28

DAFTAR PUSTAKA

Anonim. 2005.Arifianto, B. Modul Training Microcontroller for Beginer. Max-

tronChristanto, Danny S.T. Dan Kris Pusporini, S.T., M.T. 2004.

Panduan Dasar Mikrokontroler Keluarga MCS-51. Surabaya: Innovative Electronics.

Riantiningsih, Wahyu Nurdilah. 2009. Pengamanan Rumah Berbasis Microcontroller ATMEGA 8535 dengan Sistem Informasi dengan Menggunakan PC. Medan: Universitas Sumatera Utara.

Setiawan, Iwan. 2006. Tutorial Microcontroller AVR. Part I. Teknik Elektro: Universitas Diponegoro.