UNIVERSIDAD POLITECNICA SALESIANA SISTEMAS MICROPROCESADOS 1 PRACTICA 1 INTEGRANTES: Echeverría Jonathan Duque Diego V
Views 132 Downloads 1 File size 966KB
UNIVERSIDAD POLITECNICA SALESIANA
SISTEMAS MICROPROCESADOS 1
PRACTICA 1 INTEGRANTES: Echeverría Jonathan Duque Diego Velásquez Lenin
PRACTICA 1 Tema: Entrada y Salida en el microcontrolador pic. Objetivo: Utilizar los puertos del microcontrolador pic, como interface digital al mundo exterior. PROCEDIMIENTO: 1.1
Escribir en el puerto B el valor 55h Código: program Practica1 main: 'Parte principal del programa trisb=0 'Habilita el puerto B como salida portb= $55 'Escribe en el puerto B el valor 55H=01010101 delay_ms(1000) 'Retardo de un segundo end. 'Fin del programa Esquemático: D1 C1 LED-BLUE 33p
R1
U1
X1 CRYSTAL
C2
13 14 2 3 4 5 6 7
33p
R9 10k
8 9 10 1
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
D2
330
R2
LED-BLUE
330
D3
R3 330
LED-BLUE
R4
D4
330
R5
LED-BLUE
330
D5
R6 330
R7
LED-BLUE
D6
330 LED-BLUE
R8 330
D7 LED-BLUE
D8 LED-BLUE
Practico:
1.2
Ejercicio de aplicación escribir en el puerto b el valor AA program Practica1 main: 'Parte principal del programa trisb=0 'Habilita el puerto B como salida portb= $AA delay_ms(1000) 'Retardo de un segundo end. 'Fin del programa
Esquematico:
D1 C1 LED-BLUE 33p
R1
U1
X1 CRYSTAL
C2
13 14 2 3 4 5 6 7
33p
R9 10k
8 9 10 1
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
D2
330
R2
LED-BLUE
330
D3
R3 330
LED-BLUE
R4
D4
330
R5
LED-BLUE
330
D5
R6 330
R7
LED-BLUE
D6
330 LED-BLUE
R8 330
D7 LED-BLUE
D8 LED-BLUE
Practico:
1.3
Ejercicio de aplicación en el puerto C escribir el valor FO program Practica1 main: 'Parte principal del programa trisc=0 'Habilita el puerto C como salida portc= $f0 delay_ms(1000) 'Retardo de un sugundo end. 'Fin del programa Esquemático: D1 C1 LED-BLUE 33p
R1
U1
X1 CRYSTAL
C2
13 14 2 3 4 5 6 7
33p
R9 10k
8 9 10 1
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
D2
330
R2
LED-BLUE
330
D3
R3 330
LED-BLUE
R4
D4
330
R5
LED-BLUE
330
D5
R6 330
R7
LED-BLUE
D6
330 LED-BLUE
R8 330
D7 LED-BLUE
D8 LED-BLUE
Practico:
1.4
Leer en el puerto C y escribir en el puerto B Código: program Practica2 dim valor as byte main: lazo: trisc=$ff trisb=0 valor=portc portb=valor goto lazo end.
Esquematico:
D1 C1 LED-BLUE 33p
R1
U1
X1 CRYSTAL
C2
13 14 2 3 4 5 6 7
33p
8 9 10 1
R9 10k
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
33 34 35 36 37 38 39 40
D2
330
R2
LED-BLUE
330
D3
R3
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
PIC16F877A
R10
330
LED-BLUE
10k
R4
D4
R11
330
10k
R5
LED-BLUE
R12
330
D5
10k
R6
R13
330
10k
R7
R14
330
10k
R8
R15
330
LED-BLUE
D6 LED-BLUE
D7
10k LED-BLUE
R16 10k
R17
ON
1 2 3 4 5 6 7 8
10k
DSW1
16 15 14 13 12 11 10 9
OFF
DIPSW_8
Practico:
D8 LED-BLUE
1.5
Ejercicio de aplicación Leer en el puerto a y escribir en el puerto D Código: program Practica3 dim valor1 as byte main: lazo: trisa=$3f trisd=0 valor1=porta portd=valor1 goto lazo end. Esquematico: D1
C1 U1 13 14
33p
X1
2 3 4 5 6 7
CRYSTAL
C2 33p
8 9 10 1
R9
OSC1/CLKIN OSC2/CLKOUT
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT
10k
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
R10 330
R11
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
PIC16F877A
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
LED-BLUE
R1 R2
LED-BLUE
330
D3
R3 330
LED-BLUE
R4
D4
330
R5
LED-BLUE
330
D5
R6 330
R7 330
LED-BLUE
D6 LED-BLUE
R8
330
R12
D2
330
330
D7
330
LED-BLUE
R13
D8
330
R14 330
R15
ON
1 2 3 4 5 6 7 8
330
DSW1
16 15 14 13 12 11 10 9
OFF
DIPSW_8
LED-BLUE
1.6
Escribir en un display de 7 segmentos sin utilizar decodificador, un valos ascendente entre 0 y F. Código: program Practica6 main: trisb=$0 lazo: portb=%00111111 delay_ms(2000) portb=%00000110 delay_ms(2000) portb=%01011011 delay_ms(2000) portb=%01001111 delay_ms(2000) portb=%01100110 delay_ms(2000) portb=%01101101 delay_ms(2000) portb=%01111101 delay_ms(2000) portb=%00000111 delay_ms(2000) portb=%01111111 delay_ms(2000) portb=%01100111 delay_ms(2000) portb=%01110111 delay_ms(2000) portb=%01111100 delay_ms(2000) portb=%01011000 delay_ms(2000)
portb=%01011110 delay_ms(2000) portb=%01111001 delay_ms(2000) portb=%01110001 delay_ms(2000) portb=%01110001 delay_ms(2000) goto lazo end. Esquematico: C1 33p
U1 X1 CRYSTAL
13 14 2 3 4 5 6 7
C2 33p
8 9 10
R9 10k
1
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
Practico:
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
R1 330
R2 330
R3 330
R4 330
R5 330
R6 330
R7 330
1.7
Ejercicio de aplicación mediante un display alfanumérico mostrar en orden descendente todas las letras del alfabeto de la Z a la A. Código program display_alfanumerico main: trisb=$0 trisc=$0 lazo: portb=%00110011 'Z portc=%01000100 delay_ms(1000) portb=%00000000 'y portc=%00100101 delay_ms(1000) portb=%00000000 'X portc=%01010101 delay_ms(1000) portb=%11001100 'W portc=%01010000 delay_ms(1000)
portb=%11000000 'V portc=%01000100 delay_ms(1000) portb=%11111100 'U portc=%00000000 delay_ms(1000) portb=%00000011 'T portc=%00100010 delay_ms(1000) portb=%10111011 'S portc=%10001000 delay_ms(1000) portb=%11000111 'R portc=%10011000 delay_ms(1000) portb=%11111111 'Q portc=%00010000 delay_ms(1000) portb=%11000111 'P portc=%10001000 delay_ms(1000) portb=%11111111 'O portc=%00000000 delay_ms(1000) portb=%11001100 'N portc=%00010001 delay_ms(1000) portb=%11001100 'M portc=%00000101 delay_ms(1000) portb=%11110000 'L portc=%00000000 delay_ms(1000)
portb=%11000000 'K portc=%10010100 delay_ms(1000) portb=%01100011 'J portc=%00100010 delay_ms(1000) portb=%00110011 'I portc=%00100010 delay_ms(1000) portb=%11001100 'H portc=%10001000 delay_ms(1000) portb=%11111011 'G portc=%00001000 delay_ms(1000) portb=%11000011 'F portc=%10001000 delay_ms(1000) portb=%11110011 'E portc=%10001000 delay_ms(1000) portb=%00111111 'D portc=%00100010 delay_ms(1000) portb=%11110011 'C portc=%00000000 delay_ms(1000) portb=%00111111 'B portc=%00101010 delay_ms(1000) portb=%11001111 'A portc=%10001000 delay_ms(1000)
goto lazo end. Esquematico: R1 330
R2 330
C1
R3 330
33p
U1 X1 CRYSTAL
13 14 2 3 4 5 6 7
C2 33p
8 9 10
R9 10k
1
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
R4 330
R5 330
R6 330
R7 330
R8 330
R10 330
R11 330
R12 330
R13 330
R14 330
R15 330
R16 330
R17 330
Practico:
1.8
Lógica boolena con microcontrolador Código program Practica8 main: trisc=$ff trisb=$0 portb.0=portc.0 and portc.1 portb.1=portc.2 or portc.3 portb.2=portc.4 xor portc.5 goto main end. Esquematico:
D1 C1 LED-BLUE 33p
R1
U1
X1 CRYSTAL
C2
13 14 2 3 4 5 6 7
33p
8 9 10 1
R9 10k
OSC1/CLKIN OSC2/CLKOUT
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
33 34 35 36 37 38 39 40
D2
330
R2
LED-BLUE
330
D3
R3
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
PIC16F877A
R10
330
LED-BLUE
10k
R4
D4
R11
330
10k
R5
LED-BLUE
R12
330
D5
10k
R6
R13
330
10k
R7
R14
330
10k
R8
R15
330
LED-BLUE
D6 LED-BLUE
D7
10k LED-BLUE
R16 10k
R17
ON
1 2 3 4 5 6 7 8
10k
DSW1
16 15 14 13 12 11 10 9
OFF
DIPSW_8
Practico:
D8 LED-BLUE
Flujo gramas:
Practica 1.1
Inicio
Configurar puerto B como salida
Portb=$55
Escribir en el puerto B en forma hexagesimal el valor$55
Retardo de 1 segundos
Practica 1.2
Inicio
Configurar puerto B como salida
Portb=$AA
Escribir en el puerto B en forma hexagesimal el valor$AA
Retardo de 1 segundos
Practica 1.3
Inicio
Configurar puerto C como salida
Portc=$f0
Escribir en el puerto B en forma hexagesimal el valor $f0
Retardo de 1 segundos
PRACTICA 1.4
Inicio
Configurar puerto B para escribir y C para leer
a=portb.0 b=portb.1 c=portb.2 d=portb.3 e=portb.4 f=portb.5 g=portb.6 h=portb.7
i=portc.0 j=portc.1 k=portc.2 l=portc.3 m=portc.4 n=portc.5 o=portc.6 p=portc.7
Leer en el puerto B y C en forma binaria.
Muestrear en salidas.
Dar tiempo de 1 segundo
PRACTICA 1.5
Inicio
Configurar puerto D para escribir y A para leer
a=porta.0 b=porta.1 c=porta.2 d=porta.3 e=porta.4 f=porta.5 g=porta.6 h=porta.7
i=portd.0 j=portd.1 k=portd.2 l=portd.3 m=portd.4 n=portd.5 o=portd.6 p=portd.7
Leer en el puerto A y D en forma binaria.
Muestrear en salidas.
Dar tiempo de 1 segundo
PRACTICA 1.6
Inicio
Configurar puerto B como salida
a=portb.0 b=portb.1 c=portb.2 d=portb.3 e=portb.4 f=portb.5 g=portb.6
Escribir en el puerto B en forma binaria.
Muestrear en display.
Dar tiempo de 2 segundos
PRACTICA 1.7
Inicio
Configurar puerto B y C como salida
a=portb.0 b=portb.1 c=portb.2 d=portb.3 e=portb.4 f=portb.5 g=portb.6 h=portb.7
i=portc.0 j=portc.1 k=portc.2 l=portc.3 m=portc.4 n=portc.5 o=portc.6 p=portc.7
Escribir en el puerto B y C en forma binaria.
Muestrear en display.
Dar tiempo de 1 segundo
PRACTICA 1.8 Inicio
Configurar puerto B como salidas y C como entradas
portb.0 = portc.0 and portc.1 portb.1 = portc.2 or portc.3 portb.2 = portc.4 xor portc.5
Conclusiones: - Aprendimos la utilización del equipo para uso de los microcontroladores pic. - Utilizamos prácticamente los periféricos de entrada y salida de los microcontroladores. - Vimos la práctica de la entrada de puertos y la respuesta en la salida. Bibliografía: - Información otorgada por el Ing. Luis Oñate Universidad Politécnica Salesiana. - Microcontroladores PIC Programación en Basic, Segunda Edición 2006, Carlos A. Reyes