Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
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 πηγαίνει καμια βοήθεια  

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...