PicManía by RedRaven |
Búsqueda personalizada
|
EL RINCÓN DEL ENSAMBLADOR |
||
|
||
Hay solo 10 tipos de personas, las que
entienden el código binario, y las que no. (Roc364 en
Foro Microcontroladores Todopic) |
|
Índice de Rutinas: |
|
|
|
DELAY |
|
Como podéis ver es fácil hacer los cálculos para comprobar cuanto tiempo
se emplea en cada bucle y poder así crear los múltiplos o submúltiplos que
necesitéis. |
1ª parte: en la RAM hacen falta tres variables tal como sigue: | ||
cblock 0x20 ;Comienzo de los registros de propósito general |
||
|
2ª parte: La rutina DELAY tal como queda: | ||
Del0 retlw 0x00 ;delay 0mS - vuelve inmediatamente |
||
|
SELECCIONAR un BYTE
mediante su OFFSET |
|
... movlw 0x5
;Cargo en W Offset o Índice del Byte a cargar ...
|
||
|
Bin2BCD |
Cuando queremos utilizar uno de
esos drivers para Displays de 7
segmentos que solo aceptan datos en BCD se impone una rutina que nos
convierta nuestro byte en tan estrambótico Binary Code Decimal. |
Ahí os dejo un par de ellas: |
Bin2BCD (1): |
||
cblock 0x20 ;RAM en el Bank0 l_digit h_digit valor endc B2BCD CLRF h_digit MOVF valor,W SUBLW 09 BTFSC 03.0 GOTO B2BCD2 B2BCD1 MOVLW 0A SUBWF valor,F INCF h_digit,F MOVF valor,W SUBLW 09 BTFSS 03.0 GOTO B2BCD1 B2BCD2 MOVF valor,W MOVWF l_digit RETLW 00 |
||
|
Bin2BCD (2): |
||
cblock 0x20 ;RAM en el Bank0 CENT MSD LSD endc BIN2BCD CLRF CENT ;CENTENAS clrf MSD ;DECENAS movwf LSD ;UNIDADES gtenth movlw .10 subwf LSD,W BTFSS STATUS,C goto OVERHAUL movwf LSD incf MSD, F goto gtenth OVERHAUL MOVLW .10 SUBWF MSD,W BTFSS STATUS,C GOTO OVER MOVWF MSD INCF CENT,F GOTO OVERHAUL OVER RETLW 0 |
||
|
Esta página se modificó el 27/12/2008
|