Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 18.04.2016, 16:10  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию ADuC841. Работа с клавиатурой

Есть плата ADuC841 и к ней подключена клавиатура (Клав1 и Клав2 на схеме). Вопрос состоит в том как программно считывать состояние этих выходов, или в общем как считать нажатую клавишу? Может какие-то адреса опрашивать или как?
Миниатюры:
Нажмите на изображение для увеличения
Название: Scan10077.jpg
Просмотров: 107
Размер:	1,021.5 Кб
ID:	91415   Нажмите на изображение для увеличения
Название: Scan10089.jpg
Просмотров: 151
Размер:	500.3 Кб
ID:	91416  
Реклама:

Последний раз редактировалось Maroder666; 18.04.2016 в 16:13.
Maroder666 вне форума  
Непрочитано 18.04.2016, 23:03  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: ADuC841. Работа с клавиатурой

Сообщение от Maroder666 Посмотреть сообщение
Может какие-то адреса опрашивать или как?
а нахрена на схеме адреса линий дадены, причем 4 на выход, одна на вход? может изучить предварительно динамическую индикацию/опрос кнопок и ее вариации?
jump вне форума  
Непрочитано 24.04.2016, 13:45  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
Хорошо Re: ADuC841. Работа с клавиатурой

Написал такую функцию. К битам привязаны следующие значения sbit bit0 = P1^0;
sbit bit1 = P1^1;
sbit bit2 = P1^2;
sbit bit3 = P1^3;
sbit rez = P3^5;
В главной программе организовал циклический опрос и вывод символа по полученному коду. Однако реакция идет только на одну клавишу - D (4 ряд 4 строка). На другие клавиши не реагирует, причем даже если определенно задать bit0- bit4. (допустим всеми нулями - адрес 1 строки 1 столбца).

Код:
void klav(void)
{	 int i,j,k,l,str,stl;
        bit0 = 1;
	bit1 = 1;
	bit2 = 1;
	bit3 = 1;
	 str=1; stl=1;
  for (i=0;i‹2 ;i++) //cikl po P1.0
{		    bit0 =~bit0 ;  //// P1.0=0
			  for (j=0;j‹2 ;j++)  ////cikl po P1.1
			{		bit1 = ~bit1;// P1.1=0
					 str=1;

				  for (k=0;k‹2 ;k++)//cikl po P1.2
{		         bit2 =~bit2 ;
			  for (l=0;l‹2 ;l++)//cikl po P1.3
			{		bit3 = ~bit3;
				
			if (rez==0) {
					if ((str==1) && (stl==1)) kod = 1;
				    if ((str==1) && (stl==2)) kod = 2;
				    if ((str==1) && (stl==3)) kod = 3;
				    if ((str==1) && (stl==4)) kod = 10;
				    if ((str==2) && (stl==1)) kod = 4;
				    if ((str==2) && (stl==2)) kod = 5;
				    if ((str==2) && (stl==3)) kod = 6;
				    if ((str==2) && (stl==4)) kod = 11;
				    if ((str==3) && (stl==1)) kod = 7;
				    if ((str==3) && (stl==2)) kod = 8;
				    if ((str==3) && (stl==3)) kod = 9;
				    if ((str==3) &&(stl==4)) kod = 12;
			            if ((str==4) &&(stl==1)) kod =14;
				    if ((str==4) &&(stl==2)) kod = 0;
				    if ((str==4) &&(stl==3)) kod = 16;
				    if ((str==4) &&(stl==4)) kod = 13;
				  
				 

					}
					 str++;
		    }
			}
			 stl++;
}	
}
  }
Maroder666 вне форума  
Непрочитано 24.04.2016, 14:00  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: ADuC841. Работа с клавиатурой

Как-то все сложно делают...
Для определения факта нажатия кнопки достаточно на одних шинах выставить нули (все сразу), а на перпендикулярных их искать. Когда факт свершился, просто найти пересечения (кнопки).
Ресурсы для этого необходимы гораздо скромнее, чем для непрерывного сканирования. Ну, если не объединять это с динамической индикацией.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 24.04.2016, 20:49  
3comma62
Прописка
 
Регистрация: 07.02.2016
Адрес: Лесной Урал
Сообщений: 163
Сказал спасибо: 121
Сказали Спасибо 71 раз(а) в 37 сообщении(ях)
3comma62 на пути к лучшему
По умолчанию Re: ADuC841. Работа с клавиатурой

Если глянуть поверхностно, то мультиплексор и демультиплексор по схеме управляются сигналами порта 2, а в программной части я вижу упоминание порта 1?
3comma62 вне форума  
Сказали "Спасибо" 3comma62
Maroder666 (25.04.2016)
Непрочитано 25.04.2016, 13:55  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию Re: ADuC841. Работа с клавиатурой

Всем спасибо. Все заработало
Maroder666 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADuC841. Работа с ЖКИ Maroder666 ПЛИС и другие МК 10 13.02.2016 14:56
Напряжённая работа Roshens Отвлекитесь, эмбеддеры! 8 01.09.2010 23:08


Часовой пояс GMT +4, время: 05:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot