Professional Documents
Culture Documents
*TMR0: El registro TMR0 (Timer 0) almacena el valor del contador TMR0, que
aconsejable utilizar, por ejemplo, una instruccin MOVF TMR0,W, que no hace
ms que una lectura.
El reloj interno deja de funcionar en el modo SLEEP, por lo que no se puede
contar con sus interrupciones en este modo ni por consiguiente, que salga de
este modo de funcionamiento por medio de dicha interrupcin.
Tambin en el desarrollo de la prctica, fue necesario utilizar una tabla de
codificacin hexadecimal (mostrada a continuacin), para el despliegue de las
letras en los Displays.
-Tabla de codificacin a hexadecimal:
B
U
A
P
F
C
E
P
I
C
1
7
C
7
6
6
RB7
G
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
RB6
F
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
RB5
E
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
RB4
D
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
RB3
C
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
RB2
B
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
RB1
A
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
RB0
DP
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
CODIGO
HEX
01
83
11
19
1D
8D
0D
FF
19
9F
8D
FF
F3
F1
8D
FF
F1
05
05
FF
OBJETIVO
Familiarizar al alumno con la manipulacin de los puertos del Microcontrolador
PIC16f877A mediante la manipulacin de los registros TMR0, INTCON y
ADCON0, de tal manera que estos interacten con elementos externos a dicho
Microcontrolador, configurando varios puertos en modo salida de seales
digitales (1-0).
Letrero 1
DIAGRAMAS DE FLUJO
Contador = 100
Inicio
RA0 = 1
Letrero 1
W = 01
NO
Si
TMR0
x
100
RA0=0, RA1= 1
W = 83
Letrero 2
NO
W
TMR0
x
100
Si
RA1=0, RA2= 1
W = 11
Letrero 3
NO
Si
TMR0 x 100
RA2=0, RA3= 1
W = 19
Letrero 4
W
NO
TMR0 x 100
Si
RA3 = 1
NO
INTCON,2=1
Letrero 5
SI
TMR0 x 100
Diagrama 1
Si
Contador = Contador - 1
NO
Contador= 0
SI
Letrero 2
Diagrama
2
Letrero 2
Letrero 3
Contador = 100
Contador = 100
RA0 = 1
RA0 = 1
W = 1D
W = 19
RA0=0, RA1= 1
RA0=0, RA1= 1
W = 8D
W = 9F
RA1=0, RA2= 1
RA1=0, RA2= 1
W = 0D
W = 8D
RA2=0, RA3= 1
RA2=0, RA3= 1
W = FF
W = FF
RA3 = 1
RA3 = 1
NO
NO
INTCON,2=1
INTCON,2=1
SI
SI
- 1
Contador = Contador
NO
Contador= 0
SI
Letrero 3
Diagrama
3
- 1
Contador = Contador
NO
Contador= 0
SI
Letrero 4
Diagrama
4
Letrero 4
Letrero 5
Contador = 100
Contador = 100
RA0 = 1
RA0 = 1
W = F3
W = F1
RA0=0, RA1= 1
RA0=0, RA1= 1
W = F1
W = 05
RA1=0, RA2= 1
RA1=0, RA2= 1
W = 8D
W = 05
RA2=0, RA3= 1
RA2=0, RA3= 1
W = FF
W = FF
RA3 = 1
RA3 = 1
NO
NO
INTCON,2=1
INTCON,2=1
SI
SI
- 1
Contador = Contador
NO
- 1
Contador = Contador
NO
Contador= 0
SI
Letrero 5
Contador= 0
SI
Diagrama 5
Letrero 1
Diagrama 6
ESQUEMTICOS
Material Utilizado
1 PIC16F877A
8 Resistencias de 220 Ohms
1 Resistencia de 10 KOhms
1 Resistencia de 100 Ohms
1 Switch
1 Cristal 4 MHz
2 Capacitores 33pF
4 Displays 7 segmentos, nodo comn (DA05)
4 Transistores BC548
Protoboard
Alambre
Pulsera antiesttica
CDIGO
list
p=16f877a ; list directive to define processor
#include <p16f877a.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC &
_WRT_OFF & _LVP_OFF & _CPD_OFF
CONT
DELAY
FLAG
INICIO
LETRERO1
BUAP
equ
equ
equ
org
Goto
org
Goto
org
20
21
22
0
INICIO
4
ISR
5
; constante
; constante
bsf
MOVLW
MOVWF
CLRF
CLRF
MOVLW
MOVWF
MOVLW
MOVWF
BCF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
Goto
STATUS, RP0
0X07
ADCON0
TRISA
TRISB
0X87
OPTION_REG
0XA0
INTCON
STATUS, RP0
-D'117'
TMR0
D'100'
CONT
B'00000000'
FLAG
B'00000001'
FLAG
BUAP
; banco 1
bsf
btfss
Goto
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
FLAG, 0
FLAG, 0
LETRERO2
PORTA,0
0X01
PORTB
RETARDO
PORTA,0
PORTA,1
0X83
PORTB
RETARDO
PORTA,1
PORTA,2
0X11
;
;
;
;
; rutina de servicio
;B
; inhabilita Display 1
; Habilita Display 2
;U
; inhabilita Display 2
; habilita Display 3
LETRERO2
FCE
LETRERO3
PIC
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
GOTO
PORTB
RETARDO
PORTA,2
PORTA,3
0X19
PORTB
RETARDO
PORTA,3
BUAP
;A
bsf
btfss
goto
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
GOTO
FLAG, 0
FLAG, 0
LETRERO3
PORTA,0
0X1D
PORTB
RETARDO
PORTA,0
PORTA,1
0X8D
PORTB
RETARDO
PORTA,1
PORTA,2
0X0D
PORTB
RETARDO
PORTA,2
PORTA,3
0XFF
PORTB
RETARDO
PORTA,3
FCE
;
;
;
;
bsf
btfss
goto
bsf
MOVLW
MOVWF
CAll
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
FLAG, 0
FLAG, 0
LETRERO4
PORTA,0
0X19
PORTB
RETARDO
PORTA,0
PORTA,1
0X9F
PORTB
RETARDO
PORTA,1
PORTA,2
;
;
;
;
; inhabilita Display 3
; habilita Display 4
;P
; inhabilita Display 4
activa bandera
pregunta si la bandera es cero
si es cero despliega el letrero 3
habilita Display 1
;F
; inhabilita Display 1
; habilita Display 2
;C
; inhabilita Display 2
; habilita Display 3
;E
; inhabilita Display 3
; habilita Display 4
; <Espacio>
; inhabilita Display 4
activa bandera
pregunta si la bandera es cero
si es cero despliega el Letrero 4
habilita display 1
;P
; inhabilita Display 1
; habilita Display 2
;I
; inhabilita Display 2
; habilita Display 3
LETRERO4
CLAVE1
LETRERO5
CLAVE2
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
Goto
0X8D
PORTB
RETARDO
PORTA,2
PORTA,3
0XFF
PORTB
RETARDO
PORTA,3
PIC
bsf
btfss
goto
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
goto
FLAG, 0
FLAG, 0
LETRERO5
PORTA,0
0XF3
PORTB
RETARDO
PORTA,0
PORTA,1
0XF1
PORTB
RETARDO
PORTA,1
PORTA,2
0X8D
PORTB
RETARDO
PORTA,2
PORTA,3
0XFF
PORTB
RETARDO
PORTA,3
CLAVE1
;
;
;
;
bsf
btfss
goto
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
bsf
MOVLW
FLAG, 0
FLAG, 0
LETRERO1
PORTA,0
0XF1
PORTB
RETARDO
PORTA,0
PORTA,1
0X05
PORTB
RETARDO
PORTA,1
PORTA,2
0X05
;
;
;
;
;C
; inhabilita Display 3
; habilita Display 4
; <Espacio>
; inhabilita Display 4
activa bandera
pregunta si la bandera es cero
si es cero, despliega el Letrero 5
habilita Display 1
;1
; inhabilita Display 1
; habilita Display 2
;7
; inhabilita Display 2
; habilita Display 3
;C
; inhabilita Display 3
; Habilita Display 4
; <Espacio>
; inhabilita Display 4
activa bandera
pregunta si la bandera es cero
si es cero, despliega el Letrero 1
habilita Display 1
;7
; inhabilita Display 1
; habilita Display 2
;6
; inhabilita Display 2
; habilita Display 3
ISR
OK
START
RETARDO
RESTA
MOVWF
CALL
bcf
bsf
MOVLW
MOVWF
CALL
bcf
goto
PORTB
RETARDO
PORTA,2
PORTA,3
0XFF
PORTB
RETARDO
PORTA,3
CLAVE2
bcf
MOVLW
MOVWF
DECFSZ
retfie
btfss
goto
bcf
goto
bsf
MOVLW
MOVWF
retfie
INTCON, 2
-D'117'
TMR0
CONT, 1
MOVLW
MOVWF
DECFSZ
goto
return
END
0X0F
DELAY
DELAY, 1
RESTA
FLAG,0
OK
FLAG,0
START
FLAG, 0
D'100'
CONT
;6
; inhabilita Display 3
; Habilita Display 4
; <Espacio>
; inhabilita Display 4
RESULTADOS
Para la elaboracin de esta prctica, el circuito se dividi en dos partes: una parte incluye
al PIC, configuracin del cristal y del MCLEAR y se elabor con diseo PCB en una placa
fenlica; la otra parte incluye los 4 Displays y los transistores y se elabor en una
baquelita perforada.
*Circuito funcionando