Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LUIS DE LA PAZ
LIC. INGIENERIA TECNOLOGIAS DE LA
INFORMACIÓN
MICROCOMPUTADORAS
10Mo CUATRIMESTRE
Profesor. JOEL GARAVITO NAVARRO
Actividad 3. Sistema mínimo microcontrolador
PIC16F877.
JONATHAN ADRIAN ARREDONDO RIVERA.
Matricula: U1903059L0197
FECHA DE ENTREGA:26/09/2022
1.- Escribir comentar e indicar que hace el siguiente programa.
processor 16f877
include<p16f877.inc>
contador equ h'20' ; contador = 20h
valor1 equ h'21' ; dir(A) = 21h
valor2 equ h'22' ; dir(B) = 22h
valor3 equ h'23' ; dir(C) = 23h
cte1 equ 20h ; cte1 = 20h
cte2 equ 50h ; cte2 = 50h
cte3 equ 60h ; ct3 = 60h
org 0
goto inicio
org 5
inicio: bsf STATUS,5 ; rp0 = 1
BCF STATUS,6 ; rp1 = 0, accedemos al banco 1
MOVLW H'0' ; w = 0h
MOVWF TRISB ; TrisB = 0h, Config. de salida
BCF STATUS,5 ; rp0 = 0, accedemos al banco 0
clrf PORTB ; PortB = 00h, limpiar el PortB
loop2: movlw h'00'; w = 0h
movwf PORTB; PortB = 00h
call retardo ; mantiene la señal
movlw h'FF'; w = ffh
movwf PORTB; PortB = ffh
call retardo ; mantiene la señal
goto loop2 ; repite, el pin 0 del PortB "parpadea"
retardo:movlw cte1 ; w = ct1
movwf valor1 ; A = ct1
tres: movlw cte2 ; w = ct2
movwf valor2 ; B = ct2
dos: movlw cte3 ; w = ct3
movwf valor3 ; C = ct3
uno: decfsz valor3 ; C--, y salta si es cero
goto uno ; Si C != 0, repite
decfsz valor2 ; Si C == 0, B--, y salta si es cero
goto dos ; Si B != 0, reinicia C = ct3
decfsz valor1 ; Si B == 0, A--, y salta si es 0
goto tres ; Si A != 0, reinicia B
return ; Si A = B = C = 0, termina
END
4.- Realizar un programa que muestre la siguiente secuencia en el puerto B con
retardos de ½ segundo.
processor 16f877
include<p16f877.inc>
contador equ h'20' ; contador = 20h
valor1 equ h'21' ; dir(A) = 21h
valor2 equ h'22' ; dir(B) = 22h
valor3 equ h'23' ; dir(C) = 23h
cte1 equ 20h ; cte1 = 20h
cte2 equ 50h ; cte2 = 50h
cte3 equ 60h ; ct3 = 60h
org 0
goto inicio
org 5
inicio: bsf STATUS,5 ; rp0 = 1
BCF STATUS,6 ; rp1 = 0, accedemos al banco 1
MOVLW H'0' ; w = 0h
MOVWF TRISB ; TrisB = 0h, Config. de salida
BCF STATUS,5 ; rp0 = 0, accedemos al banco 0
clrf PORTB ; PortB = 00h, limpiar el PortB
movlw h'01'; w = 01h
movwf PORTB; PortB = 01h
BCF STATUS, C; Bandera C = 0
loop2: rrf PORTB; Rota el valor de PortB hacia la derecha
call retardo ; mantiene la señal
goto loop2 ; repite, el pin 0 del PortB "parpadea"
retardo:movlw cte1 ; w = ct1
movwf valor1 ; A = ct1
tres: movlw cte2 ; w = ct2
movwf valor2 ; B = ct2
dos: movlw cte3 ; w = ct3
movwf valor3 ; C = ct3
uno: decfsz valor3 ; C--, y salta si es cero
goto uno ; Si C != 0, repite
decfsz valor2 ; Si C == 0, B--, y salta si es cero
goto dos ; Si B != 0, reinicia C = ct3
decfsz valor1 ; Si B == 0, A--, y salta si es 0
goto tres ; Si A != 0, reinicia B
return ; Si A = B = C = 0, termina
END
5.- Realizar un programa que muestre un contador binario por el puerto paralelo B,
desde su valor mínimo B’00000000’ hasta el máximo B’11111111’ y se repita
nuevamente el contador; usar retardos de ½ segundo.
processor 16f877
include<p16f877.inc>
contador equ h'20' ; contador = 20h
valor1 equ h'21' ; dir(A) = 21h
valor2 equ h'22' ; dir(B) = 22h
valor3 equ h'23' ; dir(C) = 23h
cte1 equ 20h ; cte1 = 20h
cte2 equ 50h ; cte2 = 50h
cte3 equ 60h ; ct3 = 60h
org 0
goto inicio
org 5
inicio: bsf STATUS,5 ; rp0 = 1
BCF STATUS,6 ; rp1 = 0, accedemos al banco 1
MOVLW H'0' ; w = 0h
MOVWF TRISB ; TrisB = 0h, Config. de salida
BCF STATUS,5 ; rp0 = 0, accedemos al banco 0
clrf PORTB ; PortB = 00h, limpiar el PortB
loop2: incf PORTB ; PortB++
call retardo ; mantiene la señal
goto loop2 ; repite, el pin 0 del PortB "parpadea"
retardo:movlw cte1 ; w = ct1
movwf valor1 ; A = ct1
tres: movlw cte2 ; w = ct2
movwf valor2 ; B = ct2
dos: movlw cte3 ; w = ct3
movwf valor3 ; C = ct3
uno: decfsz valor3 ; C--, y salta si es cero
goto uno ; Si C != 0, repite
decfsz valor2 ; Si C == 0, B--, y salta si es cero
goto dos ; Si B != 0, reinicia C = ct3
decfsz valor1 ; Si B == 0, A--, y salta si es 0
goto tres ; Si A != 0, reinicia B
return ; Si A = B = C = 0, termina
END
Conclusiones
Actualmente una computadora suele tener diversas conexiones que hacen que el trabajo del
usuario se haga un poco más fácil, permitiéndole a este que su producción se incremente a
medida que los computadores vallan innovando y estos sean indispensables para el trabajo.