void main()
{
  // initialize
  ...
  // workloop
  for(;;)
  {
  ....
  }
}

the 'standard way to send data w/o interrupts is
  while (more_data_to_output)
  {
    while (!TI);
    SBUF = next_character;
  }

in an ISR it will be
  if (TI)
  {
    SBUF = next_character;
  }