/* * Project name: UART (Simple usage of UART module library functions) * Copyright: (c) Mikroelektronika, 2011. * Revision History: 20110929: - initial release (FJ); * Description: This code demonstrates how to use uart library routines. Upon receiving data via RS232, MCU immediately sends it back to the sender. * Test configuration: MCU: PIC18F45K22 http://ww1.microchip.com/downloads/en/DeviceDoc/41412D.pdf Dev.Board: EasyPIC7 - ac:UART http://www.mikroe.com/eng/products/view/757/easypic-v7-development-system/ Oscillator: HS-PLL 32.0000 MHz, 8.0000 MHz Crystal Ext. Modules: None. SW: mikroC PRO for PIC http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/ * NOTES: - Turn on RX and TX UART switches (SW1.1 and SW2.1). (board specific) - Put RX and TX UART jumpers (J3 and J4) in RS-232 or USB position, depending on your choice (board specific). */ sbit LCD_RS at LATB4_bit; sbit LCD_EN at LATB5_bit; sbit LCD_D4 at LATB0_bit; sbit LCD_D5 at LATB1_bit; sbit LCD_D6 at LATB2_bit; sbit LCD_D7 at LATB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; char uart_rd; char uart_putty[]="I display whatever you typen"; char txt[6]="Start"; char txtToDisplay[200] = ""; int i=0; void main() { //ANSELC = 0; // Configure PORTC pins as digital ADCON1 = 0x0F; Lcd_Init(); // Initialize Lcd Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); Lcd_Out(1,1,txt); UART1_Init(9600); // Initialize UART module at 9600 bps Delay_ms(100); // Wait for UART module to stabilize UART1_Write_Text(uart_putty); UART1_Write(13); UART1_Write(10); while (1) { // Endless loop if (UART1_Data_Ready()) { // If data is received, uart_rd = UART1_Read(); // read the received data, UART1_Write(uart_rd); txtToDisplay[i] = uart_rd; Lcd_Out(2,1,txtToDisplay); i++; // and send data via UART } } }