а в чем проблема ? что-то типа (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено DASM 02 июля 2003 г. 16:56
В ответ на: Ответ: Нужна помощь по AT89C51! отправлено Радик 02 июля 2003 г. 16:26


// пусть все подключено на порт2, p2.0...p2.2 - столбцы, p2.3 - p2.6 - строки
union {
unsigned short int keys;
char KEY_0 : 1;
char KEY_1 : 1;
char KEY_2 : 1;
char KEY_3 : 1;
char KEY_4 : 1;
char KEY_5 : 1;
char KEY_6 : 1;
char KEY_7 : 1;
char KEY_8 : 1;
char KEY_9 : 1;
char KEY_A : 1;
char KEY_B : 1;
} key_state;

void main () // это все в прерывание INT0 засунуть
{
char row, col;
key_state.keys = 0;
key_state.KEY_0 = 1;
for (row = 0; row < 4; row++) {
P2 = 0xff & ~ (1 << row);
// тут неплохо бы паузу для перезарядки емкостей линий
for (col = 0; col < 3; col++) {
if (!(P2 & (1 << col))) {
key_state.keys |= (row << 2 + 1 << col);
}
}
}
}


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru