Página de inicio Mi Correo






   » Foro
   » Nuevo Foro
   » Mi Correo
   » Mis Actividades...


--- Novedades ---



    
  » Microcontroladores » Tutor de MPLAB (9 de 19)  

.: Los efectos - Primera Sección

Al fin lo que estabas esperando, es hora de codificar los efectos, como dije anteriormente, en los comentarios del código utilicé la numeración en binario para orientarte un poco más y así sabes que salida esta activa.

Bien, ahora vamos por el primer efecto que sería este...

Monitor de LED's switch en 0000
     

El código para obtener este efecto es muy sencillo, y se trata de ir activando cada uno de los bits del puerto B por cada nuevo pulso de reloj. Aquí tienes los detalles...

;======================== Efectos =========================

efect1	CLRF	portb	; limpia el puerto B
	BSF	portb,7	; (10000000)
	CALL	clokon
	BSF	portb,6	; (11000000)
	CALL	clokon
	BSF	portb,5	; (11100000)
	CALL	clokon
	BSF	portb,4	; (11110000)
	CALL	clokon
	BSF	portb,3	; (11111000)
	CALL	clokon
	BSF	portb,2	; (11111100)
	CALL	clokon
	BSF	portb,1	; (11111110)
	CALL	clokon
	BSF	portb,0	; (11111111)
	CALL	clokon
	BCF	portb,7	; (01111111)
	CALL	clokon
	BCF	portb,6	; (00111111)
	CALL	clokon
	BCF	portb,5	; (00011111)
	CALL	clokon
	BCF	portb,4	; (00001111)
	CALL	clokon
	BCF	portb,3	; (00000111)
	CALL	clokon
	BCF	portb,2	; (00000011)
	CALL	clokon
	BCF	portb,1	; (00000001)
	CALL	clokon
	CLRF	portb	; (00000000)
	CALL	clokon
trece	BSF	portb,0	; (00000001)
	CALL	clokon
	BSF	portb,1	; (00000011)
	CALL	clokon
	BSF	portb,2	; (00000111)
	CALL	clokon
	BSF	portb,3	; (00001111)
	CALL	clokon
	BSF	portb,4	; (00011111)
	CALL	clokon
	BSF	portb,5	; (00111111)
	CALL	clokon
	BSF	portb,6	; (01111111)
	CALL	clokon
	BSF	portb,7	; (11111111)
	CALL	clokon
	BCF	portb,0	; (11111110)
	CALL	clokon
	BCF	portb,1	; (11111100)
	CALL	clokon
	BCF	portb,2	; (11111000)
	CALL	clokon
	BCF	portb,3	; (11110000)
	CALL	clokon
	BCF	portb,4	; (11100000)
	CALL	clokon
	BCF	portb,5	; (11000000)
	CALL	clokon
	BCF	portb,6	; (10000000)
	CALL	clokon
	RETURN		; a revisar nuevamente las llaves

No se si es necesario explicarlo pero ahí va, efect1 es la etiqueta para este efecto, y en la primera línea, me aseguro de que no hay señal en la salida haciendo un CLRF portb, es decir dejo todo el puerto B en (00000000).

;======================== Efectos =========================

efect1	CLRF	portb	; limpia el puerto B
	BSF	portb,7	; (10000000)
	CALL	clokon
	BSF	portb,6	; (11000000)
	CALL	clokon
	BSF	portb,5	; (11100000)
	CALL	clokon
	BSF	portb,4	; (11110000)

Ahora paso a la siguiente instrucción...

BSF   portb,7

BSF es poner a 1 el bit del registro F, es decir... poner a 1 el bit7 del registro portb. el resultado es (10000000)

CALL  clokon

Esto es fácil, sólo llama a la etiqueta clokon, la ejecuta y regresa, ya se que debería ser clockon, pero es muy largo, imagínate como quedaría clockoff, peor aún...!!!, así que lo dejemos así.

clokon es la rutina que verifica el estado del timer. Entonces si hay un pulso regresa y hace...

BSF   portb,6

Pone a 1 el bit6 de portb, y el resultado es (11000000), (fíjate que el bit7 aún esta activo, bueno, estará así hasta que le pongas un 0), luego de eso va a verificar si hay un nuevo pulso...

CALL  clokon

si lo hay regresa y activa el bit5 de portb, y así hasta que estén todos encendidos o sea (11111111) observa el código más arriba...

Cuando eso ocurra haré un...

BCF   portb,7

Es decir poner a 0 el bit7 de portb, y el resultado es (01111111), luego de eso va a verificar si hay un nuevo pulso, y si lo hay pondré a cero el siguiente bit y quedará (00111111), y así hasta que portb sea (00000000) y luego haré lo mismo, pero al revés.

Como ves es muy sencillo... En cada instrucción no apunto a todo el puerto B sino a uno de los bits de ese puerto, activándolo a desactivándolo.

Pasemos a lo siguiente...

Perdón, pero antes de que lo olvide... En cierto lugar de este código incluí una etiqueta llamada trece, cuando llegue el momento hablaremos de ella, por ahora haz de cuenta que no existe de acuerdo...??

Ahora si sigamos...



R-Luis...


<--Anterior   Introducción   Siguiente -->
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19
Tabla de Referencias


    
--| |--