(dette er desværre ikke et tastatur matrix, og har 14 pins),

C

csdominik

Guest
Hej, jeg er i løbet af min 1wszego projekt AT89S52.
For nylig var jeg den heldige ejer af tastaturet knappen "Download" 12 (dette er desværre ikke et tastatur matrix, og har 14 pins), men jeg kunne ikke det gode "håndtag".
Jeg vil gerne scanne 4 byte-kode ind fra tastaturet (fx 1234), og derefter gemme den i registreringsdatabasen (i dette tilfælde i regnskaberne, fordi hver kan rumme 0-255) til at sammenligne den med den rigtige koder, for eksempel, er beliggende i tab1.

Please help.
Jeg tilslutter mig mine forsøg:
Kode:MOV R0, # 0

KEYBOARD:

MOV P1, # 11111111B;

SETB P2.2;

SETB P2.3; er de havne, som jeg har en tilsluttet tastatur

SETB P2.4; sende dem en logisk 1 for at kontrollere dem ved hjælp af "0"

SETB P2.5;

JNB P2.4, Star

JNB P1.0, ZERO

JNB P2.5, Krzyz

JNB P1.7, SEVEN

JNB P2.2, OTTE, her kontroller for at se, om nogen nøgle blev trykket

JNB P2.3, ni

JNB P1.4, FIRE

JNB P1.5, FURNACE

JNB P1.6, seks

JNB P1.1, ONE

JNB P1.2, TO

JNB P1.3, TRE

KEYBOARD JMPZERO:

JNB P1.0, $; forsøg på at fjerne vibrationer?

MOV A, # 00000000B, jeg træder hvad der er blevet presset ind i (eller 0) til A

LCALL DESUDEN her, jeg ville tilføje disse værdier (i 4 faser, tusinder, hundredvis af registreringsdatabasen til 1, og snesevis og enhed til en anden?, Osv.)

MOV m-, # MESSAGE0, sende værdien på LCD-presset

CALL LCD_STRING; jw

INC R0

CJNE R0, # 4, KEYBOARD, kontrolciffer, der er på tur, hvis 4 er et spring ind i maskinskrevet

JMP alarm, hvis ikke gå tilbage til at vente på den næste presning af en af tasterneONE:

JNB P1.0, $

MOV A, # 00000001B

DEC R0
LCALL UD

MOV m-, # MESSAGE0

INC R0

CJNE R0, # 4, KEYBOARD

JMP INDTASTNINGosv.

 
Desværre var jeg ikke i stand til at løse dette problem (læs: kontrollere 4-bit-kode).
Jeg kunne aldrig finde selv en overfladisk redegørelse for tabellerne i assembler.(hvis nogen ved hvor man kan finde denne info - husk CI)

Jeg har bemærket, at en masse mennesker læser mit indlæg, så selvisk, anerkender det som en interessant, skriv til mig, en simpel løsning.
i sidste ende rozpracowałem opgave uden borde - men de registre, således koderne er 3-bit, og det er kun fra 0 til 255
sczytaniu efter 3 bits fra tastaturet - fx 123 - jeg tænder den 1x100 2x10 3, og smide i register R1 (med henblik på ved at kontrollere, om det er i øjeblikket er opført i værdi af flere hundrede ENHED)
i en enkelt løkke (med xorem) at kontrollere, om indholdet af register R1 er lig bringes til de korrekte koder (og formentlig i de registre, R3, R4, R5 er programmatisk optaget - ja, hver gang du starter stift - "almindelige" kode og registrere R2 er muligvis tilføjes til tastaturet kode i mit program for eksempel * 155 tilføjet kode 155 til at registrere R2 - og det er "normal")

pozdrawiam Dominik
 

Welcome to EDABoard.com

Sponsor

Back
Top