Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

22

.pdf
Скачиваний:
1
Добавлен:
07.06.2023
Размер:
2.06 Mб
Скачать

равной 62,5 кГц. Фиксация данных должна происходить по четным фронтам тактового сигнала с нулевым активным уровнем. Выведите сигналы MSOSI и SCK на осциллограф Scope, объясните полученные результаты.

hcs12_pr_5_1 #include <hidef.h>

#include <derivative.h>

#define delay(us); for(delay=us/2;delay!=0;delay--) asm NOP;

unsigned int delay;

void main() {

PERM | = 0x3C;

DDRM | = 0x03C;

SPIBR = 0x04;

SPICR1 = 0x5C;

Enableinterrupts;

for(;;) {

asm LDAA SPISR; SPI = 0x32;

while(SPISR_SPTEF == 0);

delay(250);

}

}

Перед запуском программы CodeWarrior и виртуального осциллографа Scope необходимо произвести манипуляции на стенде в соответствии с рисунком 29.

Рис. 29. Необходимые соединения контактов на стенде

51

Результат исполнения программы показан на рисунке 30.

Рис. 30. Временные диаграммы высылки кода по синхронному последовательному интерфейсу

5.3. Задачи для самостоятельной работы

5.3.1.Задачи начального уровня сложности

70.Написать программу, с помощью которой микроконтроллер по-

стоянно выдает код 0х51 через встроенный модуль SPI. Каждую отправку осуществлять с задержкой в 300 мкс. Частоту передачи по последовательному интерфейсу сделать равной 50 кГц. Фиксация данных должна происходить по четным фронтам тактового сигнала с нулевым активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

71.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0х CD через встроенный модуль SPI. Каждую отправку осуществлять с задержкой в 400 мкс. Частоту передачи по последовательному интерфейсу сделать равной 41,656 кГц. Фиксация данных должна происходить по чет-

52

ным фронтам тактового сигнала с единичным активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

72.Написать программу с помощью которой микроконтроллер постоянно выдает код 0х4Е через встроенный модуль SPI. Каждую отправку осуществить с задержкой в 250 мкс. Частоту передачи по последовательному интерфейсу сделать равной 62,5 кГц. Фиксация данных должна происходить по нечетным фронтам тактового сигнала с нулевым активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

73.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0х А9 через встроенный модуль SPI. Каждую отправку осуществить с задержкой в 450 мкс. Частоту передачи по последовательному интерфейсу равной 31,25 кГц. Фиксация данных должна происходить по нечетным фронтам тактового сигнала с единичным активным уровнем. Выведите сигнала MOSI и SCK на осциллограф Scope, объясните полученные результаты.

5.3.2.Задачи средней сложности

74.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0х В2 через встроенный модуль SPI. Каждую отправку осуществлять с некоторой задержкой, формируемой с помощью подсистемы таймера. Частоту передачи по последовательному интерфейсу сделать равной 50 кГц. Фиксация данных должна происходить по четным фронтам тактового сигнала с единичным активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

75.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0х7321 через встроенный модуль SPI. Каждую отправку пакета из 2 байт осуществлять с некоторой задержкой и младшим битом вперед. Частоту передачи по последовательному интерфейсу сделать равной 44,66 кГц. Фиксация данных должна происходить по нечётным фронтом такто-

53

вого сигнала с нулевым активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

76.Написать программу, с помощью которой микроконтроллер постоянно выдаёт код 0х831D через встроенный модуль SPI. Каждую отправку пакета из 2 байт осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу сделать равной 62,5 кГц. Фиксация данных должна происходить по нечётным фронтам тактового сигнала с единичным активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

77.Написать программу, с помощью которой микроконтроллер постоянно выдаёт код 0х65F3 через встроенный модуль SPI. Каждую отправку пакета из 2 байт осуществлять с некоторой задержкой и младшим битом вперёд. Частоту передачи по последовательному интерфейсу сделать равной 50 кГц. Фиксация данных должна происходить по чётным фронтам тактового сигнала с нулевым активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

78.Написать программу, с помощью которой микроконтроллер постоянно выдаёт код 0хС5 через встроенный модуль SPI. Каждую отправку осуществлять старшим битом вперёд и с некоторой задержкой, формируемой с помощью подсистемы таймера. Частоту передачи по последовательному интерфейсу сделать равной 50 кГц. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

79.Написать программу, с помощью которой микроконтроллер постоянно выдаёт код 0х9А через встроенный модуль SPI. После каждой высылки создать некоторую задержку, формируемую с использованием прерывания по завершению отправки. Частоту передачи по последовательному интерфейсу сделать равной 62,5 кГц. Выведите сигналы MOSI и SCK на Scope, объясните полученные результаты.

5.3.3.Сложные задачи для самостоятельной работы

80.Написать программу, с помощью которой микроконтроллер принимает код на порте А, создаваемый виртуальным ин-

54

струментом Digital Reader и отправляет через встроенный модуль SPI. Каждую отправку осуществить с некоторой задержкой, задавая интервал времени с помощью подсистемы таймера, и старшим битом вперёд. Частоту передачи по последовательному интерфейсу сделать равной 50 кГц. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

81.Написать программу, с помощью которой микроконтроллер измеряет период сигнала, создаваемого виртуальным инструментом Two Channel Generator, и отправляет полученное 1-или 2- байтное значение через встроенный модуль SPI. Каждую высылку осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу сделать равной 31,25 кГц. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

82.На вход AN5 микроконтроллер поступает аналоговый уровень напряжения, создаваемый инструментом Analog Level. Оцифруйте сигнал в режиме и вышлите полученный код по интерфейсу SPI. Отправку осуществлять с некоторой периодичностью. Частоту передачи по последовательному интерфейсу сделать равной 61,5 кГц. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

83.Написать программу, с помощью которой микроконтроллер постоянно выдаёт код 0х12С0EF через встроенный модуль SPI. Каждую отправку пакета из 3 байт осуществить с некоторой задержкой, формируемой с помощью подсистемы таймера. Частоту передачи по последовательному интерфейсу сделать равной 41,66 кГц. Фиксация данных должна происходить по чётным фронтам тактового сигнала с единичным активным уровнем. Выведите сигналы MOSI и SCK на осциллограф Scope, объясните полученные результаты.

55

Лабораторная работа 06. ПОСЛЕДОВАТЕЛЬНЫЙ АСИНХРОННЫЙ ИНТЕРФЕЙС SCI

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

Подготовка к работе. Обучающимся следует ознакомиться

сописанием интерфейса SCI, представленным в [6].

6.1.Порядок выполнения работы

1.Написать программу управления микроконтроллером для постоянной выдачи кода «0x6D» через встроенный модуль SCI.

2.Перед запуском программы и виртуального осциллографа Scope необходимо произвести манипуляции на стенде в соответствии с рисунком 30.

3.В исходном тексте программы установить следующие параметры модуля SCI и микроконтроллера: время задержки отправки кода – 250 мкс, частота передачи по модулю SCI – 62,5 кГц, формат кадра – 8 бит.

4.Вывести сигналы TxD и RxD на виртуальный осцилло-

граф Scope.

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

6.2. Методика выполнения работы

Пример 6.1. Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x6D через встроенный модуль SCI. Каждую отправку осуществлять с задержкой в 250 мкс. Частоту передачи по последовательному интерфейсу установить

56

равной 62,5 кГц, формат кадра – 8 бит. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

hcs12_pr_6_1 #include <hidef.h>

#include <derivative.h>

#define delay(us); for(delay=us/2;delay!=0;delay--) asm NOP;

unsigned int delay;

void main() {

PERS | = 0x03;

DDRS | = 0x03;

SCIBD = 0x02;

SCICR2 = 0x08;

Enableinterrupts;

for(;;) {

asm LDAA SCISR1; SCIDRL = 0x6D; while(SCISR1_TDRE == 0);

delay(250);

}

}

Перед запуском программы и виртуального осциллографа Scope необходимо произвести манипуляции на стенде в соответствии с рисунком 31. Результат исполнения программы приведен на рисунке 32.

Рис. 31. Необходимые соединения контактов на стенде

57

Рис. 32. Временные диаграммы высылки кода по асинхронному последовательному интерфейсу

6.3. Задачи для самостоятельной работы

6.3.1.Задачи начального уровня сложности

84.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0xC3 через встроенный модуль SCI. Каждую отправку осуществить с задержкой в 300 мкс. Частоту передачи по последовательному интерфейсу установить равной 41,66 кГц, формат кадра – 8 бит. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

85.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x4E через встроенный модуль SCI. Каждую отправку осуществлять с задержкой в 300 мкс. Частоту передачи по последовательному интерфейсу установить равной 20,83 кГц, формат кадра – 9 бит. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

86.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x51 через встроенный модуль SCI. Каждую отправку осуществить с задержкой в 600 мкс. Частоту передачи по последовательному интерфейсу установить равной 25 кГц, формат кадра – 8 бит. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

58

87.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0xDE через встроенный модуль SCI. Каждую отправку осуществлять с задержкой в 280 мкс. Частоту передачи по последовательному интерфейсу установить равной 62,5 кГц, формат кадра – 9 бит. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

6.3.2.Задачи средней сложности

88.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x9E через встроенный модуль SCI. Каждую отправку осуществлять с некоторой задержкой, формируемой с помощью подсистемы таймера. Частоту передачи по последовательному интерфейсу установить равной 62,5 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

89.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x860A через встроенный модуль SCI. Каждую отправку пакета их двух байт осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу установить равной 41,66 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на Scope, объясните полученные результаты.

90.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0xAC20 через встроенный модуль SCI. Каждую отправку осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу установить равной 31,25 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на Scope, объясните полученные результаты.

91.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x21 через встроенный модуль SCI. Каждую отправку осуществлять с некоторой задержкой, формируемой с помощью подсистемы таймера. Частоту передачи по последовательному интерфейсу установить равной 25 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

59

92.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0xE987 через встроенный модуль SCI. Каждую отправку осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу установить равной 62,5 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на Scope.

93.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x032A через встроенный модуль SCI. Каждую отправку пакета из двух байт осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу установить равной 41,66 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

94.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x51 через встроенный модуль SCI. Каждую отправку осуществлять с некоторой задержкой, формируемой с помощью подсистемы таймера. Частоту передачи по последовательному интерфейсу установить равной 31,25 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

95.Написать программу, с помощью которой микроконтроллер постоянно выдает код 0x4C0E через встроенный модуль SCI. Каждую отправку пакета из двух байтов осуществлять с некоторой задержкой. Частоту передачи по последовательному интерфейсу установить равной 25 кГц, формат кадра – 9 бит, включить функцию четного паритета. Выведите сигналы TxD и RxD на осциллограф Scope, объясните полученные результаты.

6.3.3.Сложные задачи для самостоятельной работы

96.Написать программу, с помощью которой микроконтроллер измеряет период сигнала, создаваемого виртуальным инструментом Two Channel Generator, и отправляет полученное 2- или 2-байтное значение через встроенный модуль SCI. Каждую отправку осуществить с некоторой задержкой. Частоту передачи по последовательному интерфейсу установить равной

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]