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

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Описание и краткое содержание "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С" читать бесплатно онлайн.
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
newline();
k = s;
s = s>>4;
if (s > 0x08) data(s + 0x17);
else data(s + 0x10);
command(0xC0);
k = k & 0x0F;
if (k > 0x08) data(k + 0x17);
else data(k + 0x10);
command(0xC0);
}
//********************************************************************
// Секция данных - инициализация табличных данных
//********************************************************************
#pragma abs_address 0x3000
char BeP[12] = {0x00, 0x70, 0x00, 0x10,
0x40, 0xC0, 0x10, 0x10,
0x90, 0xFF, 0x10, 0x00};
char KeM[12] = {0x00, 0x70, 0x00, 0x10,
0x40, 0xC0, 0x10, 0x10,
0x90, 0xFF, 0x10, 0x00};
char OT[5] = {0x40, 0x60, 0x80, 0xA0, 0xC0};
char IMV[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
char OMV[5] = {0x00, 0x00, 0x00, 0x00, 0x00};
// правило
char rules[45] = {0x00,0x03,0xFE,0x06, 0xFE,
0x00, 0x04, 0xFE, 0x07, 0xFE,
0x00, 0x05, 0xFE, 0x08, 0xFE,
0x01, 0x03, 0xFE, 0x07, 0xFE,
0x01, 0x04, 0xFE, 0x08, 0xFE,
0x01, 0x05, 0xFE, 0x09, 0xFE,
0x02, 0x03, 0xFE, 0x08, 0xFE,
0x02, 0x04, 0xFE, 0x09, 0xFE,
0x02, 0x05, 0xFE, 0x0A, 0xFF};
char result[3] = (0x00, 0x00, 0x00};
#pragma end_abs_address
//********************************************************************
//Основная программа
//********************************************************************
void main(void) {
int index;
char temp = 0x00;
/* определение интерактивного туннелирования */
asm("LDX #$3000");
asm("LDY #$301D");
asm("LDAA $4000"); //оценка профиля поведения
asm("MEM");
asm("MEM");
asm("MEM"); //фаззификация
asm("LDAA $4001"); //оценка членства ключевых слов
asm("MEM");
asm("MEM");
asm("MEM"); //фаззификация
asm("LDY #$301D");
asm("LDX #$3028");
asm("LDAA #$FF"); //инициализация минимума и бита V
asm("REV"); //применение правил фаззификации
asm("LDX #$3018"); //дефаззификация
asm("LDY #$3023");
asm("LDAB #$05");
asm("WAV");
asm("EDIV");
asm("TFR Y,D");
asm("STAB $3055"); //сохранение результата
PORTB = 0xff;
DDRB = 0xff;
delay2();
PORTB = 0x7F; //проверка платы с использованием ЖКД
delay2();
PORTB = 0xFF;
/*Определение туннелирования скриптов*/
asm("LDX #$3000");
asm("LDY #$301D");
asm("LDAA $4002"); //оценка профиля поведения
asm("MEM");
asm("MEM");
asm("MEM"); //фаззификация
asm("LDAA #$PF"); //оценка членства ключевых слов
asm("MEM");
asm("MEM");
asm("MEM"); //фаззификация
asm("LDY #$301D");
asm("$3028");
asm("$4003"); //инициализация минимума и бита V
asm("REV"); //применение правил фаззификации
asm("LDX #$3018"); //дефаззификация
asm("LDY #$3023");
asm("LDAB #$05");
asm("WAV");
asm("EDIV");
asm("TFR Y,D");
asm("STAB $3056"); //сохранение результата
PORTB = 0xff;
DDRB = 0xff;
delay2();
PORTB = 0x7F; //проверка платы с использованием ЖКД
delay2();
PORTB = 0xFF;
/*Проверка внедрения потоков*/
asm("LDX #$3000");
asm("LDY #$301D");
asm("LDAA $4004"); //оценка профиля поведения
asm("MEM");
asm("MEM");
asm("MEM"); //фаззификация
asm("LDAA $4005"); //оценка членства для ключевых слов
asm("MEM");
asm("MEM");
asm("MEM"); //фаззификация
asm("LDY #$301D");
asm("LDX #$3028");
asm("LDAA $4003"); //инициализация минимума и бита V
asm("REV"); //применение правил фаззификации
asm("LDX #$3018"); //дефаззификация
asm("LDY #$3023");
asm("LDAB #$05");
asm("WAV");
asm("EDIV");
asm("TFR Y,D");
asm("STAB $3057"); //сохранение результата
PORTB = 0xff;
DDRB = 0xff;
delay2();
PORTB = 0x7F; //проверка платы с использованием ЖКД
delay2();
PORTB = 0xFF;
//Конфигурация ЖКД
DDRA = 0xFF;
PORTB = 0xFF,
Initlcd(); //Инициализация ЖКД
InitMes(); //Инициализация сообщений
delay2();
Clearscreen(); //Очистить экран ЖКД
Reset_cursor; //Возврат курсора ЖКД
newline(); //Создать новую строку на ЖКД
newline();
LCD_Output("IA: ");
numdisplay(result[0]);
if (result[0] > 0xA0) //Вывести на дисплей предупреждение
LCD_output(" High Alert");
else if (result[0] > 0x60) LCD_output(" Med Alert");
else LCD_output(" Low Alert");
newline();
LCD_output("SA: ");
numdisplay(result[1]);
if (result[0] > 0xA0) LCD_output(" High Alert");
else if (result[1] > 0x60) LCD_output(" Med Alert");
else LCD_output(" Low Alert");
newline();
LCD_output{"S: ");
numdisplay(result[2]);
if (result[2] > 0xA0) LCD_output(" High Alert");
else if (result[0] > 0x60) LCD_output(" Med Alert");
else LCD_output(" Low Alert");
}
//====================================================================
7.6.8. Некоторые комментарии
Вы можете задать вопрос о необходимости иметь отдельную микроконтроллерную систему HTTP TAD. Почему бы просто не включить функцию системы HTTP TAD в состав стандартной системы обнаружения «злоумышленника»? Цель упражнения состоит в том, чтобы показать большие возможности МК HCS12 и использование их в ряде проектов. Конечно, система, описанная в этом разделе, может быть включена в состав большой системы обнаружения «злоумышленника». Одно из преимуществ создания отдельной системы — мобильность. Это обеспечивает администраторов защиты гибким инструментом, чтобы изменять одиночную переносную систему и проверять несколько модулей внутри сети. Материалы для более подробного изучения систем информационной защиты мы вынесли в раздел «Что еще прочесть» в конце главы.
7.7. Электронная версия игры в «15»
7.7.1. Описание проекта
Наверное, вы когда-нибудь передвигали фишки игры в «пятнадцать», показанной на рис. 7.35. Этой игрой дети развлекаются дома, в летних лагерях и в поездках на заднем сиденье автомобиля. Мы были свидетелями перевода целого ряда игр с передвижением фишек в электронную форму. В этом разделе мы представляем электронную версию игры в «пятнадцать». Проект был создан Скоттом Льюисом в качестве работы для получения звания «senior project design» старшего программиста.
Рис. 7.35. Игра в «15»
Цель игры заключается в следующем: необходимо упорядочить данный произвольно расположенный набор из 15 пронумерованных фишек и одного пустого промежутка, расположив фишки в порядке возрастания номеров (рис. 7.36 внизу справа). Сделать это необходимо, многократно повторяя операцию передвижения одной из соседних фишек на пустое место.
Рис. 7.36. Игра в «15». Левое поле показывает произвольное начальное состояние фишек, а на правом приведена окончательная позиция, достижение которой является целью игры
Цель нашего проекта заключается в создании электронной версии игры. Для этого необходимо обеспечить средства для допустимого изменения положения фишек и устройство для отображения текущего положения фишек после каждой операции.
Требования к системе для игры в «15» следующие:
1. Использовать микроконтроллер;
2. Позволить пользователю идентифицировать номер фишки с помощью устройства ввода данных;
3. Позволить пользователю перемещать выбранную фишку на пустое поле;
4. Отображать текущие расположения всех фишек.
7.7.2. Системы HCS12 используемые в проекте
Этот проект использует различные модули 68HC12, и интерфейс, связывающий их с несколькими переключателями и графическим ЖК дисплеем.
7.7.3. Основы теории
Система использует отладочную плату 68HC12B32EVB, графический ЖК дисплей AND 1391, ИС внешнего ОЗУ (RAM 6264) и внешнего ПЗУ (EPROM 27256), а также программируемую ИС (GAL16V8), набор кнопок и ИС триггера защелки 74HC373. На рис. 7.37 показана структурная схема игровой системы. Хотя мы могли бы использовать внутреннюю память 68HC12, но для расширения опыта читателя мы использовали внешнюю память и расширенный режим работы микроконтроллера. Для создания соответствующих сигналов управления и декодирования адреса памяти, мы использовали программируемую ИС GAL16V8, включив ее между микросхемами памяти и МК. Интегральная схема GAL16V8 программируется так, чтобы ОЗУ размещалось в адресном пространстве начиная с $2000 и заканчивая $3FFF, а программируемое ПЗУ — в ячейках памяти с адресами $4000…$7FFF. Как вы увидите, программа, представленная в этом разделе, запускается из ОЗУ. Разместив программу во внешнем ПЗУ, можно сделать систему автономной.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Книги похожие на "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Отзывы читателей о книге "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С", комментарии и мнения людей о произведении.