10
Ejercicios modificados Juego de luces, las luces se cruzan de lado a lado 1) Abra el programa MPLab luego seleccione Proyect > Wizard 2) Presione siguiente

Modifi CA Dos

Embed Size (px)

DESCRIPTION

t

Citation preview

Ejercicios modificadosJuego de luces, las luces se cruzan de lado a lado1) Abra el programa MPLab luego seleccione Proyect > Wizard

2) Presione siguiente

3) De la ventana desplegable seleccione el microcontrolador 16F84A y presione Siguiente.

4) Con el botn de BROWSE seleccione su directorio de trabajo

5) Luego damos click en siguiente, luego en finalizar.

6) Luego en Untitled, realizamos el siguiente programa

LISTP=16F84A,; usar PIC 16F84A#include __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC; code protecoff; power up timeron; watchdogoff; oscXTPDel0equ0CPDel1equ0D; el efecto que se busca es de dos luces que parten de los extremos expuestos y se muevan; de lado a lado.SEC1equB'10000001'SEC2equB'01000010'SEC3equB'00100100'SEC4equB'00011000'; se podri haber seguido con; SEC5equB'00100100' pero es igual a SEC3 y asi para los demas; por lo que se invierte la secuencia SEC3, SEC2, SEC1 ORG0BSFSTATUS,5; activa la pagina 1MOVLWB'00000'; carga 00000 en WMOVWFTRISA; puerto a todos salidasMOVLWB'00000000'; carga 00000000 en WMOVWFTRISB; puerto b todos salidaSBCFSTATUS,5; volvemos a la pagina 0CLRFPORTB; ponemos a cero el puerto INICIO; etiquetaREPETIRMOVLWSEC1; carga el valor de SEC1 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msMOVLWSEC2; carga el valor de SEC2 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msMOVLWSEC3; carga el valor de SEC3 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msMOVLWSEC4; carga el valor de SEC4 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msMOVLWSEC3; carga el valor de SEC3 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msMOVLWSEC2; carga el valor de SEC2 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msMOVLWSEC1; carga el valor de SEC1 en WMOVWFPORTB; carga w en el puerto bCALLDEMORA; demora de 100msGOTOINICIO; va a inicio;-------------------------------------------------------------;La demora a sido generada con el programa PDEL;Descripcion: Delay 100000 ciclos - 100 ms;-------------------------------------------------------------DEMORA movlw .110 ; 1 set numero de repeticion (B) movwf PDel0 ; 1 |PLoop1 movlw .181 ; 1 set numero de repeticion (A) movwf PDel1 ; 1 |PLoop2 clrwdt ; 1 clear watchdog clrwdt ; 1 ciclo delay decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop2 ; 2 no, loop decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loopPDelL1 goto PDelL2 ; 2 ciclos delayPDelL2 goto PDelL3 ; 2 ciclos delayPDelL3 clrwdt ; 1 ciclo delay return ; 2+2 Fin.;-------------------------------------------------------------END; fin de programa7) Luego damos click en file -> save as y guardamos el archivo como ejercicio1.asm.

8) Este archivo no est guardado en la carpeta source le damos click derecho en source files -> add file escogemos el archivo que habamos creado y le damos click en abrir.

9) Ahora tendremos el archivo .asm en la carpeta Source Files, luego le damos click en Proyect > Build all y despues hacemos click en Absolute.

10) Luego al compilarlo tenemos luego en la opcin debugger->select tool escojamos 4mplab sim en la cual estar la opcin step into, steap over, run, anmate.

11) Luego clickeamos en view-> special function registers y nos saldr una ventana en la cual con la opcin animate probaremos las instrucciones.

Simulacion en Proteus1) Abrimos proteus isis opcin P y en keywords buscamos 16F84A(pic), CAP(condensadores), CRYSTAL, LED(blue), RES(recistencias)

2) Realizamos el modelo seleccionando el pic y los componentes requeridos.

3) Una vez terminado cargamos el archivo .asm y damos click en Run The Simulation.