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

Preview:

Citation preview

1

Tema 6: Prácticas

Antonio Cebrián

2

Contenidos

1. Metodología

2. Programación

3. Prácticas

3

1. Metodología

4

1. Metodología

C ódigo fuente

Ensam blado yenlazado

D epurac ión

¿C orrecto?

F IN

IN IC IO

N O

SI

5

2. Programación

6

2. Programación

• Estructura del código fuente plantilla.asm

Inc ludes

C onstantes

Variab les

R eset

Interrupción

M ain

Funciones

7

2. Programación

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

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'

9

2. Programación

• Comparaciones:

Igual que Contador == 10

movf Contador,Wsublw 10btfsc STATUS,Zgoto SeCumpleCondicion

10

2. Programación

• Comparaciones:

Mayor que Contador > 10

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

11

2. Programación

• Comparaciones:

Menor que Contador < 10

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

12

2. Programación

• Bucles:

Infinito

Bucle:...

goto Bucle

13

2. Programación

• Bucles:

Número fijo de iteraciones

movlw 100movwf Contador

Bucle:...

decfsz Contador,Fgoto Bucle

14

2. Programación

• Subrutinas:...

call Subrutina...

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

.

.

.

return

15

2. Programación

• Interrupción:

Interrup:...

retfie

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

.

.

.

17

2. Programación

• Interrupción con cambio de contexto:

.

.

.

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

18

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.

20

3. Prácticas

• Práctica LEDs:– Salidas digitales.

21

3. Prácticas

• Práctica LEDs:– Retardo software.

22

3. Prácticas

• Práctica LEDs:– Temporizador.

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.

24

3. Prácticas

• Práctica PULSADORES:- Rebotes:

VC C

VC C

VC C

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.

26

3. Prácticas

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

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.

28

3. Prácticas

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

29

3. Prácticas

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

30

3. Prácticas

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

31

3. Prácticas

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

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.

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

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.

35

3. Prácticas

• Práctica VGA:– Sincronismo horizontal:

36

3. Prácticas

• Práctica VGA:– Sincronismo vertical:

37

3. Prácticas

• Práctica VGA:– Sincronismo horizontal:

38

3. Prácticas

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

39

3. Prácticas

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

40

3. Prácticas

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

41

3. Prácticas

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

42

3. Prácticas

• Práctica VGA:

Recommended