/******************************************************* * Copyright (c) 2004 Atmel. * This file is an example to use uart with timer1. * UART will echo a received data. * This file can be parsed by Doxygen for automatic documentation * generation. * Put here the functional description of this file within the software * architecture of your program. ********************************************************/ /* I N C L U D E S */ #include "8051.h" char uart_data; /******************************************************** * FUNCTION_PURPOSE: This file set up uart in mode 1 (8 bits uart) with * timer 1 in mode 2 (8 bits auto reload timer). * FUNCTION_INPUTS: void * FUNCTION_OUTPUTS: void ********************************************************/ void main (void) SCON = 0x50 ;/* uart in mode 1 (8 bit), REN=1 */ TMOD = TMOD | 0x20 ; /* Timer 1 in mode 2 */ TH1 = 0xFD ; /* 9600 Bds at 11.059MHz */ TL1 = 0xFD ; /* 9600 Bds at 11.059MHz */ ES = 1 ; /* Enable serial interrupt*/ EA = 1 ; /* Enable global interrupt */ TR1 = 1 ; /* Timer 1 run */ while(1) ; /* endless */ /******************************************************* * FUNCTION_PURPOSE: serial interrupt, echo received data. * FUNCTION_INPUTS: P3.0(RXD) serial input * FUNCTION_OUTPUTS: P3.1(TXD) serial output *******************************************************/ void serial_IT(void) interrupt 4 if (RI == 1) { /* if reception occur */ RI = 0; /* clear reception flag for next reception */ uart_data = SBUF;/* Read receive data */ SBUF = uart_data;/* Send back same data on uart*/ else TI = 0 ;/* if emission occur */ } /* clear emission flag for next emission*/Serial Communication RS232 UART with Mode 1 Timer 1/************************************************** * Copyright (c) 2004 Atmel. * This file is an example to use uart with timer2. * UART will echo a received data. * This file can be parsed by Doxygen for automatic documentation * generation. * Put here the functional description of this file within the software * architecture of your program. ***************************************************/ /* @section I N C L U D E S */ #include "8051.h" char uart_data; /*************************************************** * FUNCTION_PURPOSE: This file set up uart in mode 1 (8 bits uart) with * timer 2 in baud rate generator mode. * FUNCTION_INPUTS: void * FUNCTION_OUTPUTS: void ***************************************************/ void main (void) SCON = 0x50 ; /* uart in mode 1 (8 bit), REN=1 */ T2CON &= 0xF0; /* EXEN2=0; TR2=0; C/T2#=0; CP/RL2#=0; */ T2CON |= 0x30 ; /* RCLK = 1; TCLK=1; */ TH2=0xFF ; /* init value */ TL2=0xFD ; /* init value */ RCAP2H=0xFF ; /* reload value, 115200 Bds at 11.059MHz */ RCAP2L=0xFD ; /* reload value, 115200 Bds at 11.059MHz */ ES = 1 ; /* Enable serial interrupt */ EA = 1 ; /* Enable global interrupt */ TR2 = 1 ; /* Timer 2 run */ while(1) ; /* endless */ /************************************************ * FUNCTION_PURPOSE: serial interrupt, echo received data. * FUNCTION_INPUTS: P3.0(RXD) serial input * FUNCTION_OUTPUTS: P3.1(TXD) serial output *************************************************/ void serial_IT(void) interrupt 4 if (RI == 1) { /* if reception occur */ RI = 0 ; /* clear reception flag for next reception */ uart_data = SBUF; /* Read receive data */ SBUF = uart_data; /* Send back same data on uart*/ else TI = 0 ; /* if emission occur */ } /* clear emission flag for next emission*/