C
chevymn1964
Guest
Hey Everyone!Βρήκα μια ρουτίνα στο διαδίκτυο που μετατρέπει 10 bit δυαδικό ψηφίο έως 4 BCD Νομίζω όμως ότι υπάρχει ένα τυπογραφικό λάθος, επειδή υπάρχει μια goto b2d2 και η b2d2 το isnt αναφέρονται σχετικά με τον κώδικα ......Όποιος έχει μια ιδέα όπου η b2d2 πρέπει να προχωρήσει;;;;Οποιαδήποτε άλλη 10bit με 4 ψηφίων bcd ρουτίνα;;;;Προσπαθώ να εμφανίζει τάση για μια LCD με ένα PIC 16f676
;======= Bin2Dec10G.asm ============= Sep 04 =========
? Δοκιμή 10β δυαδικό ψηφίο σε 4 μετατροπής ως
? Βασίζεται στην κατανομή των αρμοδιοτήτων από 10.
?
? EA, Grens
?
? Για περισσότερες υπεύθυνοι - εδώ για 16F628 με 4 MHz
? Εσωτερικό ταλαντωτή.
?
? Μέση κύκλους επεξεργαστή για την εκτέλεση
? Υπορουτίνα στην περιοχή εισόδου 0x000 να 0x3FF
? Είναι 88.Δεν μεταβλητές που απαιτούνται, εκτός από την
? Blh εισροών, blo και το εκτός ψηφία BCD.
? Υπορουτίνα μήκος 38.
;================================================= =====
p = κατάλογο 16f628
radix Δεκέμβριος
# include
__config 0x3D30;------- Ρύθμιση RAM Μεταβλητές ---------------------------
blo EQU 0x20? lsbyte της 10β binary
BHI EQU 0x21? MSB
d4 EQU 0x23? msdigit
d3 EQU 0x24
d2 EQU 0x25
d1 EQU 0x26? LSD
;------- Πρόγραμμα Κωδικός --------------------------------
org 0x00? Αποτελεσματική Reset Vector
?
NOP
Ξεκινήστε goto? Μετάβαση από διακοπή
?
Εκκίνηση
movlw 0x07
movwf CMCON? Digital I / O
movlw 0x03? Test εισόδου
movwf BHI
movlw 0xFF
movwf blo
movlw 0x04
κλήση Bin2decg
Κρατάω
goto Hold? Finished
Bin2decg? 10β binaey να BCD
clrf d1
clrf d2
clrf d3
clrf d4
clrc
ΔΤΑ BHI, στ? N = 4 * Q R
ΔΤΑ blo, στ? blo = Q
ΔΤΑ d1, στ? d1 = R ως temp, R25
B2d2 goto? επαναλάβετε
B2d3
addwf blo, στ? πάρει υπόλοιπο
? Μετά / 100, C = 0
rlf d1, στ? * 4 και προσθέστε R πίσω στο
rlf blo, στ
rlf d1, στ
rlf blo, στ? 4 * BLO R = N --
? 1000 * D4 - 100 * D3
movlw 10
B2d4
subwf blo, στ? blo = N - 1000 * D4 --
? 100 * D3 - 10 * d2
skpc
B2d5 goto? blo10
B2d4 goto
B2d5
addwf blo, στ? τεθεί τελευταία 10 πίσω, Γ = 0
movf blo, w
movwf d1
επιστροφή
τέλος
;======= Bin2Dec10G.asm ============= Sep 04 =========
? Δοκιμή 10β δυαδικό ψηφίο σε 4 μετατροπής ως
? Βασίζεται στην κατανομή των αρμοδιοτήτων από 10.
?
? EA, Grens
?
? Για περισσότερες υπεύθυνοι - εδώ για 16F628 με 4 MHz
? Εσωτερικό ταλαντωτή.
?
? Μέση κύκλους επεξεργαστή για την εκτέλεση
? Υπορουτίνα στην περιοχή εισόδου 0x000 να 0x3FF
? Είναι 88.Δεν μεταβλητές που απαιτούνται, εκτός από την
? Blh εισροών, blo και το εκτός ψηφία BCD.
? Υπορουτίνα μήκος 38.
;================================================= =====
p = κατάλογο 16f628
radix Δεκέμβριος
# include
__config 0x3D30;------- Ρύθμιση RAM Μεταβλητές ---------------------------
blo EQU 0x20? lsbyte της 10β binary
BHI EQU 0x21? MSB
d4 EQU 0x23? msdigit
d3 EQU 0x24
d2 EQU 0x25
d1 EQU 0x26? LSD
;------- Πρόγραμμα Κωδικός --------------------------------
org 0x00? Αποτελεσματική Reset Vector
?
NOP
Ξεκινήστε goto? Μετάβαση από διακοπή
?
Εκκίνηση
movlw 0x07
movwf CMCON? Digital I / O
movlw 0x03? Test εισόδου
movwf BHI
movlw 0xFF
movwf blo
movlw 0x04
κλήση Bin2decg
Κρατάω
goto Hold? Finished
Bin2decg? 10β binaey να BCD
clrf d1
clrf d2
clrf d3
clrf d4
clrc
ΔΤΑ BHI, στ? N = 4 * Q R
ΔΤΑ blo, στ? blo = Q
ΔΤΑ d1, στ? d1 = R ως temp, R25
B2d2 goto? επαναλάβετε
B2d3
addwf blo, στ? πάρει υπόλοιπο
? Μετά / 100, C = 0
rlf d1, στ? * 4 και προσθέστε R πίσω στο
rlf blo, στ
rlf d1, στ
rlf blo, στ? 4 * BLO R = N --
? 1000 * D4 - 100 * D3
movlw 10
B2d4
subwf blo, στ? blo = N - 1000 * D4 --
? 100 * D3 - 10 * d2
skpc
B2d5 goto? blo10
B2d4 goto
B2d5
addwf blo, στ? τεθεί τελευταία 10 πίσω, Γ = 0
movf blo, w
movwf d1
επιστροφή
τέλος