|
|||||
Скорость обмена.. UBBR=XTAL/(16*baudrate)-1 для U2X=0 UBBR=XTAL/(8*baudrate)-1для U2X=1 ⇐ ПредыдущаяСтр 4 из 4 Скорость обмена.
Вычисляется требуемое значение по формуле: UBBR=XTAL/(16*baudrate)-1 для U2X=0 UBBR=XTAL/(8*baudrate)-1для U2X=1 Где: Ошибки передачи
Напишем программу отправки данных по UART.
Передадим в порт букву: U
device ATmega8 . include " m8def. inc" ; Internal Hardware Init ====================================== . equ XTAL = 8000000 . equ baudrate = 9600 . equ bauddivider = XTAL/(16*baudrate)-1 uart_init: LDI R16, low(bauddivider) OUT UBRRL, R16 LDI R16, high(bauddivider) OUT UBRRH, R16 LDI R16, 0 OUT UCSRA, R16 ; Прерывания запрещены, прием-передача разрешен. LDI R16, (1< < RXEN)|(1< < TXEN)|(0< < RXCIE)|(0< < TXCIE)|(0< < UDRIE) OUT UCSRB, R16
; Формат кадра - 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор LDI R16, (1< < URSEL)|(1< < UCSZ0)|(1< < UCSZ1) OUT UCSRC, R16
; Процедура отправки байта
uart_snt: SBIS UCSRA, UDRE ; Пропуск если нет флага готовности RJMP uart_snt ; ждем готовности - флага UDRE
ldi R16, ‘U’; наше число
OUT UDR, R16; шлем байт Nop Nop Nop Nop Nop Nop Nop
RET ; Возврат
Наберите код программы в AVR Studio и выполните ее там обращая внимание на регистры описанные выше.
Рисунок 1 – Выполнение программы в AVR Studio Соберите установку в ISIS и посмотрите вывод буквы U на терминале.
Рисунок 2 – Установка работы
Рисунок 3 – Передача данных в терминал ( буквы U )
|
|||||
|