У данной железки есть расширенный универсальный последовательный интерфейс (Enhanced Universal Serial Communication Interface), который в дальнейшем мы будем звать eUSCI, также как и в документации любезно предоставленной для скачивания на сайте TI.
Конечно же нам никто не запрещает организовать последовательный порт по старинке, используя Digital I/O и таймер. Хуже того, на плате перемычки по умолчанию выставлены именно на этот вариант.
В 2012 году компьютеры с последовательным портом занесены в красную книгу, поэтому LaunchPad имитирует его через тот же USB порт. Это немного попсово, но удобно.
Для начала скачаем PuTTY или какой-то другой терминал с поддержкой последовательного порта. Запустим его, выберем нужный порт, настроим на 9600-8-N-1. [Я очень надеюсь, что ты еще помнишь что это такое]
Две небольшие процедуры, которые разберем чуть позже. Ну и код для их вызова тоже.
; set up UART
CALL #UARTInit
MOV.B #'A',R12
CALL #UARTTX
MOV.B #'B',R12
CALL #UARTTX
MOV.B #'C',R12
CALL #UARTTX
; Configure UART with the following:
; P1.1 - RX
; P1.2 - TX
UARTInit:
MOV.B &CALBC1_8MHZ, &BCSCTL1
MOV.B &CALDCO_8MHZ, &DCOCTL
BIS.B #UCSWRST,&UCA0CTL1 ; disable eUSCI
; set function select register, 0 = I/O module
; 1 = Peripheral module
; so, set 1 to P1.1 and P1.2 to enable eUSCI
BIS.B #6, &P1SEL
BIS.B #6, &P1SEL2
BIS.B #4,&P1DIR
BIS.B #UCSSEL_2, &UCA0CTL1 ; SMCLK
MOV.B #52, &UCA0BR0 ; 8MHz, OSC16, 9600
CLR.B &UCA0BR1
MOV.B #UCOS16+UCBRF0, &UCA0MCTL
BIC.B #UCSWRST, &UCA0CTL1 ; now, enable eUSCI
RET
; transmit a byte in R12
UARTTX:
BIT.B #UCA0TXIFG,&IFG2 ; USCI_A0 TX buffer ready?
JZ UARTTX
MOV.B R12, &UCA0TXBUF
RET
END