Program USART Pembahasan Software

4.3. Pembahasan Software

Pada tugas akhir ini software yang digunakan adalah Code Vision AVR Compiler bahasa C. Software ini digunakan untuk membuat program pada IC mikrokontroler yang akan digunakan. IC yang akan digunakan pada modul komunikasi serial adalah mikrokontroler ATmega16. Berikut ini merupakan pembahasan dari program modul komunikasi serial USART dan I2C.

4.3.1. Program USART

Berikut ini merupakan pembahasan dari program modul komunikasi serial untuk bagian usart. Pada program kode diatas merupakan library yang akan digunakan. Berhubung yang akan digunakan adalah IC ATmega16, delay, LCD dan fungsi sprintf maka dituliskan include librarinya masing-masing. Ini adalah bagian dari inisialisasi USART untuk ATmega16, penulisan programnya otomatis setelah melakukan setting awal pada codevision AVR Nilai baud rate dapat diatur dengan menggunakan standar kecepatan yang disediakan, diantaranya 1.200, 2.400, 4.800, 9600, 19.200, 38.400, 57.600, dan 115.200 bps. Salah satu kecepatan yang paling umum digunakan adalah 9.600 bps. Umumnya baud rate yang digunakan dalam pengiriman data antar mikrokontroler adalah 9600 bps. Karena baud rate 9600 bps merupakan standar unuk komunikasi serial. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI char tx_buffer [80] Transmisi Data untuk I2C, char rx_buffer [80] Data Yang diterima dari I2C, char dataString [16] Penampung untuk komunikasi USART, char data1 [33],data2[33],data3[33],data4[33] penampung untuk setiap data yang diterima int suhu,oli, variabel untuk memeriksa kondisi suhu dan level oli , float tekanan,air Variabel untuk memeriksa kondisi tekanan dan level air. Membersihkan variabel penampung untuk menerima data selanjutnya yang dikirim Menerima dan memeriksa karakter kemudian mengubahnya kedalam string getString; PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI sprintf data1,s,dataString Menyimpan data suhu pada data1 getString; sprintf data2,s,dataString Menyimpan data tekanan pada data2 suhu=atoidata1 Ubah data1 menjadi integer untuk suhu tekanan=atofdata2 Ubah data2 menjadi float untuk tekanan Periksa kondisi boiler jika nilai suhu 20 atau suhu 200 maka buzzer akan bunyi on , jika nilai tekanan 4 atau tekanan 9 maka buzzer akan bunyi on PORTA.0=1 buzzer akan aktif on, PORTA.0=0 buzzer akan non aktif off. Menampilkan data yang diambil pada LCD Tampilkan data untuk suhu, tampilkan data untuk tekanan, PORTA.1=0 merupakan kondisi awal dari buzzer PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI sprintftx_buffer, T=sC P=sb\n A=st O=sm3,data1,data2,data3,data4 Untuk mengirimkan data boiler ke slave menggunakan komunikasi serial I2C. if twi_master_transTWI_SLAVE_ADDR,tx_buffer,strlentx_buffer,rx_buffer,sizeofrx_buff er { Mengirim data ke slave dan menunggu respon dari slave if twi_rx_index { Respon yang akan dilakukan jika I2C tidak error if twi_rx_index { rx_buffer[twi_rx_index]=NULL; } } } Pastikan data terakhir NULL karakter

4.3.2. Program I2C