ejercisios variados de configuraciones de instrucciones

66
7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 1/66 Un Display es una colección de Leds ubicados de forma estratégica. Si se los agrupa uniendo sus cátodos será de CÁTODO COU!" bien agrupando sus ánodos" un Display de #!ODO COU!. $or otro lado estos Leds pueden ser fabricados en forma de $untos o Segmentos" tal es as% &ue se encuentran Display de ' segmentos" como los de la imagen( )l programa &ue reali*aremos leerá la cantidad de +eces &ue se acti+a un pulsador y mostraremos el resultado. Conectaremos el Display en forma directa" es decir conectando el puerto , del micro a los pines del Display" y luego encender cada uno de los segmentos del Display para +isuali*ar el +alor correspondiente. $ara ello crearemos una tabla &ue contenga los distintos códigos pa el numero &ue necesitemos +isuali*ar.

Upload: darwinstons

Post on 18-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 1/66

Un Display es una colección de Leds ubicados de forma estratégica. Si se los agrupa uniendo sus cátodos será de CÁTODO COU!"

bien agrupando sus ánodos" un Display de #!ODO COU!.

$or otro lado estos Leds pueden ser fabricados en forma de $untos o Segmentos" tal es as% &ue se encuentran Display de '

segmentos" como los de la imagen(

)l programa &ue reali*aremos leerá la cantidad de +eces &ue se acti+a un pulsador y mostraremos el resultado. Conectaremos el

Display en forma directa" es decir conectando el puerto , del micro a los pines del Display" y luego encender cada uno de los

segmentos del Display para +isuali*ar el +alor correspondiente. $ara ello crearemos una tabla &ue contenga los distintos códigos pa

el numero &ue necesitemos +isuali*ar.

Page 2: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 2/66

)s ob+io &ue con un solo display solamente podremos contar de - a .

Diagrama de Flujo:

#ntes de continuar tratare de e/plicar algunos registros importantes(

El PC. Direccionamiento del programa( )specifica la dirección de la instrucción &ue se e0ecutará. Consta de 12 bits" con lo &ue es

posible direccionar 3asta 45 palabras" pero en el 16748# solo se implementa 19.

Page 3: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 3/66

La parte alta del contador de programa (PCH) no se puede acceder directamente" ella debe cargarse desde los : bits más ba0os de

registro llamado PCLATCH ;dirección -/-4<.

)n la creación de tablas" la posición a leer de la misma se reali*a con el control del registro $CL. )ste registro es de 4 bits" por lo &u

direcciona solo =:6 posiciones" por ello se debe tener en cuenta la posición de la tabla en la memoria de programa o también

controlar los bits mas significati+os de $C ;Si nuestra tabla tiene mas de =:: posiciones" si o si debemos mane0ar estos bits

>$CL#TC?@<.

$ara de+ol+er el +alor direccionado se utili*a retlA" esta instrucción de+uel+e un +alor en el acumulador al retornar de una subrutinaLa creación de la tabla se 3ará de la siguiente forma(

Código

GeSHi (asm):

1. Tabla

2. addwf   PCL,f

3. retlw  Valor0

4. retlw  Valor1

5. retlw  Valor2

6. retlw  Valor3

7. ; ....

Donde Balor-" Balor1" Balor=... etc. son los +alores &ue &ueremos almacenar en la tabla.

La estrategia a seguir para consultar algn +alor de la tabla es cargar en el acumulador ;< la dirección de la tabla donde seencuentra el +alor &ue &uieres leer y después llamar a la subrutina T#,L# ;con un C#LL<.

 Advertencia: la carga de no puede superar el nmero de +alores de la tabla" sino se estará e0ecutando una instrucción errónea

pro+ocando un mal funcionamiento del programa.E

)/plicado lo necesario pasamos al código del e0emplo(

Código

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;**** Definicion de variables ****

Page 4: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 4/66

6. +o%taor e' 00+ ; Registro para almacenar conteo

7. +o%taor1 e' 00 ; Registro utilizado en demora.-

". +o%taor2 e' 00 ; Registro utilizado en demora.-

. 'lsaor e' 7 ; Definimos Pulsador como el bit 7,

en este caso sera para POR!

10. ;**** "nicio del #icro ****

11. eset or8 000 ; $%ui comienza el micro.-

12. 8oto %i&io ; &alto a inicio de mi programa.-

13.

14.

15. ;**** abla de conversion !'D a 7 &egmentos ****

16. ; &e coloca al inicio para asegurar ubicacion en Pagina.-

17. or8 005 ; Origen del codigo de tabla.-

1". 9+7SG: ; retl( b)gfedcba) para displa catodo

comun

1.   addwf   PCL,1 ; &e incrementa el contador del programa.-

20.   retlw b0111111 ; +

21.   retlw b0000110 ;

22.   retlw b1011011 ;

23.   retlw b1001111 ;

24.   retlw b1100110 ; /

25.   retlw b1101101 ; 0

26.   retlw b1111101 ; 1 

27.   retlw b0000111 ; 7 

2".   retlw b1111111 ; 2

Page 5: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 5/66

2.   retlw b1101111 ; 3

30.   clrf +o%taor ; &i llega +, se resetea contador 

31.   retlw b0111111 ; +

32.

33. ;**** Programa principal ****

34. ;**** 'onfiguraci4n de puertos ****

35. %i&io bsf   STATUS,0  ; Pasamos de !anco + a !anco .-

36.   movlw b10000000 ; R!7 como entrada los demas como

salida.-

37.   movwf   TRISB

3".   bcf   STATUS,0 ; Paso del !anco al !anco +

3.   movlw b0111111 ; 'omienza en cero.-

40.   movwf   PORTB

41.   clrf +o%taor

42. ;**** esteo de Pulsador ****

43. Testeo

44.   btfss   PORTB,'lsaor ; esteamos si esta a logico.-

45. 8oto Testeo ; 5o, seguimos testeando.-

46.   call emora*20ms ; Eliminamos Efecto rebote

47.   btfss   PORTB,'lsaor ; esteamos nuevamente.-

4". 8oto Testeo ; 6alsa $larma, seguimos testeando.-

4.   incf +o%taor,1 ; &e a pulsado, incrementamos

contador.-

50.   movfw +o%taor ; pasamos contador a 8 

51.   call 9+7SG ; 9lamamos tabla.-

Page 6: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 6/66

52.   movwf   PORTB ; 'argamos valor recibido por abla

en POR!

53.   btfsc   PORTB,'lsaor ; Esperamos a %ue se suelte el

 pulsador -**-

54. 8oto ;<1 ; 5o, P'9 - , --: btfss

POR$,Pulsador.-

55.   call emora*20ms ; Eliminamos efecto rebote.-

56.   btfsc   PORTB,'lsaor ; esteamos nuevamente.-

57. 8oto ;<4 ; 5o, 6alsa alarma, volvemos a

testear a %ue se suelte **<.-

5". 8oto Testeo ; &i, esteamos nuevamente.-

5.

60. ;**** Demora ****

61. emora*20ms

62.   movlw 0!! ;

63.   movwf +o%taor1 ; "niciamos contador.-

64. epeti&io%1

65.   movlw 01 ;

66.   movwf +o%taor2 ; "niciamos contador

67. epeti&io%2

6".   decfsz +o%taor2,1 ; Decrementa 'ontador si es +

sale.-

6. 8oto epeti&io%2 ; &i no es + repetimos ciclo.-

70.   decfsz +o%taor1,1 ; Decrementa 'ontador.-

71. 8oto epeti&io%1 ; &i no es cero repetimos ciclo.-

72. ret'r% ; Regresa de la subrutina.-

Page 7: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 7/66

73.

74. e%

Una manera más cómoda de escribir la tabla de instrucciones RETLW puede lograrse usando la directi+a DT ;Define Table< del

ensamblador" la cual nos permite definir una tabla de datos &ue será sustituida por una lista de instrucciones F)TLG as%" la tabla

anterior puede &uedar como sigue(

Código

GeSHi (asm):

1. 9+7SG: ; retl( b)gfedcba) para displa catodo

comun

2.   addwf   PCL,1 ; &e incrementa el contador del programa.-

3. T 03!, 006, 059, 04!, 066, 06, 07, 007, 0!!, 06!

4.   clrf +o%taor

5.   retlw 03!

Rutina de Lectura de una Ta!la en "emoria de Programa# in im$ortar donde et% u!icada

#&u% 3ay e0emplos de como traba0ar para colocar una tabla en cual&uier lugar de la memoria de programa.

Control anti re!ote:)n el momento de presionar un botón pulsador o cual&uier conmutador electromecánico es ine+itable &ue se produ*ca un pe&ueHo

arco eléctrico durante el bre+e instante en &ue las placas del contacto se apro/iman o se ale0an de sus puntos de cone/ión.

La duración de este depende de la calidad de los sAitc3es y la +elocidad de accionamiento" pero no dura más de =- milisegundos.

Se ad0unta simulación.E

Page 8: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 8/66

I Última modificación: 20 de Junio de 2009, 15:11:50 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconecta

doSe/o(

#rgentina

ensa0es(6'2

Con t...

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta , : -: de 7ebrero de =--" =-(88(-' J

)n la programación de los microcontroladores $KC la mayor%a de las instrucciones emplean direccionamientodirecto" pero también es posible &ue operen en un modo de direccionamiento directo. $ara el direccionamiento

indirecto se emplean dos registros especiales( el F&R el /DF ;este ultimo no es un registro f%sico<. )l

registro F&R  se emplea para MseHalar o apuntarN a una dirección de la memoria F# cuyo contenido puede ser

le%do o escrito de forma indirecta empleando cual&uier instrucción &ue use como operando al registro /DF.

)sta forma de direccionamiento es particularmente til cuando se mane0an tablas o arreglos de datos.E

Directo v ndirecto.

 

CódigoGeSHi (asm):

1. ; D"RE'O=

2. ; Definimos registro en la memoria de datos.-

3. =>e8istro e' 010 ; >bicado en +?+.-

4.

5. ; 'argamos dato en el registro.-

6.   movlw 0"# ;

7.   movwf =>e8istro ; #Registro @ +?2a.-

". ; 9eemos dato del registro.-

.   movfw =>e8istro ; #ovemos el valor %ue tenga

#Registro a 8.-

10.   movwf   PORTB ; Por eAemplo, lo cargamos en

POR!.-

11.

12. ; "5D"RE'O=

Page 9: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 9/66

13. ; 'argamos dato en el registro.-

14.   movlw 010 ;

15.   movwf   FSR  ; Direccionamos Registro de datos

ubicado en +?+.-

16.   movlw 0"# ;

17.   movwf -! ; 'argamos registro direccionado con

el valor +?2$.-

1".

1. ; 9eemos dato en el registro.-

20.   movlw 010 ;

21.   movwf   FSR  ; Direccionamos Registro de datos

ubicado en +?+.-

22.   movfw -! ; #ovemos el valor %ue tenga el

registro seleccionado a 8.-

23.   movwf   PORTB ; Por eAemplo, lo cargamos en POR!.-

Utili*aremos el direccionamiento Kndirecto para crear la tabla de control del Display. #&u% no utili*aremos el

pulsador" solo se 3ará el contador automático de - a .E #l iniciar el microcontrolador cargaremos el código de '

Segmentos para controlar el Display en la memoria de Datos con direccionamiento indirecto.

Luego" al reali*ar el conteo leeremos el código correspondiente almacenado y lo en+iaremos al $OFT,.E

#&u% utili*amos el registro &TAT0& nue+amente" pero para control de las operaciones aritméticas. !osotros

guardaremos el código de ' Segmentos del - al " en los registros -/1- a -/1. Si nuestro contador nos

direcciona el registro ubicado en -/1#" &ue seria el M1-N" lo reseteamos y direccionamos el M-N" ósea registro

-/1-. )sto lo 3acemos reali*ando la resta del registro seleccionado y -/1#" 7SF -/1#" y si el resultado es cero

reseteamos.

El !it 1 (1ero) del regitro &TAT0&" este indica si una operación lógica o aritmética reali*ada da como

resultado cero. También tenemos el bit C (Carr) ;-<" &ue en instrucciones aritméticas se acti+a cuando se

presenta un acarreo desde el bit mas significati+o del resultado" el bit DC (Digit Carr)" &ue en operaciones

aritméticas se acti+a si ocurre acarreo entre el bit 2 y bit 8.E

Código completo(

Código

GeSHi (asm):

Page 10: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 10/66

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;**** Definicion de variables ****

6. +o%taor e' 00+ ; &eleccionamos posici4n

en la memoria R$# BPR< para guardar 

7. ; registro utilizado para

demora.-

". +o%taor1 e' 00 ; Registro utilizado en

demora.-

. +o%taor2 e' 00

10. 'lsaor e' 7 ; Definimos Pulsador como

el bit +, en este caso serC para POR$ 

11.

12.

13. eset

14. or8 000 ; $%u comienza el micro.-

15. 8oto %i&io ; &alto a inicio de mi

 programa.-

16. ;**** Programa principal ****

17. ;**** 'onfiguracion de puertos ****

1". %i&io

1.   bsf   STATUS,0  ; Pasamos de !anco + a !anco .

20.   clrf   TRISB ; POR! como salida.-

21.   bcf   STATUS,0 ; Paso del !anco al !anco +

Page 11: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 11/66

22.   call +o%fi8*Tabla ; 'argamos registros con 'odigo

de 7 segmentos.-

23.   movfw -! ; 9eemos codigo de 7 &egmentos

 para el 'ERO.-

24.   movwf   PORTB ; #ostramos el 'ERO.-

25. ;**** esteo de Pulsador ****

26. 9'&le

27.   call emora*10ms ; Demora para visualizar Displa

2".   incf   FSR ,1 ; "ncrementamos Puntero.-

2.   movlw 01# ; 'onsulamos si se pide

codigo para mostrar +,

30.   subwf   FSR ,0 ; si es asi reseteamos

6&R, apunta a +?+--: +.-

31.   btfss   STATUS,? ; &i F@ --: +?$ - 6&R @

+.-

32. 8oto ='estro*ispla> ; 5o, muestro displa.-

33.   movlw 010 ; &i reseteo puntero.-

34.   movwf   FSR  ;

35. ='estro*ispla>

36.   movfw -! ; 9eo Registro %ue apunta

6&R.-

37.   movwf   PORTB ; 9o cargo en POR!.-

3". 8oto 9'&le ; 'ontinuo conteo.-

3.

40.

41. ;**** Demora ****

Page 12: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 12/66

42. emora*10ms

43.   movlw 0!! ;

44.   movwf +o%taor1 ; "niciamos contador.-

45. epeti&io%1

46.   movlw 0!! ;

47.   movwf +o%taor2 ; "niciamos contador

4". epeti&io%2

4.   decfsz +o%taor2,1 ; Decrementa 'ontador

si es + sale.-

50. 8oto epeti&io%2 ; &i no es + repetimosciclo.-

51.   decfsz +o%taor1,1 ; Decrementa 'ontador.-

52. 8oto epeti&io%1 ; &i no es cero repetimos

ciclo.-

53. ret'r% ; Regresa de la

subrutina.-

54. ;**** 'argamos tabla en memoria ****

55. +o%fi8*Tabla

56.   movlw 010 ;

57.   movwf   FSR  ; Direccionamos el registro +?

de la memoria R$# BPR<.-

5".   movlw 03! ; 'argamos el codigo para mostrar el

'ERO.-

5.   movwf -! ; 9o guardamos donde apunta 6&R --:

+?+.-

60. ;....................

61.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

Page 13: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 13/66

+?.-

62.   movlw 006 ; 'argamos codigo para >5O.-

63.   movwf -! ; 9o guardamos donde apunta 6&R.-

64. ;....................

65.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?.-

66.   movlw 059 ; 'argamos codigo para DO&.-

67.   movwf -! ; 9o guardamos donde apunta 6&R.-

6". ;....................

6.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a+?.-

70.   movlw 04! ; 'argamos codigo para RE&.-

71.   movwf -! ; 9o guardamos donde apunta 6&R.-

72. ;....................

73.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?/.-

74.   movlw 066 ; 'argamos codigo para '>$RO.-

75.   movwf -! ; 9o guardamos donde apunta 6&R.-

76. ;....................

77.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?0.-

7".   movlw 06 ; 'argamos codigo para '"5'O.-

7.   movwf -! ; 9o guardamos donde apunta 6&R.-

"0. ;....................

"1.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?1.-

Page 14: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 14/66

"2.   movlw 07 ; 'argamos codigo para &E"&.-

"3.   movwf -! ; 9o guardamos donde apunta 6&R.-

"4. ;....................

"5.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?7.-

"6.   movlw 007 ; 'argamos codigo para &"EE.-

"7.   movwf -! ; 9o guardamos donde apunta 6&R.-

"". ;....................

".   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?2.-

0.   movlw 0!! ; 'argamos codigo para O'GO.-

1.   movwf -! ; 9o guardamos donde apunta 6&R.-

2. ;....................

3.   incf   FSR ,1 ; "ncrementamos 6&R, aora apunta a

+?3.-

4.   movlw 06! ; 'argamos codigo para 5>EHE.-

5.   movwf -! ; 9o guardamos donde apunta 6&R.-

6. ;....................

7.   movlw 010 ;

".   movwf   FSR  ; Direccionamos Registro del

'ERO.-

. ret'r% ; 'argado los valores,

retornamos.-

100. ;.................................................

................

101. %

Page 15: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 15/66

 )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectad

oSe/o(

#rgentina

ensa0es( 6'2

Con t...

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta 2 : -: de 7ebrero de =--" =-(8:(2= J

$ara el control de +arios display la idea es multiple/ar la seHal en+iada por el microcontrolador" con él

administraremos el encendido de cada display y sus segmentos ;lo cual se 3ace por programa<.

$ara e0emplificar 3aremos un contador automático de - a (

)l 3ardAare necesario es el siguiente(

Diagrama de Flujo:

Page 16: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 16/66

Se obser+a &ue el $uerto , se utili*a para en+iar los datos a mostrar en cada display" mientras &ue por el

$uerto # seleccionas el display &ue mostrará ese dato. Supongamos &ue &uiero mostrar P=21P" pues muy fácipongo el puerto , en ----11- ;código para el 1<" y acti+o a3ora el 2Q transistor por un periodo de tiempo

corto" desacti+amos este transistor" cargamos el puerto , con 1--1111 y acti+amos el =Q transistor por un

tiempito" lo mismo 3acemos para mostrar M1N. Fepetimos esta misma secuencia mientras se &uiera mostrar

este +alor. La secuencia es tan rápida &ue el obser+ador no nota el momento en &ue cambias de display.

Control de conteo:

$ara reali*ar el conteo incrementamos continuamente Unidad" cuando está llega a 1-" las reseteamos a -" e

incrementamos en 1 Decena. La misma operación se reali*a con Decena" al llegar a 1- se lle+a a - y se

incrementa Centena.E

Código

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

Page 17: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 17/66

5. ;**** Definicion de variables ****

6. @%ia e' 00+ ; Buardamos conteo

unidad 

7. e&e%a e' 00 ;

". +e%te%a e' 00 ;

. +o%taor1 e' 00! ; Registro utilizado en

demora.-

10. +o%taor2 e' 010 ; Registro utilizado en

demora.-

11. +o%taor e' 011 ; 'ontrol de Refresco de

Displa.-

12.

13. ='estro@ e' 2 ; Para control

del I Displa 

14. ='estro e' 1 ; Para control

del I Displa 

15. ='estro+ e' 0 ; Para control

del I Displa 

16.

17. ;**** "nicio del #icro ****

1". eset

1. or8 000 ; $%u comienza el micro.-

20. 8oto %i&io ; &alto a inicio de mi programa.-

21.

22.

23. ;**** abla de conversion !'D a 7 &egmentos ****

24. ; &e coloca al inicio para asegurar ubicacion en

Page 18: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 18/66

Pagina.-

25. or8 005 ; Origen del c4digo de tabla.-

26. 9+7SG ; retl( b)gfedcba) para

displa catodo comun

27.   addwf   PCL,1 ; &e incrementa el contador

del programa.-

2". T 03!, 006, 059, 04!, 066, 06, 07,

007, 0!!, 06!

2.

30. ;**** Programa principal ****

31. ;**** 'onfiguracion de puertos ****

32. %i&io

33.   bsf   STATUS,0  ; Pasamos de !anco + a !anco

.-

34.   clrf   TRISA  ; POR$ como salida

35.   clrf   TRISB ; POR! como salida.-

36.   bcf   STATUS,0 ; Paso del !anco al !anco +

37.   clrf   PORTA  ; Desactivo todos los Displas

3".   clrf @%ia ; 'omienza en cero --: + + +.-

3.   clrf e&e%a

40.   clrf +e%te%a

41. 8oto #&t'aliAo*ispla> ; Esta rutina multiple?a

los displas.-

42. ;**** esteo de Pulsador ****

43. 9'&le

44.   incf @%ia,1 ; "ncremeto >nidad.

Page 19: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 19/66

45.   movlw 10 ; &i es + reseteo e

incremento Decena

46.   subwf @%ia,0 ;

47.   btfss   STATUS,? ;

4". 8oto #&t'aliAo*ispla> ; no es +

4.   clrf @%ia ; &i, reseteo.-

50.   incf e&e%a,1 ; "ncremento Decena.-

51.   movlw 10 ; &i Decena @ +, reseteo e

incremento 'entena

52.   subwf e&e%a,0 ;

53.   btfss   STATUS,? ;

54. 8oto #&t'aliAo*ispla> ; 5o es +.-

55.   clrf e&e%a ; &i, reseteo.-

56.   incf +e%te%a,1 ; "ncremento 'entena.-

57.   movlw 10 ; &i es + Reseteo.-

5".   subwf +e%te%a,0

5.   btfss   STATUS,?

60. 8oto #&t'aliAo*ispla> ; 5o es +.-

61.   clrf +e%te%a ; &i, reseto

62. ;**** &e multiple?an los Displa ****

63. #&t'aliAo*ispla>

64.   movlw 20 ; 'argo 'ontador @ +

65.   movwf +o%taor ; Para repeticiones de

visualizacion del mismo valor 

66. ; durante 0+ ms.-

Page 20: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 20/66

67. efres&o

6".   movfw @%ia ; Obtengo codigo de 7

&egmentos para >nidad.-

6.   call 9+7SG ;

70.   bcf   PORTA ,='estro+ ; $pago Displa de

'entena, &e entiende al mirar rutina.-

71.   movwf   PORTB ; 'argo unidad en

POR!.-

72.   bsf   PORTA ,='estro@ ; Enciendo Displa de

>nidad.-

73.   call emora*5ms

74.   movfw e&e%a ; Obtengo codigo 7

&egmentos para Decena.-

75.   call 9+7SG

76.   bcf   PORTA ,='estro@ ; $pago Displa de

>nidad.-

77.   movwf   PORTB ; 'argo POR! con

Decena.-

7".   bsf   PORTA ,='estro ; Enciendo Displa de

Decena.-

7.   call emora*5ms

"0.   movfw +e%te%a ; Obtengo codigo de 7

&egmentos para 'entena.-

"1.   call 9+7SG

"2.   bcf   PORTA ,='estro ; $pago Displa de

Decena.-

"3.   movwf   PORTB ; 'argo POR! con

'entena.-

"4.   bsf   PORTA ,='estro+ ; Enciendo Displa

Page 21: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 21/66

'entena.-

"5.   call emora*5ms

"6.   decfsz +o%taor,1 ; Pregunto si a se a

repetido + veces el cicloJ

"7. 8oto efres&o ; 5o, repito.-

"". 8oto 9'&le ; &i, actualizo cuenta.

". ;**** Demora ****

0. emora*5ms

1.   movlw 0!! ;

2.   movwf +o%taor1 ; "niciamos contador.-

3. epeti&io%1

4.   movlw 005 ;

5.   movwf +o%taor2 ; "niciamos contador

6. epeti&io%2

7.   decfsz +o%taor2,1 ; Decrementa 'ontador si es + sale.-

". 8oto epeti&io%2 ; &i no es + repetimos

ciclo.-

.   decfsz +o%taor1,1 ; Decrementa 'ontador.

100. 8oto epeti&io%1 ; &i no es cero

repetimos ciclo.-

101. ret'r% ; Regresa de la

subrutina.-

102.

103. e%

)n este e0emplo se mantiene la +isuali*ación del mismo +alor durante apro/. 2-- ms" se puede determinar ya

Page 22: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 22/66

&ue utili*amos 2 demoras de : ms despreciando los ciclos utili*ados en los comandos" &ue son apro/. 2- ;2-

us<. )ntonces por ciclo tenemos 1: ms" y por =- repeticiones" 2-- ms.E

#l final de este 3ilo se 3a agregado un e0emplo de control de 2 display con el registro de despla*amiento

'8LS168.

Ejem$lo

I Última modificación: 20 de Junio de 2009, 15:18:26 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectado

Se/o(

#rgentinaensa0es( 6'2

Con t...

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta *3 : -: de 7ebrero de =--" =-(86(81 J

Decodi4icador 5CD.

La otra posibilidad es utili*ar un decodificador ,CD como el '8LS8' o el '8LS=8" o el CD8:11. )stos

integrados disponen de 8 entradas correspondientes a un código binario ,CD" y ' salidas &ue se conectan a u

Display.

Lo importante de este integrado" es &ue posee 8 pines de entrada y ' de salida" mas unos cuantos de

configuración. )l 3ec3o es &ue" los 8 pines de entrada ;#" ," C y D< serán los &ue reciban el código en binario

en+iado por el micro. Una +e* recibido el dato" el integrado se 3ará cargo de decodificarlo y en+iarlo por los

pines de salida ;a" b" c" d" e" f y g< para mostrarlo en el display. Lo &ue nos falta saber" es &ue dato deberé

en+iar al decodificador.

DCBA Valor que muestra el Display

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

Page 23: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 23/66

I Última modificación: 20 de Junio de 2009, 16:50:06 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectad

oSe/o(

#rgentina

ensa0es( 6'2

Con t...

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta ** : -: de 7ebrero de =--" =-(8'(2' J

Una de las caracter%sticas más importante de los microcontroladores y &ue mencionamos al inicio del

tutorial" es &ue tienen la posibilidad de mane0ar interrupciones. Se trata de un acontecimiento &ue 3ace &ue e

micro de0e de lado lo &ue se encuentra reali*ando" atienda ese suceso y luego regrese y contine con lo suyo

?ay dos tipos de interrupciones posibles" una es mediante una acción e/terna ;es decir por la acti+ación de

uno de sus pines<" la otra es interna ;por e0emplo cuando ocurre el desbordamiento de uno de sus registros<

)n el 16748# 3ay 8 fuentes de interrupción(

• $or el pin F,-RK!T" &ue regresa al $KC del modo SL))$ ;interrupción e/terna<.

• $or los pines F,8 a F,'" configurados como entrada y en caso de &ue alguno de ellos cambie de

estado ;interrupción e/terna<.

• $or desbordamiento del registro TF-" cuando este registro pasa de =:: a - en decimal ;interrupció

interna<.

• #l completar la escritura de la ))$FO de datos ;interrupción interna<.

Cada fuente de interrupción esta controlada por = bits. Un bit local de interrupciones ;Terminado en )< de

permiso o pro3ibición de e0ecución. Si esta en - blo&ueará la solicitud de interrupción" y si esta en 1 permitirá

la e0ecución. Un bit &ue acta como seHali*ador ;Terminado en 7< el cual es acti+ado ;puesto a 1< si se 3a

producido la interrupción. #demás e/iste 1 bit de control global" el bit K) ;K!TCO! '< el cual si esta

desacti+ado blo&uea todas las solicitudes de interrupción.

Lo anterior descrito puede entenderse obser+ando el diagrama lógico de la siguiente figura(

Page 24: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 24/66

)l bit 6E se borra automáticamente cuando se reconoce una interrupción para e+itar &ue se produ*ca otra

mientras se está atendiendo a la primera y al retornar de la interrupción con la instrucción RETFE" el

bit 6E se +uel+e a acti+ar poniéndose a 1. )n cambio los bits seHali*adores o banderas de interrupción deben

ser puestos a cero por el tratamiento de la interrupción reali*ada por el usuario ;$rogramador<

Cuando una interrupción está 3abilitada ;su bit local de 3abilitación está acti+ado" el bit K) está acti+ado< y

ocurre el e+ento &ue la acti+a" el +alor de PC se guarda en la PLA y en éste se carga el 373- ;nico +ector

de interrupción<. )s a partir de esta dirección &ue se debe colocar el tratamiento de la interrupción" detectand

por medio de los bits banderas cual de los e+entos 3a ocurrido y actuar segn sea el caso.

/ota: )l nico registro &ue se sal+a en la PLA e PC" para preser+ar algn otro registro debe ser el propioprograma de atención a la interrupción el &ue se encargue de sal+ar su estado al inicio de la rutina y de

de+ol+erlos al final del mismo.

Fesumiendo" las acciones &ue se reali*an automáticamente el microcontrolador y las &ue el programador deb

tener en cuenta en sus programas son las siguientes(

• Cuando se acti+a una posible causa de interrupción" el flag correspondiente se acti+a. Si el bit de

permiso correspondiente está a 1 y el bit de 3abilitación de todas las interrupciones ;K)< está a 1" s

produce la interrupción.

• $ara e+itar &ue se produ*ca otra interrupción mientras se está atendiendo a otra anterior" el bit K) s

pone a -.

• )l +alor del $C se guarda en la $KL#

• )l $C se carga con el +alor -/-8" &ue es el +ector de interrupciones

• )l programador" debe comen*ar la rutina de atención a la interrupción con un salto a la posición de

memoria donde se encuentra el programa" seguidamente se guardan todos los registros &ue puedan

Page 25: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 25/66

ser modificados por esta" seguidamente si están 3abilitadas +arias +%as de interrupción" se debe

e/plorar el +alor de las banderas para determinar la causa de la interrupción.

• Dependiendo de la causa de la interrupción" la rutina de interrupción se bifurca a la subrutina

correspondiente.

• Se deben de+ol+er los +alores &ue ten%an los registros antes de producirse la interrupción y se deben

borrar por softAare las banderas &ue indican las fuentes de las interrupciones" antes del retorno al

programa principal.

• Cuando se llega a la ltima instrucción de la rutina de interrupción" F)TUF!" se carga el $C con el

+alor &ue se guardó inicialmente en la $KL# y el bit K) se pone automáticamente a 1.

,its utili*ados.

• K!T7 para F,-RK!T" bit 1 de K!TCO!" si es 1 ocurrió interrupción e/terna

• F,K7 para los pines ,8 a F,'" bit - de K!TCO!" si es 1 por lo menos un pin cambio de estado

• T-K7 para TF-" bit = de K!TCO!" si es 1 TF- desbordado

• ))K7 para la ))$FO" bit 8 de ))CO!1" si es 1 se 3a completado escritura

• K)" bit ' de K!TCO!" si es 1 3abilita todas las interrupciones

• ))K)" bit 6 de K!TCO!" si es 1 se acti+a interrupciones de periféricos

• T-K)" bit : de K!TCO!" si es 1 int. TF- acti+ada

• K!T)" bit 8 de K!TCO!" si es 1 int. )/terna acti+ada

• F,K)" bit 2" si es 1 int. $or F,8 a F,' acti+ada

Todos estos bits al resetearse o iniciarse el micro se encuentran en -.

Rutina de &ervicio de nterru$cione:

$rimero debes guardar el contenido del registro " el problema de mo+er a otro registro ;3aciendo uso demo+f< es &ue esta instrucción corrompe la bandera V" modificando el registro de ST#TUS. Segn la 3o0a de

datos otorgada por icroc3ip" en uno de sus apartados recomienda una secuencia de código &ue permite

guardar y restaurar los registros sin modificarlos.

Código

GeSHi (asm):

1. ;**** Rutina de servicio de "nterrupcion ****

Page 26: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 26/66

2. ; Buardado de registro 8 &$>&.-

3. %i&io*S

4.   movwf *Temp ; 'opiamos 8 a un registro emporario.-

5.   swapf   STATUS, ;"nvertimos los nibles del registro

&$>&.-

6.   movwf ST#T@S*Temp ; Buardamos &$>& en un registro

temporal.-

7. S

". ; $tendemos la interrupci4n.-

. ; Restauramos los valores de 8 &$>&.-

10. !i%*S

11.   swapf ST#T@S*Temp, ; "nvertimos lo nibles

de &$>&Kemp.-

12.   movwf   STATUS

13.   swapf *Temp, f ; "nvertimos los nibles lo

guardamos en el mismo registro.-

14.   swapf *Temp, ; "nvertimos los nibles

nuevamente lo guardamos en 8.-

15.   retfie ; &alimos de interrupci4n.-

Los registros WTemp y ST#TUSWTemp son registros alternati+os para guardar temporariamente sus +alores

correspondientes.E

I Última modificación: 30 de Julio de 2009, 1:3:03 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectado

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta *8 : -: de 7ebrero de =--" =-(84(=' J

)l Timer - es un contador R tempori*ador de 4 bits. )l registro principal de este módulo es T"R3 (373*)

)ste registro se incrementa continuamente a una frecuencia seleccionable mane0ada por un preescalador y el

relo0 interno 7oscR8 ;modo tem$ori9ador< o bien" por un preescalador y una seHal e/terna ;modo

Page 27: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 27/66

Se/o(#rgentina

ensa0es( 6'2

Con t...

contador).

En la iguiente 4igura e muetra un diagrama de !loue de ete m;dulo# en donde e indican lo

!it ue a4ectan u o$eraci;n la manera en ue lo <acen.

El modo Tem$ori9ador

)n el modo tempori*ador la seHal de relo0 &ue controla el incremento del registro T"R3 es la frecuencia 7cy X

7oscR8" la cual puede ser di+idida opcionalmente por el preescalador si as% se desea. Como se puede +er en la

figura anterior" este modo es seleccionado al limpiar el bit T3C& (=PT=/>RE6?@). )n este modo" el

contenido del registro TF- se incrementará a la frecuencia 7cy di+idida de acuerdo al preescalador" sin

embargo" si se reali*a una escritura al registro TF-" su incremento es in3ibido por los siguientes dos ciclos d

instrucción ;Tcy<.

El modo Contador

)n el modo contador" la seHal &ue controla los incrementos del registro T"R3 es una seHal e/terna &ue

pro+iene de la patita T3CB. )n la figura anterior se puede +er &ue este modo se selecciona poniendo el bit

T-CS en alto. Se puede seleccionar la transición &ue pro+oca los incrementos mediante el bit MTimer- Source

)dge SelectM T3&E (=PT=/>RE6?-)" limpiando este bit se selecciona la transición de subida" mientras

&ue al ponerlo en alto se selecciona la de ba0ada.

=!ervaci;n: )n este modo" la seHal conectada a TOC5K es muestreada durante los ciclos = y 8 del relo0

interno" por ello es necesario &ue permane*ca en alto al menos por = Tosc más un pe&ueHo retardo de =-nseg

y lo mismo en ba0o. ;)s decir" seHales demasiado estrec3as ;rápidas< no podrán ser detectadas<.

El $reecalador

)l preescalador es un di+isor de frecuencia de módulo seleccionable. Como se puede +er en la figura anterior"

el preescalador está compartido entre el timer- y el módulo atc3dog" sin embargo sólo puede conectarse a

uno de los dos y esto se establece mediante el bit P&A (=PT=/>RE6?)" as%" con este bit en alto el

preescalador es asignado al relo0 del atc3dog" mientras &ue con un ni+el ba0o en $S# el preescalador di+idir

la frecuencia &ue mane0a al Timer -.

La selección del módulo ;+alor de di+isión de frecuencia< del preescalador se puede reali*ar mediante los

bits P&8#P&*#P&3 (=PT=/>RE6?8:3) de acuerdo a la siguiente tabla(

Page 28: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 28/66

PS2 PS1 PS0 Divisor

000 1/2

001 1/4

010 1/8

011 1/16

100 1/32

101 1/64

110 1/128

111 1/256

/=TA: Si se necesita el timer en 1(1 solo 3ay &ue asociar el preescaler al atc3dog.

I Última modificación: 1! de "ayo de 2009, 16:00:53 por Suky J )n l%ne

icrosEDesigns

&u'

oderadores

Ds$KC22

 Desconectado

Se/o(#rgentina

ensa0es( 6'2

Con t...

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta * : -: de 7ebrero de =--" =-(8(:2 J

Ejem$lo modo tem$ori9ador. 

$ara calcular una tempori*ación se necesita el tiempo de un ciclo de instrucción ;es decir 1 microsegundo" si

estas traba0ando con un YT de 8 3*<" el +alor del Di+isor de 7recuencia ;el &ue seleccionabas con los bits

$S=" $S1 y $S-<" y finalmente el complemento del +alor cargado en TF- ;es decir =::ETF-<. )ntonces

tenemos( Tem$ori9aci;n Ciclo de intrucci;n. (8@+T"R3) .Divior de Frecuencia

De este modo si &ueremos tempori*ar 8 ms con un di+isor de frecuencia de 2=" tendr%amos(

Bemos &ue la má/ima tempori*ación posible es con TF- X -" y Di+isor de 7recuencia en =:6" lográndose

unos 6:.: ms apro/.

$ara e0emplificar el uso de esta interrupción 3aremos titilar un led conectado al $K! F,- cada =-- ms" para

ello 3aremos una tempori*ación con TF- de :-ms y contaremos 8 desbordes del mismo para lograr los =--

ms necesarios. Lo interesante de usar interrupción es &ue con el micro se puede estar e0ecutando cual&uier

tarea y no ocupar este tiempo en un bucle de demora. )l 3ardAare necesario es e&ui+alente al primer e0empl

reali*ado.E

Diagrama de Flujo:

Page 29: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 29/66

Código

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;**** Definicion de variables ****

6. +o%taor e' 00+ ; 'ontador para detectar /

desbordes de #R+.-

7. *Temp e' 00 ; Registro para guardartemporalmente 8.-

". ST#T@S*Temp e' 00 ; Registro para guardar

temporalmente &$>& 

.

10. Be e' 0 ; Definimos 9ed como el

bit cero de un registro, en este caso POR!.-

11.

12. ;**** "nicio del #icro ****

13. eset

14. or8 000 ; $%u comienza el micro.-

15. 8oto %i&io ; &alto a inicio de mi

Page 30: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 30/66

 programa.-

16. ;**** Hector de "nterrupcion ****

17. or8 004 ; $tiendo "nterrupcion.-

1". 8oto %i&io*S

1.

20. ; **** Programa Principal ****

21. ;**** 'onfiguracion de puertos ***

22. or8 005 ; Origen del c4digo de

 programa.-

23. %i&io

24.   bsf   STATUS,0  ; Pasamos de !anco + a !anco

.-

25.   movlw b11111110 ; R!+ como salida.-

26.   movwf   TRISB

27.   movlw b00000111 ; &e selecciona #R+ modo

temporizador preescaler de L01.-

2".   movwf   OPTIO!R"#

2.   bcf   STATUS,0 ; Paso del !anco al !anco +

30.   bcf   PORTB,Be ; El 9ed comienza apagado.-

31.   movlw 03 ; 'argamos 1 en #R+ para

lograr apro?. 0+ms.-

32.   movwf   T$R%

33.   clrf +o%taor ; "niciamos contador.-

34.   movlw b10100000 ; Gabilitamos B"E +"E

interrupci4n del #R+<

35.   movwf   ITCO

Page 31: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 31/66

36. ;**** !ucle ****

37. 9'&le

3".   nop ; $%ui el micro puede eAecutar

cual%uier otra tarea

3. 8oto 9'&le ; sin necesidad de utilizar

tiempo en un bucle de demora.-

40.

41.

42. ;**** Rutina de servicio de "nterrupcion ****

43.

44. ;---: $%ui aremos copia de respaldo para mostrar como

se ace aun%ue no es

45. ; necesario a %ue el micro no ace otra tarea mientras

tanto M---

46.

47. ; Buardado de registro 8 &$>&.-

4". %i&io*S

4.   movwf *Temp ; 'opiamos 8 a un registro

emporario.-

50.   swapf   STATUS, ;"nvertimos los nibles del

registro &$>&.-

51.   movwf ST#T@S*Temp ; Buardamos &$>& en un

registro temporal.-

52. ;**** "nterrupcion por #R+ ****

53. S

54.   btfss   ITCO,T0! ; 'onsultamos si es por #R+.-

55. 8oto !i%*S ; 5o, entonces

Page 32: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 32/66

restauramos valores.-

56.   incf +o%taor ; &i, "ncrementamos contador 

57.   movlw 004 ; 'onsultamos si se an

 producido / desbordes

5".   subwf +o%taor,0 ; para obtener ++ ms.-

5.   btfss   STATUS,? ;

60. 8oto #&t'aliAo*T=0 ; 5o, cargo #R+ si

salgo.-

61.   clrf +o%taor ; &i, reseteo 'ontador

controlo 9ed.-

62.   btfss   PORTB,Be ; &i esta apagado, prendo viseversa.-

63. 8oto re%o*le

64.   bcf   PORTB,Be ; $pago 9ed.-

65. #&t'aliAo*T=0 ; $ctualizo #R+ para

obtener una temporizacion de 0+ ms.-

66.   movlw 03 ; d)1)

67.   movwf   T$R%

6".   bcf   ITCO,T0! ; !orro bandera de control de

"nterrupcion.-

6. 8oto !i%*S ; Restauro valores.-

70. re%o*le

71.   bsf   PORTB,Be ; prendo 9ed.-

72. 8oto #&t'aliAo*T=0

73. ; Restauramos los valores de 8 &$>&.-

74. !i%*S

75.   swapf ST#T@S*Temp, ; "nvertimos lo nibles

Page 33: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 33/66

de &$>&Kemp.-

76.   movwf   STATUS

77.   swapf *Temp, f ; "nvertimos los nibles lo

guardamos en el mismo registro.-

7".   swapf *Temp, ; "nvertimos los nibles

nuevamente lo guardamos en 8.-

7.   retfie ; &alimos de interrupci4n.-

"0. ;..........................................

"1.

"2. e%

Una ayuda adicional

)l programita presentado en el primer post" tiene una utilidad &ue nos ayudará en el cálculo del preescaler y

+alor inicial del Timer para obtener una tempori*ación deseada" aparte de generar el código.

I Última modificación: 10 de Julio de 2009, 19:01:20 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectado

Se/o(#rgentina

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta *- : -: de 7ebrero de =--" =-(:1(-- J

Ejem$lo modo contador.

)l siguiente programa reali*a el conteo del nmero de +eces &ue produce una transición de ba0o a alto en la

patita T-C5K. )l +alor del contador se incrementará una +e* por cada dos transiciones" y al detectarse 1-

cambiamos el estado del Led conectado a F,-.

Page 34: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 34/66

ensa0es( 6'2

Con t...

Diagrama de Flujo:

 

Código

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;**** Definicion de variables ****

6. +o%taor e' 00+ ; 'ontador para detectar /

desbordes de #R+.-

7. *Temp e' 00 ; Registro para guardar

temporalmente 8.-

". ST#T@S*Temp e' 00 ; Registro para guardar

temporalmete &$>& 

Page 35: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 35/66

.

10. Be e' 0 ; Definimos 9ed

como el bit cero de un registro, en este caso POR!.-

11.

12. ;**** "nicio del #icro ****

13. eset

14. or8 000 ; $%u comienza el micro.-

15. 8oto %i&io ; &alto a inicio de mi

 programa.-

16. ;**** Hector de "nterrupcion ****

17. or8 004 ; $tiendo "nterrupcion.-

1". 8oto %i&io*S

1.

20. ; **** Programa Principal ****

21. ;**** 'onfiguracion de puertos ***

22. or8 005 ; Origen del c4digo de

 programa.-

23. %i&io

24.   bsf   STATUS,0  ; Pasamos de !anco + a !anco

.-

25.   movlw b11111110 ; R!+ como salida.-

26.   movwf   TRISB

27.   movlw b00100000 ; &e selecciona #R+ modo

'ontador, transicion positiva

2".   movwf   OPTIO!R"# ; preescaler de L.-

2.   bcf   STATUS,0 ; Paso del !anco al !anco +

Page 36: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 36/66

30.   bcf   PORTB,Be ; El 9ed comienza apagado.-

31.   movlw 0!9 ; 'argamos 0 en #R+ para

contar + pulsos en R$/LO'N".-

32.   movwf   T$R%

33.   movlw b10100000 ; Gabilitamos B"E +"E

interrupci4n del #R+<

34.   movwf   ITCO

35. ;**** !ucle ****

36. 9'&le

37.   nop ; $%ui el micro puede eAecutar

cual%uier otra tarea

3". 8oto 9'&le ; sin necesidad de utilizar

tiempo en un bucle de demora.-

3.

40.

41.

42.

43. ;**** Rutina de servicio de "nterrupcion ****

44.

45. ;---: $%ui aremos copia de respaldo para mostrar como

se ace aun%ue no es

46. ; necesario a %ue el micro no ace otra tarea mientras

tanto M---

47.

4". ; Buardado de registro 8 &$>&.-

4. %i&io*S

50.   movwf *Temp ; 'opiamos 8 a un registro

Page 37: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 37/66

emporario.-

51.   swapf   STATUS, ;"nvertimos los nibles del

registro &$>&.-

52.   movwf ST#T@S*Temp ; Buardamos &$>& en un

registro temporal.-

53. ;**** "nterrupcion por #R+ ****

54. S

55.   btfss   ITCO,T0! ; 'onsultamos si es por #R+.-

56. 8oto !i%*S ; 5o, entonces

restauramos valores.-

57.   btfss   PORTB,Be ; &i, 'ontrolamos 9ed.&i estaapagado, prendo viseversa.-

5". 8oto re%o*le

5.   bcf   PORTB,Be ; $pago 9ed.-

60. #&t'aliAo*T=0 ; 'argamos 0 en #R+

 para contar + pulsos en R$/LO'N".-

61.   movlw 0!9 ; d)0)

62.   movwf   T$R%

63.   bcf   ITCO,T0! ; !orro bandera de control de

"nterrupcion.-

64. 8oto !i%*S ; Restauro valores.-

65. re%o*le

66.   bsf   PORTB,Be ; prendo 9ed.-

67. 8oto #&t'aliAo*T=0

6". ; Restauramos los valores de 8 &$>&.-

6. !i%*S

70.   swapf ST#T@S*Temp, ; "nvertimos lo nibles

Page 38: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 38/66

Page 39: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 39/66

Código

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;**** Definicion de variables ****

6. +o%taor1 e' 00+

7. +o%taor2 e' 00

".

. 'lsaor e' 0 ; pin R!+

10. Be e' 1 ; pin

R!

11.

12. ;**** "nicio del #icro ****

13. eset

14. or8 000 ; $%ui comienza el

micro.-

15. 8oto %i&io ; &alto a inicio de mi

 programa.-

16. ;**** Hector de "nterrupcion ****

17. or8 004 ; $tiendo "nterrupcion.

1". 8oto S

1.

20. ; **** Programa Principal ****

Page 40: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 40/66

21. ;**** 'onfiguracion de puertos ***

22. or8 005 ; Origen del codigo de

 programa.-

23. %i&io

24.   bsf   STATUS,0  ; Pasamos de !anco + a

!anco .-

25.   movlw b11111101 ; R!+ como entrada R! como

salida.-

26.   movwf   TRISB

27.   movlw b01000000 ; 'onfig. Por flanco

$scendente.-

2".   movwf   OPTIO!R"#

2.   bcf   STATUS,0 ; Paso del !anco al

!anco +

30.   bcf   PORTB,Be ; El 9ed comienza

apagado.-

31.   movlw b10010000 ; Gabilitamos B"E "5E

interrupci4n por R!+<

32.   movwf   ITCO

33. ;**** !ucle infinito ****

34. 9'&le

35.   nop ;

36. 8oto 9'&le ;

37.

3". ;.............................................

3. ;**** Rutina de servicio de "nterrupcion ****

40. ;**** "nterrupcion por R!+ ****

Page 41: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 41/66

41. S

42.   btfss   ITCO,-T! ; 'onsultamos si es por

R!+.-

43.   retfie ; 5o, &alimos de

interrupci4n.-

44.   call emora*20ms ; 'omprueba si es

rebote.-

45.   btfss   PORTB,'lsaor

46. 8oto !i%*S ; Es rebote,

entonces salimos.-

47.   btfss   PORTB,Be ; &i esta prendido, lo

apagamos.-

4". 8oto re%er*Be

4.   bcf   PORTB,Be ; $pagamos 9ed 

50. 8oto !i%*S

51. re%er*Be

52.   bsf   PORTB,Be ; Encendemos 9ed 

53. !i%*S

54.   bcf   ITCO,-T! ; 9impiamos

bandera.-

55.   retfie ; &alimos de

interrupci4n.-

56. ;..........................................

57. ;**** Demora ****

5". emora*20ms

5.   movlw 0!! ;

60.   movwf +o%taor1 ; "niciamos contador.-

Page 42: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 42/66

61. epeti&io%1

62.   movlw 01 ;

63.   movwf +o%taor2 ; "niciamos contador

64. epeti&io%2

65.   decfsz +o%taor2,1 ; Decrementa 'ontador

si es + sale.-

66. 8oto epeti&io%2 ; &i no es + repetimos

ciclo.-

67.   decfsz +o%taor1,1 ; Decrementa 'ontador.

6". 8oto epeti&io%1 ; &i no es cero

repetimos ciclo.-

6. ret'r% ; Regresa de la

subrutina.-

70.

71. e%

I Última modificación: 20 de %$ril de 2009, 1!:15:20 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectado

Se/o(

#rgentina

ensa0es(6'2

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta *+ : -: de 7ebrero de =--" =-(:8(8: J

#pro+ec3aremos esta interrupción para detectar cuando se 3a presionado una tecla de un Teclado atricial. Un

teclado matricial es un simple arreglo de botones conectados en filas y columnas" de modo &ue se pueden leer

+arios botones con el m%nimo nmero de pines re&ueridos. Un teclado matricial 8Z2 solamente ocupa 8 l%neasde un puerto para las filas y otras 2 l%neas para las columnas" de este modo se pueden leer 1= teclas utili*ando

solamente ' l%neas de un microcontrolador.

$ara detectar la tecla presionada se utili*ara el siguiente 3ardAare(

Page 43: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 43/66

Con t...

Configuraremos F,- a F,2 como salida y las colocaremos a ni+el ba0o. F,8 y F,' configuradas como entradasy en estado normal ;sin presión de teclas< estarán a ni+el alto. #l presionar una tecla se conecta una fila con

una columna" se produce un cambio de ni+el en alguna de las columnas ;De ni+el alto a ba0o<" y se genera la

interrupción. $ara detectar &ue tecla se 3a presionado" se colocan F,- a F,2 a ni+el alto" y se pasan a ni+el

ba0o de a una por +e*" detectando si se produce algn cambio en las columnas.

Se utili*a una +ariable &ue se incrementa con la cuenta de las teclas re+isadas" de este modo al detectar una

pulsación el +alor de la cuenta será el +alor de la tecla presionada. Si al final no se presionó ninguna tecla la

+ariable se pone a cero y la cuenta +uel+e a comen*ar.

)n nuestro e0emplo representaremos la tecla presionada en forma binaria con leds conectados al puerto #.

Diagrama de Flujo:

Page 44: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 44/66

Código

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;**** Definicion de variables ****

6. -Te&la e' 00+ ; &eleccionamos posici4n en la

memoria R$# BPR< para guardar 

7. *Temp e' 00 ; Registro para guardar temporalmente

8.-

". ST#T@S*Temp e' 00 ; Registro para guardartemporalmete &$>& 

.

10.

11.

12. ;**** "nicio del #icro ****

13. eset

14. or8 000 ; $%u comienza el micro.-

15. 8oto %i&io ; &alto a inicio de mi

 programa.-

16. ;**** Hector de "nterrupcion ****

Page 45: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 45/66

17. or8 004 ; $tiendo "nterrupcion.-

1". 8oto %i&io*S

1. ;**** Programa principal ****

20. ;**** 'onfiguracion de puertos ****

21. %i&io

22.   bsf   STATUS,0  ; Pasamos de !anco + a !anco

.-

23.   clrf   TRISA  ; POR$ como &alida.-

24.   movlw b11110000 ; 5ible baAo como &alida

5ible alto como Entrada.-

25.   movwf   TRISB

26.   bcf   STATUS,0 ; Paso del !anco al !anco +

27.   clrf   PORTB

2".   bcf   ITCO,9! ; !orramos bandera de

"nterrupcion.-

2.   movlw b10001000 ; Gabilitamos B"E R!"Einterrupci4n R!/ a R!7<

30.   movwf   ITCO

31.   clrf -Te&la

32. ;**** !ucle ****

33. 9'&le

34.   nop

35. 8oto 9'&le

36. ;**** Rutina de servicio de "nterrupcion ****

37.

3". ;---: $%ui aremos copia de respaldo para mostrar como

Page 46: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 46/66

se ace aun%ue no es

3. ; necesario a %ue el micro no ace otra tarea mientras

tanto M---

40.

41. ; Buardado de registro 8 &$>&.-

42. %i&io*S

43.   movwf *Temp ; 'opiamos 8 a un registro

emporario.-

44.   swapf   STATUS, ;"nvertimos los nibles del

registro &$>&.-

45.   movwf ST#T@S*Temp ; Buardamos &$>& en unregistro temporal.-

46. ;**** "nterrupcion por #R+ ****

47. S

4".   btfss   ITCO,9! ; 'onsultamos si es por R!/ a

R!7.-

4. 8oto !i%*S ; 5o, entoncesrestauramos valores.-

50.   call Te&la*resio%aa ; &e detecta %ue tecla

fue presionada

51.   movfw -Te&la

52.   movwf   PORTA  ; #ostarmos en dipla tecla

Presionada.-

53. ; Restauramos los valores de 8 &$>&.-

54. !i%*S

55.   swapf ST#T@S*Temp, ; "nvertimos lo nibles

de &$>&Kemp.-

56.   movwf   STATUS

Page 47: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 47/66

57.   swapf *Temp, f ; "nvertimos los nibles lo

guardamos en el mismo registro.-

5".   swapf  *Temp, ; "nvertimos los nibles

nuevamente lo guardamos en 8.-

5.   retfie ; &alimos de interrupci4n.-

60.

61.

62. ;**** Rutinas *****

63. ; Rastreamos ecla presionada.-

64. Te&la*resio%aa

65.   clrf -Te&la ; !orra 5umero de ecla  

66.   incf -Te&la,1  ; prepara 5ecla para prime

codigo.

67.   movlw b00001110  ; &aca + a la primera fila

6".   movwf   PORTB  ; de la Puerta !

6.   nop  ; Para estabilizacion deseal.

70. Test*+ol'm%as

71.   btfss   PORTB,4  ; Primera columna @ +

72. 8oto S'elta*te&la ; &ale si se a pulsado

tecla.

73.   incf -Te&la,1  ; &i no tecla pulsada,

incrementa nI tecla.

74.   btfss   PORTB,5  ; &egunda columna @ +

75. 8oto S'elta*te&la ; &ale si se a pulsado

tecla.

76.   incf  -Te&la,1  ; &i no tecla pulsada,

Page 48: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 48/66

incrementa nI tecla.

77.   btfss   PORTB,6  ; ercera columna @ +

7". 8oto S'elta*te&la ; &ale si se a pulsado

tecla.

7.   incf -Te&la,1  ; &i no tecla pulsada,

incrementa nI tecla.

"0. ; En este caso no se >sa teclado ?/.-

"1. ; btfss POR!,7 ; 'uarta columna @ +

"2. ; goto &ueltaKtecla ; &ale si se a pulsado

tecla.

"3. ; incf 5ecla, ; &i no tecla pulsada,incrementa nI ecla.

"4.

"5. @ltima*te&la

"6.   btfss   PORTB,3 ; a se revisaron

todas las filasJ

"7. 8oto -'ll*te&la ; &i, 6alsa alarma, nose a presionado ninguna.-

"".   bsf   STATUS,+  ; 5o, seguimos con la

siguiente.Pone a !it '

".   rlf   PORTB,1  ; asi la 6ila pasa a con la

rotaciQn a iz%da.

0. 8oto Test*+ol'm%as

1.

2. -'ll*te&la

3.   clrf -Te&la ; 'oloca variable ecla a +

5inguna<

Page 49: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 49/66

4.   bcf   ITCO,9! ; !orramos bandera de

"nterrupcion.-

5.   clrf   PORTB ; DeAamos Puerto para

recibir otra tecla.-

6. ret'r% ; regresa.

7.

". S'elta*te&la

. ; $ora se espera a %ue la tecla sea soltada para evitar

rebotes

100. ; reactivaciones de tecla

101. spera1

102.   btfss   PORTB,4  ; &i no se suelta la

tecla 6"9$

103. 8oto spera1 ; vuelve a esperar.

104. spera2

105.   btfss   PORTB,5  ; &i no se suelta latecla 6"9$

106. 8oto spera2 ; vuelve a esperar.

107. spera3

10".   btfss   PORTB,6  ; &i no se suelta la

tecla 6"9$

10. 8oto spera3 ; vuelve a esperar.

110. spera4

111.   btfss   PORTB,7  ; &i no se suelta la

tecla 6"9$ /

112. 8oto spera4 ; vuelve a esperar.

Page 50: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 50/66

 

113.

114.   bcf   ITCO,9! ; !orramos bandera

de "nterrupcion.-

115.   clrf   PORTB ; DeAamos Puerto

 para recibir otra tecla.-

116. ret'r% ; vuelve al

 programa principal %ue izo la llamada.

117. ;..........................................

11". e%

También con la +ariable !Tecla ;!umero de Tecla presionada< se puede utili*ar como entrada a una tabla para

codificar en #SC5KK la tecla presionada(

Código

GeSHi (asm):

1.   movfw -Te&la

2.   call Tabla*T=atri&ial

3.

4. ;'odificacion de ecla presionada=

5. Tabla*T=atri&ial

6.   addwf   PCL,1

7. T C1C,C2C, C3C, C4C, C5C, C6C, C7C, C"C, CC, CDC,

C0C, C$C

I Última modificación: 20 de %$ril de 2009, 1!:2:58 por Suky J )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta * : -: de 7ebrero de =--" =-(:6(8 J

Page 51: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 51/66

 Desconectado

Se/o(#rgentina

ensa0es( 6'2

Con t...

Decri$ci;n: La pantalla de cristal li&uido o LCD ;Li&uid Crystal Display< es un dispositi+o [Controlado de

+isuali*ación grafico para la presentación de caracteres" s%mbolos o incluso dibu0os ;en algunos modelos<. )n

este caso dispone de = filas de 16 caracteres cada una y cada carácter dispone de una matri* de :/' puntos

;pi/els<" aun&ue los 3ay de otro nmero de filas y caracteres. )ste dispositi+o esta gobernado internamente

por un microcontrolador ?itac3i 88'4- y regula todos los parámetros de presentación" este modelo es el mas

comnmente usado y la información &ue se adjunta se basará en el mane0o de este u otro LCD compatible.

Cone/ión del modulo LCD al $KC16748# mediante bus de 8 bits.

)n este e0emplo 3aremos uso de dos directi+as más de ensamblador. )stas son \D)7K!) y macro.

DEF/E es empleado para crear sustituciones dentro del te/to del programa &ue lo simplifi&uen. La forma

correcta es \D)7K!) !O,F) T)YTO" con lo &ue" cada +e* &ue el compilador encuentre la orden !O,F)" la

sustituirá por el te/to. )l problema &ue se nos plantea es &ue" si bien es más fle/ible &ue la directi+a )U"

puesto &ue esta sólo nos permit%a asignar un +alor" sólo se nos permite con \D)7K!) una l%nea de te/to" y est

debe ser fi0a.

Código

GeSHi (asm):

1. $!- B+* B+*T*+o%trol,

)ste problema se soluciona mediante macro. )sta directi+a tiene la siguiente forma(

!O,F) macro #FU)!TO1" #FU)!TO=" )TC

  T)YTO

  T)YTO...

 endm

De este modo !O,F) será sustituido como comando por la secuencia completa definida tras macro 3asta

endm" y los sucesi+os argumentos serán" a su +e*" sustituidos dentro del te/to.

Page 52: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 52/66

)n nuestro e0emplo lo utili*aremos para en+iar un carácter o un comando al LCD" de la siguiente manera(

Código

GeSHi (asm):

1. B+*'t& ma&ro+ara&

2.   movlw +ara&

3.   call B+*+ara&ter

4. e%m

5. B+*'t ma&ro+oma%

6.   movlw +oma%

7.   call B+*+oma%o

". e%m

Rutina de Control:

LCDWConfigWpuertos( Configura los puertos del $KC para el uso del modulo LCD" solo afecta a los pines

utili*ados.E

LCDWKnit( Kniciali*a el módulo LCD para su correcto funcionamiento. )s necesario e0ecutar esta subrutina al

principio de los programas &ue +ayan a utili*ar la +isuali*ación mediante LCD.

LCDW,andera( )/plora el estado de la bandera ,usy ;ocupado< del módulo LCD y espera &ue termine

cual&uier comando pre+io antes de +ol+er a la rutina &ue le llamo.E

LCDW)nable( ?abilita el módulo LCD durante =us para recepción de datos o en+%o.E

LCDWComando( Configura módulo LCD para recibir un comando mediante rutina LCDW)n+ioWData.E

LCDWCaracter( Configura módulo LCD para recibir un carácter mediante rutina LCDW)n+ioWData.E

LCDW)n+ioWData( )n+%a dato al LCD" Cargando el nible alto y luego el nible ba0o.E

/ota: Obser+ar &ue las l%neas de control y bus de datos es fácilmente modificable en Declaración de bits para

control LCD y Declaración de ,ytes del LCD.

 )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectado

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta *, : -: de 7ebrero de =--" =-(:4(26 J

Como e0emplo de aplicación se muestra un e0emplo donde se +isuali*a un mensa0e ;MTodo $icN<(

Código

Page 53: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 53/66

Se/o(#rgentin

a

ensa0es(6'2

Con t...

GeSHi (asm):

1. ; **** Encabezado ****

2. list p16!"4#

3. $i%&l'e 16!"4#.inc

4. **+-!G *+*!! / *T*!! / *T*- / *T*S+

5. ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

LLLLLLLLL 

6. ;**** Declaraci4n de Registros ****

7. B+*ato e'  00+ ;registro para

guardar dato a enviar al 9'D

". Loop e'  00 ;registro para

inicializacion del 9'D 

. +o%taor1 e'  00 ;registro para

demoras

10. +o%taor2 e'   00! ;registro para

demoras

11. ;**** Declaracion de bits para control 9'D ****

12. S e' 0

13. e' 1

14. e' 2

15. 9#+E e' 3

16.

17. 4 e' 4

1". 5 e' 5

1. 6 e' 6

20. 7*9! e' 7

Page 54: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 54/66

21. ;**** Declaracion de !tes del 9'D ****

22. B+*T*+o%trol e' 005 ; POR$ para

control del 9'D 

23. B+*T*ata e' 006 ; POR! para envio

de Datos al 9'D 

24. B+*TS*+o%trol e' 0"5 ; R"&$ 

25. B+*TS*ata e' 0"6 ; R"&!

26. ; **** 'omandos de &oft(are para la 9'D ****

27. B+Bi%ea1 e' 0"0 ; Direcci4n comienzo

lnea

2". B+Bi%ea2 e' 0+0 ; Direcci4n comienzolnea

2. B++lr e' 001 ; !orra pantalla, cursor

a "nicio

30. B+%i&io e' 002 ; 'ursor a "nicio, DDR$#

sin cambios

31. B+%& e' 006 ; #odo incrementa cursor 

32. B+e& e' 004 ; #odo decrementa cursor 

33. B+% e' 00+ ; Pantalla On

34. B+ff e' 00" ; Pantalla Off 

35. +'rs% e' 00 ; Pantalla On, cursor On

36. +'rsff e' 00+ ; Pantalla On,

cursor Off 

37. +'rs9li%F e' 00! ; Pantalla On, 'ursor

 parpadeante

3". +'rAa e' 010 ; #ueve cursor a la

iz%uierda

3. +'re&a e' 014 ; #ueve cursor a la

Page 55: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 55/66

dereca

40. isAa e' 01" ; #ueve Displa 

a la iz%uierda

41. ise&a e' 01+ ; #ueve Displa a la

Dereca

42. B+9's*4*2 e' 02" ; !us / bits, lneas,

0?7 

43. ;**** Definiciones para el ensamblador ****

44. $!- B+* B+*T*+o%trol,

 

45. $!- B+*S B+*T*+o%trol,S

46. $!- B+* B+*T*+o%trol,

47. $!- B+*4 B+*T*ata,4

4". $!- B+*5 B+*T*ata,5

4. $!- B+*6 B+*T*ata,6

50. $!- B+*7*9! B+*T*ata,7*9!

51. $!- +*ba&Fli8t

B+*T*+o%trol,9#+E ; 'ontrol !acligt.-

52. ;**** Definici4n de macros ****

53. B+*'t& ma&ro +ara&

54.   movlw +ara&

55.   call B+*+ara&ter

56. e%m

57. B+*'t ma&ro +oma%

5".   movlw +oma%

5.   call B+*+oma%o

Page 56: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 56/66

60. e%m

61. ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

LL 

62. ;**** "nicio del #icro ****

63. or8 000

64. 8oto %i&io

65. ;**** Programa principal ****

66. or8 005

67. %i&io

6".   call B+*+o%fi8*p'ertos ; 'onfiguramos Puertos autilizar por 9'D.-

6.   call B+*%it ; "nicializamos 9'D.-

70.   bsf B+*ba&Fli8t ; Prendemos

!acligt.-

71. B+*'t +'rs9li%F ; 'ursor Parpadeante.-

72. B+*'t& T ; Escribimos en 9'D.-

73. B+*'t& o

74. B+*'t&

75. B+*'t& o

76. B+*'t&

77. B+*'t&

7". B+*'t&

7. B+*'t& +

"0. 9'&le

"1.   nop

Page 57: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 57/66

"2. 8oto 9'&le ; !ucle "nfinito.-

"3.

"4. ;**** &ubrutinas de 'ontrol ****

"5.

"6. ;**** 'onfiguracion de puertos ****

"7. B+*+o%fi8*p'ertos

"".   bsf   STATUS,0 ; &eleccionamos !anco .-

".   bcf B+*S ; 'olocamos todas las

lineas de control bus como &alidas.-

0.   bcf B+*

1.   bcf B+*

2.   bcf B+*4

3.   bcf B+*5

4.   bcf B+*6

5.   bcf B+*7*9!

6.   bcf B+*ba&Fli8t

7.   bcf   STATUS,0 ; Holvemos an !anco +.-

".   bcf B+*S

.   bcf B+*

100.   bcf B+*

101.   bcf B+*4

102.   bcf B+*5

103.   bcf B+*6

104.   bcf B+*7*9!

Page 58: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 58/66

Page 59: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 59/66

0?7::.-

12.   movlw B+9's*4*2

130.   call B+*+oma%o

131. ;....9impia displa retorna al origen ....

132.   movlw B++lr

133.   call B+*+oma%o

134. ret'r%

135. ;.........................................

136. ;**** 9ee Estado del 9'D ****

137. B+*9a%era

13".   bcf B+*

13.   bcf B+*S

140.   bcf B+*

141.   bcf B+*4

142.   bcf B+*5

143.   bcf B+*6

144.   bcf B+*7*9!

145.   nop

146.   bsf B+* ; #odo 9ectura.-

147.   bsf   STATUS,0 ; !anco .-

14".   bsf B+*7*9! ; 'onfigura R"& para

recibir estado del 9'D.-

14.   bcf   STATUS,0 ; !anco .-

150.  bsf B+*

Page 60: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 60/66

151.   nop

152.   btfsc B+*7*9! ; 9ee estado del 9'D, -:

Ocupado.-

153. 8oto ;<1 ; Esperamos a %ue se

desocupe.-

154.   bcf B+* ; 9'DKD7L!6-:+, seguimos

adelante.-

155.   bsf   STATUS,0 ; !anco .-

156.   bcf B+*7*9! ; Reconfigura R"& para

envio de Data.-

157.   bcf   STATUS,0 ; !anco .-

15". ret'r%

15. ;.............................

160. ;**** Envia pulso Enable ****

161. B+*%able

162.   bsf B+*

163.   nop

164.   nop

165.   bcf B+*

166. ret'r%

167. ;.............................

16". ;**** Envia Dato al 9'D ****

16. ;*** Previamente configurado como 'omando o como

'aracter.-

170. B+*%io*ata

171.   movwf B+*ato ; Buardamos Dato a

Page 61: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 61/66

enviar.-

172. ; '$RB$#O& 5"!9E $9O E5

P>ERO.-

173.   bcf B+*4 ; 'argamos un cero.-

174.   btfsc B+*ato,4 ; &i es , modificamos a

uno, sino seguimos.-

175.   bsf B+*4

176.   bcf B+*5 ;

177.   btfsc B+*ato,5

17".   bsf B+*5

17.   bcf B+*6 ;

1"0.   btfsc B+*ato,6

1"1.   bsf B+*6

1"2.   bcf B+*7*9! ;

1"3.   btfsc B+*ato,7

1"4.   bsf B+*7*9!

1"5.   call B+*%able ; Gabilitamos 9'D para

recepcion de Data.-

1"6. ; '$RB$#O& 5"!9E !$SO E5

P>ERO.-

1"7.   bcf B+*4 ; 'argamos un cero.-

1"".   btfsc B+*ato,0 ; &i es , modificamos a

uno, sino seguimos.-

1".   bsf B+*4

10.   bcf B+*5 ;

11.   btfsc B+*ato,1

Page 62: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 62/66

12.   bsf B+*5

13.   bcf B+*6 ;

14.   btfsc B+*ato,2

15.   bsf B+*6

16.   bcf B+*7*9! ;

17.   btfsc B+*ato,3

1".   bsf B+*7*9!

1.   call B+*%able ; Gabilitamos 9'D para

recepcion de Data.-

200. ret'r%

201. ;.............................

202. ;**** Envia 'omando al 9'D ****

203. B+*+oma%o

204.   call B+*9a%era ;'ontrola si el 9'D

esta en condiciones de recibir un nuevo dato.-

205.   bcf B+* ; #odo escritura.-

206.   bcf B+*S ; &e enviara

'omando.-

207.   call B+*%io*ata ; Envio 'omando.-

20". ret'r%

20. ;.............................

210. ;**** Envia 'aracter al 9'D ****

211. B+*+ara&ter

212.   call B+*9a%era ;'ontrola si el 9'D

esta en condiciones de recibir un nuevo dato.-

Page 63: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 63/66

213.   bcf B+* ; #odo escritura.-

214.   bsf B+*S ; &e enviara

'aracter.-

215.   call B+*%io*ata ; Envio 'aracter.-

216. ret'r%

217. ;..............................

21". ;**** Demora ****

21. emora*5ms

220.   movlw 0+" ; ++

221.   movwf +o%taor1 ; "niciamoscontador.-

222. epeti&io%1

223.   movlw 007 ;

224.   movwf +o%taor2 ; "niciamos

contador

225. epeti&io%2

226.   decfsz +o%taor2,1 ; Decrementa

'ontador si es + sale.-

227. 8oto epeti&io%2 ; &i no es +

repetimos ciclo.-

22".   decfsz +o%taor1,1 ; Decrementa

'ontador.-

22. 8oto epeti&io%1 ; &i no es cero

repetimos ciclo.-

230. ret'r% ; Regresa de

la subrutina.-

231.

Page 64: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 64/66

232. ;...............................

233. e%

Tengo &ue ser sincero" no logre simularlo con $roteus. $ero con elementos reales" lo probé en +arias

configuraciones de l%neas de control y bus de datos" por lo &ue deber%a funcionar sin problemas.E

 )n l%ne

icrosEDesigns

&u'

oderadoresDs$KC22

 Desconectado

Se/o(#rgentina

ensa0es( 6'2

Con t...

Re: "i $rimero $rograma. "anual PC*+F,-A

I Re$ueta *2 : -: de 7ebrero de =--" =-(:(8' J

)l FS=2= es un estándar de comunicaciones propuesto por la #sociación de Kndustrias )lectrónicas ;)K#<

cual define la interfase mecánica" los pines" las seHales y los protocolos &ue debe cumplir la comunicaciónserial. La +elocidad se mide en baudios ;bitsRsegundo< y esta normali*ada a =8--" 84--" 6--" 1=--" 248--

etc. ] sólo son necesarios dos cables" uno de transmisión y otro de recepción.

Todas las normas FSE=2= cumplen con los siguientes ni+eles de +olta0e(

E Un M1N lógico es un +olta0e comprendido entre :+ y 1:+

E Un M-N lógico es un +olta0e comprendido entre :̂+ y ^1: +

Los puertos series son accesibles mediante conectores. La norma FS=2= establece dos tipos de conectores

llamados D,E=: y D,E" mac3os y 3embras. La norma FS=2= se estableció para conectar un ordenador con u

modem" por lo &ue aparecen muc3as patillas en los conectores D,E=: &ue en otro tipo de aplicaciones no se

utili*an y en las &ue es mas comn utili*ar el conector D,E.

Cada una de las patillas del conector FS=2= tiene una función espec%fica. $atillas del D,E(

Page 65: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 65/66

Los pines &ue portan los datos son F/D y T/D los demás se encargan de otros traba0os" el DTF indica &ue el

ordenador esta encendido" DSF &ue el dispositi+o conectado al puerto esta encendido" FTS &ue el ordenador a

no estar ocupado puede recibir datos" al re+és de CTS &ue lo &ue informa es &ue es el dispositi+o el &ue pued

recibir datos" DCD detecta &ue e/isten presencia de datos" etc.

7ormato de un byte(

)l protocolo establecido por la norma FS=2= en+ia la información estructurada en 8 partes(

E ,it de inicio o arran&ue ;ST#FT<. )s un paso de E1=B a ^1=B" es decir de un M1N a un M-N lógico en la lógica

negati+a de la norma FS=2=.

E ,its de datos ;Datas< Los bits de datos son en+iados al receptor después del bit Start. )l bit de menos pes

LS, es trasmitido primero. Un carácter de datos suele consistir en ' u 4 bits.

E ,it de $aridad ;$arity< Dependiendo de la configuración de la transmisión un bit de paridad puede ser

en+iado después de los bits de datos. Con este bit se suele descubrir errores en la transmisión" puede dar

paridad par o impar.

E ,it de $arada ;STO$< la l%nea &ue a E1=B después del ultimo bit en+iado" es decir &ueda a M1N en lógica

negati+a de la norma. )l protocolo permite 1" 1.: o = bits de parada.

"AG 88.

)n el mercado 3ay muc3os circuitos integrados &ue permiten la con+ersión entre ni+eles TTL y ni+eles FS=2=.

)l más destacado es el transceptor #Y=2=(

)ste con+ierte los ni+eles FS=2= ^1= y E1= a +olta0es TTL - y ^: y +ice+ersa sin re&uerir mas &ue una

fuente de ^:B y un par de capacitores.

Page 66: EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

7/23/2019 EJERCISIOS VARIADOS DE CONFIGURACIONES DE INSTRUCCIONES

http://slidepdf.com/reader/full/ejercisios-variados-de-configuraciones-de-instrucciones 66/66