Click here to load reader
Upload
luis-zurita
View
387
Download
0
Embed Size (px)
Citation preview
EJERCICIO REALIZADO EN CLASES SOBRE EL MARCADOR DE LA
CANCHA DE BOLAS CRIOLLAS
(MISMO DIAGRAMA DE FLUJO DADO EN CLASES)
PASO 2. DIAGRAMAS DE FLUJO. PROGRAMA PRINCIPAL
SUBRUTINA MOSTRAR
MOSTRAR
UNIV → PORTA
Display UNIV= ONRESTO DISPLAYS OFF
Delay 5 ms
Return
Delay 5 ms
La sacamos del PDEL
ReturnBIN A BCD ROJAS
BIN A BCD VERDES
DECV → PORTA
Display DECV= ONRESTO DISPLAYS OFF
Delay 5 ms
UNIR → PORTA
Display UNIR= ONRESTO DISPLAYS OFF
Delay 5 ms
DECV → PORTA
Display DECR= ONRESTO DISPLAYS OFF
Delay 5 ms
PASO 3. PROGRAMA EN LENGUAJE ENSAMBLADOR
LIST P=16F84AINCLUDE P16F84A.INC
;**************************;DECLARACIÓN DE REGISTROS=;**************************UNIV EQU 20HDECV EQU 21HUNIR EQU 22HDECR EQU 23HCONTAV EQU 24HCONTAR EQU 25HCOPIA EQU 26HPDel0 EQU 27H;**************************
ORG 00HGOTO INICIO
INICIO BSF STATUS,5CLRF TRISAMOVLW B'00001111'MOVWF TRISBBCF STATUS,5CLRF UNIVCLRF DECVCLRF UNIRCLRF DECRCLRF CONTAVCLRF CONTAR
EME CALL MOSTRARBTFSC PORTB,0 ;+1V=0?GOTO SIGUE1 ;NO. VA A -1V
ANTIREB1 CALL MOSTRAR ;EQUIVALE A DELAY DE CALL DELAY5MSBTFSS PORTB,0 ;+1V=1?GOTO ANTIREB1MOVF CONTAV,0SUBLW .24BTFSS STATUS,2 ;Z=1? CONTAV=24?GOTO SUBEVGOTO EME
SUBEV INCF CONTAV,1 ;CONTAV=CONTAV+1GOTO EME
SIGUE1 BTFSC PORTB,1 ;-1V=0?GOTO SIGUE2 ;VA A +1R
ANTIREB2 CALL MOSTRAR ;EQUIVALE A DELAY DE CALL DELAY5MSBTFSS PORTB,1 ;-1V=1?GOTO ANTIREB2MOVF CONTAV,0
SUBLW .0BTFSS STATUS,2 ;Z=1? CONTAV=0?GOTO BAJAVGOTO EME
BAJAV DECF CONTAV,1 ;CONTAV=CONTAV-1GOTO EME
SIGUE2 BTFSC PORTB,2 ;+1R=0?GOTO SIGUE3 ;NO. VA A -1R
ANTIREB3 CALL MOSTRAR ;EQUIVALE A DELAY DE CALL DELAY5MSBTFSS PORTB,2 ;+1R=1?GOTO ANTIREB3MOVF CONTAR,0SUBLW .24}BTFSS STATUS,2 ;Z=1? CONTAR=24?GOTO SUBERGOTO EME
SUBER INCF CONTAR,1 ;CONTAR=CONTAR+1GOTO EME
SIGUE3 BTFSC PORTB,3 ;-1R=0?GOTO EME
ANTIREB4 CALL MOSTRAR ;EQUIVALE A DELAY DE CALL DELAY5MSBTFSS PORTB,3 ;-1R=1?GOTO ANTIREB4MOVF CONTAR,0SUBLW .0BTFSS STATUS,2 ;Z=1? CONTAR=0?GOTO BAJARGOTO EME
BAJAR DECF CONTAR,1 ;CONTAR=CONTAR-1GOTO EME
;**************************************************;RUTINA MOSTRAR(INCLUYE CONVERSIONES BINARIO A BCD);**************************************************MOSTRAR CALL BIN_BCDV
CALL BIN_BCDRBCF PORTB,7 ;DISPLAY DECROJO OFFBCF PORTB,6 ;DISPLAY UNIROJO OFFBCF PORTB,5 ;DISPLAY DECVERDE OFFBSF PORTB,4 ;DISPLAY UNIVERDE ONMOVF UNIV,0MOVWF PORTA ;UNIV A PORTACALL DELAY5MSBCF PORTB,7 ;DISPLAY DECROJO OFFBCF PORTB,6 ;DISPLAY UNIROJO OFFBSF PORTB,5 ;DISPLAY DECVERDE ONBCF PORTB,4 ;DISPLAY UNIVERDE OFFMOVF DECV,0MOVWF PORTA ;DECV A PORTA
CALL DELAY5MSBCF PORTB,7 ;DISPLAY DECROJO OFFBSF PORTB,6 ;DISPLAY UNIROJO ONBCF PORTB,5 ;DISPLAY DECVERDE OFFBCF PORTB,4 ;DISPLAY UNIVERDE OFFMOVF UNIR,0MOVWF PORTA ;UNIR A PORTACALL DELAY5MSBSF PORTB,7 ;DISPLAY DECROJO ONBCF PORTB,6 ;DISPLAY UNIROJO OFFBCF PORTB,5 ;DISPLAY DECVERDE OFFBCF PORTB,4 ;DISPLAY UNIVERDE OFFMOVF DECR,0MOVWF PORTA ;DECR A PORTACALL DELAY5MSRETURN
;******************************;RUTINA DE BINARIO A BCD VERDE:;******************************BIN_BCDV CLRF UNIV
CLRF DECVCLRF COPIAMOVF CONTAV,0MOVWF COPIA
SUBEDV MOVLW .10SUBWF COPIA,1BTFSC STATUS,0GOTO SUBEDECVGOTO SUBEUV
SUBEDECV INCF DECV,1GOTO SUBEDV
SUBEUV MOVLW .10ADDWF COPIA,1
SUBEU2V MOVLW .1SUBWF COPIA,1BTFSS STATUS,0RETURN ;SALE DE LA SUBRUTINA
SUBEU3V INCF UNIV,1GOTO SUBEU2V
;******************************;RUTINA DE BINARIO A BCD ROJO:;******************************BIN_BCDR CLRF UNIR
CLRF DECRCLRF COPIAMOVF CONTAR,0MOVWF COPIA
SUBEDR MOVLW .10
SUBWF COPIA,1BTFSC STATUS,0GOTO SUBEDECRGOTO SUBEUR
SUBEDECR INCF DECR,1GOTO SUBEDR
SUBEUR MOVLW .10ADDWF COPIA,1
SUBEU2R MOVLW .1SUBWF COPIA,1BTFSS STATUS,0RETURN ;SALE DE LA SUBRUTINA
SUBEU3R INCF UNIR,1GOTO SUBEU2R
;;;RUTINA 5MS GENERADA DEL PDEL;DELAY5MS movlw .248 ; 1 set numero de repeticion
movwf PDel0 ; 1 |PLoop0 clrwdt ; 1 clear watchdog
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ?goto PLoop0 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delayPDelL2 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.END
PASO 4. CIRCUITO EN PROTEUS: