Maticová klavesnice – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Maticová klavesnice – Assembler – Fórum – Programujte.comMaticová klavesnice – Assembler – Fórum – Programujte.com

 

Fritak89
~ Anonymní uživatel
2 příspěvky
28. 3. 2013   #1
-
0
-

Čau,

prosim vás, mam procesor atmega 88 a s jeho pomocí programuju maticovou klavesnici 4x4. Klávesy čtu nastavenim tří řádků do log 1 a posledního řádku do log 0 a poté testuji změnou hodnot ve sloupcích, která klávesa je stisknuta a potřeboval bych ošetřit stisk více tlačítek najednou. Nemáte někdo nějaké řešení?

Dík moc,

Tomáš

KEYPRESS:
 KEY0:
 sbi 	PORTD, 0
 sbi 	PORTD, 1
 sbi 	PORTD, 2
 cbi 	PORTD, 3	;log. 0 to the row with *, 0, #, D	
 sbic	PINC, 3
 rjmp	KEY1
 ldi	R16, 0
Nahlásit jako SPAM
IP: 217.195.174.–
28. 3. 2013   #2
-
0
-

tohle jsem na 8051 dělal tak, že jsem klávesnici připojil na port P1, který měl otevřený kolektor a pull-up rezistory. Zapsal jsem 0 na sloupec a pak přečetl celý port jako byte. Podle toho, ve kterých bitech byla 0 jsem pak poznal, která tlačítka jsou stisknutá současně.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Fritak89
~ Anonymní uživatel
2 příspěvky
28. 3. 2013   #3
-
0
-

#2 hlucheucho
Asi jsem špatně napsal co řeším. Já potřebuji ošetřit to, že když zmáčknu 2 tlačítka dojde ke zkratu. Tudíž potřebuju, aby při stisku klávesy se všechny ostatní deaktivovaly a ke stisku více tlačítek by ani nedošlo. Jde mi o to, zda stačí při stisku klávesy všechny ostatní klávesy dát do stavu vysoké impedance a tím by nebyly aktivní, případně, jak toho dosáhnout? 

Dík,

Tomáš

Nahlásit jako SPAM
IP: 217.195.174.–
28. 3. 2013   #4
-
0
-

to bys ty tlačítka musel mechanicky blokovat. Jediné řešení je HW udělat tak aby zkrat nevadil (port s otevřeným kolektorem a pull-up odporem) a pak softwarově vyšetřit, zda uživatel stiskl jen jedno tlačítko. Nejvhodnější je maticovou klávesnici číst takto:

1.První sloupec připojíš na 0, ostatní (přes pull-up) na 1
2.Přečteš řádky a sloupce do CPU
3.Druhý sloupec připojíš na 0, ostatní (přes pull-up) na 1
4.Přečteš řádky a sloupce do CPU.... 
atd

A. pokud není stisknuto žádné tlačítko, je 0 jen na sloupci na který jsi ji z CPU poslal
B. pokud je stisknuto jen jedno tlačítko, je 0 na sloupci na který jsi ji z CPU poslal a na řádku na který přicházi přes stisknuté tlačítko
C. pokud je stisknuto více tlačítek, 0 se vyskytujena více sloupcích a/nebo řádcích.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 216 hostů

Podobná vlákna

Maticová rovnice — založil Eliška

Klavesnice — založil Ladík

C# klavesnice — založil H12

Klavesnice — založil Turbo1

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý