42
1 Tema 6: Prácticas Antonio Cebrián

1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

Embed Size (px)

Citation preview

Page 1: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

1

Tema 6: Prácticas

Antonio Cebrián

Page 2: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

2

Contenidos

1. Metodología

2. Programación

3. Prácticas

Page 3: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

3

1. Metodología

Page 4: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

4

1. Metodología

C ódigo fuente

Ensam blado yenlazado

D epurac ión

¿C orrecto?

F IN

IN IC IO

N O

SI

Page 5: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

5

2. Programación

Page 6: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

6

2. Programación

• Estructura del código fuente plantilla.asm

Inc ludes

C onstantes

Variab les

R eset

Interrupción

M ain

Funciones

Page 7: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

7

2. Programación

• Directivas del ensamblador:– Control.– Ensamblador condicional.– Datos.– Listado– Macros.– Archivo objeto.

Page 8: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

8

2. Programación

• Constantes numéricas:

Type Syntax Example

Decimal D'<digits>'.<digits>

D'100'.100

Hexadecimal H'<hex_digits>'0x<hex_digits>

H'9f'0x9f

Octal O'<octal_digits>' O'777'

Binary B'<binary_digits>' B'00111001'

ASCII A'<character>''<character>'

A'C''C'

Page 9: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

9

2. Programación

• Comparaciones:

Igual que Contador == 10

movf Contador,Wsublw 10btfsc STATUS,Zgoto SeCumpleCondicion

Page 10: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

10

2. Programación

• Comparaciones:

Mayor que Contador > 10

movf Contador,Wsublw 10 ; W = k – W.btfss STATUS,Cgoto SeCumpleCondicion

Page 11: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

11

2. Programación

• Comparaciones:

Menor que Contador < 10

movf Contador,Wsublw 10 ; W = k – W.btfsc STATUS,Cgoto SeCumpleCondicion

Page 12: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

12

2. Programación

• Bucles:

Infinito

Bucle:...

goto Bucle

Page 13: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

13

2. Programación

• Bucles:

Número fijo de iteraciones

movlw 100movwf Contador

Bucle:...

decfsz Contador,Fgoto Bucle

Page 14: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

14

2. Programación

• Subrutinas:...

call Subrutina...

;------------------------------------Subrutina:

.

.

.

return

Page 15: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

15

2. Programación

• Interrupción:

Interrup:...

retfie

Page 16: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

16

2. Programación

• Interrupción con cambio de contexto:

Interrup:movwf SaveWmovf STATUS,Wmovwf SaveSTATUSmovf PCLATH,Wmovwf SavePCLATHmovf FSR,Wmovwf SaveFSR

clrf STATUSclrf PCLATH

.

.

.

Page 17: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

17

2. Programación

• Interrupción con cambio de contexto:

.

.

.

movf SaveFSR,Wmovwf FSRmovf SavePCLATH,Wmovwf PCLATHmovf SaveSTATUS,Wmovwf STATUSswapf SaveW,Fswapf SaveW,Wretfie

Page 18: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

18

3. Prácticas

Page 19: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

19

3. Prácticas

• Práctica LEDs:1. Encender secuencialmente todos los LEDs con ejecución paso

a paso.

2. Encender secuencialmente todos los LEDs con ejecución continua utilizando un retardo software.

3. Encender secuencialmente todos los LEDs con ejecución continua utilizando un temporizador.

Page 20: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

20

3. Prácticas

• Práctica LEDs:– Salidas digitales.

Page 21: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

21

3. Prácticas

• Práctica LEDs:– Retardo software.

Page 22: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

22

3. Prácticas

• Práctica LEDs:– Temporizador.

Page 23: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

23

3. Prácticas

• Práctica PULSADORES:1. Encender un LED mientras se mantiene la pulsación.

2. Cada pulsación conmuta el estado del LED.

3. Cada pulsación conmuta el estado del LED sin rebotes con retardo software.

4. Cada pulsación enciende secuencialmente un LEDs y apaga en anterior, utilizando un temporizador.

Page 24: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

24

3. Prácticas

• Práctica PULSADORES:- Rebotes:

VC C

VC C

VC C

Page 25: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

25

3. Prácticas

• Práctica ZUMBADOR:1. Generar un tono de 2 kHz con zumbador mediante retardo

software.

2. Generar un tono de 2 kHz con zumbador y onda bipolar mediante retardo software.

3. Generar un tono de 2 kHz con zumbador mediante módulo PWM.

Page 26: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

26

3. Prácticas

• Práctica ZUMBADOR:- Módulo PWM:

Page 27: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

27

3. Prácticas

• Práctica UART:1. Realizar un echo local.

2. Realizar un sencillo intérprete de comandos para encender/apagar los LEDs.

Page 28: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

28

3. Prácticas

• Práctica UART:- Módulo UART (TX):

Page 29: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

29

3. Prácticas

• Práctica UART:- Módulo UART (TX):

Page 30: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

30

3. Prácticas

• Práctica UART:- Módulo UART (RX):

Page 31: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

31

3. Prácticas

• Práctica UART:- Módulo UART (RX):

Page 32: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

32

3. Prácticas

• Práctica ADQ:1. Lectura de la tensión del potenciómetro (VPOT) mediante el

convertidor A/D en ejecución paso a paso.

2. Lectura de la tensión del potenciómetro (VPOT) mediante el convertidor A/D y envío del código en hexadecimal a través de la UART.

3. Lectura de la tensión de los pulsadores (VBUTTON) mediante el convertidor A/D, envío del código en hexadecimal a travé de la UART y encendido del LED correspondiente mientras el botón se mantiene pulsado.

Page 33: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

33

3. Prácticas

• Práctica ADQ:– Convertidor A/D:

VC C

1

2

3

4

10k

10k

10k

10k

10k

VBU T T O N

205N5

Vcc

R5

RVccV

256N4

Vcc

R4

RVccV

341N3

Vcc

R3

RVccV

512N2

Vcc

R2

RVccV

44

33

22

11

Page 34: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

34

3. Prácticas

• Práctica VGA:1. Generar una pantalla compuesta por 3 franjas horizontales de

colores en modo VGA con 640x480 pixels, una frecuencia de línea de 31.5 kHz y una frecuencia de refresco de 60 Hz.

Page 35: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

35

3. Prácticas

• Práctica VGA:– Sincronismo horizontal:

Page 36: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

36

3. Prácticas

• Práctica VGA:– Sincronismo vertical:

Page 37: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

37

3. Prácticas

• Práctica VGA:– Sincronismo horizontal:

Page 38: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

38

3. Prácticas

• Práctica VGA:– Sincronismo horizontal vs vertical:

Page 39: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

39

3. Prácticas

• Práctica VGA:– Sincronismo horizontal vs RGB:

Page 40: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

40

3. Prácticas

• Práctica VGA:– Sincronismo vertical vs RGB:

Page 41: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

41

3. Prácticas

• Práctica VGA:– Sincronismo vertical vs RGB:

Page 42: 1 Tema 6: Prácticas Antonio Cebrián. 2 Contenidos 1.Metodología 2.Programación 3.Prácticas

42

3. Prácticas

• Práctica VGA: