Матричная клавиатура

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Матричная клавиатура

Сообщение snayperAlfa » 23 июн 2008, 22:58

собрал я вот такую схму для матрицы кнопок.
clip_image002.jpg
clip_image002.jpg (10.85 КиБ) Просмотров: 2668


Пишу вот такой код и оно выводит надписи хотя я кнопки не нажимаю
Код: Выделить всё
DDRC= 0b00000001;
PORTC=0b00000001;

// LCD module initialization
lcd_init(16);
lcd_clear();

while (1)
      {
     
       
        if(PINC.1==1){
        delay_ms(50);
        lcd_clear();
        printf("PINC.1==1");
        delay_ms(3000);
        }
       
        if(PINC.4==1){
        delay_ms(50);
        lcd_clear();
        printf("PINC.4==1");
        delay_ms(3000);
        }
       
      };


Как это исправить?
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

Re: Матричная клавиатура

Сообщение Myp » 23 июн 2008, 23:01

хмм
я конечно ничо не понимаю в програмлении
но щас ктонить придёт и скажет что у тебя ноги неправильно сконфигурены
и чото мне схема не нравится...
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Матричная клавиатура

Сообщение snayperAlfa » 24 июн 2008, 00:28

Я изменил код на следующий
while (1)
{
if(PINC.1==1 && PINC.4==0){
delay_ms(50);
lcd_clear();
printf("PINC.1==1");
delay_ms(3000);
}
};

И теперь когда подношу руку к проводам которы идут от клавы к МК то надпись поялвяется на ЖК. :o Шо это я за датчик изобрел? :D
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

Re: Матричная клавиатура

Сообщение Victorovych » 24 июн 2008, 01:45

Входы РС4-РС7 ни к чему не подтянуты и висят в сером состоянии, при поднесенной руке емкость линии изменяется, потенциал на входе приподымается и трактуется контроллером как единица(достаточно одного такта). Дисплей рисует. :)
Вывод датчик - емкостной :ROFL:
К-стати не пойму, зачем РС0, хитрое ноухау?
Аватара пользователя
Victorovych
 
Сообщения: 491
Зарегистрирован: 20 сен 2007, 11:44
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич

Re: Матричная клавиатура

Сообщение $ilent » 24 июн 2008, 09:29

Исправить на что?
Можно например так:
Код: Выделить всё
DDRC= 0b00000000;
PORTC=0b00000000;

// LCD module initialization
lcd_init(16);
lcd_clear();

while (1)
      {
        if(PINC.1==1){
        delay_ms(50);
        lcd_clear();
        printf("Пиво");
        delay_ms(3000);
        }
        if(PINC.4==1){
        delay_ms(50);
        lcd_clear();
        printf("Мясо");
        delay_ms(3000);
        }
      };

А вообще опрос клавиш не правильный, с матрицей так не работают.
И для чего РС0 с диодами подключил?
$ilent
 

Re: Матричная клавиатура

Сообщение Master » 24 июн 2008, 11:06

Короче ползешь на радиокот.ру, там есть стать по подключенияю матрицы к МК, там берешь схему, если есть желание можно и в коде разобрать, но он на асме.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Матричная клавиатура

Сообщение snayperAlfa » 24 июн 2008, 11:22

Я схему взял из апноута атмеля.Но там код на асме.Я в нем 0.Если кому не трудно то укажите как переподключить матрицу кнопок и проводить ее опрос.Позалуста

Добавлено спустя 3 минуты 28 секунд:
Вот откуда взял схему AVR240.pdf.
clip_image002.jpg
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

Re: Матричная клавиатура

Сообщение EdGull » 24 июн 2008, 11:31

а ни чё что она с твоей ваще не совпадает? :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Матричная клавиатура

Сообщение snayperAlfa » 24 июн 2008, 11:43

У меня клава 3*4 и без резисторов
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

Re: Матричная клавиатура

Сообщение EdGull » 24 июн 2008, 11:50

решил на резисторах сэкономить? :D

Добавлено спустя 2 минуты 39 секунд:
или ты думаешь что они там лишние?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Матричная клавиатура

Сообщение snayperAlfa » 24 июн 2008, 12:21

Щас я их туда присобачу
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

Re: Матричная клавиатура

Сообщение EdGull » 24 июн 2008, 12:26

боюсь чт оуже поздно :D
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Матричная клавиатура

Сообщение snayperAlfa » 24 июн 2008, 12:41

:shock:
snayperAlfa
 
Сообщения: 163
Зарегистрирован: 05 июн 2008, 22:03
Откуда: Украина,Одесса
прог. языки: С,Java,SQL если это язык,C++ немного

Re: Матричная клавиатура

Сообщение Master » 24 июн 2008, 12:55

Не ну а что ты хотел? Представляешь какой ток пошел через порты МК.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Матричная клавиатура

Сообщение Victorovych » 24 июн 2008, 13:10

Контроллеру думаю ничего не случилось, какие там токи?
Аватара пользователя
Victorovych
 
Сообщения: 491
Зарегистрирован: 20 сен 2007, 11:44
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15