Лабораторные работы / Лаба 18 / Лабораторная работа №18
.docxЗаботин Е. Л., ЭМ-31
Вариант 11
Лабораторная работа №18
Изучение последовательного порта архитектуры MCS-51.
Реализация передатчика последовательного канала связи
Цель работы: Изучить принципы программирования последовательных портов в микроконтроллерах с архитектурой MCS-51. Получить практические навыки в составлении и отладке программ на ассемблере.
Ход работы:
Определить настройки необходимых модулей. Произвести расчёт констант, необходимых для настройки скорости работы последовательного порта. При расчете констант тактовую частоту контроллера принять равной 11,059 МГц.
Составить программу, осуществляющую передачу массива данных из внутренней памяти данных через последовательный порт в асинхронном режиме с заданной скоростью.
Размер массива, байт: 23
Скорость передачи, бит/с: 1200
Расчет константы необходимой для работы с последовательным портом
Выберем для таймера режим работы 2 и для последовательного порта режим работы 1
f1, 3 = (2SMOD/32)*(fрез/12)/(256-(TH1))
f1, 3 – скорость передачи
SMOD – удвоенная скорость передачи
fрез – тактовая частота контролера(f1, 3 = 1,059 МГц)
TH1 – константа необходимая для работы с последовательным портом
TH1=256-(2SMOD/32)*(fрез/12)/ f1, 3 =17h
Листинг программы:
ORG 0000h
MOV R1, #17h
MOV R2, #17h
MOV R0, #30h
M0:
MOV @R0,A
INC R0
INC A
DJNZ R2, M0
MOV R0, #30H
MOV TMOD, #10h
MOV TCON, #00H
MOV TH1, #0E8h
MOV PCON, #00H
MOV TCON, #01000000b
MOV SBUF, @R0
INC R0
DJNZ R1, M1
M1:
JNB SCON.1, $
MOV SBUF, @R0
INC R0
DJNZ R1, M1
JMP $
END
Результат выполнения:
Рисунок 1 – Задание значений, которые будут передаваться через последовательный порт
Рисунок 2 – Инициализация таймера
Рисунок 3 – Задание константы и запуск таймера
Рисунок 4 – Передача данных через последовательный порт
Вывод: в ходе проделанной работы изучили принципы программирования последовательных портов в микроконтроллерах с архитектурой MCS-51 и получили практические навыки в составлении и отладке программ на ассемблере.