Berikut ini saya akan memberikan tutorial untuk mengirimkan data serial dari mikrokontroler ke komputer dan menerima data serial dari komputer ke mikrokontroler, menggunakan bahasa C dengan compiller AVR GCC atau winAVR.
Rangkaian skematik untuk IC MAX232 sebagai pengkonversi tegangan antara mikrokontroler dan port serial komputer, sebagai berikut:
Listing programnya dengan winAVR atau AVRGCC sbb:
a) Mengirimkan data ke komputer
- #include<util/delay.h>
- #include<stdlib.h>
- #include<avr/io.h>
- #include<avr/pgmspace.h>
- #include<avr/interrupt.h>
- #define F_CPU 8000000UL
- #define USART_BAUDRATE 9600
- #define BAUD_PRESCALE (((F_CPU/(USART_BAUDRATE*16UL)))-1)
- void initserial()
- {
- // Aktifkan transmitter dan receiver
- UCSRB |= (1 << RXEN) | (1 << TXEN);
- // Ukuran karakter sebesar 8 bit
- UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1);
- // Load 8-bit yang lebih rendah dari nilai baud rate ke byte rendah dari UBRR register
- UBRRL = BAUD_PRESCALE;
- // Load 8-bit yang lebih atas dari nilai baud rate ke byte tinggi dari UBRR register:
- UBRRH = (BAUD_PRESCALE >> 8);
- }
- void uart_putc(unsigned char c)
- {
- while(!(UCSRA & (1 << UDRE)));
- UDR = c;
- }
- void uart_puts (char *s)
- {
- while (*s) {
- uart_putc(*s);
- s++;
- }
- }
- int main()
- {
- unsigned char tempserial;
- initserial();
- for(;;)
- {
- if (bit_is_set(UCSRA,RXC))
- {
- uart_puts(“Test Serial\r”);
- _delay_ms(5000);
- uart_puts(“Mengirim data ke komputer”);
- _delay_ms(5000);uart_putc(13);
- uart_putc(10);
- }
- }
- }
b) Menerima data dari komputer
Program utama int main() diganti sbb:
- int main()
- {
- unsigned char tempserial;
- initserial();
- DDRB=0x00;
- uart_puts("Test Serial Menerima Data\r");
- uart_putc(13);
- uart_putc(10);
- for(;;)
- {
- if (bit_is_set(UCSRA,RXC))
- {
- tempserial=UDR;
- UDR = tempserial;
- //Data yang diterima dikirimkan kembali ke port serial
- }
- }
- }
Untuk menampilkan data serial secara langsung dari mikrokontroler ke komputer dapat digunakan Hyperterminal. Caranya dengan pilih Start → All Programs → Accessories → Communications → Hyperterminal.
Jika Hyperterminal baru pertama kali dibuka, maka akan muncul pengaturan lokasi, diisi bebas.
Setelah itu akan muncul gambar sbb:
Tuliskan nama Hyperterminal bebas dan pilih gambar telepon merah dan kuning. Kemudian pilih COM yang terhubung dengan kabel serial, misalnya COM1.
Jika komunikasi serial berhasil maka pada Hyperterminal akan ditampilkan tulisan yang dikirim dari mikrokontroler ke komputer.
Terkadang terjadi kegagalan dengan komunikasi serial karena kesalahan pengaturan fuse bit, jika memakai crystal internal 8MHz maka lakukan pengaturan fuse bit untuk crystal 8MHz, jika menggunakan crystal external 11,0592MHz maka lakukan pengaturan fuse bit external 11,0592MHz.
Tempat Jual Komponen dan Elektronik.
-ayuchan-