Gambar 2.4.Mode Fast PWM [8]
2.2.5. Komunikasi Serial USART
Komunikasi USART Universal Synchronous and Asynchronous serial Receiver and Transmitter
adalah fasilitas komunikasi serial yang disediakan oleh mikrokontroler Atmega32, baik secara sinkron maupun asinkron.Komunikasi seri dapat dibedakan
menjadi 2 macam, yaitu komunikasi data seri sinkron dan komunikasi data asinkron. Dikatakan sinkron jika sisi pengirim dan sisi penerima ditabuh clocked oleh penabuh
clock yang sama, satu sumber penabuh, data dikirim beserta penabuh. Dikatakan asinkron jika sisi pengirim dan sisi penerima ditabuh oleh penabuh yang terpisah dengan
frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi[8]. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama.
Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut: a. Operasi full duplex mempunyai register receive dan transmit yang terpisah
b. Mendukung kecepatan multiprosesor c. Mode kecepatan berorde Mbps
d. Operasi asinkron atau sinkron e. Operasi master atau slave clock sinkron
f. Dapat menghasilkan baud-rate laju data dengan resolusi tinggi g. Modus komunikasi kecepatan ganda pada asinkron
2.2.5.1. Inisialisasi USART
Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi
USART. Register-register yang digunakan untuk komunikasi USART antara lain[8]:
USART IO Data Register UDR
UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan TXB atau
tempat data diterima RXB sebelum data tersebut dibaca.
Gambar 2.5. Register UDR [8]
USART Control and Status Register A UCSRA
Gambar 2.6. Register UCSRA [8] Penjelasan bit penyusun UCSRA[8]:
a. RXC USART Receive Complete Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan
akan berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk membangkitkan interupsi RX jika diaktifkan dan akan berlogika nol secara
otomatis bersamaan dengan eksekusi vektorinterupsi yang bersangkutan. b. TXC USART Transmit Complete
Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis
bersamaan dengan eksekusi vektor interupsi yang bersangkutan. c. UDRE USART Data Register Empty
Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam
keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya.
d. FE Frame Error Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika
stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan
bernilai 0 ketika stop bit data yang diterima berlogika nol. e. DOR Data OverRun
Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan bernilai satu ketika terjadi tumpang tindih data.
f. PE Parity Error
Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila
bit paritas digunakan. g. U2X Double the USART Transmission Speed
Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol.
h. MPCM Multi Processor Communication Mode Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang
diterima oleh USART tidak mengandung informasi alamat akan diabaikan.
USART CONTROL AND STATUS REGISTER B UCSRB
Gambar 2.7. Register UCSRB [8] Penjelasan bit penyusun UCSRB[8]:
a. RXCIE RX Complete Interrupt Enable Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu
jika diaktifkan dan berlogika nol jika tidak diaktifkan. b. TXCIE TX Complete Interrupt Enable
Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan.
c. UDRIE USART Data Register Empty Interrupt Enable Bit ini berfungsi untuk mengaktifkan interupsi data register kosong,
berlogika satu jika diaktifkan dan sebaliknya. d. RXEN Receiver Enable
Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin IO karena
sudah digunakan sebagai saluran penerima USART.
e. TXEN Transmitter Enable Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin
diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin IO karena sudah digunakan sebagai saluran pengirim USART.
f. UCSZ2 Character Size
Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan.
Tabel 2.2. Penentuan Ukuran Karakter UCSZ[2..0]
Ukuran Karakter dalam bit
5 1
6 10
7 11
8 100-110
Tidak dipergunakan 111
9 g. RXB8 Receive Data Bit 8
Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR.
h. TXB8 Transmit Data Bit 8 Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10
bit, dan bit ini harus ditulis dahulu sebelum membaca UDR.
USART CONTROL AND STATUS REGISTER C UCSRC
Gambar 2.8. Register UCSRC [8] Penjelasan bit penyusun UCSRC[8]:
a. URSEL Register Select : Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana
untuk menulis atau membaca register UCSRC maka bit harus berlogika satu. b. UMSEL USART Mode Select
Bit pemilih mode komunikasi serial antara sinkron dan asinkron.
c. UPM[1…0] Parity Mode
Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmittter
USART akan membuat paritas yang akan digunakan secara otomatis. d. USBS Stop Bit Select
Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan. e. UCSZ1 dan UCSZ0
Merupakan bit pengatur jumlah karakter serial Bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam
register UCSRB. f.
UCPOL Clock Parity Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan
perubahan data keluaran dan sampel masukkan, dan clock sinkron XCK[6].
2.3. LCD Liquid Crystal Display