Вход/Регистрация
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
вернуться

Пак Дэниэл Дж.

Шрифт:

Мы также рассмотрели процесс преобразования исходного текста программы на Си в файл исполняемых кодов для МК выбранного типа. Мы показали Вам примеры всех промежуточных генерируемых файлов по ходу этого процесса. Мы также кратко остановились на аппаратных особенностях МК семейства 68HC12/HCS12 для целей отладки, рассмотрели возможности использования аппаратных и программных средств платы MC68HC912B32EVB для тестирования и отладки примеров следующих глав данной книги.

3.16. Что еще почитать?

1. Kernighan, В. W., and D. М. Ritchie. The С Programming Language, 2nd ed. Upper Saddle River, NJ: Prentice Наll, 1988.

2. Schildt, Н. С: The Complete Reference. Osborne McGraw Нill.

3. Harbison, Samuel Р. III, and Guy Steele Jr. С А Reference Manual, 5th ed. Upper Saddle River, NJ: Prentice Наll, 2002.

4. ImageCraft С Compiler and Development Environment for Motorola HC12, ImageCraft Creations Inc., Раlo Alto, СА, 2002.

3.17. Вопросы и задания

Основные

1. Каково назначение символа «;» в программах на Си?

2. Сколько байт отводится для хранения переменной в формате integer?

3. Какое количество байт отводится для хранения переменной указателя?

4. В какой области памяти МК семейства 68HC12 размещаются переменные со статическим классом хранения?

5. Расскажите о двух назначениях символа * в программах на Си.

6. Опишите процесс преобразования файла с исходным текстом программы на Си в файл исполняемых кодов программы.

Более сложные

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

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., в которой последовательно перебираются и передаются для отображения все цифры.

  • Читать дальше
  • 1
  • ...
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: