Страницу Назад
Поискать другие аналоги этой работы

300

Лабораторная работы №1 и 2 по дисциплине: Микропроцессорные системы (часть 2) (ДВ 1.2) 2022 г.

ID: 243478
Дата закачки: 16 Марта 2024
Продавец: Alexey312451 (Напишите, если есть вопросы)
    Посмотреть другие работы этого продавца

Тип работы: Работа Лабораторная
Форматы файлов: Microsoft Office
Сдано в учебном заведении: СибГУТИ

Описание:
Лабораторная работа №1

Вывод информации через последовательный порт
1. ЦЕЛЬ РАБОТЫ.

1.1. Изучить особенности работы последовательных портов микроконтроллера.

2. ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА К РАБОТЕ

2.1. По конспекту лекций и рекомендуемой литературе изучить схему последовательного порта микроконтроллеров.

2.2. По конспекту лекций и рекомендуемой литературе изучить схемы согласования логических уровней последовательных портов микроконтроллера и персонального компьютера.

2.3. Изучить особенности использования последовательного порта микроконтроллера.

2.4. Составить программу, выводящую надпись на экран компьютера.

3. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО РАБОТЕ С ЛАБОРАТОРНЫМ СТЕНДОМ ЛЭСО1.

Для связи микроконтроллера и универсального компьютера чаще всего используется последовательный порт. Это связано с двумя причинами. Первая – это минимальное количество проводов, требующееся для связи между этими устройствами. Вторая – это высокая защищённость последовательного порта от повреждений при подключении различных устройств.

Однако при работе с последовательным портом микроконтроллера возникает ряд трудностей. Основная трудность заключается в том, что последовательный порт микроконтроллера использует логические TTL уровни (Уровнем логического нуля считаются напряжение ниже 0.4В. Уровнем логической единицы считается напряжение больше 2,4В). Последовательный порт компьютера при передаче логического нуля формирует напряжение +10В, а при передаче логической единицы формирует напряжение –10В.

Для согласования логических уровней COM порта компьютера и последовательного порта микроконтроллера в настоящее время используются специализированные микросхемы.

3.1. Настройка последовательного порта микроконтроллера.

Через универсальный последовательный порт микроконтроллера осуществляются прием и передача информации, представленной в последовательном коде (младшими битами вперед). Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного. Но если к моменту окончания приема байта предыдущий не был считан из регистра SBUF, то он будет потерян. Работой последовательного порта управляют три регистра:

· Регистр управления/статуса приемопередатчика SCON

· Бит SMOD регистра управления мощностью PCON

· Буферный регистр приемопередатчика SBUF

Последовательный порт может работать в четырех различных режимах, но для связи микроконтроллера с компьютером подходит только режим 1. В этом режиме могут быть переданы через внешнюю ножку TXD или приняты через внешнюю ножку RXD 8 бит данных. При приеме, стоп-бит записывается в флаг RB8 регистра SCON. Скорость передачи последовательного порта в режиме 1 задаётся в AduC842 таймером Т3 или таймером Т1 или Т2.

Последовательный порт начинает передачу после любой команды, которая осуществляет запись информации в регистр SBUF.

Прием начинается с приходом старт-бита, если в бит REN регистра SCON записана логическая единица.

Управление режимом работы приемопередатчика осуществляется через регистр управления последовательного порта SCON. Этот регистр содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемопередатчика (RI и ТI). Бит TI устанавливается аппаратно после завершения передачи одного байта. При передаче нескольких байтов этот бит должен сравниваться с 1, и только после сравнения можно передавать следующий байт. Перед передачей очередного байта бит TI следует программно обнулить. Формат и адреса бит регистра SCON приведён на следующем рисунке:



Функциональное назначение бит регистра управления/статуса приемопередатчика SCON приведены в следующей таблице:

Символ

Позиция

Имя и назначение

SM0

SCON.7

Биты управления режимом работы приемопередатчика. Устанавливаются/сбрасываются программно см. примечание 1

SM0

SM1

Режим работы приемопередатчика

0

0

Сдвигающий регистр расширения ввода/вывода

0

1

8 битовый приемопередатчик, изменяемая скорость передачи

1

0

9 битовый приемопередатчик. Фиксированная скорость передачи

1

1

9 битовый приемопередатчик, изменяемая скорость передачи


SM1

SCON.6

SM2

SCON.5

Бит управления режимом приемопередатчика. Устанавливается программно для запрета приема сообщения, в котором девятый бит имеет значение 0

REN

SCON.4

Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных

TB8

SCON. 3

Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме 9-битового передатчика

RB8

SCON.2

Прием бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме 9-битового приемника

TI

SCON. 1

Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания

RI

SCON.0

Флаг прерывания приемника. Устанавливается аппаратно при приеме байта. Сбрасывается программно после обслуживания прерывания

Для того, чтобы включить первый режим работы последовательного порта, достаточно выполнить следующую команду присваивания:

SCON=0x40|//выбрать 8-ми битный режим работы последовательного порта

0x10|//разрешить работу приёмника

0x02;// разрешить запись первого байта в передатчик

Конечно, можно занести сразу готовую константу, но намного удобнее для понимания работы с регистром управления последовательного порта расписывать каждый бит отдельно. Пример использования готовой константы приведён ниже:

SCON=0x52;//8 bit UART, разрешение работы приёмника и передатчика

Для задания точных временных интервалов при работе последовательного интерфейса UART в ADuC842 имеется специальный таймер T3. Временные интервалы, формируемые таймером определяются двумя регистрами специальных функций: T3FD и T3CON. Формирование импульсов, синхронизирующих работу UART определяется следующей схемой:



Из схемы видно, что таймер T3 представляет собой несколько делителей частоты (делители на 2, на (1+T3FD/64), на 2 в степени DIV, на 16. В результате получается частота импульсов на линиях передатчика TX и приемника RX. Величина DIV определяется тремя младшими разрядами регистра T3CON.

Бит

Мнемоника

Описание

T3CON.7

T3BAUDEN

Бит включения Таймера 3. Если T3BAUDEN=1, то Таймер 3 генерирует опорную частоту UART, при этом биты PCON.7, T2CON.4 и T2CON.5 игнорируются. Если T3BAUDEN=0, то опорная частота UART генерируется согласно стандартной реализации в ядре 8052.

T3CON.6



Биты, зарезервированные для будущего использования.

T3CON.5



T3CON.4



T3CON.3



T3CON.2

T3CON.1

T3CON.0





Целочисленный делить DIV

DIV2 DIV1 DIV0 DIV

0 0 0 0

0 0 1 1

0 1 0 2

0 1 1 3

1 0 0 4

1 0 1 5

1 1 0 6

1 1 1 7

Таким образом, скорость передачи последовательного порта можно определить по следующей формуле:



Где ActualBaundRate – скорость передачи данных

fosc – частота ядра

При включении питания микроконтроллера fosc =2.097152 МГц.

Если задать T3FD=0x2D16 = 4510 , а DIV = 3, то

Скорость передачи будет равна

ActualBaundRate (2•2.097152 )/(4•(45+64)) = 0.0096199 МГц ,

т.е. примерно 9600 бит в секунду.

3.2. Описание примера программ работы с последовательным портом

sfr SCON =0x98; //объявление переменной SCON как регистра с адресом 0х98

sbit TI=0x99; //объявление переменной TI как бита регистра с адресом 0х99

sfr SBUF=0x99; //объявление переменной SBUF как регистра с адресом 0х99

sfr T3FD=0x9D; //объявление переменной T3FD как регистра с адресом 0х9D

sfr T3CON=0x9E; //объявление переменной T3CON как регистра с адресом 0х9E

main()

{

SCON=0x52; //8 bit UART, разрешение работы приёмника и передатчика

T3FD=0x2D;

T3CON=0x83; //DIV=3, таймер T3 включен

TI=0; //устанавливаем флаг окончания передачи байта в «0»

SBUF=’P’; //передача байта (символ Р)

while(!TI); //ожидание завершения передачи байта

TI=0;

SBUF=’R’;

while(!TI);

TI=0;

SBUF=’I’;

while(!TI);

TI=0;

SBUF=’V’;

while(!TI);

TI=0;

SBUF=’E’;

while(!TI);

TI=0;

SBUF=’T’;

while(!TI);

while(1); //бесконечный цикл

}

В результате через последовательный интерфейс будет передано слово PRIVET.

4. ЗАДАНИЕ К РАБОТЕ В ЛАБОРАТОРИИ.

4.1. Написать программу, выводящую Вашу фамилию, записанную латинскими буквами, через последовательный порт.

4.2. Настроить проект следующим образом: выбрать микроконтроллер AduC812, не забудьте установить галочку напротив Create HEX file (иначе не будет создан hex файл, даже если нет ошибок)

4.3. Скопировать экран терминала с результатами передачи в отчет.

5. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ РАБОТЫ

После прошивки микроконтроллера на экране консоли появится передаваемый текст. Экран с текстом следует скопировать в отчет, как это показано на следующем рисунке.



Консоль для обмена данными с микроконтроллером через последовательный интерфейс.

6. СОДЕРЖАНИЕ ОТЧЕТА

6.1. Цель работы.

6.2. Текст программы.

6.3. Текст hex файла

6.4. Копия экрана с результатами вывода информации через последовательный интерфейс.

6.5. Выводы по выполненной лабораторной работе.



Лабораторная работа №2

Разработка цифрового измерителя температуры
В качестве цифрового датчика температуры в схеме стенда используется цифровой датчик DS18B20 фирмы Dallas Semiconductor (D1), который с помощью однопроводного интерфейса подключен к разряду 3 порта P3. Для работы с температурным датчиком можно воспользоваться следующими готовыми файлами:

ADuC842.h – файл в котором описаны все регистры специальных функций ADuC842

dallas.c – модуль, для измерения температуры (на языке С)

dallas.h заголовочный файл с описанием функций модуля dallas.c

Перед созданием проекта нужно предварительно создать папку (например TEMP) и поместить в нее файлы ADuC842.h, dallas.c, dallas.h.

Далее с помощью среды Keil в этой папке создать двухмодульный проект с файлами main.c и dallas.c. Предварительно в файл main.c поместить свою программу. В модуле dallas.c описана функция GetTemp(), при обращении к которой происходит измерение температуры и присваивание ее значения этой функции. Температура измеряется в виде двухразрядного, положительного десятичного числа. Таким образом, для измерения температуры можно записать следующий оператор:

T=GetTemp();

Переменной Т будет присвоено значение измеренной температуры.

1. ЗАДАНИЕ К РАБОТЕ.

1.1. Разработать программу, измеряющую температуру в лаборатории с удаленным доступом и выводящую значение температуры на цифровой индикатор.

1.2. С помощью среды программирования Keil создать двухмодульный прект, состоящий из модулей main.c и dallas.c.

1.3. Определить реальную температуру в лаборатории.

1.4. Скопировать изображение стенды с результатами измерений в отчет.

2. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ РАБОТЫ.

Одним из вариантов программы измерения температуры может быть следующая программа (модуль main.c):

#include "ADuC842.h"// подключение заголовочного файла ADuC842.h

#include "dallas.h" // подключение заголовочного файла dallas.h

///////////////////////////////////////////////////////////////////////////////////////////////


// ввод массива шестнадцатиричных кодов для 7- сегментного индикатора:

//отображаются {0, 1, 2... E, F}

unsigned char digitP0[16] = {0xB7, 0x14, 0x73, 0x76,
0xD4, 0xE6, 0xE7, 0x34,
0xF7, 0xF6, 0xF5, 0xC7,
0xA3, 0x57, 0xE3, 0xE1};



unsigned char digitP2[16] = {0xD7, 0x11, 0xE3, 0x73,
0x35, 0x76, 0xF6, 0x13,
0xF7, 0x77, 0xB7, 0xF4,
0xC6, 0xF1, 0xE6, 0xA6};



void main() {

char t;

P0 = P2 = 0;

while (1) {

t = GetTemp();

P0 = digitP0[t/10];

P2 = digitP2[t%10];
}
}



В выражении t%10 вычисляется остаток от деления на 10, то есть если

t=25, то t%10 будет равно 5.

Для работы этой программы в проект следует включить модуль dallas.c с функцией GetTemp(). В папку с проектом следует поместить заголовочные файлы ADuC842.h и dallas.h.

3. СОДЕРЖАНИЕ ОТЧЕТА.

3.1. Исходный текст программы (Main.c).

3.2. Файл листинга.

3.3. Копия изображения стенда с измеренной температурой (Указать в какое время измерялась температура в лаборатории). У преподавателя имеется график изменения температуры во времени.


Оценена Ваша работы по предмету: Микропроцессорные системы (часть 2) (ДВ 1.2)
Вид работы: Лабораторные
Оценка: Отлично
Дата оценки: 02.07.2022




Размер файла: 344,3 Кбайт
Фаил: Упакованные файлы (.zip)
-------------------
Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные!
Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот.
-------------------

   Скачать

   Добавить в корзину


        Коментариев: 0


Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них.
Опять не то? Мы можем помочь сделать!

Некоторые похожие работы:

К сожалению, точных предложений нет. Рекомендуем воспользоваться поиском по базе.

Не можешь найти то что нужно? Мы можем помочь сделать! 

От 350 руб. за реферат, низкие цены. Просто заполни форму и всё.

Спеши, предложение ограничено !



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

Страницу Назад

  Cодержание / Микропроцессорные системы / Лабораторная работы №1 и 2 по дисциплине: Микропроцессорные системы (часть 2) (ДВ 1.2) 2022 г.
Вход в аккаунт:
Войти

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт


Способы оплаты:
UnionPay СБР Ю-Money qiwi Payeer Крипто-валюты Крипто-валюты


И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


Сайт помощи студентам, без посредников!