Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 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 с применением языка С - читать книгу онлайн бесплатно, автор Стивен Барретт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

which_input = 4;

change_input();

}

}

break;

case 0xDF: //PB5 "S-TAPE#2" (1101_1111)

if (which_input != 5) {

if (process_valid_input_PORTB(new_PORTB)) {

which_input = 5;

change_input();

}

}

break;

case 0xBF: //PB6 "S-AUX" (1011_1111)

if (which_input != 6) {

if (process_valid_input_PORTB(new_PORTB)) {

which_input = 6;

change_input();

}

}

break;

case 0x7F: //PB7 "S-MUTE" (0111_1111)

if (process_valid_input_PORTB(new_PORTB)) {

mute_toggle();

}

break;

default:; //all other cases

} //конец switch(new_PORTB)

} //конец if new_PORTB

old_PORTB=new_PORTB; //update PORTB

}

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

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

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

void process_PORTA_input_task(void) {

new_PORTA = PORTA; //Читать PORTA

if (new_PORTA != old_PORTA) { //выбор входа по состоянию порта PORTA

switch (new_PORTA) { //PORTA переводится в высокое состояние

case 0x01: //РАО "R-PREAMP-PWR" (0000_0001)

if (process_valid_input_PORTA(new_PORTA)) {

preamp_off();

keep_going=0;

}

break;

case 0x02: //PA1 R-PHONO" (0000_0010)

if (which_input != 1) {

if (process_valid_input_PORTA(new_PORTA)) {

which_input = 1;

change_input();

}

}

break;

case 0x04: //PA2 "R-CD" (0000_0100)

if (which_input != 2) {

if (process_valid_input_PORTA(new_PORTA)) {

which_input = 2;

change_input();

}

}

break;

case 0x08: //РАЗ "R-TUNER" (0000_1000)

if (which_input != 3) {

if (process_valid_input_PORTA(new_PORTA)) {

which_input = 3;

change_input();

}

}

break;

case 0x10: //PA4 "R-TAPE#1" (0001_0000)

if (which_input != 4) {

if (process_valid_input_PORTA(new_PORTA)) {

which_input = 4;

change_input();

}

}

break;

case 0x20: //PA5 "R-TAPE#2M (0010_0000)

if (which_input != 5) {

if (process_valid_input_PORTA(new_PORTA)) {

which_input = 5;

change_input();

}

}

break;

case 0x40: //PA6 "R-ДОПОЛНИТЕЛЬНЫЙ КАНАЛ" (0100_0000)

if (which_input != 6) {

if (process_valid_input_PORTA(new_PORTA)) {

which_input = 6;

change_input();

}

}

break;

case 0x80: //PA7 "R-MUTE" (1000_0000)

if (process_valid_input_PORTA(new_PORTA)) {

mute_toggle();

}

break;

default:; //all other cases

} //конец switch(new_PORTA)

}//конец if new_PORTA

old_PORTA = new_PORTA; //изменяется состояние PORTA

}

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

//initialize_timer:установка частоты таймера обслуживающего счетчик

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

void initialize_timer(void) {

TMSK2 = 0x05; //установка на 250 КГц

TSCR = 0x80; //разрешение работы таймера

}

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

//initialize_ports: начальная конфигурация портов

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

void initialize_ports(void) {

DDRA=0x00; //конфигурация PORTA в качестве входного

PORTA=0x00; //запрет на подключение подтягивающих резисторов в PORTA

DDRB=0x00; //конфигурация PORTB в качестве входного

PORTB=0xff; //разрешение подключения подтягивающих резисторов в PORTB

DDRT=0xff; // конфигурация PORTT в качестве выходного

PORTT=0x00; // установка на низкий уровень

DDRP=0xff; // конфигурация PORTD в качестве выходного

PORTP=0xff // установка на высокий уровень

}

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

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

//initialize_pins: установка отдельных выводов

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

void initialize_pins(void) {

PORTT=0x01; //сброс реле PT0(1) 5 мс импульс с

// активным уровнем (0000_0001)

//delay_5ms():

PORTT=0x00;

}

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

//delay_5ms: Задержка на 5 мс сформированная из базе частоты таймера

//в 250 кГц

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

void delay_5ms(void) {

int i;

for(i=0; i<1250; i++)

asm("nop"); //требуется только один импульс таймера

}

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

//delay_3s: Задержка на 3 с

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

void delay_3s(void) {

int i;

for(i=0;i<600;i++) delay_5ms();

}

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

//change_input: изменение активного входа

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

void change_input(void) {

PORTP &= ~0x80; //установка LED-MUTE-RELAY PP7(0) 1000_0000

PORTT |= 0x01; //установка сброса реле PT0(l) 5 мс

delay_5ms();

PORTT &= ~0x01; //turn off PT0

switch(which_input) {

case 1: //PHONO

phono_task();

break;

case 2: //CD

CD_task();

break;

case 3: //TUNER

tuner_task();

break;

case 4: //TAPE#1

tape1_task();

break;

case 5: //TAPE#2

tape2_task();

break;

case 6: //AUX

aux_task();

break;

default:;//все другие входы

}//конец switch

delay _3s();

PORTP |= 0x80; //сброс LED-MUTE-RELAY PP7(1)

}

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

//mute_toggle: включение и выключение звука

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

void mute_toggle(void) {

if (mute == off) {

PORTP &= ~0x80; //установка LED-MUTE-RELAY PP7(0)

mute = on;

} else {

PORTP |= 0x80; // сброс LED-MUTE-RELAY PP7(1)

mute = off;

}

}//end mute_toggle

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

//preamp_off: turn amplifier off

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

void preamp_off(void) {

PORTP &= ~0x80; //установка LED-MUTE-RELAY PP7(0)

PORTP |= 0x01; //сброс LED-PWR-RELAY PP0(1)

PORTP |= 0x7e; //сброс светодиодов PP1-PP6(1)(0111_1110)

//установка PT7 импульсом 10 мс

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

delay_5ms();

delay_5ms();

PORTT &= ~0x80; //сброс PT7

delay_3s();

PORTP = 0x80; //сброс PP7(1) LED-MUTE-RELAY

keep_going=0;

}

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

//process_valid_input_PORTA: проверка состояния пульта дистанционного

//управления, длительностью не менее 50 мс

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

int process_valid_input_PORTA(unsigned char portx) {

int valid_input; //установить флаг ошибочного входа

unsigned int current_count;

valid_input = TRUE;

current_count = TCNT; // задать текущее состояние

while (TCNT < (current_count+12500)) { //отследить активный вход за 50 мс

if (portx==PORTA) valid_input = TRUE;

else valid_input = FALSE;

if (!valid_input) break; //цикл while

}//end while

return valid_input;

}

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

//process_valid_input_PORTB: проверка состояния переключателей на

//лицевой панели,длительностью не менее 50 мс

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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