Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Краткие теоретические сведения к заданию 3





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

· регистр управления/статуса приемопередатчика SCON (sequential -последовательный, control – управлять);

· бит SMOD регистра управления мощностью PCON (power control);

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

Регистр SCON содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемопередатчика (R1 и Т1).

Последовательный порт может работать в четырех различных режимах.

· Режим 0. Синхронный режим. Информация передается и принимается через вывод входа приемника RxD. Принимаются или передается 8 бит данных. Через вывод TxD выдаются импульсы синхронизации, которые сопровождают каждый бит. Скорость передачи фиксирована и составляет 1/12 Fг, где Fг – частота кварцеваго резонатора.

· Режим 1. Асинхронный 8-ми битовый режим. Передаются (через TXD) или принимаются (через RXD) 10 бит: старт-бит (логический 0), 8 бит данных (младшим разрядом вперед) и стоп-бит (логическая 1). При приеме стоп-бит поступает в бит RB8 регистра SCON. Скорость передачи в режиме 1 переменная: для управления скоростью передачи Вы можете использовать таймер Т1 и/или Т2.

· Режим 2. Асинхронный 9-ти битовый режим с фиксированной скоростью передачи. Передаются (через TXD) или принимаются (через RXD) 11 бит: старт-бит. 8 бит данных (младшим разрядом вперед), программируемый 9-й бит данных и стоп-бит. При передаче, в 9-й бит данных (бит ТВ8 регистра SCON) может быть записан логический 0 или 1, например, значение бита четности (бит Р регистра PSW). При приеме, 9-й бит данных поступает в бит RB8 регистра SCON. Присутствие стоп-бита контролируется схемой обнаружения ошибки кадра. Скорость передачи программируется и может быть равна либо 1/32, либо 1/64 частоты резонатора в зависимости от управляющего бита SMOD.

· Режим 3. Асинхронный 9-ти битовый режим. Совпадает с режимом 2 во всех деталях, за исключением частоты приема/передачи, которая задается таймером.

Во всех четырех режимах передача начинается любой командой, которая использует SBUF как регистр-приемник. Прием в режиме 0 начинается при условии RI = 0, REN = 1. Прием в других режимах начинается с приходом старт-бита, если бит REN установлен.

Флаг прерывания передатчика ТI устанавливается аппаратно в конце периода передачи стоп-бита во всех режимах. Соответствующая подпрограмма обслуживания прерывания должна сбрасывать бит TI.

Флаг прерывания приемника RI устанавливается аппаратно в конце периода приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.

Все библиотечные функции ввода/вывода, такие как printf(), scanf(), getchar(), putchar() и т.д., работают с вводом/выводом через последовательный порт микроконтроллера. Это означает, например, что хорошо знакомая программистам функция printf() классического ANSI CИ в компилляторе С51 выводит данные в последовательный порт микроконтроллера ВЕ51, а не на экран консоли. Точно так же стандартная библиотечная функция СИ scanf() в СИ51 ожидает приема данных с последовательного порта, а не сконсоли, как в обычных компиляторах СИ.

 

Задание 3. Организуйте связь по последовательному каналу между двумя МПС, реализованными на базе МК ВЕ51. Режим работы - асинхронный, двунаправленный

Функциональная схема, обеспечивающая данный режим работы обмена, представлена на рис. 9. Ниже представлен фрагмент программы инициализации каналов для машины- источника, а также выдачи последовательности заданной длины.

Требуется написать и отладить фрагмент программы инициализации каналов для машины- приемника, а также приема последовательности заданной длины. Для этого достаточно скорректировать выше приведенный модуль. Обращение к функции ввода будет выглядеть как

s[i]=getchar();

Также в программном модуле необходимо разрешить прием данных через УАПП и установить флаг прерывания приемника.

 

Рис.9. Функциональная схема подсистемы последовательного

обмена данными между однокристальными микроконтроллерами ВЕ51

 

#include <REG51.h>

// stdio.h – файл заголовка, обеспечивающий работу с

//функциями ввода/вывода

#include <stdio.h>

// intrins.h – файл заголовка, обеспечивающий работу со //строковыми данными

#include <intrins.h>

 

main()

{

int i; //переменная цикла

unsigned char s[5]=”Hello”;//слово, выводимое через УАПП

EA=1;//разрешение прерываний

SM1=1;//задание режима работы УАПП

SM0=0;//задание режима работы УАПП

TH1=0x56;//для задания частоты прерываний от

//таймера1

TMOD=0x2;//задаем режим работы таймера

TR1=1;//запускаем таймер1

ET1=1;//разрешаем прерывания от таймера1

REN=0;//запрещаем прием данных через УАПП

for(i=0; i<5; i++)

{

TI=1;//установка флага прерывания предатчика

putchar(s[i]);//вывод символа через УАПП

}

for(;;);

}

 

Контрольные вопросы

1. Что такое таймер/счетчик МК ВЕ51?

2. Как синхронизировать процесс в МПС на основе МК ВЕ 51, без использования таймера/счетчика?

3. По какому алгоритму работает реализованный Вами обработчик прерываний от таймера/счетчика?

4. Как рассчитывается временной интервал события при использовании программно-управляемой передачи данных, инициализируемой МК(задание 1)?

5. Как рассчитывается временной интервал при использовании передачи данных по прерыванию от таймера/счетчика?

6. Какие управляющие биты Вы использовали для инициализации таймера/счетчика?

7. В чем сущность последовательной и параллельной передачи данных?

8. В чем сущность методов асинхронной и синхронной передачи информации?

9. Что представляет собой УАПП МК ВЕ51?

10. Как реализованы передатчик и преемник УАПП?

11. Охарактеризуйте режимы работы УАПП.

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

13. Зачем для организации последовательной передачи данных Вы использовали таймер /счетчик?

14. Каким образом осуществлялся выбор одного из двух таймеров/счетчиков в разработанной Вами программе?

15. Как вы использовали буфер SBUF при отладке программы?

16. Каким образом Вы контролировали результаты выполнения разработанных программных модулей?

 

Домашнее задание

1. Подготовьте отчет по результатам выполнения лабораторной работы №3. В отчет должены входить разработанные функциональные схемы и программные модули в соответствии с заданиями лабораторной работы.


ПРИЛОЖЕНИЕ 1

 

Date: 2016-07-25; view: 221; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию