Четверг, 28.03.2024, 22:33
Микроконтроллерная техника AVR
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Помоги сайту
Поддержи наш сайт
Через WebMoney
U222865683087
R391933670808
Z877043628365
E649133782052

или пополни нашу SMS копилку
SMS.копилка

Ссылки

 Каталог статей
Главная » Статьи » Учимся работать с AVR

Использование прерываний и робота с клавиатурой 4*4

Привет. Как-то на форуме был задан вопрос об использовании прерывания и как подключит МК к клавиатуре 4*4. Я ре шил объединить эти эти 2 темы в одну. Для клавиатуры 4*4 не очень будет рационально использовать  8 портов МК. На рынках есть специальные микросхемы (мультиплексом и шифратор)MM74С922, также нам будет необходимо использовать инвертор (элемент НЕ) 7404. Даташиты к компонентам в файле проекта.   Эта схема будет выводить в терминал код который наш драйвер клавиатуры(MM74С922)  занес в порт "В". В АТМega8 портов прерываний 2, INT0 и  INT1.

Создадим новый проект, настроем USART и External IRQ так как показано на рисунку. 

И выставить прерывание по спаданию, то есть с высокого уровня в низкий.

Схема:

Код программы:

#include <mega8.h>


// Standard Input/Output functions

#include <stdio.h>

 int button=0;   

 

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void)   // иницыализыцыя прерываний

{

// Place your code here

    button=PINB;                                // в переменную записываем код который нам отправил шефратор



printf ("Ch= %d \n\r",button);                  // отправить переменную в УАРТ

}


void main(void)

{

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 

PORTB=0x00;

DDRB=0x00;


// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 

// State6=T State5=T State4=T State3=T State2=T State1=T State0=T 

PORTC=0x00;

DDRC=0x00;


// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 

PORTD=0x00;

DDRD=0x00;


// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

// INT1: Off

GICR|=0x40;

MCUCR=0x02;

GIFR=0x40;



// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART Receiver: On

// USART Transmitter: On

// USART Mode: Asynchronous

// USART Baud Rate: 9600

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0x00;

UBRRL=0x33;


#asm("sei")

while (1)

      {

      // Place your code here

      };

}


Вопросы на форум. Файлы проекта в разделе файлы.

Категория: Учимся работать с AVR | Добавил: my-avr (01.11.2009)
Просмотров: 11022 | Комментарии: 4 | Рейтинг: 0.0/0 |
Всего комментариев: 3
3 sinner7  
0
Доброго времени суток. Можно ли пожалуйста пример схемы+програмы (с розяснениям) динамического опроса клавиатуры 3*3 ("кодовый замок"), чтоб включить светодиод. Я начинающый... Зарание благодарю!
Сайт - супер, очень помог. Спасибо Вам...

2 my-avr  
0
Попробуйте скачать проект с каталога файлы к этому проекту, и попробуйте посмотреть что не так.

1 Aleksey  
0
Проект создал в потеусе как у Вас,но на терминал код не выходит??

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright My-AVR © 2024
Наша кнопка
У нас появилась кнопка, код кнопки:

Лаборатория самоделок на микроконтроллерах AVR

Форма входа
Наш опрос
Как вам материалы на сайте
Всего ответов: 863
Статистика/Друзья
CY-PR.com



Онлайн всего: 1
Гостей: 1
Пользователей: 0

РадиоКОТ - популярно об электронике. Авторские схемы, новые разработки. Обучение по электронике, микроконтроллерам, ПЛИС. Форум Сайт по радиоэлектронике. У нас все просто и интересно… ARV Reserch: Электроника — просто, полезно, увлекательно. Электронные устройства и программные средства для радиолюбителей и профессионалов, только авторские разработки, плагиата нет! Разработки на заказ. AVR projects Создание электронных роботов своими руками Схемы и программы на AVR http://ur5yfv.ucoz.ua/BANNER.gif Блог начинающего эмбеддера. Дай волю паяльнику! Самоделки на all-make.ru Принципиальные схемы Модулі автозапуску бензогенератора та системи АВР, електромонтажні роботи
Хостинг от uCoz