Πληκτρολόγιο

R

Rizwanishaq

Guest
Μπορεί κάποιος να με βοηθήσει τη σύνδεση του πληκτρολογίου για το 8051 και να δώσει το πρόγραμμα

 
Zalewani spamem, wśród którego znajduje się korespondencja biznesowa, często nie potrafimy odróżnić fałszywki od realnej korespondencji. Zagrożenia cechują się często kilkoma elementami.

Read more...
 
επιλέξετε μία γραμμή και στη συνέχεια να σαρώσει όλες τις στήλες.
Επιλέξτε μια άλλη γραμμή και πάλι.
Πλήρης σάρωση λένε κάθε 100ms.
Εάν πιεστεί, ελέγξτε δύο φορές μετά 10ms.

 
αν θέλετε να αποφύγετε το πληκτρολόγιο algo και διαβάστε απλώς από το λιμάνι, τότε η χρήση 74HC922/74923.Έχω χρησιμοποιήσει αυτή με AVR.Βλέπω
http://booksbybibin.14.forumer.com/viewtopic.php?t=11

Bibin John
www.bibinjohn.tk

 
Ο κωδικός αυτός εμφανίσεις 4x4 πληκτρολόγιο ..
Αν δεν χρειάζεστε σειριακή / παράλληλη παραγωγή - αφαίρεση αντίστοιχα τμήματα ..

Χαιρετισμοί,
IanP
Κωδικός:

$ NOPAGING

$ MOD252;------------------------------------------------- -------------------------------------------------- ------------------

? Κωδικός: 4x4 μήτρα κλειδί pad

? Είσοδοι: hex πληκτρολόγιο μέσω port1

? Έξοδοι: τιμή ASCII του πατημένο το κουμπί αποστέλλεται μέσω της σειριακής θύρας καθώς επίσης και το αντίστοιχο hex είναι Ouput μέσω p3.5 να P3.2

;------------------------------------------------- -------------------------------------------------- -----------------ROW0 EQU P1.0

ROW1 EQU P1.1

ROW2 EQU P1.2

ROW3 EQU P1.3CLMN0 EQU P1.7

CLMN1 EQU P1.6

CLMN2 P 1,5 EQU

CLMN3 EQU P1.4DIGIT DATA 30h? Προσωρινή αποθήκευση των πατημένο ..

ALERT EQU P3.7? Πηγαίνει χαμηλά όταν πιεστεί .. οποιοδήποτε πλήκτρο για
ORG 0000hLJMP Ks_MainORG 0030h;_________________________________________________________________

;---------- SERIAL PORT αρχικοποίησης ξεκινά εδώ -----------------

;_________________________________________________________________S9k_Main: MOV TMOD, # 20h? Timer_0 στο Mode2 (8bit reload auto) ..

MOV TH1, # 0fdh? Που Baud σε 9600 ..

MOV SCON, # 50h? Αύξων mode1 (8bit δεδομένα varialble baud) ..

SETB TR1? Έναρξη timer_0 ..

RET;-------------- SERIAL Transmit subroutine -------------------------Tx_Main: MOV SBUF, A

Tx_Loop: JNB TI, Tx_Loop

CLR TI

RET;-------------- SERIAL ΛΑΒΕΙ subroutine --------------------------
Rx_Main: CLR A

Rx_Loop: JNB RI, Rx_Loop

MOV A, SBUF

CLR RI

RET;---------------------- 20ms καθυστέρηση ------------------------- --------Delay_20ms:? PUSH R0

? PUSH R1

MOV R0, # 36

Delay_20ms_Loop1: MOV R1, # 255

Delay_20ms_Loop2: DJNZ R1, Delay_20ms_Loop2

DJNZ R0, Delay_20ms_Loop1

? POP R1

? POP R0

RET;------------------------ υπορουτίνα οθόνη ----------------------- ---------Disp_Message: PUSH ACCDisp_M_Loop1: MOV A, # 00h? Επαναφορά συσσωρευτής ..

MOVC A, @ A DPTR

CJNE A, # 00h, Disp_M_Loop2POP ACC

RETDisp_M_Loop2: MOV SBUF, A

LCALL Tx_Main

INC DPTR

LJMP Disp_M_Loop1Disp_Pressed: Key ΣΠ 'πιεστεί είναι:', 00h;---------------- συσκευασμένα ascii hex να μετατροπής ------------------Ascii2hex: PUSH ACCMOV A, DIGIT

SUBB A, # 30h

MOV B, A

ANL A, # 10h

CJNE A, # 00h, Ascii2hex_Loop2

MOV B, AAscii2hex_Loop1: MOV DIGIT, A

POP ACC

RETAscii2hex_Loop2: MOV A, DIGIT

SUBB A, # 37H

SJMP Ascii2hex_Loop1;------------------ στείλετε πατημένο το κουμπί μέσω p3 ----------------------Send4x4_Parallel: PUSH ACC

MOV A, DIGITRRC A

MOV P3.5, Γ? LSB ..

RRC A

MOV P3.4, C

RRC A

MOV P3.3, C

RRC A

MOV P3.2, Γ? MSB ..POP ACC

RET;_________________________________________________________________

;------------------------- κύριο κωδικός ---------------------- --------

;_________________________________________________________________Ks_Main: MOV P1, # 0FFh? Κάντε θύρες εισόδου ..

? mov P3, # 00h? κάνει θύρες εξόδου? ποτέ δεν κάνει αυτό το λάθος => 3,0 n 3,1 είναι σειριακή καρφίτσες

SETB ALERT

LCALL S9k_Main

Ks_Main1: MOV P1, # 0F0h? Όλες τις στήλες γραμμές υψηλής n χαμηλή ..

MOV A, P1

ANL A, # 11110000b? Εξετάσει μόνο στήλες ..

CJNE Α, # 11110000b, Ks_Main1? Αρχικά ελέγχου για όλα τα κλειδιά κυκλοφορήσει ..;------------------------------------------------- ------------------Ks_Loop1: LCALL Delay_20ms

MOV A, P1

ANL A, # 11110000b? Σάρωση στήλες ..

CJNE Α, # 11110000b, Debounce? Αν πλήκτρο, ελέγξτε debounce ..

SJMP Ks_Loop1? Αν δεν διατηρεί τον έλεγχο για το πλήκτρο ..;------------------------------------------------- ------------------Debounce: LCALL Delay_20ms

MOV A, P1

ANL A, # 11110000b

CJNE Α, # 11110000b, Check_Row

SJMP Ks_Loop1;------------------------------------------------- -------------------Check_Row: MOV DPTR, # Disp_Pressed

LCALL Disp_MessageCLR ROW0

SETB ROW1

SETB ROW2

SETB ROW3MOV A, P1

ANL A, # 11111110b? Σειρά δοκιμών μηδέν ..

CJNE Α, # 11111110b, Row_0;------------------------------------------------- -------------------SETB ROW0

CLR ROW1

SETB ROW2

SETB ROW3MOV A, P1

ANL A, # 11111101b? Σειρά δοκιμών ενός ..

CJNE Α, # 11111101b, Row_1;------------------------------------------------- --------------------

SETB ROW0

SETB ROW1

CLR ROW2

SETB ROW3MOV A, P1

ANL A, # 11111011b? Σειρά δοκιμών δύο ..

CJNE Α, # 11111011b, Row_2;------------------------------------------------- --------------------

SETB ROW0

SETB ROW1

SETB ROW2

CLR ROW3MOV A, P1

ANL A, # 11110111b? Σειρά δοκιμών τρία ..

CJNE Α, # 11110111b, Row_3;------------------------------------------------- ---------------------SJMP Ks_Loop1;------------------------------------------------- ---------------------Row_0: MOV DPTR, # Disp_Kcode0

SJMP Find_NumRow_1: MOV DPTR, # Disp_Kcode1

SJMP Find_NumRow_2: MOV DPTR, # Disp_Kcode2

SJMP Find_NumRow_3: MOV DPTR, # Disp_Kcode3

SJMP Find_Num;------------------------------------------------- ---------------------Find_Num: RLC A

JNC Found_Num? Που στήλης πιέζεται / γειωμένο ..

INC DPTR

SJMP Find_Num;------------------------------------------------- ---------------------Found_Num: CLR ALERT? Γνωστοποιεί κύρια MC ότι πλήκτρο έχει πατηθεί ..CLR A

MOVC A, @ A DPTR

MOV DIGIT, A

LCALL Tx_Main? Στείλετε πατημένο το κουμπί για να σειριακή θύρα ..

LCALL Ascii2hex

LCALL Send4x4_ParallelSETB ALERT? Φέρει πληκτρολόγιο ενότητα για την κατάσταση αναμονής ..;------------------------------------------------- ----------------------LJMP Ks_Main1;------------------------------------------------- ----------------------

Disp_Kcode0: DB '0 ', '1', '2 ', '3'

Disp_Kcode1: DB '4 ', '5', '6 ', '7'

Disp_Kcode2: DB '8 ', '9', 'A', 'B'

Disp_Kcode3: Γ ', η DB' D ',' E ',' F '

;------------------------------------------------- ----------------------ΤΕΛΟΣ

 
hi all
μία με βοηθήσει

για να συνδέσετε το PC AT πληκτρολόγιο για την at89c51

 
Χάρη στην, IanPΕγώ θα προσπαθήσω να λειτουργεί σωστά.

ΣυγχαρητήριαΜε τις καλύτερες ευχές

 

Welcome to EDABoard.com

Sponsor

Back
Top