Logo Studenta

Practica 5 reporte (1)

¡Estudia con miles de materiales!

Vista previa del material en texto

PRACTICA #5 
Utilizando el PIC 16F877, hacer un programa que genere las siguientes secuencias de acuerdo a la posición de los interruptores 0 y 1. Considerando la arquitectura del microcontrolador determine los puertos a utilizar. Una vez que haya obtenido el código binario simule su funcionamiento en el PROTEUS.
	INT1 
	INT0 
	ACCION
	0 
	0 
	SECUENCIA 1
	0 
	1 
	SECUENCIA 2
	1 
	0 
	SECUENCIA 3
	1 
	1 
	SECUENCIA 4
Escuela: Tecnológico de la laguna
Materia: Microcontroladores
Alumno: Eduardo Antonio Rodríguez Guerra
Número de control: 19131252
Catedrático: JESUS AGUILAR GONZALEZ
Código en lenguaje ensamblador:
LIST P=16F877A
		RADIX HEX
		W EQU 0x00
		Z EQU 2
		STATUS EQU 0X03
		TRISB EQU 0X86
		PORTB EQU 0X06
		TRISD EQU 0X88
		PORTD EQU 0X08
		DE1 EQU 0X20
		DE2 EQU 0X21
		DE3 EQU 0X22
	ORG 0
		BSF STATUS,5
		CLRF TRISB
		MOVLW B'11'
		MOVWF TRISD
		BCF STATUS,5
		CLRF PORTB
		CLRF PORTD
	CICLO 
		MOVLW B'00'
	 SUBWF PORTD,W
		BTFSC STATUS,Z
		GOTO ESTADO1
		MOVLW B'01'
	 SUBWF PORTD,W
		BTFSC STATUS,Z
		GOTO ESTADO2
		MOVLW B'10'
	 SUBWF PORTD,W
		BTFSC STATUS,Z
		GOTO ESTADO3
		MOVLW B'11'
	 SUBWF PORTD,W
		BTFSC STATUS,Z
		GOTO ESTADO4
		GOTO CICLO
	ESTADO1
	 MOVLW B'00000001'
	 MOVWF PORTB
	 CALL DELAY
	 MOVLW B'00000010'
	 MOVWF PORTB
	 CALL DELAY
	 MOVLW B'00000100'
	 MOVWF PORTB
		CALL DELAY
		MOVLW B'00001000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00010000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00100000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'01000000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'10000000'
		MOVWF PORTB
		CALL DELAY
		GOTO CICLO
	ESTADO2
		MOVLW B'00011000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00100100'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'01000010'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'10000001'
		MOVWF PORTB
		CALL DELAY
		GOTO CICLO
	ESTADO3
		MOVLW B'10000001'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'01000010'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00100100'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00011000'
		MOVWF PORTB
		CALL DELAY
		GOTO CICLO
	ESTADO4
		MOVLW B'10000000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'01000000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00100000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00010000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00001000'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00000100'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00000010'
		MOVWF PORTB
		CALL DELAY
		MOVLW B'00000001'
		MOVWF PORTB
		CALL DELAY
		GOTO CICLO
	DELAY
	MOVLW 0X07
	MOVWF DE3
	DELAY3
	MOVLW 0X64
	MOVWF DE2
	DELAY2 
	 MOVLW 0X64
	MOVWF DE1
	DELAY1
	DECFSZ DE1,1
	GOTO DELAY1
	DECFSZ DE2,1
	GOTO DELAY2
	DECFSZ DE3,1
	GOTO DELAY3
	RETURN
	END
Una vez terminado de escribir el lenguaje en el mplab, obtuvimos el archivo HEX, con el cual configuramos al microcontrolador en la simulación realizada en proteus. Cabe destacar que curioseando por ahí descubrí que, si ejecutas la simulación con el archivo COF, la simulación la acepta también. 
Claramente esta duda la sacaré en la siguiente clase que tengamos con el inge. 
 
 
OFFON
1
2
4
3
DSW1
DIPSW_2
VCC
VCC
1
2
3
4
5
6
7
8
20
19
18
17
16
15
14
13
9
10
12
11
U2
LED-GROVE-BARGRAPH
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RE0/AN5/RD
8
RE1/AN6/WR
9
RE2/AN7/CS
10
OSC1/CLKIN
13
OSC2/CLKOUT
14
RC1/T1OSI/CCP2
16
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RB7/PGD
40
RB6/PGC
39
RB5
38
RB4
37
RB3/PGM
36
RB2
35
RB1
34
RB0/INT
33
RD7/PSP7
30
RD6/PSP6
29
RD5/PSP5
28
RD4/PSP4
27
RD3/PSP3
22
RD2/PSP2
21
RC7/RX/DT
26
RC6/TX/CK
25
RC5/SDO
24
RC4/SDI/SDA
23
RA3/AN3/VREF+
5
RC0/T1OSO/T1CKI
15
MCLR/Vpp/THV
1
U1
PIC16F877A
CLOCK=

Continuar navegando