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

Тут можно читать онлайн Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом «ДМК-пресс», год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом «ДМК-пресс»
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-9706-0034-2
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.

Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.

Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать книгу онлайн бесплатно, автор Стивен Барретт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

//включенные файлы

#include <912b32.h> //B32 EVB header file

#include "func_def.h" //функции-прототипы, глобальные переменные

//main program*******************************************************

// глобальные переменные

int which_input; //вход усилителя

int keep_going; //ввод переменных

int mute; //флаг управления выключением звука

unsigned char old_PORTB = 0xff; //текущие значения PORTB

unsigned char old_PORTA = 0x00; //текущие значения PORTA

unsigned char new_PORTB, new_PORTA; //новые значения PORTA, PORTB

void main(void) {

asm(" .area vectors(abs)\n"

" .org 0xFFF8\n" //инициализация вектора сброса для 68HC12 B32

" .word 0x8000, 0x8000, 0x8000, 0x8000\n"

" .text");

initialize_task();

//главный цикл

while(1) { //ожидается сигнал на включение питания

if ((PORTB==0xFE)||(PORTA==0X01))

//PORTB переключается в низкое, PORTA - в

// высокое состояние

{ //вы забыли включить питание! Запрос на операцию включения

keep_going = 1; //цикл считывания переменных

PORTP=0x7E; //включение LED-MUTE-RELAY PP7(0)

//LED-PWR-RELAY PP0(0) (0111_1110)

which_input_task();

activate_power_relay_task();

delay_3s(); //задержка 3 с.

PORTP = 0x80; // DE-переключение PD7(1) - включение звука

while(keep_going) //прохождение меню - главный цикл опроса

{

process_PORTB_input_task();

process_PORTA_input_task();

}

}//end if - ожидание включения питания - питание не подано!

}//end while(1)

}//конец главного цикла

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

// определение функций

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

initialize_task: начальные установки усилителя

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

void initialize_task(void) {

mute = on; //turn mute on

initialize_timer(); // инициализация таймера

initialize_ports(); // инициализация портов

initialize_pins(); // инициализация состояния отдельных выводов

which_input = 2 ; //по умолчанию включается вход CD(2)

//включение светодиодов на лицевой панели

PORTP = 0x81; //включение всех светодиодов PD1-PD6 низким активным

// уровнем (1000_0001)

delay_3s(); //задержка 3 с

PORTP = 0xff; //выключение светодиодов

}

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

//which_input_task: опрос входов, установка текущего состояния

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

void which_input_task(void) {

switch(which_input) { // подсвечивается светодиод для используемого

// входа (по умолчанию вход 2 - CD)

case 1: //Пианино

phono_task();

break;

case 2: //CD

CD_task();

break;

case 3: //Тюнер

tuner_task();

break;

case 4: //Магнитофон 1

tape1_task();

break;

case 5: //Магнитофон 2

tape2_task();

break;

case 6: //Дополнительный канал (ДК)

aux_task();

break;

default:;

}//конец switch

}

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

//phono_task: конфигурируется вход от Радио

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

void phono_task(void) {

PORTT |= 0x02; //устанавливается PT1(1) (0000_0010)

delay_5ms();

PORTT &= ~0x02; // выключается PT1(0)

PORTP = 0x7E; //гасятся все светодиоды

PORTP &= ~0x02; //включается светодиод 1 (0)

}

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

//CD_task: конфигурируется вход от CD

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

void CD_task(void) {

//CD

PORTT |= 0x04; // устанавливается PT2(1) (0000_0100)

delay_5ms();

PORTT &= ~0x04; // выключается PT2(0)

PORTP |= 0x7E; //гасятся все светодиоды

PORTP &= ~0x04; // включается светодиод 2 (0)

}

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

//tuner_task: конфигурируется вход от тюнера

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

void tuner_task(void) {

//TUNER PORTT |= 0x08; // устанавливается PT3(1) (0000_1000)

delay_5ms();

PORTT & = 0x08; // выключается PT3(0

PORTP |= 0x7E; //гасятся все светодиоды

PORTP &= ~0x08; // включается светодиод 3 (0)

}

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

//tape1_task: конфигурируется вход от магнитофона 1

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

void tape1_task(void) {

//TAPE#1

PORTT |= 0x10; //assert PT4(1) (0001_0000)

delay_5ms();

PORTT &= ~0x10; // выключается PT4(0)

PORTP |= 0x7E; //гасятся все светодиоды

PORTP &= ~0x10; // включается светодиод 4 (0)

}

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

//tape2_task: конфигурируется вход от магнитофона 2

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

void tape2_task(void) {

//TAPE#2

PORTT |= 0x20; // устанавливается PT5(1) (0010_0000)

delay_5ms();

PORTT &= ~0x20; // выключается PT5(0)

PORTP |= 0x7E; //гасятся все светодиоды

PORTP & = ~0x20; // включается светодиод 5 (0)

}

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

//aux_task: конфигурируется вход от дополнительного канала

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

void aux_task(void) {

//ДК

PORTT |= 0x40; // устанавливается PT6(1) (0100_0000)

delay_5ms();

PORTT &= ~0x40; // выключается PT6(0)

PORTP |= 0x7E; //гасятся все светодиоды

PORTP &= ~0x40; // включается светодиод 6(0)

}

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

//activate_power_relay_task(): включается реле силового питания

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

void activate_power_relay_task(void) {

PORTT |= 0x80; // устанавливается PT7(1) импульсом 10 мс

delay_5ms();

delay_5ms();

PORTT &= ~0x80; // выключается PT7

}

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

//process_PORTB_input_task(): определяется выбранный вход от PORTB

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

void process_PORTB_input_task(void) {

new_PORTB = PORTB; //read PORTB

if (new_PORTB != old_PORTB) { //считывание состояния порта PORTB

switch(new_PORTB) { //PORTB устанавливается на низкий уровень

case 0xFE: //PB0 "S-PREAMP-PWR" (1111_1110)

if (process_valid_input_PORTB(new_PORTB)) {

preamp_off();

keep_going=0;

}

break;

case 0xFD: //PB1 "S-PHONO" (1111_1101)

if (which_input !=1) {

if (process_valid_input_PORTB(new_PORTB) {

which_input = 1;

change_input();

}

}

break;

case 0xFB: //PB2 "S-CD" (1111_1011)

if (which_input!=2) {

if (process_valid_input_PORTB(new_PORTB)) {

which_input = 2;

change_input();

}

}

break;

case 0xF7: //PB3 "S-TUNER" (1111_0111)

if (which_input != 3) {

if (process_valid_input_PORTB(new_PORTB)) {

which_input = 3;

change_input();

}

}

break;

case 0xEF: //PB4 "S-TAPE#1" (1110_1111)

if (which_input != 4) {

if (process_valid_input_PORTB(new_PORTB)) {

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Барретт читать все книги автора по порядку

Стивен Барретт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С, автор: Стивен Барретт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x