![]() |
|
ПрерыванияПоследовательный порт может быть сконфигурирован так, чтобы генерировать или одно прерывание последовательного порта (Serial Port Interrupt), или раздельные прерывания и по передаче (Transmit Interrupt), и по приему (Receive Interrupt). Если прерывание последовательного порта замаскировано, а прерывания по приему и передаче разрешены, флаги RI и TI генерируют раздельные прерывания приема и передачи. Если прерывание последовательного порта разрешено, а прерывания по приему и передаче запрещены, флаг RI и флаг TI генерируют одно и то же прерывание последовательного порта. Когда флаг TI генерирует прерывание, устанавливается бит 5 в регистре SP_STAT. Когда флаг RI генерирует прерывание, устанавливается бит 6 в регистре SP_STAT. Чтобы разрешить индивидуальные прерывания по передаче и приему, установите нулевой TI_MASK и первый RI_MASK биты в регистре маскирования прерываний INT_MASK1 (см. Приложение). Чтобы разрешить прерывание последовательного порта, установите бит SER_MASK в регистре INT_MASK (INT_MASK.6) (см. Приложение). Таблица 5.1
ФРАГМЕНТ ПРОГРАММЫSerial_Out: jbc SP_STAT, 3, Serial_Out ; Тестирование третьего бита регистра состояния (Буфер пуст?) stb data, SBUF ; ОК! Передаем байт ret |