Hi This question is about serial interrupts on the 8051 based extended memory chip (P87C51Mx2). The transmit interrupt TI_0 is supposed to be set when a character is written to S0BUF. This is not happening. My initialization settings are as follows (I'm initializing both the UART channels)
T2CON = 0x30; RCAP2H = 0xFF; // BAUD for UART0 - 9600 RCAP2L = 0xB8; S0CON = 0x50; S1CON = 0x50; TXD = 1; RXD = 1; TXD1 = 1; RXD1 = 1; ES0 = 1; ES1 = 1; S0STAT = 0x00; S1STAT = 0x00; TR2 = 1; BRGCON = 0x00; //UART1 baud - 38400 BRGR1 = 0x01; BRGR0 = 0x10; BRGCON = 0x01;
Sundeep, I am not familiar with this chip, but is it not the case that TI and RI are associated with SBUF. Whereas, I would expect S0BUF to be associated with TI_0 and RI_0. If your are setting TI to get your ISR going then it will be invoked once. However, on completion of the transmission from S0BUF, it will be TI_0 that gets set not TI. Could it be, therefore, that you are also not using the correct interrupt number?