PROYECTOS EN MICROCONTROLADORES PIC

UNIVERSIDAD POLITECNICA SALESIANA SISTEMAS MICROPROCESADOS 1 PRACTICA 1 INTEGRANTES: Echeverría Jonathan Duque Diego V

Views 132 Downloads 1 File size 966KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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