documentp4

21
PRAKTEK SISTEM MIKROKONTROLER DASAR LAPORAN PERCOBAAN 4 USART ( Universal Synchronous and Asynchronous serial Receiver and Transmitter) Disusun untuk memenuhi tugas Mata Kuliah Praktek Sistem Mikrokontroler Dasar Semester 4 PEMBIMBING : Ir. Azam Muzakhim Imammuddin,MT PENYUSUN : JTD 2A Nama No. Absen NIM ABDURRAHMAN FAJRI 01 134116003 5

Upload: af

Post on 06-Nov-2015

4 views

Category:

Documents


1 download

DESCRIPTION

p4

TRANSCRIPT

PRAKTEK SISTEM MIKROKONTROLER DASAR

LAPORAN PERCOBAAN 4USART

(Universal Synchronous and Asynchronous serial Receiver and Transmitter)Disusun untuk memenuhi tugas

Mata Kuliah Praktek Sistem Mikrokontroler Dasar

Semester 4

PEMBIMBING :

Ir. Azam Muzakhim Imammuddin,MT

PENYUSUN :

JTD 2A

NamaNo. AbsenNIM

ABDURRAHMAN FAJRI011341160035

JARINGAN TELEKOMUNIKASI DIGITAL

TEKNIK ELEKTRO

POLITEKNIK NEGERI MALANG

2015

TEORI DASAR

ATMEGA 16ATMega16 merupakan mikrokontroler CMOS 8-bit buatan Atmel keluarga AVR. AVR mempunyai 32 register general-purpose, timer/counter dengan metode compare, interrupt eksternal dan internal, serial USART, progammable Watchdog Timer, ADC dan PWM internal.

Beberapa Keistimewaan ATMEGA 16 :1. Saluran Input/Output (I/O) ada 32 buah, yaitu PORTA, PORTB, PORTC, PORTD

2. ADC / Analog to Digital Converter 10 bit sebanyak 8 channel pada PORTA

3. 2 buah timer/counter 8-bit dan 1 buah timer/counter 16-bit dengan prescalers dan kemampuan pembanding

4. Watchdog timer dengan osilator internal

5. Tegangan operasi 2,75 - 5,5 V pada ATMega16L dan 4,5 - 5,5 V pada ATMega16

6. EEPROM sebesar 512 byte yang dapat diprogram saat operasi

7. Antarmuka komparator analog

8. 4 channel PWM

9. Kecepatan nilai (speed grades) 0 - 8 MHz untuk ATMega16L dan 0 - 16 MHz untuk ATMega16

Port

Konfigurasi pin ATMEGA16 dengan kemasan 40 pin Dual In-line Package (DIP) dapat dilihat pada gambar diatas 2.1 dan fungsi dari masing-masing pin ATMEGA16 sebagai berikut :

1. VCC merupakan pin yang brfungsi sebagai masukan catu daya

2. GND merupakan pin Ground

3. Port A (PA0 PA7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin masukan ADC

4. Port B (PB0 PB7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.

5. Port C (PC0 PC7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.

Port D (PD0 PD7) merupakan pin input/output dua arah (full duplex) dan selain itu

merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.

6. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler

7. XTAL1 dan XTAL2, merupakan pin masukan external clock

8. AVCC merupakan pin masukan tegangan untuk ADC

9. AREF merupakan pin masukan tegangan referensi untuk ADC.

ADCATMEGA16 merupakan tipe AVR yang dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATMEGA16 dapat dikonfigurasi, baik sebagai single ended input maupun pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dari ADC itu sendiri.Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, format output data, dan mode pembacaan. Register yang perlu diset nilainya adalah ADMUX (ADC Multiplexer Selection Register), ADCSRA (ADC Control and Status Register A), dan SFIOR (special Function IO Register).ADMUX merupakan register 8 bit yang berfungsi menentukan tegangan referensi ADC, format data output, dan saluran ADC yang digunakan. Konfigurasi register ADMUX pada Gambar 2.

REF1REF0 ADLAR MUX4 MUX3 MUX2MUX1MUX0Gambar 2. Register ADMUXBit penyusunnya sebagai berikut:

a. REF[1..0] merupakan bit pengatur tegangan referensi ADC ATMega16. Memeiliki Nilai Awal 00 sehingga referensi tegangan berasal dari pin AREF. Detail nilai yang lain dapat dilihat pada tabel 5.1. Pemilihan Mode Tegangan Referensi ADC

REF1REF0Mode Tegangan Referensi

00Berasal dari pin AREF

01Berasal dari pin AVCC

10Tidak dipergunakan

11Berasal dari tegangan referensi internal 2,56 V

b. ADLAR merupakan bit pemilih mode data keluaran ADC. Bernilai awal / default = 0, sehingga 2 bit tertinggi data hasil konversinya berada di register ADCH dan 8 bit sisanya berada di register ADCL, seperti dalam gambar 3. Apabila bernilai 1, maka hasilnya pada gambar.4.

c. MUX[4..0] merupakan bit pemilih saluran pembacaan ADC. Bernilai awal 00000. Untuk mode single ended input, MUX[4..0] bernilai dari 00000 hingga 00111, konfigurasinya dalam tabel 5.2. Tabel 5.1. Pemilihan Bit Saluran Pembacaan ADC

ADCSRA merupakan register 8 bit yang berfungsi melakukan manajemen sinyal kontrol dan status dari ADC. Memiliki susunan dalam gambar.5.

Bit penyusunnya sebagai berikut:a. ADEN merupakan bit pengatur aktivasi ADC. Bernilai awal 0. Jika bernilai 1, maka ADC aktif.

b. ADSC merupakan bit penanda mulainya konversi ADC. Bernilai awal 0 selama konversi ADC akan bernilai 1, sedangkan jika konversi selesai, akan bernilai 0.

c. ADATE merupakan bit pengatur aktivasi picu otomatis operasi ADC. Bernilai awal 0, jika bernilai1 maka konversi ADC akan dimulai pada saat transisi positif dari sinyal picu yang diplih. Pemiliha sinyal picu menggunakan bit ADTS pada register SFIOR.

d. ADIF merupakan bit penanda akhir suatu konversi ADC. Bernilai awal 0. Jika bernilai 1, maka konversi ADC pada saluran telah selesai dan data siap diakses. e. ADIE merupakan bit pengatur aktivasi interupsi yang berhubungan dengan akhir konversi ADC. Bernilai awal 0. Jika berniali 1 dan jika konversi ADC telah selesai, sebuah interupsi akan dieksekusi.

f. ADPS[2..0] merupakan bit pengatur clock ADC. Bernilai awal 000. Detail nilai bit dalam tabel .3.

SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal. Susunannya dalam gambar 6.

ADTS[2..0] merupakan bit pengatur picu eksternal operasi ADC. Hanya berfungsi jika bit ADATE pada register ADCSRA bernilai 1. Bernilai awal 000 sehingga ADC bekerja pada mode free running dan tidak ada interupsi yang akan dihasilkan. Detail nilai ADTS[2..0] dapat dilihat pada tabel 4. Untuk Operasi ADC, bit ACME, PUD, PSR2, dan PSR10 tidak diaktifkan.

Tabel 4. Pemilihan Sumber Picu ADC

Dalam proses pembacaan hasil konversi ADC, dilakukan pengecekan terhadap bit ADIF (ADC Interupt Flag) pada register ADCSRA. ADIF akan benilai satu jika konversi sebuah saluran ADC telah selesai dilakukan dan data hasil konversi siap untuk diambil, dan demikian sebaliknya. Data disimpan dalam dua buah register, yaitu ADCH dan ADCL

USARTUSART harus diinisialisasi sebelum komunikasi manapun dapat berlansung. Proses inisialisasi normalnya terdiri daripengesetan boud rate, penyetingan frame format dan pengaktifan pengirim atau penerimatergantung pada pemakaian. Untuk interrupt menjalankan operasi USART , global interrupt flag ( penanda ) sebaiknya dibersihkan ( dan interrupt global disable ) ketika inisialisasi dilakukan. Sebelum melakukan inisialisasi ulang dengan mengubah boud rate atau frame format, untuk meyakinkan bahwa tidak ada transmisi berkelanjutan sepanjang peiode register yang diubah.

Flag TXC dapat digunakan untuk mengecek bahwa pemancar telah melengkapi semua pengiriman, dan flag RXC dapat digunakan untuk mengecek bahwa tidak ada data yang tidak terbaca pada buffer penerima. Tercatat bahwa flag TXC harus dibersihkan sebelum tiap transmisi ( sebelum UDR ditulisi ) jika itu semua digunakan untuk tujuan tersebut. USART sederhana inisialisasi kode contoh berikut menunjukan fungsi satu assembly dan satu C itu mempunyai kesamaan dalam kemampuan. Pada contoh tersebit mengasumsikan bahwa operasi asinkron menggunakan metode poling ( tidak ada interrupt enable ) frame format yang tetap. Boud rate diberikan sebagai fungsi parameter.

Untuk kode assembly, parameter boud rate diasumsikan untuk di simpan pada register r16, r17. Ketika menulis fungsi pada register UCSRC, bit URSEL (MSB) harus diset dalam kaitan dengan pembagian penempatan I/O oleh UBRRH dan UCSRC. Lebih mengedepankan inisialisasi rutin dapat dibuat seperti itu meliputi frame format sebagai parameter, disable interrupt dan lain-lain. Bagai manapun juga banyak aplikasi menggunakan seting tetap boud dan register control, dan untuk aplikasi jenis ini dapat ditempatkan secara langsung pada keseluruhan routine, atau dikombinasikan dengan inisialisasi kode untuk modul I/O yang lain.

SerialUSART (Universal Synchronous and Asynchronous serial Receiver andTransmitter) merupakan salah fitur yang telah disediakan mikrokontroler AVR untuk berkomunikasi serial dengan mode asinkron. Untuk melakukan komunikasi serial UART, maka terdapat register-register yang harus diset nilainya seperti register UBRR (USART Baud Rate Register), UCSRB (USART Control and Status Register B), dan UCSRC (USART Control and Status Register C).

1.UBRR merupakan register 16 bit yang berfungsi untuk menentukan kecepatan transmisi data. UBRR dibagi menjadi dua, yaitu UBRRH dan UBBRL.

Gambar 2.9 Register UBRR2. URSEL adalah bit untuk pemilihan akses UBRR dan UCSRC. Set 0 untuk akses UBRR, hal ini dikarenakan UBRRH dan UCSRC menggunakan lokasi I/O yang sama. 3. UBRR0..11 adalah untuk menyimpan konstanta kecepatan komunikasi serial (baud rate), Untuk mengisi nilai baud rate digunakan rumus.

Gambar 2.10 Perhitungan Nilai Baud Rate4. Register USCRB adalah register yang digunakan untuk mengaktifkan penerimaan dan pengiriman data USART.

Gambar 2.11 Register USCRBRXEN : Jika di set 1 maka akan mengaktifkan penerimaan

TXEN : Jika di set 1 maka akan mengaktifkan pengiriman

RXCIE : Jika di set 1 maka akan mengaktifkan interupsi penerimaa

TXCIE : Jika di set 1 maka akan mengaktifkan interupsi pengiriman

5. Register USCRC adalah register yang digunakan untuk mengatur mode komunikasi USART.

Gambar 2.12 Register USCRC

6. URSEL : Jika di set 1 maka register UCSRC bisa diakses, sebab alamat register UCSRC dan UBRR sama

7. UCSZ2 dan UCSZ0 : Menentukan ukuran karakter yang dikirimkan (Jika UCSZ2UCSZ0 = 000 maka ukuran karakter 5 bit Jika UCSZ2UCSZ0 = 001 maka ukuran karakter 6 bit Jika UCSZ2UCSZ0 = 010 maka ukuran karakter 7 bit Jika UCSZ2UCSZ0 = 011 maka ukuran karakter 8 bit Jika UCSZ2UCSZ0 = 100-110 tidak digunakan dan Jika UCSZ2UCSZ0 = 111 maka ukuran karakter 9 bit)

8. Pengiriman Data Pengiriman data dilakukan per byte menunggu UDR kosong (UDR = register tempat menyimpan data USART, menjadi satu dengan register UBRR). Jika kosong, maka bit UDRE (USART Data Register Empty) pada UCSRA akan set, sehingga siap menerima data baru yang akan dikirim.

9. Penerimaan Data Penerimaan data dilakukan dengan memeriksa bit RXC (USART Receive Complete) pada register UCSRA (USART Control and Status Register A). RXC akan set 1 jika ada data yang siap dibaca. Data yang diterima akan disimpan pada register UDR. SEVEN SEGMENTSeven Segment adalah suatu segmen- segmen yang digunakan menampilkan angka. Seven segment sering dijumpai pada jam digital, penujuk antrian, diplay angka digital dan termometer digital. Seven segmen ini tersusun atas 7 batang LED yang disusun membentuk angka 8 yang penyusunnya menggunakan diberikan lebel dari a sampai g dan satu lagi untuk dot point (DP). Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ). salah satu terminal LED dihubungkan menjadi satu sebagai kaki common.

1. JENIS SEVEN SEGMENT

1. Common Anoda

Semua anoda dari LED dalam seven segmen disatukan secara parallel dan semua itu dihubungkan ke VCC, dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena dihubungkan ke VCC, maka COMMON ANODA ini berada pada kondisi AKTIF LOW (led akan menyala/aktif bila diberi logika 0).

2. Common Katoda

Merupakan kebalikan dari Common Anoda. Disini semua katoda disatukan secara parallel dan dihubungkan ke GROUND. Karena seluruh katoda dihubungkan ke GROUND, maka COMMON KATODA ini berada pada kondisi AKTIF HIGH (led akan menyala/aktif bila diberi logika 1).

3. PRINSIP KERJA

Prinsip kerja seven segmen ialah input biner pada switch dikonversikan masuk ke dalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi decimal, yang nantinya akan ditampilkan pada seven segment. Prinsip kerja seven segment ialah input biner pada switch dikonversikan masuk ke dalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi decimal, yang nantinya akan ditampilkan pada seven segment.

Pada rangkaian tersebut dapat anda perhatikan bagian seven segmen, karena seven segmen yang digunakan adalah common anoda, maka segmen tersebut dapat nyala apabila mendapat logika

0 pada bagian katoda. Dengan kata lain untuk menghidupkan seven segmen yang terkoneksi ke mikrokontroler port paralel maka harus dioutputkan logika 0.Sehingga pada contoh tersebut, agar dapat ditampilkan angka 3 pada seven segmen maka port P0 harus mengeluarkan data 00110000b. Untuk angka SATU (1) maka satu sisi yang aktif dengan 2 segment yaitu b dan c. Untuk angka NOL (0) maka empat sisi yang aktif dengan 6 segment yaitu a,b,c,d,e dan f.Tabel berikut ini memberikan bilangan hexadecimal untuk menampilakan angka 0 sampai 9:

Digit gfedcba abcdefg a b c d e f G

LDRSalah satu jenis resistor yang dapat mengalami perubahan resistansinya apabila mengalami perubahan penerimaan cahaya. Besarnya nilai hambatan pada Sensor Cahaya LDR (Light Dependent Resistor) tergantung pada besar kecilnya cahaya yang diterima oleh LDR itu sendiri.

BAGAIMANA SENSOR CAHAYA LDR BEKERJAResistansi LDR akan berubah seiring den-gan perubahan intensitas cahaya yang mengenainya atau yang ada disekitarnya. Dalam keadaan gelap resistansi LDR sekitar 10M dan dalam keadaan terang sebesar 1K atau kurang. LDR terbuat dari bahan semikonduktor seperti kadmium sulfida. Dengan bahan ini energi dari cahaya yang jatuh menyebabkan lebih banyak muatan yang dilepas atau arus listrik meningkat. Artinya resistansi bahan telah mengalamipenurunan. POTENSIOMETER

Potensiometer adalah transducers , HYPERLINK "http://64.233.189.100/translate_c?hl=id&sl=en&u=http://en.wikipedia.org/wiki/Resistor&prev=/search%3Fq%3Dpotentiometer%26hl%3Did%26sa%3DG&usg=ALkJrhh28yd9L38G1ZlzXpGz1ZEhjnCGqw" \o "Hambat"

tiga terminal dengan kontak geser yang berbentuk pembagi tegangan yang dapat disesuaikan. Jika hanya dua terminal digunakan (satu sisi dan penghapus), ia bertindak sebagai variable penghambatatau Rheostat. Potensiometer yang umumnya digunakan untuk mengontrol perangkat listrik seperti control volume dari radio. Potensiometer dioperasikan oleh mekanisme yang dapat digunakan sebagai posisi misalnya, dalam sebuah joystick.Konstruksi dari potensiometer gulungan kawat berputar.

Penggunaan alat bantu potensiometer banyak digunakan sebagai kontrol pengguna, dan dapat mengontrol berbagai fungsi yang sangat luas peralatannya. tetapi meluasnya dalam penggunaan potensiometer pada barang elektronik konsumen telah menurun pada 1990-an, dengan adanya kontrol digital yang sekarang lebih umum digunakan.

FLOWCHART SCRIPT GAMBAR SIMULASI PROGRAM

KESIMPULAN