#include "mc8051fun.h" //#include #include void uart_init(long fosc, long baud) { TMOD = 0x20; // Timer 1 in Mode 2 TH1 = 0xFD; // 9600 baud rate TL1 = 0xFD; // Initial value (not necessary) TR1 = 1; // Start Timer 1 SCON = 0x50; // 8-bit data, 1 stop bit, REN enabled return; TMOD = 0; /* Timer 1, 8-bit auto reload mode */ // P_SW1 |= (1 << 6); // move UART1 pins -> P3_6:rxd, P3_7:txd // UART1 use Timer2 // T2L = (65536 - (fosc / 4 / baud)) & 0xFF; // T2H = (65536 - (fosc / 4 / baud)) >> 8; SM0 = 0; SM1 = 1; // serial mode 1: 8-bit async // AUXR |= 0x14; // T2R: run T2, T2x12: T2 clk src sysclk/1 // AUXR |= 0x01; // S1ST2: T2 is baudrate generator SCON = 0x50; TMOD |= T1_M1; TI=1; TCLK=0; RCLK=0; // TBCK=0; // RBCK=0; // TH1=0xFD; //SMOD0=0; ES = 1; // enable uart1 interrupt EA = 1; // enable interrupts REN = 1; }