Tastatūras ir plaši izmantotas ievades ierīces, ko izmanto dažādos elektronikas un iegultos projektos. Tos izmanto, lai ņemtu ievadi skaitļu un alfabētu formā, un tos pašus ievada sistēmā tālākai apstrādei. Šajā apmācībā mēs saskarsimies ar 4x4 matricas tastatūru ar 8051 mikrokontrolleru.
4X4 Matrix tastatūra
Pirms saskarnes ar tastatūru saskarē ar mikrokontrolleru, vispirms mums jāsaprot, kā tā darbojas. Matricas tastatūra sastāv no savstarpēji savienotām spiedpogām. Tāpat kā mūsu gadījumā mēs izmantojam 4X4 matricas tastatūru, kurā katrā četrās rindās ir 4 spiedpogas. Spiedpogu spailes ir savienotas saskaņā ar shēmu. Pirmajā rindā viens terminālis no visām 4 spiedpogām ir savienots kopā, un cits 4 spiedpogu spailes apzīmē katru no 4 kolonnām, tas pats attiecas uz katru rindu. Tātad mēs iegūstam 8 termināļus, lai izveidotu savienojumu ar mikrokontrolleru.
Saskarne ar tastatūru 8051 ar mikrokontrolleru (AT89S52)
Vispirms mums ir jāsaskaras ar LCD moduli, lai parādītu datus, kas tiks ievadīti caur KEYPAD, tāpēc, pirms saskarnes KEYPAD, lūdzu, izlasiet rakstu “LCD saskarne ar 8051 mikrokontrolleru”.
Kā parādīts iepriekšējā ķēdes shēmā, lai saskarne Tastatūra, mums ir jāpievieno 8 tastatūras spailes jebkuram mikrokontrollera portam (8 tapas). Tāpat kā mēs esam savienojuši tastatūras spailes ar 8051. portu 1. Ikreiz, kad tiek nospiesta kāda poga, mums ir jāiegūst pogas atrašanās vieta, tas nozīmē atbilstošo RINDU SLEJU Nr. Kad esam saņēmuši pogas atrašanās vietu, mēs varam attiecīgi izdrukāt rakstzīmi.
Tagad rodas jautājums, kā iegūt nospiestās pogas atrašanās vietu? Es to paskaidrošu zemāk norādītajās darbībās, kā arī vēlos, lai jūs apskatītu kodu:
1. Vispirms mēs esam izveidojuši visas rindas līdz loģikas līmenim 0 un visas kolonnas līdz loģikas līmenim 1.
2. Ikreiz, kad nospiežam pogu, kolonnu un rindu, kas atbilst šai pogai, tiek saīsināts un tiek izveidota atbilstošā kolonna līdz loģikas līmenim 0. Tā kā šī kolonna kļūst savienota (īssavienota) ar rindu, kas atrodas 0. loģikas līmenī. Tātad mēs iegūstam kolonnas Nr. Skatīt galveno () funkciju.
3. Tagad mums jāatrod Row nr., Tāpēc esam izveidojuši četras funkcijas, kas atbilst katrai kolonnai. Tāpat kā tad, ja tiek nospiesta kāda pirmās kolonnas poga, mēs izsaucam funkciju row_finder1 (), lai atrastu rindu Nr.
4. Funkcijā row_finder1 () mēs mainījām loģikas līmeņus, tas nozīmē, ka tagad visas Rindas ir 1 un kolonnas ir 0. Tagad nospiestās pogas rindai jābūt 0, jo tā ir savienota (saīsināta) ar kolonnu, kuras poga ir nospiesta, un visas kolonnas ir ar 0 loģiku. Tātad mēs esam skenējuši visas 0 rindas.
5. Tātad, kad mēs atrodam Row loģikā 0, tas nozīmē, ka tā ir nospiestās pogas rinda. Tātad tagad mums ir slejas nr (nokļuvis 2. solī) un rindas nr., Un mēs varam izdrukāt nr. izmantojot pogu lcd_data.
Katru pogas nospiešanu ievēro to pašu procedūru, un mēs izmantojam (1), lai nepārtraukti pārbaudītu, vai poga ir nospiesta vai nē.