2. Создайте структуру для хранения записей телефонных абонентов. Каждая запись должна включать имя абонента, номер телефона, улицу и номер дома проживания, город, почтовый индекс.
3. В тексте программы на Си присутствует запись:
static int array[10];
Поясните, какие действия компилятора или управляющей программы соотносятся с этим выражением?
4. Поясните назначение макроопределения. Приведите примеры макроопределений в программах на Си.
5. В чем отличие макроопределения от функции?
1. Напишите программу на Си, которая переключает состояние светодиодов из выключенного во включенное и наоборот каждые 5 с. Функциональная схема подключения светодиодов (в составе семисегментного индикатора) к МК семейства 68HC12 приведена на рис. 3.12.
Рис. 3.12. Схема подключения семисегментного индикатора к микроконтроллеру 68HC912B32
2. Используя понятия структуры и указателя, напишите программу, которая выводит на экран дисплея информацию об абоненте телефонной компании, которая записана в формате, который Вы разработали в задании №2 раздела «более сложные вопросы».
3. Напишите программу для отображения на семимегментном индикаторе последовательности цифр от 0 до 9. Каждая цифра должна светиться 100 мс. Функциональная схема подключения семисегментного индикатора к МК семейства 68HC12 приведена на рис. 3.12. Семисегментный индикатор выполнен по схеме с общим катодом. Схема соединения светодиодов внутри корпуса индикатора и обозначения сегментов индикатора представлены на рис. 3.13. Аноды диодов подключаются к выходам логических буферных элементов (интегральная схема 74ALS244) через резисторы, которые служат ограничителями тока каждого сегмента (светодиода) индикатора. Входы интегральной схемы 74ALS244 подключены к выходам порта МК. Для формирования на индикаторе образов цифр и букв необходимо вывести под управлением программы на выводы порта МК кодовые комбинации, которые перечислены в табл. 3.9.
Цифра шестнадцатеричной системы счисления | Кодовая комбинация | Цифра шестнадцатеричной системы счисления | Кодовая комбинация |
---|---|---|---|
0 | 0x3F | 1 | 0x06 |
2 | 0x5B | 3 | 0x4F |
4 | 0x66 | 5 | 0x6D |
6 | 0x7D | 7 | 0x07 |
8 | 0x7F | 9 | 0x6F |
A | 0x77 | B | 0x7F |
C | 0x39 | D | 0x3F |
E | 0x79 | F | 0x71 |
Табл. 3.9. Кодовые комбинации для высвечивания цифр шестнадцатеричной системы счисления
Рис. 3.13. Семисегментный индикатор с общим катодом
В процессе создания программы разработайте структуру программы, блок-схему алгоритма, псевдокод. Напишите функцию, которая получает в качестве параметра номер отображаемой цифры и формирует на выходе порта PORTB соответствующий код засветки. Напишите функцию отсчета задержки в 100 мс. Напишите основную функцию main.c., в которой последовательно перебираются и передаются для отображения все цифры.
Глава 4
МИКРОКОНТРОЛЛЕРЫ 68HC12 И HCS12: АРХИТЕКТУРА И ПРОГРАММИРОВАНИЕ
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ ВЫ СМОЖЕТЕ:
• Описать структуру и определить основные отличительные особенности МК семейства 68НС12;
• Описать различные режимы работы МК 68HC12;
• Описать, какие действия выполняются над аппаратными средствами МК в состоянии сброса;
• Объяснить необходимость подсистемы прерывания в составе МК;
• Объяснить последовательность действий на аппаратном и программном уровне, которые выполняются при обработке запроса на прерывание в МК;
• Описать работу модуля тактирования в составе МК 68HC12;
• Описать структуру и режимы работы модуля таймера TIM, счетчика внешних событий и модуля меток реального времени, привести примеры программирования всех перечисленных подсистем реального времени;
• Разъяснить термины, которые используются при описании обмена данными в последовательном коде;
• Описать структуру аппаратных средств и привести примеры программирования контроллера асинхронного последовательного обмена SCI в составе МК 68HC12;
• Составить программу для обмена в последовательном коде c заданными параметрами для модуля SCI;
• Описать структуру аппаратных средств и привести примеры программирования контроллера синхронного последовательного обмена SPI в составе МК 68HC12;
• Разъяснить физический смысл процессов и терминов, связанных с аналого цифровым преобразованием, таких, как квантование по времени и по уровню, кодирование информации, частота выборки, разрешающая способность, скорость потока данных оцифровки;
• Грамотно рассчитать параметры процесса аналого цифрового преобразования для сигнала с заданной частотой и формой;
• Описать модуль аналого цифрового преобразователя ATD в составе МК 68HC12;
• Разработать программу для выполнения нескольких преобразований модулем ATD по заданному сценарию;
• Подробно описать усовершенствования модуля АЦП в составе МК HCS12 по сравнению с модулем ATD в составе 68HC12;