ВУЗ:
Составители:
Примечания:
1. Регистр TSR не отображается на память и не доступен для чтения.
2. Флаг TXIF устанавливается только когда TXEN=1 и сбрасывается
автоматически после загрузки новых данных в TXREG.
Рекомендуемая последовательность действий для передачи данных:
1) Установить TRISC<6> и TRISC<7> для использования их в качестве
UASRT
2) Установить скорость передачи с помощью регистра SPBRG и бита
BRGH
3) Выбрать асинхронный режим сбросом бита SYNC (TXSTA<4>)
4) Разрешить работу модуля USART установкой бита SPEN (RCSTA<7>)
5) Если необходимо, разрешить прерывания установкой бита TXIE
(PIE1<4>)
6) Если передача 9-разрядная, то установить бит TX9 (TXSTA<6>)
7) Разрешить передачу установкой TXEN (TXSTA<5>); автоматически
устанавливается флаг TXIF (PIR1<4>)
8) Если передача 9-разрядная, записать 9-й бит данных в TX9D
(TXSTA<0>)
9) Записать данные в регистр TXREG
Примечание.
Если используются прерывания, то биты GIE и PEIE в регистре
INTCON должны быть установлены.
Регистры и биты, связанные с работой передатчика USART в
асинхронном режиме:
Адрес
Имя Бит 7
Бит 6
Бит 5
Бит 4
Бит 3 Бит 2 Бит 1 Бит 0
Сброс
POR, BOR
0Bh,
8Bh,
10Bh,
18Bh
INTCON
GIE PEIE
T0IE
INTE
RBIE T0IF INTF BRIF 0000000x
0Ch PIR1 PSPIF
ADIF
RCIF
TXIF
SSPIF CCP1F TMR2IF
TMR1IF
00000000
8Ch PIE1 PSPIE
ADIE
RCIE
TXIE
SSPIE CCP1E TMR2IE
TMR1IE
00000000
18h RCSTA
SPEN
RX9 SREN
CREN
ADDEN
FERR OERR RX9D 0000000x
19h TXREG
Регистр данных передатчика USART 00000000
98h TXSTA
CSRC
TX9 TXEN
SYNC
- BRGH TRMT
TX9D 0000-010
99h SPBRG
Регистр генератора скорости USART 00000000
Пример настройки передатчика USART на скорость обмена 2400 бод с
кварцевым резонатором 3,68 МГц:
BSF STATUS, RP0
BCF STATUS, RP1 ; выбрать 1-й банк памяти
BSF TRISC,7
BSF TRISC,6 ; используем эти выводы как USART
; задание скорости обмена
XTAL_FREQ = D’3680000’
BAUDRATE = D’2400’
SPBRG_VALUE = (XTAL_FREQ/(BAUDRATE*D’64’))-1
MOVLW SPBRG_VALUE
MOVWF SPBRG
BCF TXSTA, SYNC ; выбор асинхронного режима
BCF STATUS, RP0 ; выбор 0-го банка памяти
BSF RCSTA, SPEN ; включить модуль USART
BSF STATUS, RP0 ; выбор 1-го банка памяти
BSF TXSTA, TXEN ; разрешить работу передатчика
Пример передачи байта по USART (данные для отправки находятся в
переменной TX_DATA):
MOVF TX_DATA, W ; поместить в аккумулятор данные из TX_DATA
TRANSMIT
BTFSS PIR1, TXIF ; ожидание флага готовности передатчика
GOTO TRANSMIT ;
MOVWF TXREG ; загрузить данные для отправки в TXREG
Асинхронный приемник USART
Данные из линии подаются на вход RC7/RX/DT в блок
восстановления данных – скоростной сдвиговый регистр, работающий на
частоте, в 16 раз превышающей скорость передачи.
Включение приемника производится установкой бита CREN регистра
RCSTA.
В приемнике главным является регистр RSR (Receive Shift Register).
После получения стопового бита данные переписываются в регистр
RCREG, если он пуст. После этого выставляется флаг прерывания RCIF
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »