Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Название:Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Автор:
- Жанр:
- Издательство:Издательский дом «ДМК-пресс»
- Год:2007
- Город:Москва
- ISBN:5-9706-0034-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С краткое содержание
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
------------ ---- ---- ------- -----
idata 806B 0001 = 1. bytes (rel,con)
Addr Global Symbol
---- --------------
806B __idata_start
806C __idata_end
Area
(Attributes) Addr Size Decimal Bytes
------------ ---- ---- ------- -----
data 0800 0001 = 1. bytes (rel,con)
Addr Global Symbol
---- --------------
0800 _second
0800 __data_start
0801 __data_end
Area
(Attributes) Addr Size Decimal Bytes
------------ ---- ---- ------- -----
memory 0000 0B20 = 2848. bytes (abs,ovr)
Addr Global Symbol
---- --------------
0B1E _Timer_Overflow_interrupt_vector
Files Linked [ module(s)]
C:\icc\lib\crt12.o [crt12.s] interrupt.o [ interrup ]
[psetup.c]
User Global Definitions
init_sp = 0хс00
User Bаsе Address Definitions
text = 0х8000 data =0х8000
В то время, как файл карты памяти предоставляет программисту обобщенную информацию о том, в какой области памяти располагаются коды переменных и каждой подпрограммы, файл исполняемых микроконтроллером кодов interrupt.s19 имеет следующий вид:
S10E8000CF0C0016806787CE08018EAD
S110800B080127056A000820F6CE806BCD21
S111801808008E806C2706180A307020F516BA
S1078026802A20FE8A
S1050B1E80440D
S104806B0010
S110802AC6807B0086C6807B008DC6807BEF
S1118037008FC6FF7B000210EF20FE3F3DC607
S1118045807B008FF6080087C300017B0800D3
S1118053F60800C17A260CF600008741517B26
S109806100007908000B89
S10780677900163D45
S90380007C
Каждая строка файла в формате S19 содержит информацию о типе представленных в ней данных, начальный адрес данных с строке, сами данные и контрольную сумму для этой строки. Полная расшифровка формата S19 дана в руководстве пользователя для отладочной платы M68EVB912B32.
Итак, мы рассмотрели последовательность преобразования исходного файла на Си к файлу загрузочного исполняемого кода для микроконтроллера. На языке структурных диаграмм этот процесс представлен на рис. 3.4.
3.15. Заключение по главе 3
В этой главе мы кратко рассмотрели технику программирования встраиваемых систем на Си. Мы показали некоторые особенности записи программ на Си для платы отладки MC68HC912B32EVB. Безусловно, столь краткое изложение языка Си недостаточно для разработки собственных реальных встраиваемых приложений. Поэтому для расширения познаний в области программирования на Си рекомендуем Вам обратиться к специальной литературе, приведенной в разделе 3.16.
Мы также рассмотрели процесс преобразования исходного текста программы на Си в файл исполняемых кодов для МК выбранного типа. Мы показали Вам примеры всех промежуточных генерируемых файлов по ходу этого процесса. Мы также кратко остановились на аппаратных особенностях МК семейства 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., в которой последовательно перебираются и передаются для отображения все цифры.
Читать дальшеИнтервал:
Закладка: