gusy25o4 Δημοσ. 23 Ιανουαρίου 2013 Δημοσ. 23 Ιανουαρίου 2013 PORTB.DATA EQU $0001 PORTC.DATA EQU $0002 PORTD.DATA EQU $0003 PORTB.DIRECTION EQU $0005 PORTC.DIRECTION EQU $0006 PORTD.DIRECTION EQU $0007 PORTC.PullUpEn EQU $000E COUNTER1 EQU $0040 COUNTER2 EQU $0041 COUNTER3 EQU $0042 ROM.START EQU $8000 RESET.VECTOR EQU $FFFE ORG ROM.START BSET 0,$001F MOV #$1F,$003C InitPorts BSET 5,PORTD.DATA BSET 5,PORTD.DIRECTION CLR PORTB.DATA MOV #%01111111,PORTB.DIRECTION MOV #%00000011,PORTC.PullUpEn MOV #%11111100,PORTC.DIRECTION START CLRX LOOP LDA TABLE,X STA PORTB.DATA JSR KeyNotInserted1 JSR KeyNotInserted2 LOOP2 INCX CMPX #!9 BLS LOOP JMP START LOOP3 DECX CMPX #!9 BLS LOOP JMP START KeyNotInserted1 BRSET 0,PORTC.DATA,KeyNotInserted2 JSR DEBOUNCE.DELAY KeyNotInserted2 BRSET 1,PORTC.DATA,KeyNotInserted1 JSR DEBOUNCE.DELAY KeyInserted1 BRCLR 0,PORTC.DATA,KeyInserted2 JSR DEBOUNCE.DELAY JMP LOOP2 KeyInserted2 BRCLR 1,PORTC.DATA,KeyInserted1 JSR DEBOUNCE.DELAY JMP LOOP3 DEBOUNCE.DELAY MOV #!20,COUNTER3 LOAD.COUNTER2 MOV #!10,COUNTER2 LOAD.COUNTER1 MOV #!10,COUNTER1 DELAY.LOOP DBNZ COUNTER1,DELAY.LOOP DBNZ COUNTER2,LOAD.COUNTER1 DBNZ COUNTER3,LOAD.COUNTER2 RTS RTS TABLE FCB %01111110 FCB %00110000 FCB %01101101 FCB %01111001 FCB %00110011 FCB %01011011 FCB %01011111 FCB %01110000 FCB %01111111 FCB %01111011 ORG RESET.VECTOR FDB ROM.START PORTB.DATA EQU $0001 PORTC.DATA EQU $0002 PORTD.DATA EQU $0003 PORTB.DIRECTION EQU $0005 PORTC.DIRECTION EQU $0006 PORTD.DIRECTION EQU $0007 PORTC.PullUpEn EQU $000E COUNTER1 EQU $0040 COUNTER2 EQU $0041 COUNTER3 EQU $0042 ROM.START EQU $8000 RESET.VECTOR EQU $FFFE ORG ROM.START BSET 0,$001F MOV #$1F,$003C InitPorts BSET 5,PORTD.DATA BSET 5,PORTD.DIRECTION CLR PORTB.DATA MOV #%01111111,PORTB.DIRECTION MOV #%00000011,PORTC.PullUpEn MOV #%11111100,PORTC.DIRECTION START CLRX LOOP LDA TABLE,X STA PORTB.DATA JSR KeyNotInserted1 JSR KeyNotInserted2 LOOP2 INCX CMPX #!9 BLS LOOP JMP START LOOP3 DECX CMPX #!9 BLS LOOP JMP START KeyNotInserted1 BRSET 0,PORTC.DATA,KeyNotInserted1 JSR DEBOUNCE.DELAY KeyNotInserted2 BRSET 1,PORTC.DATA,KeyNotInserted2 JSR DEBOUNCE.DELAY KeyInserted1 BRCLR 0,PORTC.DATA,KeyInserted1 JSR DEBOUNCE.DELAY JMP LOOP2 KeyInserted2 BRCLR 1,PORTC.DATA,KeyInserted2 JSR DEBOUNCE.DELAY JMP LOOP3 DEBOUNCE.DELAY MOV #!20,COUNTER3 LOAD.COUNTER2 MOV #!10,COUNTER2 LOAD.COUNTER1 MOV #!10,COUNTER1 DELAY.LOOP DBNZ COUNTER1,DELAY.LOOP DBNZ COUNTER2,LOAD.COUNTER1 DBNZ COUNTER3,LOAD.COUNTER2 RTS RTS TABLE FCB %01111110 FCB %00110000 FCB %01101101 FCB %01111001 FCB %00110011 FCB %01011011 FCB %01011111 FCB %01110000 FCB %01111111 FCB %01111011 ORG RESET.VECTOR FDB ROM.START γεια σας αυτά είναι δυο προγράμματα στην assembly που σε ένα seven seg display όταν πατάς ένα κουμπί ο αριθμός γίνετε +1 όταν πατάς το άλλο -1 πως μπορώ αν ξέρει κανένας να συνδυάσω τα δυο κουμπιά μαζί γιατί τώρα και στο ένα και στο άλλο απότι νομίζω πηγαίνει στο ένα κουμπί το +1 και πρέπει να πατηθεί για να προχωρήσει και αφού πατηθεί πάλι στο +1 πηγαίνει καμια βοήθεια
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα