Descarga la aplicación para disfrutar aún más
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=
Compartir