Помогите пожалуйста начинающему. Я написал тестовую програмку для работы с UART для микроконтроллера Atmel AT89S8252, но микроконтроллер не отсылает назад полученный байт (то что микроконтроллер получает байт я проверил вывев его на порт Р2) . Для написания использовал среду разроботки IAR Embedded Workbench for MCS-51 Evaluation.
Текс программы:
#include <ioAT89S8252.h>
char y;
int main( void )
{
SCON=0x50;//выбор 1 режима UART и установка бита REN в 1
TMOD=TMOD | 0x20;//установка таймера/счётчика 1 в режим работы таймера во 2 режим для тактирования обмена данными
TH1=0xfd;//для скорости обмена данными 9600 бод при бите SMOD==0 (скорость не удваивается) регистра PCON при частоте кварцевого резонатора - 11,059200 МГц
TL1=0xfd;
IE_bit.ES=1;
IE_bit.EA=1;
TCON_bit.TR1=1;//запуск таймера 1
P2=0;
while(1);
}
#pragma vector=0x23
__interrupt void SCON_int (void) //прерывание происходит если TI=1 или RI=1 или SPIF=1
{
if (SCON_bit.RI == 1)
{
SCON_bit.RI = 0; /* clear reception flag for next reception */
y = SBUF; /* Read receive data */
P2=y;
SBUF = y;/* Send back same data on uart*/
SCON_bit.TI = 0;
}
else SCON_bit.TI = 0; /* if emission occur */
} /* clear emission flag for next emission*/
Если кто-то занет в чём проблема или ошибка напишите пожалуйста. Заранее благодарен за ответ.