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

<p>7.7.4. Схемное решение, структура программы и блок-схема алгоритма</p>

На рис. 7.38 показана структура микроконтроллерной системы для игры в «15». Встроенные порты отладочной платы 68HC912B32EVB используются, чтобы получать и послать данные от вспомогательной клавиатуры и модуля ЖК-дисплея. Принципиальная схема этой системы с расширением памяти приведена на рис. 7.39.

Рис. 7.38. Структура микропроцессорной системы для игры в «15»

Рис. 7.39. Принципиальная схема системы для игры в «15»

На рис. 7.40 показана структура программы для игры в «15», в которой главная программа обращается к шести субмодулям. На рисунке показан также ряд функций, выполняемых каждым субмодулем. Соответствующая блок схема алгоритма приведена на рис. 7.41.

Рис. 7.40. Структура программы для игры в «15»

Рис. 7.41. Блок схема алгоритма программы для игры в «15»

<p>7.7.5. О компонентах системы</p>

Интеллектуальный точечный графический дисплей AND 1391 — это полная точечная матрица ЖКД со встроенным модулем контроллера дисплея и ОЗУ буфера экрана. Он может выводить 21 символ на каждой из 18 строк дисплея. Вы можете прочесть об этом дисплее и функциях его обеспечения в главе 5.

<p>7.7.6. Программный код</p>

//Имя файла: sliding.с

//Программа: Игра в "15"

//Авторы: Scott Lewis, Daniel Pack,

//Дата создания: Начата 27 апреля 2004

//окончена 7 Мая 2004

// Описание: Эта программа реализует игру в "15". Цель игры

// заключается в том, чтобы выстроить фишки по по ряду номеров. Вы

// можете только перемещать на пустое место любую соседнюю фишку.

// Программа постоянно находится в памяти системы по адресу

// $2000. Программа отображает исходное состояние фишек, затем

// показывает состояние к которому необходимо прийти в

// результате. Программа размещает все фишки в случайном

// порядке, и затем позволяет пользователю начать игру

// Конфигурация системы

// Программа: 0x2000

// Данные: 0x3500

// Стек: 0x4000

//

// PDLC0: /WR    PP0 Data 0 PS0: Не используется

// PDLC1: /RD    PP1 Data 1 PS1: Не используется

// PDLC2: /CE    PP2 Data 2 PS2: Кнопка "Влево"

// PDLC3: C/D    PP3 Data 3 PS3: Кнопка "Выбор"

// PDLC4: /Reset PP4 Data 4 PS4: Кнопка "Вниз"

// PDLC5: NC     PP5 Data 5 PS5: Кнопка "Вправо"

// PDLC6: NC     PP6 Data 6 PS6: Кнопка "Вверх"

// PDLC1: NC     PP7 Data 7 PS7: Не используется

//

// Выводы ЖКД

// GND  -  2  1 - GND

// -14V -  3  4 - +5V

// /WR  -  5  6 - /RD

// /CE  -  7  8 - C/D

// NC   -  9 10 - /Reset

// DO   - 11 12 - D1

// D2   - 13 14 - D3

// D4   - 15 16 - D5

// D6   - 17 18 - D7

// GND  - 19 20 - NC

//******************************************************

#include 912b32.h // описание портов - header file

                    // приведен в приложении

//********************************************************************

// Постоянные

//********************************************************************

#define ARRAY_MAX 15

#define ZERO 0x00

#define L_BUTTON 0x04 // сигналы кнопок

#define R_BUTTON 0x20

#define U_BUTTON 0x40

#define D_BUTTON 0x10

#define S BUTTON 0x08

#define LEFT   1 // выбор направления

#define RIGHT  2

#define UP     3

#define DOWN   4

#define SELECT 5

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже