Stap 3: Knop detectie programmering
Neem eerst een kijkje op het schema. -> http://imageshack.us/photo/my-images/841/4kf1.jpg...
Logica te detecteren.
1. eerst instellen DDR registreren om in te voeren. dat wil zeggen, '0', Eg DDRB = 0x0F;
4 pins (1111 -> F) zijn eerst instellen als output pinnen.
De resterende pinnen (0000 -> 0) worden ingesteld als input pinnen.
2. om te lezen een toets/knop, moeten we eerst de input pinnen is ingesteld op hoog en trek het naar laag door het aansluiten van het andere uiteinde van de toets/knop aan de grond. Dus als ooit een toets wordt ingedrukt, krijgt het verbonden met grond. De spanning over dat bepaalde pin gaat van + 5v aan 0v. Deze verandering in spanning detecteert het indrukken van een toets.
7 6 5 4 3 2 1 0
1 1 1 1 0 0 0 0 - > F0 hexadecimaal
PB.0 = 0, O/P pin PB.5 = 1, ik / P Pin
PB.1= 0, O/P pin PB.6 = 1, ik / P Pin
PB.2= 0, O/P pin PB.7 = 1, ik / P Pin
PB.3= 0, O/P pin PB.8 = 1, ik / P Pin
B.v.,
DDRB = 0X0F; Lager hoger 4pins(0000) worden geleid als input pinnen.
PORTB = 0XFF; Instelling Input pins zo hoog te detecteren op een toets drukt.
doen
{
sleutel = PINB & & 0xF0; toets = F0 & & F0 = F0 als geen toets ingedrukt, lus gaat zo door totdat het detecteert. Uitgaande van de PB.7 wordt ingedrukt dan sleutel = 0x70 & & F0 = ox70, lus stopt.
} while(key == 0xF0);
De Code van de steekproef:
Ik heb dit gedefinieerd als een headerbestand in mijn programma.
myButton.h -> https://docs.google.com/document/d/1MLIU19IGr1liBq...
Congrats! U voltooid Stap3, nu laat prototype en bouwen.